硬件: C6748 +NOR FLASH
我将应用程序+UBL 用AISgen软件生成AIS文件,然后用仿真器烧写入NOR FLASH。
我想设置或者确定,应用程序烧写到NOR FLASH的位置,UBL在NOR FLASH的位置,有什么方法吗?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
硬件: C6748 +NOR FLASH
我将应用程序+UBL 用AISgen软件生成AIS文件,然后用仿真器烧写入NOR FLASH。
我想设置或者确定,应用程序烧写到NOR FLASH的位置,UBL在NOR FLASH的位置,有什么方法吗?
在UBL_NOR工程中,norboot.h定义了
typedef struct _NORBOOT_HEADER_
{
Uint32 magicNum;
Uint32 entryPoint;
Uint32 appSize;
Uint32 ldAddress; /* Starting RAM address where image is to copied - XIP Mode */
}
NORBOOT_HeaderObj,*NORBOOT_HeaderHandle;
ubl.h中定义了
#define UBL_MAGIC_BINARY_BOOT (0x55424CBBu)
在norboot.c 中,hNorHeader将BLOCK1中信息赋值给hNorHeader。
// Assume header is at start of Block 1 of NOR device (Block 0 has
// this UBL)
hNorHeader = (NORBOOT_HeaderHandle) (blkAddress + blkSize);
我的问题是,根据BOOT TABLE格式:
ENTRY POINT
SECTION 1 SIZE
SECTION1 DEST
那么hNorHeader得不到UBL_MAGIC_BINARY_BOOT 这个信息,而且SIZE也只是SECTION1的SIZE,不是整个APPSIZE.
可以帮忙看看吗
我不是这个意思。
这个是OMAP-L138_FLASHAndBootUtils_2_40里面提供的UBL中的NOR_WRITE工程,
按道理应该是正确的,他这种格式的写法是依据哪种格式写的?
#1. image格式在我前面指出的小总结里的第七页里有说明:
#2. 这里更多的是借用了ARM端启动顺序UBL-> UBOOT , 因为UBOOT用的gcc编译器及链接文件,有兴趣可以去看一下.将入口地址与内存地址开始设置为一样的.这样目的地址与入口地址是同一个,所以上面的header就很好理解了.
#3. 但是通常用户程序的cmd没有特殊处理/设置,编译出来的文件的入口地址通常不是内存的首地址.这样按照上面的header搬过去,就不能直接跳到目的地址了. 比如以starterware里有gipio例程编译结果的map文件:
#4. 这样就需要将工程的入口地址固定到内存的首地址:: 
#5. 再用hex6x.exe 用-image选项生成bin.
#6. 再在bin文件前加上文件头就行了. 这个步骤可以用starterware里的命令行工具:
C:\ti\OMAPL138_StarterWare_1_10_04_01\tools\ti_image\tiimage.exe
格式为: tiimage.exe Address NONE xxx.bin xxx_ti.bin