打印
[STM8]

STM8S单片机使用IAR编译器实现IAP烧录的问题

[复制链接]
5646|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LZJ361155817|  楼主 | 2015-8-18 16:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 LZJ361155817 于 2015-9-6 09:02 编辑

使用STM8S单片机,编译环境使用IAR.问题如下:
1:如何用VC++编写上位机程序,实现:可将烧录hex或bin文件的数据读取,然后加上包头码,长度和校验和等字节后通过串口发送。哪位大侠有类似的上位机的工程源码的还请不吝赐教啊。
2:为了能让IAP部分的代码也能在IAP过程中升级,需要将BootLoader部分的代码加载到RAM中运行。在IAR编译器中如何实现呢?有没有做过的大侠有这部分的源码?
3:一切跟STM8在IAR编译器下实现IAP烧录的相关资料和代码,都可以提供给我作参考。
邮箱;LZJ361155817@163.com.
万分感谢!
沙发
643757107| | 2015-8-18 18:58 | 只看该作者
希望楼主用Keil吧,那个可以激活到2020年,说不定是你的IAR没有**,代码限制呢。

使用特权

评论回复
板凳
aundry| | 2015-8-18 19:25 | 只看该作者
:lol看过沙发,笑了
我有项目代码,实现楼主基本上的功能,不过源码是不可能外发的
关于第二点,使用__ramfunc修饰函数就可以把代码在RAM运行
不知道为啥还要把IAP也给升级了,万一挂了呢

使用特权

评论回复
地板
稳稳の幸福| | 2015-8-18 19:36 | 只看该作者
用STVP可以下载,但用IAR无法DEBUG,用IAR下载后复位电平就不正常,这个问题困扰了我很长时间,今日得以解决,给大家分享,希望大家少走弯路。STM32用JTAG在KEIL中烧从来没遇到什么问题,怎么IAR用STLINK V2问题这么多,而且网上没有专门进行总结的原因。
  (1)原因描述及前期分析:
     SAT Feb 07, 2015 10:30:57: Failed to initialize communcation with hardware: SWIM error [200]: ST-Link connection error
    现象:IAR下用开发板下载没问题,将目标板改了型号后,直接烧,IAR内无法烧,但STVP可以烧。
原因:单片机换了型号后,不光要在程序目标改一下,还要在stm8s.h中也要改动,将正确的注释去年,把旧型号注释上。
    有的说是固件升级,换USB口,还有用管理员身份启动IAR,但也不行。
    换一个程序用一个板子都没问题,换另块板用STVP不能下,用IAR不能下,VCAP=1.85V正常,板子问题复位电压只有1.6V~2.5V(各个板子电压不尽相同)。和帖子([STM8] STM8S207S8T6C上电后复位脚一直是1.9V不能工作)问题相同。VCAP下电容为1uf,复位通过10k电阻和1uF电容不能正常工作。把10k短接后可以工作。
    开始找到的可能解决办法是:
    1)将复位引脚引出,需要STVP下载程序时,引线放着即可,需要运行时,引线短接至5V,相当于把10K电阻短接。不能IAR中DEBUG确实抓狂,这种方法不是解决方法。
    2)直接换芯片,其实芯片都没坏。
    3)有人说复位引脚上拉电阻并联一个1uF的电容能正常工作(10块样板有5块单片机上电不能工作,有时还能运行起来,有一块堪至不能烧写程序),实际看来这个方法不凑效。
    4)有人说换原装编程器(当年我用PIC也碰到过类似问题,后来发现是脱机在线编程器(ICSP)把RST脚烧了,换成原装的编程器(ICD3)就没有问题(同一批货).我估计编程器把IC烧坏的可能性比较大,特别是ISP/ICP类的编程器,然后用市电做电源的情况)。实际上STLINK V2用STVP能下说明下载没问题。
    5)用示波器看下不正常的MCU的复位引脚,如果有周期复位的话用STVP+ST-Link重新烧写下Option Byte。再不行把芯片的读保护置上,然后再去掉读保护,然后看看是不是还不正常。这个方法还是有道理的。
    6)以前遇到过的是Vcap脚接的电容是0.1uf造成的 换成1uf就行了。实际VCAP电容范围为0.47u-3.3u。
    以上方法并不能真正解决问题。
    (2)真正原因及解决办法:
       真实原因是:硬件本身没有问题,软件出现了问题。我是将所有的和STM8S相关的软件卸载,然后在官网上下载最新的安装软件安装(具体安装的软件是(a)IAR for stm8 2.10.2    (b) ST-LINK_V2 USB driver for Windows 7, Vista and XP 20150207,下载st-linkv2_upgrade升级也可以, (c)stsw-mcu002 STVP programming toolkit 3.0),安装完毕后报错又变成:
      SAT Feb 07, 2015 20:23:57: An error occurred while retrieving GDI features: gdi-error [40201]: Can't access configuration database
       解决办法:参考帖子(stlink调试stm8105S4忽然出问题了)
                 按15楼方法,下载并安装IAR debugger-support-files软件。     

        SAT Feb 07, 2015 20:30:57: Errors while setting configuration with MCU name STM8S103F3P: gdi-error [40701]: Option bytes read error: not complemented; please use a programmer
        解决办法:见stm8 Option byte 修改问题:Error on Option Bytes ...及解决办法
         这个问题可以在用STVP将Option Byte里面的ROP从OFF改为ON,烧入,再改为OFF再次烧入。这时要如果要在IAR中DEBUG,则需要关闭STVP,否则出现下面的错误:
