hello,
I'm a new learner.
How to boot the 6747DSP from a 16-bit NAND FLASH using CCS.V5?
Where can I find the D800K003.exe?
How to program 16-bit NAND FLASH?
Please give me some suggestions.
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. D800K003.exe可以到下面的网站下载. 打开AISgen.exe后, 在ROM ID下拉菜单里选择D800K003
http://www-s.ti.com/sc/techlit/sprabb1.zip
2. 可以参考LSP中的nand flash烧写例程\REL_LSP_02_20_00_07\PSP_02_20_00_07\board_utilities\flash_writers\nand_writer, 不过是基于CCS v3.3的, 你需要把project import到CCS v5.
http://software-dl.ti.com/dsps/dsps_registered_sw/sdo_sb/targetcontent/psp/mv_lsp_2_20/index.html
http://processors.wiki.ti.com/index.php/Importing_CCSv3_Projects_into_CCSv4
您好,我已下载了 D800K008,将.out转换成.bin 文件。谢谢您的解答,在烧写K9F1216U0A-16bit-FLAS时我又遇到下列问题:
1、命令和地址都必须转换成8位数据写进去。已验证正确,但是我还是不理解为什么要这样,原本是16位的FLASH为什么要转换成8位;
2、对于一页来说,不管怎么写进去,用16位读出来则只能读到132个正确的数据,后面的数据都是第132数的高8位(若高八位是0x12则后面到第256个数都是0x1212)。用8位读最多可读到264个数据(折合下来还是132个期望数据)。这与datasheet上写的256+8个word。
3、写数据命令下,按daasheet上为512个数据脉冲,这说明要将16位数据写512个还是将16位转换成高低8位写512次?在我的程序中,不管写16位256次还是写8位512次,读出来都是一样的,只不过因读的位数不同而不同。
4、spare区域的数据要自己写吗?BBTable要自己建立吗?擦除时会被擦成0xFF吗?
尾数是奇数的版本是针对OMAPL137, C6747,AM1707这一系列的。
尾数是偶数的版本是针对OMAPL138,C6748,AM1808这一系列的。
AISgen是将.out文件转换在AIS格式文件,同时加入用户的配置,利用AIS的配置功能,可以在bootloader加载代码前对芯片做初始化。
用TI提供的烧写工具即可,里面有串口烧写工具,也有CCS工程的flash writer.
http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility_for_OMAP-L137
您好!我现在是通过AIS将.out转化成.bin文件,烧写到FLASH从第1块第1页开始的位置,可以焼写成功,但是DSP仍然无法从FLASH启动。
DSP从ROM启动后从FLASH中复制1KB的数据到RAM是从FLASH的0地址开始的吗?这1KB就是这个二次引导程序吗?请问怎么写二次引导程序将我的用户程序搬运到内部RAM中。
您说的BootLoder指的是二次引导程序吗?例程中有一个Header,其中有六个数,这六个数我该怎么用,是写一个二次引导程序序固化到FLASH的第0块就可以了吗?
首先有个疑问,这个贴子标为已解答了,为什么还有问题?
#1. 是从page 0 开始写。
#2. 这句话是怎么来的?“DSP从ROM启动后从FLASH中复制1KB的数据到RAM是从FLASH的0地址开始的吗?”是在谈C6747吗?
#3. 二级启动程序可以参考UBL。Bootloader是指芯片的ROM code。
#4. 例程中有源码,这是示例,不是必须遵守的黄金准则。
这个链接有帮助:http://processors.wiki.ti.com/index.php/Boot_Images_for_OMAP-L137
谢谢您的耐心解答,我第一次使用帖子,不太清楚规则。最初的问题解决了我就选了已解答,后续又出现了问题我就继续问了。
下面我将我的工作做了一个总结,其中有些地方不是很清楚导致至今还未实现NAND FLASH自启动,希望您能帮我看一下,是不是我的整体思路存在误区。
1、DSP从ROM启动后会读取FLASH的1KB数据,这个思路是我在已表的关于FLASH二级引导的论文中看到的。
2、我后面又自己写的二级引导程序是根据网站上的UBL写的,只是不知道应该把它放在哪里?它将用户程序应该搬到什么位置?DSP怎么样才会执行它?它的大小为27K已经超过1个Block的大小。
第一种思路我看不懂,不知道是从哪得来的。
我们就讨论第二种方法吧:
引导思路2
将用户程序通过AISgen D800K005转换成.bin文件后,从FLASH的BLOCK1的第0页位置开始烧写用户程序。将Boot引脚设置为NAND FLASH引导的模式,上电后DSP会从FLASH中读取用户程序。该思路中的转化方式与上述思路相同,但是DSP的FLASH 自启动并未成功。
[Answer] 1. 读寄存器,确认启动模式设置是否对? 2. 用TI提供的烧写工具,成功后,再对照你自己的程序看哪里不对。
存在的问题是:
1,AISgen D800K005会将大约0.5KB的数据加入到用户数据的头中,这些就是设置的数据吗?它起个什么作用?
[Answer] 看bootloader applicaion notes。或者我的置顶贴DSP boot.
2,是否还需要自己写入二级引导程序,DSP通电后是否跳过了BLOCK0而从BLOCK1的第0页开始读取我们的用户程序,并且自动执行用户程序?
[Answer]是自动的,芯片的ROM bootloader就是这个机制。不需要二级boot。
看来把一个简单的事情搞得复杂了。其实只要把.out程序通过AISgen转换成.bin,通过TI提供的烧写工具写到flash即可。AISgen界面的配置根据需要设置(不清楚的地方可以参考bootloader applicaion notes.
您好,根据您提供的思路,我做了以下工作
1、检查BOOT引脚,读取BOOTCFG(0X01C14020)寄存器数据=0XF3F0,满足16-bit NAND FLASH Boot的需要;
2、用AISgen D800K005,按照如下设置将用户.out转换为.bin文件;
3、将.bin文件烧写到FLASH Block1 Page0 开始的位置,读出烧写进去的数据与.bin文件对照,发现数据完全吻合,说明烧写成功;
4、断电重启后芯片还是无法自启动。
现在存在的问题是:
1、芯片的ROM bootloader最大能复制多少数据到内部RAM,我的用户.bin有32KB,它能全部读进去吗?
2、芯片的ROM bootloader支持16-bitNANDFLASH吗?若不支持该怎么设置?
3、这个芯片的ROM bootloader是否就是RBL?
#1. 大小没限制。
#2. 检查一下芯片版本,d800k001不支持16bit NAND:
The C6747/45/43 bootloader has undergone multiple revisions. To check the version of your device,
perform the following steps.
1. Connect to the device in the Code Composer Studio™ software.
2. Select View → Memory.
3. Enter the address of the beginning of the ROM, 0x11700000, at the top of the memory window.
4. Select Character mode at the bottom.
The text d800k003 should appear in the memory window at offset 0x08. For earlier ROM revisions, the
text could also appear as d800k001. It’s important to know your ROM revision when generating boot
images. If you don’t see either of these values in the memory window, this document is not applicable to
your device.
#3. 是的。
不一定没有启动,也许是程序中配置哪里不对,最好不要配置EMIFA的PINMUX配置,因为当前正在从EMIFA访问。这个应该不是关键点,可能是LPSC配置有问题,因为你没有配置,就是说外设都是处于默认状态,如果软件里也没有配置的话,那么访问就不会成功。你可以CCS环境下验证:不加gel文件(或者在gel文件里把LPSC配置部分注释掉),下载你的.out程序看是否可以运行成功。
您好,我是用的附件的程序,因为提问的帖子http://www.deyisupport.com/question_answer/dsp_arm/c6000_dsp/f/32/t/54106.aspx一直没收到回复,所以才在这里提问的,谢谢