发 帖  
原厂入驻New
[问答] 加密芯片C6748 NAND FLASH下载完程序,无法自启动怎么回事
2020-5-22 13:36:06  53 C6748 Flash
分享
首先芯片是加密型的C6748
先不考虑对程序进行KEK加密,只让它充当普通芯片能用就行
我利用NANDWriter工程将LED.bin的程序写进NAND FLASH后,让启动模式设置成从NAND启动,boot mode[7:0]为0001 0000


说明:1、我并没有每写512bytes就做一次crc校验,也即每页只写了前2048bytes,剩下的64个sparebytes没有写东西,我想只要在.ini文件同样设置成不进行CRC校验就应该没问题
            2、没有对使用到的block1进行坏块检测。
            3、不过我确定,led.bin成功无误写进了NAND FLASH,因为我每写一页,都会重新从该页回读验证一下,以保证写入的跟读出的一致,这里验证是正确的
            4、下载程序时用到了DDR读写数据,之前也做过ddr2的压力测试,好像DDR2也都没啥问题
那么NAND FLASH无法自启动到底是哪里出问题了,我想有可能跟.ini的设置有关(key_hdr_sha256_enc.bin这个会影响么?),或者是cmd文件有问题,或者其他问题,还请大神们给给意见,究竟问题问在哪里了?


0
2020-5-22 13:36:06   评论 分享淘帖

相关讨论

12 个讨论
led.bin文件从UART2烧写进入DSP内部RAM或者DDR2倒是可以正常运行的!      (当时和led.bin相关的cmd是没有红色区域这段语句的,估计加进去也不会影响)
难道你把TI提供的 NANDwriter修改了?
是ECC,不是CRC,一定要加ECC的,bootloader要读出ECC与计算得出的ECC做比较才知道boot时读的NAND的数据对不对。
 注释掉key_hdr_sha256_enc.bin
红色区域这段话的存在,是因为代码里用到了变量_NANDStart和_EXTERNAL_RAM_START.


                                                                         http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
2020-5-22 14:13:11 评论

举报

lifei639156 发表于 2020-5-22 14:13
难道你把TI提供的 NANDwriter修改了?
是ECC,不是CRC,一定要加ECC的,bootloader要读出ECC与计算得出的ECC做比较才知道boot时读的NAND的数据对不对。
 注释掉key_hdr_sha256_enc.bin

我没有官方提供的标准NANDwriter的CCS工程,我的NANDwriter是自己在OMAP-L138_FlashAndBootUtils_2_40文件夹中,利用.c和.h文件自己做的一个工程,你们有没有标准的NANDwriter的CCS  V6工程?如果自己写ECC,好写么?还请发个NANDwriter的CCS  V6工程链接
OMAP-L138_FlashAndBootUtils_2_40文件夹中就有CCS的NANDwriter工程:
OMAP-L138_FlashAndBootUtils_2_40\OMAP-L138\CCS\NANDWriter


                                                                         http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
2020-5-22 14:40:29 评论

举报

lifei639156 发表于 2020-5-22 14:40
OMAP-L138_FlashAndBootUtils_2_40文件夹中就有CCS的NANDwriter工程:
OMAP-L138_FlashAndBootUtils_2_40\OMAP-L138\CCS\NANDWriter

是的,我用的就是这个OMAP-L138_FlashAndBootUtils_2_40文件夹中的NANDwriter工程,关键是这个文件夹下面的nand.c文件中,所有关于ECC的函数,都是依靠函数指针在调用ECC的相关函数,而函数指针指向的函数定义并没有给出,我找了好多文件,都没有给出这些指针所指向的函数的定义,程序走到这里就无法前进,所以只能将其屏蔽掉,那么这个该怎么办,我自己写么?还是在哪个地方我没看到?

lifei639156 发表于 2020-5-22 14:40
OMAP-L138_FlashAndBootUtils_2_40文件夹中就有CCS的NANDwriter工程:
OMAP-L138_FlashAndBootUtils_2_40\OMAP-L138\CCS\NANDWriter

我用的是CCS V6,这个NANDWriter不能直接导入,所以重新做了个工程,但如前所述,无法找到ECC相关的函数定义,不过我倒是在OMAP-L138_FlashAndBootUtils_2_40\Common\UtilLib下面找到了用C#写的一个ECC.cs文件,会不会是CCS在下面调用了类似ECC.cs的一些文件或者脚本啥的
客来看我可怜我看 发表于 2020-5-22 14:59
我用的是CCS V6,这个NANDWriter不能直接导入,所以重新做了个工程,但如前所述,无法找到ECC相关的函数定义,不过我倒是在OMAP-L138_FlashAndBootUtils_2_40\Common%utilLib下面找到了用C#写的一个ECC.cs文件,会不会是CCS在下面调用了类似ECC.cs的一些文件或者脚本啥的 ...

<blockquote class="quote"/>                                                                           http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
2020-5-22 15:06:55 评论

举报

lifei639156 发表于 2020-5-22 15:06
&amp;lt;blockquote class=&amp;quot;quote&amp;quot;/&amp;gt;                                                                           http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal

这个NANDWriter工程是NANDWriter_DSP.pjt,这是CCS V6根本无法识别的工程(跟CCS V6工程的后缀不一样),可能这是用低版本的CCS写的工程,我再下个CCSV 5试试行不。
客来看我可怜我看 发表于 2020-5-22 15:25
这个NANDWriter工程是NANDWriter_DSP.pjt,这是CCS V6根本无法识别的工程(跟CCS V6工程的后缀不一样),可能这是用低版本的CCS写的工程,我再下个CCSV 5试试行不。

CCS menu: Project->Import Legacy CCSv3.3 Projects
                                                                         http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
2020-5-22 15:38:07 评论

举报

lifei639156 发表于 2020-5-22 15:38
CCS menu: Project-&amp;gt;Import Legacy CCSv3.3 Projects
                                                                         http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.

Tony Tang
现在已经可以从NAND FLASH启动了,谢谢你,官方这个确实比我写那个好用多了,我的还是通过从串口给dsp发指令来控制和显示,这个直接在console下就能实现,我写的应该就是没有考虑ECC校验的问题。非常感谢!
你将之改成串口的烧写工具很好啊。这样不需要仿真器就可以烧写了。
不少人也是自己这样改成量产烧写工具的。
                                                                         http://processors.wiki.ti.com/index.php/Main_Page
Think Over Before Asking.
http://www.catb.org/~esr/faqs/smart-questions.html#goal
2020-5-22 16:03:34 评论

举报

客来看我可怜我看 发表于 2020-5-22 15:48
Tony Tang
现在已经可以从NAND FLASH启动了,谢谢你,官方这个确实比我写那个好用多了,我的还是通过从串口给dsp发指令来控制和显示,这个直接在console下就能实现,我写的应该就是没有考虑ECC校验的问题。非常感谢!

您好,我最近也在学习C6748怎么通过串口烧写至FLASH中启动,和你做的工作很像,但是遇到了问题,读取烧写的程序数据对比也没有问题却boot不起来,想可以参考一下你的代码,谢谢!!
2020-5-22 16:20:14 评论

举报

只有小组成员才能发言,加入小组>>

1205个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表