USB HID的程序,加了个Boot后,跳到APP后HID不能识别(解决,答案37楼

2019-12-10 18:14发布

本帖最后由 SkyGz 于 2016-8-9 15:56 编辑

一个原基于USB HID的通讯程序, 平时是插电脑上用的
所以就加了个Bootloader, 可以方便通过USB更新程序

能正常启动到Bootloader下,  也能更新程序,  通过JLINK 读整芯片数据回来 一一对比检查, 也没有错
可是 设为APP启动,  就无法识别 USB HID了,      问这是什么问题呢
HID程序 改了起始地址 就不能运行了??????????????

首先我这这USB HID是 NRF24L01的接收器, 上面有一个LED, 有通讯 就快闪, 没通讯就慢闪
经过测试,   能与另一块板子NRF24L01通信,  LED能快闪,  说明已跳到APP程序中运行,  程序也没有卡死现像

已设置向量表偏移了(见图2代码中首行),,,就是唯独USB HID无法识别了.......




如果 丢个 点亮LED的测试程序 是没有问题的

Bootloader 跳到用户APP区的代码
#define         IN_FLASH_STAR                      0x08006000
33.JPG (15.7 KB, 下载次数: 0) 下载附件 2016-8-8 19:53 上传


上2个程序的代码,  各位大大有时间 帮我看看咋回事
zzzzzz.rar (965.85 KB, 下载次数: 83) 2016-8-9 09:39 上传 点击文件名下载附件

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
58条回答
SkyGz
1楼-- · 2019-12-11 11:52
本帖最后由 SkyGz 于 2016-8-8 22:01 编辑
sbusr 发表于 2016-8-8 21:49
boot里有开过的中断没有关,就进app了。或者app中断向量没有设置对。


这回明白了,  APP原来是使用好好的,     应该不会错吧, ,,    那应该是 BOOT里的没关了.....
SkyGz
2楼-- · 2019-12-11 16:27
明白是明白了,  因为 Bootloader和app都用了相同的中断地址,  所以当app启动 后所用的中断地址实际是boot的,  所以出现不能识别USB问题

可是 已在程序开头设置 向量表SCB->VTOR = FLASH_BASE | 0x6000;  仍然是无法识别

摄氏零度
3楼-- · 2019-12-11 17:48
中断向量偏移
SkyGz
4楼-- · 2019-12-11 23:27
 精彩回答 2  元偷偷看……
huangqi412
5楼-- · 2019-12-12 00:27
SkyGz 发表于 2016-8-8 23:03
已经设置 偏移了...仍是无法识别, 见9楼

那就没道理了  应该只有io重连接和中断重偏移两个

挂上link一直run. 过一段时间停下  看有没进fault先
SkyGz
6楼-- · 2019-12-12 03:42
huangqi412 发表于 2016-8-8 23:14
那就没道理了  应该只有io重连接和中断重偏移两个

挂上link一直run. 过一段时间停下  看有没进fault先 ...

用LINK  RUN,  停下 多次偿试, 都没有进 FAULT, 但 依然是无法识别
RCC_DeInit(); NVIC_SystemReset();  这些也加上,  不管是 BOOT端 还是APP端, 都加,  或分别加上试,  依然是无法识别

但恢复为 8000000地址,  注释掉 中断偏移,  又正常...

IO重连接 又怎么回事...咋整



一周热门 更多>