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.
1.如题。怎样通过CCS的memory browser查看程序是否固化进NAND Flash里面了,我用的是DSP6748,外部的NAND是S34ML01G200TFI000,其结构图如下,如果将程序烧写径nand里面后,怎样通过ccs查看程序是否烧写进去了。还有,NAND里面的程序在程序启动的时候到底搬运到那里执行啊,如果我的CMD文件里面有这么一句话,是不是程序就被搬运到0x80000000的位置了呢?用memory browser理论上能看到程序的十六进制代码是吗?
MEMORY
{
SHRAM o = 0x80000000 l = 0x00020000 /* 128kB Shared RAM */
DDR2 o = 0xC0000000 l = 0x20000000 /* 512MB DDR2 Data */
}
SECTIONS
{
.text > SHRAM
}
2.如果我的程序现在太大了,需要写一个二级boot程序,把我的程序从nand里面搬运到DDR2里面去执行,但是我现在只知道思路却不知道怎样具体去实现。我所不明白的问题如下:应该从NAND的哪个位置开始搬运?一个需要搬运多少个字节?搬运到DDR里面吗?从DDR的哪个地址开始存放?以及怎样判断自己的程序有多大,占用nand的多少个字节?二级boot和我的大的主程序在NAND中存放的位置是怎样的,哪个放在前面,哪个放在后面?这些小的细节是我所不明白的,所以现在值知道思路却写不出程序!
3.各位有没有二级boot的代码让我参考一下,或者有没有相关的教程什么的,ti有官方提供的二级bootloader代码吗?
4.再不从一个问题,就是在烧写程序的时候怎样控制程序烧写的位置,比如说,我现在需要二级boot程序,怎样控制程序烧写才能把二级boot烧写在前面而真正的用户程序烧写在二级boot的后面呢?
PU HU 说:1.如题。怎样通过CCS的memory browser查看程序是否固化进NAND Flash里面了,我用的是DSP6748,外部的NAND是S34ML01G200TFI000,其结构图如下,如果将程序烧写径nand里面后,怎样通过ccs查看程序是否烧写进去了。--- NAND的访问方式不是直接地址映射,在memory browser里没办法直接看里面的内容。
还有,NAND里面的程序在程序启动的时候到底搬运到那里执行啊,如果我的CMD文件里面有这么一句话,是不是程序就被搬运到0x80000000的位置了呢?用memory browser理论上能看到程序的十六进制代码是吗?
MEMORY
{
SHRAM o = 0x80000000 l = 0x00020000 /* 128kB Shared RAM */
DDR2 o = 0xC0000000 l = 0x20000000 /* 512MB DDR2 Data */
}
SECTIONS
{
.text > SHRAM
}---- cmd文件决定了程序是链接在什么地址,搬运程序要把相应的段搬到链接时安排的地址才能正确运行。所以问题准确的描述与回答是bootloder或者二级boot要把程序按cmd指定的地址搬运过去,才能运行。
2.如果我的程序现在太大了,需要写一个二级boot程序,把我的程序从nand里面搬运到DDR2里面去执行,但是我现在只知道思路却不知道怎样具体去实现。我所不明白的问题如下:应该从NAND的哪个位置开始搬运?---- 写进NAND是用户写的,所以你知道是从哪里开始写的,就从哪里开始搬。
一个需要搬运多少个字节?搬运到DDR里面吗?从DDR的哪个地址开始存放?
--- 由cmd决定的,不是随便放的。
以及怎样判断自己的程序有多大,占用nand的多少个字节?
--- 程序是你写的,先要明白写进去的是什么文件? 这个文件的数据格式,自然就知道了。往下~~~
二级boot和我的大的主程序在NAND中存放的位置是怎样的,哪个放在前面,哪个放在后面?这些小的细节是我所不明白的,所以现在值知道思路却写不出程序!
--- 二级boot是由ROM bootloader来搬运的,它只从NAND开始搬,而你的大程序是由你的二级boot搬的,你写哪,就从哪搬。
3.各位有没有二级boot的代码让我参考一下,或者有没有相关的教程什么的,ti有官方提供的二级bootloader代码吗?---- 参考UBL。
另外,总体上必需要了解的:
#1. boot是由bootloader读取flash,那么 flash里程序存放的格式是由bootloader定的(不是直接的.out文件),C6748 NAND启动要求AIS格式,先要将.out通过AISGEN.exe转换成AIS文件,再烧写到NAND(TI也提供了烧写工具,有串口烧写工具,也有CCS的烧写工程)
#2. AIS工具里可以配置DDR, PLL等外设,所以程序大小不受限制,二级boot不是必需的。
#3. 如果是自己软件架构要求做成二级boot,可以参考UBL,或者将大程序转换成boot table格式,这种格式最直观。
1.那在二级Boot中,搬运完程序后,怎样改变程序指针到搬运的程序地址呢?
2.您所说的UBL程序在那里能下载到呢,我在网上找到的很多都是基于linux的操作系统的,有没有裸机的参考程序呢?或者相应用户手册呢?能不能给我发个连接呢?再次感谢!