完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
首先作为一个菜鸟,我得好好向诸位学习。最近一直在摸索flash烧写的步骤,总结了一些经验以及还存在的问题,想写点这些东西和大家一起探讨。我现在弄的DSP平台是以前师兄用DM642自己做的板子,该板子上没有cpld,所以如要充分利用flash(Am29LV033C 4M)的空间只能通过GPIO口来选择翻页工作,合众达以及其他例程上都是用了三根选择翻页线,即将flash分为8页,每页512K,一直不明白为什么,而我师兄的板子只有两根线,即将flash分为4页,每页1M,本来以为这在原理上是可以实现的,但我通过反复修改例程始终只能烧写前512k,于是断言难道要坑爹,后来查阅各种资料,貌似DM642这款片子最多能给flash提供512K的寻址空间,因此必须分为8页,这也就解释了合众达公司的设计思路,当然这个仅是我的理解,不一定对哈~,希望高人指点,因为我想即使不能完全实现4M的空间,那么退而求2M的空间应该可行吧,但是实验一直没有成功。 翻页无法实现,我于是转向思索是否是flash的问题,想着下一个小于512K的程序不就得啦,好不容易找到一个程序,欣喜若狂的实验着,结果还是失败、失败、失败。对于bootload的编写我完全是按照c语言来写的,网上有神贴,是用C语言实现flash的二级烧写,大家可以看一下,亲测可用,下面会提到,再此也感谢一下想出这种方式的大神,向您致敬~ 现在我通过大神的二次烧写步骤已经初步实现了boot的启动,为什么说是初步呢,是因为我正确烧写flash后,拔掉仿真器,按复位按钮,程序可以正常启动,这说明,bootload和flash已经正常工作,但问题就在于我断电后,bootload就不能正常重启了,我在断电后连上仿真器,在线可以看出,在0x90000000和0x00000400处的程序是对的,所以我的bootload确实把程序自动导入了,但是为什么不能正常工作呢?难道是我的跳转地址不对?我用的是extern far void c_int00(void),在boot最后调用该函数,c_int00();想不明白,请各位帮忙看看~
|
|
相关推荐
11 个讨论
|
|
|
1. DM642 EMIF有20根地址线, 接异步memory时, 最大寻址空间不止512K, 可以查看下面文档第97页上的表. 你可以看看合众达板子地址线在硬件上是怎么连接的.
http://www.ti.com/lit/ug/spru266e/spru266e.pdf 2. GPIO默认值是多少? 你看一下secondary bootloader是不是放在第一个512K flash空间? 你在烧写flash时, 配置过GPIO管脚, 但下电后重新上电, GPIO管脚回到初始值, 这点需要注意一下. 另外, 可以参考一下下面的二次bootloader程序. http://www.ti.com/general/docs/litabsmultiplefilelist.tsp?literatureNumber=spra999a |
|
|
|
|
|
|
|
vuywsdfwf 发表于 2020-7-28 18:54 您好,感谢您抽出时间来回答我这些问题。我仔细看过合众达的板子,他们用的是三根线作为翻页,也就是说每页为512K,我也看过文档确实是20位地址线,所以正如我上面所说,我觉得在理论上师兄的板子是可以运作的,但是实验始终未能成功;另外关于bootload问题,我通过查看地址数值,确实搬运成功了,我并未配置GPIO口,因为我下的程序本身小于512k。 |
|
|
|
|
|
|
|
|
您好,非常感谢您抽空看帮我看程序。前两天出差,刚回,一直没有弄flash。我现在察觉了一个问题,那就是我发现只要程序小于1M,就可以正常烧写,有个非常奇怪的现象,那就是我在烧写程序时,用memory观察发现,flash是按照1M的空间进行变换的。比如,我往0x90000000写程序,但是在0x90100000,0x90200000,0x90300000地址同时出现了相同的变化,这样也就能推出为什么只能写1M的程序,因为超过1M,这个flash就不知如何操作了。我的地址线是20根,如果按此推论,那么是否是在这里有问题呢?这个表示是1M的地址空间在操作? 亦或是gel的配置有误?flash的型号是am29lv033c-90,请您帮我解答一下疑惑,非常感谢~
|
|
|
|
|
|
|
|
ke3978 发表于 2020-7-28 21:26 那你要查一下高位地址线(>1M)在烧写flash时是不是按你的寻址要求事先拉高拉低, 烧写后, 先不要用ccs view memory, 可以去读一下flash看flash有没有写进去. |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
549 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1513 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1337 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2781浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 12:40 , Processed in 0.959257 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
13905