1、首先是处理2段程序的boot参数表,将第1个程序的boot参数表放在NOR FLASH的0x00~0x7f,第2个程序的boot参数表放在NOR FLASH的0x80~0xff,2个参数表中需要定义好各自应用程序在FLASH中放置的入口地址。
2、按照第1步中的各段地址空间的设置,将boot参数表和应用程序烧写到对应的FLASH空间上。
3、DSP硬件复位时,设置GPIO为0001 0100 0000 1101,这样可以让RBL首先加载第1个程序的boot参数表,且正确启动第1个应用程序。
4、第一个应用程完成的功能是初始化DDR控制器、设置DEVSTAT寄存器、清零boot magic地址以及跳转到RBL入口,这个过程注意的是设置DEVSTAT寄存器时,必须正确设置 DEVSTAT[7:6],使得RBL能正确加载到第2个boot参数表,由于我的第2个boot参数表是放置在 0x80~0xff上的,因此对 DEVSTAT[7:6]设置为01,boot参数表的地址与 DEVSTAT[7:6]的关系式 address = DEVSTAT[7:6] x 128。
请问上面的第4步的跳转到RBL入口如何实现,具体应该这么实现
Shine:
定义一个指针函数:void *entry();将entry=RBL的入口地址0x20B00000。
,
user6096031:
解决了,Thanks♪(・ω・)ノ