TI中文支持网
TI专业的中文技术问题搜集分享网站

C6747 关于RBL(ROM BootLoader)的困惑??

假如说有一个工程的CMD文件如下:
MEMORY
{
    VECS:        o = 0x80000000  l = 0x00000f00    ARMRAM:      o = 0xFFFF0080  l = 0x00001f80
    DSPRAM:      o = 0x11800000  l = 0x00040000
    SHAREDRAM:    o = 0x80000f00  l = 0x0001ffff
  }
SECTIONS
{   ".vectors"  >   VECS
     datasect > DSPRAM
    .bss        >   SHAREDRAM
    .cinit      >   SHAREDRAM
    .cio        >   SHAREDRAM
    .const      >   SHAREDRAM
    .stack      >   SHAREDRAM
    .sysmem     >   SHAREDRAM
    .text       >   SHAREDRAM
    .switch     >   SHAREDRAM
    .far        >   SHAREDRAM
}
C6747的ROM BootLoader是怎样实现把下载在NandFlash中的Image文件搬移到内部RAM的??
在NandFlash下载程序的工程中有如下的一个定义:
typedef struct
{
  Uint32 magicNum;    // Expected magic number
  Uint32 entryPoint;  // Entry point of the user application
  Uint32 numPage;     // Number of pages where boot loader is stored
  Uint32 block;       // Starting block number where User boot loader is stored
  Uint32 page;        // Starting page number where boot-loader is stored
  Uint32 ldAddress;   // Starting RAM address where image is to copied – XIP Mode
}
NANDWRITER_Boot;
在程序下载时,在写入AISgen生成的bin文件之后,上面的结构体会按顺序写入Nand的下一页。
把下载在Nand中的Image文件读出发现未页的数据:

0x26000220
0xA1ACED00           // Expected magic number
0x800066C0           // Entry point of the user application
0x00000003           // Number of pages where boot loader is stored
0x00000001           // Starting block number where User boot loader is stored
0x00000001          // Starting page number where boot-loader is stored
0x00000000         // Starting RAM address where image is to copied – XIP Mode
0xffffffff
……
0xffffffff

下面是关于RBL UBL ABL的一段文字:
When the board is powered on the following steps occur:
First, the RBL in the DaVinci starts executing. It examines Page 0 of the first 24 blocks of NAND flash, starting at block 1 looking for the magic number of the UBL Descriptor. If a UBL Descriptor is found, the RBL loads the UBL into the internal ARM RAM and jumps to the entry point and starts execution of the UBL.
按照这个意思,RBL把NandFlash中的Image文件拷贝到以0x00000000开始的RAM中再跳到0x800066C0开始执行程序,但这个和CMD文件中的定全的不一致呀!!
但是程序完全能正常运行,即使不写入NANDWRITER_Boot也能正常运行!!

这个问题我在“C6747关于Nand启动与二次Boot,RBL”也提到过

https://www.deyisupport.com/question_answer/f/32/t/7501.aspx

 

xiaobin lin:

请问你使用什么工具看的 AISgen的 AIs格式的bin文件?

JingJing Huang:

回复 xiaobin lin:

自己用c写的小程序!!

赞(0)
未经允许不得转载:TI中文支持网 » C6747 关于RBL(ROM BootLoader)的困惑??
分享到: 更多 (0)