完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
背景:之前是用SCI boot mode进行boot程序烧写的。现有的28075板子上GPIO72与GPIO84默认接高电平,当要进行SCI boot时将GPIO72拉低即可,正常跑flash时不对GPIO72进行操作。
现在想要通过USB boot mode进行boot程序烧写。 已知USB-boot模式的选择是在Get-mode下即GPIO72/84均为高电平,key=0x5A ,EMU_BMODE=0x0C。 问题与猜测: 1.key与EMU_BMODE的赋值需要软件操作,则在进入USB boot mode 前是否需要一次程序编译 2.由于现有28075板子上GPIO72/84默认为高电平,Get-mode设置完成后,是否每次对芯片上电都会进入USB boot mode,而无法进入flash跑程序 2.1在2成立的情况下,为避免每次上电后不进入flash,现有思路为:通过USB boot mode烧写的程序内加入对key与EMU_BMODE的修改,使下次上电后可进入flash 2.2在2.1成立的情况下,若需要第二次通过USB boot mode进行程序烧写,是否需要再次进行步骤1、2、2.1 3.已知通过将GPIO72/84均置低电平并上电后可进入Parallel boot mode,在无Valid KeyValue(0x08AA)时“Return Flash EntryPoint”,是否可理解为Parallel boot mode下不进行其他操作的话,可自动进入Flash。如此可行的话,便可通过硬件控制芯片进入USB boot mode或Parallel boot mode(即进入flash) 4.或其他解决USB boot 程序烧录与二次烧录的方法,望各位指点;有描述不清或理解错误的地方,还请指出。 谢谢 |
|
相关推荐
4 个讨论
|
|
现在想要通过USB boot mode进行boot程序烧写。
已知USB-boot模式的选择是在Get-mode下即GPIO72/84均为高电平,key=0x5A ,EMU_BMODE=0x0C。 ERIC: C2000的引导要分成两种情况,一种是带仿真器的情况,一种是不带仿真器的情况。 EMU_BMODE是有仿真器的情况下才用的,没有仿真器的情况,是要靠OPT_BMODE,即只能一次性编程。 问题与猜测: 1.key与EMU_BMODE的赋值需要软件操作,则在进入USB boot mode 前是否需要一次程序编译 Eric: 如果是带仿真器,那么就要在仿真器时去膝盖这个寄存器,然后复位芯片再运行。 2.由于现有28075板子上GPIO72/84默认为高电平,Get-mode设置完成后,是否每次对芯片上电都会进入USB boot mode,而无法进入flash跑程序 2.1在2成立的情况下,为避免每次上电后不进入flash,现有思路为:通过USB boot mode烧写的程序内加入对key与EMU_BMODE的修改,使下次上电后可进入flash 2.2在2.1成立的情况下,若需要第二次通过USB boot mode进行程序烧写,是否需要再次进行步骤1、2、2.1 Eric: 如果你配置了从USB启动,那么每次就会从USB开始启动,当然你要是带仿真器的话,你想干嘛就干嘛。不带仿真器的情况,因为判断的寄存器都是在OTP上,所以修改不了。 3.已知通过将GPIO72/84均置低电平并上电后可进入Parallel boot mode,在无Valid KeyValue(0x08AA)时“Return Flash EntryPoint”,是否可理解为Parallel boot mode下不进行其他操作的话,可自动进入Flash。如此可行的话,便可通过硬件控制芯片进入USB boot mode或Parallel boot mode(即进入flash) Eric: 是,你所得对,那么就是可以等待,然后应该就会进入flash入口地址,从说明上来讲。你可以用SCI boot先测试一下吧。 4.或其他解决USB boot 程序烧录与二次烧录的方法,望各位指点;有描述不清或理解错误的地方,还请指出。 Eric:另外的一个思路就是写在线升级bootloader, 把USB初始化成串口类,然后自己做一个USB串口类的bootloader。 - ERIC |
|
|
|
|
|
guigui_7044 发表于 2018-12-18 06:19 您解答的很详细,十分感谢! “Eric:另外的一个思路就是写在线升级bootloader,把USB初始化成串口类,然后自己做一个USB串口类的bootloader", 但这部分不是很理解,”把USB初始化成串口类“是指软件程序编译吗?比如例程中的USB虚拟串口功能? 或者是硬件的USB转串口模块? |
|
|
|
|
|
chm6 发表于 2018-12-18 06:34 另外的一个思路就是写在线升级bootloader,把USB初始化成串口类,然后自己做一个USB串口类的bootloader", Eric: 这个指的是用USB的例程如下,把USB配置成串口类,然后电脑接上USB之后,装上如下驱动,就会变成串口,上位机就可以用串口助手之类对它进行收发数据。 然后你自己利用这个例程,还有FLASH API,可以自己写一个bootloader烧写在芯片的某个flash扇区,当接到升级指令之后,就跳转到你这个bootloader的入口,这样就可以升级啦。至于其中的协议,你可以自己随意定义。 C:ticontrolSUITEdevice_supportF2837xDv210F2837xD_examples_Cpu1u***_dev_serial C:ticontrolSUITEdevice_supportF2837xDv210F2837xD_commonwindows_drivers - ERIC |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
325 浏览 1 评论
523 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
763 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
644 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1119 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
17浏览 28评论
44浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
240浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
192浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
52浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 08:50 , Processed in 1.179522 second(s), Total 61, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号