新闻  |   论坛  |   博客  |   在线研讨会
STM32匠人学习笔记(一、关于万利板的程序下载问题)
0750long | 2009-07-07 20:01:44    阅读:2764   发布文章

STM32匠人学习笔记(一、关于万利板的程序下载问题)

 

一、关于万利板的程序下载问题 1、问题

打着雨伞请教,关于万利板的程序下载问题

先说一下匠人的经历。

第一次,下载LCDDemo.eww到板上,在线运行正常,脱离ST-link后单独用USB供电,也正常。这应该视为程序被正常下载到芯片了吧。这没问题,从略。

第二次,换了一个ADC 的演示程序,编译、debug,照样出现下载对话框,完成后点击go,运行,也正常,LCD 屏幕上现实ADC结果。到这为止都还算正常。接着,匠人点击Stop Debugging按钮,停止调试。并退出IAR,并切换到USB(CN5接口)供电,同时也把CN2短路帽切换到USB。这时,发现LCD显示的居然不是ADC结果,而是第一次灌入的那个程序的内容“stm32 lcd demo”。

反复进行第二次的动作,结果都是如此,即不管仿真时选择了哪个演示程序,调试时运行正确,一旦脱离仿真状态,改用USB供电,运行的就是“stm32 lcd demo”。

why?

2、原因

       两个DEMO程序的区别在于,第一个DEMO设置为在FLASH_ROM中运行,而第二个DEMO设置为在RAM里运行,因此,重新上电后就丢失了。

3、解决

必须把设置更改为在FLASH_ROM中运行,步骤如下:

1、 workspace窗口下面,选择BOOT_FLASH,如下图:

图 1.1:设置BOOT_FLASH

2、 鼠标右击项目,打开Options窗口,选择LinkerConfig标签,把原来设置的“lnkarm_ram.scl”文件修改为“ linkarm_flash.xcl”。如下图:

 

点击看大图

图 1.2:设置lnkarm_RAM.xcl文件

备注:

如果在Flash中调试程序,设置lnkarm_flash.xcl;

如果在RAM中调试程序,设置lnkarm_RAM.xcl;

在进行设置时,要确认电路板上的Boot0 和Boot1引脚的跳线连接是否正确。

STM32固件库中有“lnkarm_ram.scl”和 “ linkarm_flash.xcl”的工程模板。

3、 重新下载程序,并改用USB口供电后验证,问题解决。

4、启发

对于用过RAM的人来说,这可能不是问题。但是对于象匠人这种从单片机转学RAM的人来说,应该建立这个概念,就是,程序不仅仅可以在FALSH中运行,而且可以在RAM中运行。所以,如果仅仅把程序下载到RAM中,那一掉电,自然就丢死了程序。

不怕做不到,就怕想不到啊!

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客