PowerPC-MPC56xx Flash模式代码启动过程

 
参考第5章
 
In order for the e200z4d core to be able to access memory, a valid MMU TLB entry has to be created. The
SSCM does this automatically by reading the reset vector and modifying TLB entry 0 to create a 4 KB
page containing the reset vector address. The MMU VLE bit is set depending on the status of the VLE bit
within the RCHW. The 4 KB MMU page must be 4 KB aligned. This means that the most efficient place
to put the application code is immediately after the boot sector. The 4 KB block provides sufficient space
to:
• Add MMU entries for SRAM and peripherals
• Perform standard system initialisation tasks (initialise the SRAM, setup stack, copy constant data)
• Transfer execution to RAM, re-define the flash memory MMU entry and transfer execution back to flash memory.
Finally, the SSCM sets the e200z4d core instruction pointer to the reset vector address and starts the core
running.
 
SSCM从boot vector读取到reset vector address之后,即跳转到该位置开始执行代码。
 
一. 一般情况下启动代码的任务
  1. 从语言上看,最开始执行汇编代码,之后执行C语言代码;C语言执行函数调用需要栈,所以需要配置栈指针寄存器;堆只需要一个malloc引用起始位置即可,无需特别配置;
  1. 需要将带初值的数据从flash拷贝到内存中,将BSS区清0;
 
二. PowerPC MPC56xx的情况
这段代码要做的初始化动作依次如下:
  1. 为内存、Flash还有其他地址区间,添加MMU entry。防止引用到的地址无法访问。
  1. 根据ABI配置栈指针寄存器SP,指向SDA区的寄存器,指向SDA2区的寄存器;
  1. 初始化RAM内容,全部置零;
  1. 拷贝.data区,.bss区清0;
然后就可以调到main函数执行了。
 
三. 配置Flash控制寄存器
 
如果需要配置Flash控制寄存器,则需要特别操作。因为最开始执行的代码地址reset vector address指向flash,也就是说CPU从Flash中开始执行代码,CPU的PC指向flash。如果此时直接配置Flash控制寄存器,则会导致无法访问Flash中的代码。
变通的方法是把配置Flash控制器的代码,先拷贝到RAM中,然后跳转到RAM,即CPU的PC指向RAM中的Flash配置代码。配置完毕之后,再跳转回之前Flash中的代码,继续执行。
当然,如果有两块Flash,并且他们的控制器是分开的,也可以分别交替配置。

 

转载于:https://www.cnblogs.com/wjcdx/p/9245780.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MPC56xx是一种高性能32位处理器,采用PowerPC内核,广泛应用于汽车电子和工业控制领域。对于想要学习和使用MPC56xx的工程师或开发人员来说,详细的培训资料是非常重要的。 首先,需要了解MPC56xx的架构和指令集。MPC56xx的主要组成部分包括PowerPC内核、外设接口、存储器控制器和调试接口等。指令集方面,MPC56xx支持大部分PowerPC指令集,同时还有针对汽车应用的特殊指令。 其次,需要了解MPC56xx的外设和应用。MPC56xx支持多种通信接口,如CAN、SPI和Ethernet等。此外,MPC56xx还有专门的模拟外设,如ADC和PWM等。对于汽车电子应用,还需要了解MPC56xx与CAN总线的集成和使用。 最后,需要了解MPC56xx的开发工具和调试方法。MPC56xx的开发工具包括编译器、调试器和仿真器等。同时,也需要了解如何使用调试接口和仿真器进行程序调试和性能优化。 总结来说,要深入学习MPC56xx的使用和应用,需要全面了解其架构、指令集、外设、应用和调试方法等方面的知识。有针对MPC56xx的详细的培训资料可以帮助工程师和开发人员轻松地掌握MPC56xx的使用技巧,实现高效的程序开发和应用。 ### 回答2: MPC56xx是一种采用PowerPC内核的芯片系列,其设计用于高性能、低功耗、面向汽车和工业控制等应用领域。现在市场上已经有很多供应商提供MP56xx的芯片。 MPC56xx系列芯片的架构特点: 1)采用Power Architecture技术,支持16位和32位的指令集,能够处理多种复杂计算和控制任务; 2)内置多达4个全功能的处理器核心,实现性能优化和系统弹性设计,支持多任务处理; 3)通过可编程外设和存储器接口结构,可与各种外围设备协同工作,提供更加灵活的系统解决方案; 4)强大的安全性能,支持正向和反向代码保护、密钥安全存储等安全特性。 MPC56xx系列芯片的开发环境和调试工具: 1)支持多种主流的集成开发环境,如CodeWarrior、IAR等,易于程序编写和调试; 2)提供专业级别的仿真和调试器,如Lauterbach Trace32等,实现工程级别的出色调试和验证; 3)在软支持方面,NXP公司提供了全面的技术支持和丰富的代码库,以帮助开发者更快的开发和上市。 总之,MPC56xx是一种功能强大的芯片系列,是高性能、低功耗系统的最佳选择。NXP公司提供了全方位的技术支持和切实可行的解决方案,是广大开发者不错的选择。 ### 回答3: MPC56xx PowerPC是一种高性能的微处理器,它广泛应用于汽车电子、航空航天、工业控制等领域。若想了解MPC56xx PowerPC更深入的知识,建议考虑参加相关的培训课程。以下是一些可能包含在MPC56xx PowerPC培训资料中的内容。 1. MPC56xx PowerPC的基本结构和功能 - 功能块介绍:CPU、时钟和重置控制、I/O接口、存储器等 - 性能参数:时钟频率、指令周期、处理能力等 - 内存架构:内部RAM、 Flash、外部存储器等介绍 2. MPC56xx PowerPC的软件开发特点 - 操作系统和驱动程序的设计和开发 - 接口协议和通信协议的应用 - 核心汇编指令的编写和应用 3. MPC56xx PowerPC的调试、测试和优化 - 调试工具的应用:调试接口、仿真器、探头等 - 系统测试的方法:性能测试、稳定性测试、功耗测试等 - 系统优化的方法:算法优化、性能提升、功耗降低等 4. MPC56xx PowerPC的应用案例 - 汽车电子系统:发动机控制、车载MCU、座舱电子等 - 航空航天系统:导航控制、航空电子、通信系统等 - 工业控制系统:机器人、自动化控制、传感器等 MPC56xx PowerPC培训资料需要包含详细的理论知识,实际的案例分析和相关的实验操作。通过学习MPC56xx PowerPC的培训课程,可以帮助开发人员更好地理解和应用这种高性能的微处理器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值