RH850/U2A系列多核启动代码解析

帮你捋顺多核启动,启动代码要执行的内容。

首先没看具体代码前,可以思考下启动代码里面要做的任务大概有哪些?
一般有寄存器清零初始化r0~r31,Basic system register系统寄存器的初始化设置例如EBASE(异常向量表地址),RBASE(复位向量表地址),INTBP(中断向量表地址)这些重要的,RAM清0初始化(有的项目会根据复位源情况决定全清或者部分清,就是所谓的Retain Ram数据),BootCtrl控制其它核的开启,核同步设置(多核运行时,可能需要等待所有的核到达同一点才能保证各自运行任务时使用的它核资源已经就绪)等。

接着开始阅读代码。

阅读代码思考代码执行的先后顺序是怎样的?需要先看那个文件。

可以先看下.ld分区文件(green hills编译环境),CS+的编译环境就直接打开工程.mtpj通过菜单view下代码分分区配置:
在这里插入图片描述
很清晰能看到复位后首先执行到了RESET_PE0段的代码。
对应文件:
在这里插入图片描述
这里应该是PE0的RBASE地址,能看到RESET_PE0段包含复位后的跳转地址,SYSERR错误的跳转地址,以及其它各种异常的入口地址。
如果发生复位会执行到BrsSt

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值