Sun Feb 08, 2015 00:26:32: Failed to initialize communcation with hardware: SWIM error [30200]: ST-Link connection error
     

Error on Option Bytes (complementary bytes). Reprogram Option Bytes of device
解决办法:STVP将Option Byte里面的ROP从OFF改为ON,烧入,再改为OFF再次烧入。

使用特权

评论回复
5
稳稳の幸福| | 2015-8-18 19:37 | 只看该作者
上面是我在百度搜的方法,不知道对不对,楼主试试看吧。

使用特权

评论回复
6
稳稳の幸福| | 2015-8-18 19:37 | 只看该作者
其实我也是个菜鸟,逛逛论坛看看高手们怎么弄,遇到感兴趣的,不会就百度,在论坛搜搜

使用特权

评论回复
7
aundry| | 2015-8-18 19:41 | 只看该作者
稳稳の幸福 发表于 2015-8-18 19:36
用STVP可以下载,但用IAR无法DEBUG,用IAR下载后复位电平就不正常,这个问题困扰了我很长时间,今日得以解 ...

:L这兼职两码事。。。

使用特权

评论回复
8
稳稳の幸福| | 2015-8-18 19:46 | 只看该作者
aundry 发表于 2015-8-18 19:41
这兼职两码事。。。

:L好吧,我以为是一样呢。看来我看错了。

使用特权

评论回复
9
aundry| | 2015-8-18 19:52 | 只看该作者
稳稳の幸福 发表于 2015-8-18 19:46
好吧,我以为是一样呢。看来我看错了。

你回帖很有激情啊
楼主问的是IAP的事情,而且楼主应该也实现部分IAP相关的功能
现在是想做上位机测试,还要把部分关键代码在RAM运行
而且平台是STM8

使用特权

评论回复
10
稳稳の幸福| | 2015-8-18 20:03 | 只看该作者
aundry 发表于 2015-8-18 19:52
你回帖很有激情啊
楼主问的是IAP的事情,而且楼主应该也实现部分IAP相关的功能
现在是想做上 ...

好吧,我错了,我今晚没事,就逛逛论坛混点积分。

使用特权

评论回复
11
yklstudent| | 2015-8-19 08:36 | 只看该作者
直接要源码,难了;自己动手搜索下找找好了

使用特权

评论回复
12
LZJ361155817|  楼主 | 2015-9-6 09:00 | 只看该作者
aundry 发表于 2015-8-18 19:25
看过沙发,笑了
我有项目代码,实现楼主基本上的功能,不过源码是不可能外发的
关于第二点,使用__ramf ...

是啊,最后还是决定bootloader部分固化,只升级APP部分的代码。这个论坛里面有TinyBootloaderV5.3,大神写的,非常好用,各位要是有需要可以参考。我正在学习他的代码中。

使用特权

评论回复
13
aundry| | 2015-9-6 12:14 | 只看该作者
LZJ361155817 发表于 2015-9-6 09:00
是啊,最后还是决定bootloader部分固化,只升级APP部分的代码。这个论坛里面有TinyBootloaderV5.3,大神 ...

那就没看过了,我是直接参考内置的Bootload来改写的

使用特权

评论回复
14
aundry| | 2015-9-6 12:16 | 只看该作者
LZJ361155817 发表于 2015-9-6 09:00
是啊,最后还是决定bootloader部分固化,只升级APP部分的代码。这个论坛里面有TinyBootloaderV5.3,大神 ...

如果你想区分版本或者什么产品的,可以另外加一条密匙在APP区
传输的密匙放在Bootload就好了

使用特权

评论回复
15
Thor9| | 2015-9-7 20:40 | 只看该作者
使用__ramfunc修饰函数就可以把代码在RAM运行

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

12

帖子

0

粉丝