Keil uVision4上传错误的固件

时间:2014-06-18 19:08:04

标签: c debugging usb rtos keil

好的,我回到编写固件(不同的工作,现在在Biotech),这家公司使用Keil uVision4 IDE。

我目前的任务是将USB HID堆栈实现到内部创建的现有RTOS中。硬件是STM32L152ZD,带有外部EEPROM,我需要读取它。目前的硬件平台是STM32L152D-EVAL板。

我似乎能够使用STM中的一些示例成功实现堆栈,看起来我已经将堆栈集成到RTOS中。有了这个,我正在使用一个功能报告告诉硬件做某事,电路板会指示成功收到带闪烁灯的FR。然后,奇怪的事情开始发生。评估板上的LED全部亮起,永不脱落。当我尝试通过uVision调试代码时,它会给我以下对话框/错误消息: (调试器 - Cortex-M错误:"内部命令错误")

因此,在浏览和擦除程序存储器后,我尝试了许多重新上传,结果相似。然后我回去上传STM USB HID固件,工作正常,让我放心,我没有以某种方式炒掉开发板。一旦我知道电路板工作,我就尝试重建和上传带有USB固件的RTOS,而且,你知道什么,它又有效了!有了这个,我松了一口气......这是短暂的。

我现在承担了从EEPROM读取的任务,编辑USB堆栈中的相应文件来完成此任务。完成我认为正确的代码后,我重建固件并上传。一切都很好看。它被认为是Windows中的USB设备,并且会响应我为接收数据而编写的python脚本。奇怪的是,设备响应的数据仍来自测试固件。所以,我在操作系统初始化期间回去并放入一些LED闪烁,你知道什么,没有闪烁。它仍在运行修改后的STM固件。

我已多次擦除芯片,并尝试上传带有USB的RTOS,然后进行调试,但我仍然遇到同样的问题:调试不起作用,它看起来像上传了一些不同的固件。

有没有其他人有这个问题,如果有的话,我做错了什么?

(我还应该提到我使用的是Eval板内置的ST-Link实用程序,而不是目前正在桌面上收集灰尘的Keil ULINK2。)

0 个答案:

没有答案