STM8 TinyBoot V5.3 源码

2020-01-03 19:07发布

<i class="pstatus"> 本帖最后由 way2888 于 2014-9-12 19:39 编辑 </i><br> <br><p> MCU里面的工程用CD-EWSTM8-1311编译生成,如果1422生成的代码估计有问题的,大致看了下反汇编,貌似1422版本下的把RET指令跳到FLASH里再返回的增加了用户程序和BOOTLOADER合并生成HEX文件,供下载器一次烧写完成完整编程大概介绍一下使用方法吧:</p><p> 合并HEX文件:</p><p> 打开用户的HEX文件,并设置好BOOTLOADER配置,然后点击文件菜单里的合并HEX固件即可让BOOTLOADER和用户程序合为一个文件</p><p> 用户程序下载:</p><p> 首先运行软件,根据自己的编程要求设置好Bootloader的选项,其中包括选择芯片型号,芯片容量,和使用的UART(针对S207,S208,因为它有2个UART),以及使用的通信波特率.</p><p> 如果使用UART自定义接口的,在未保证你的程序一定能响应就绪命令而跳转到Bootloader之前,建议保留使用IO状态进入Bootloader(只在芯片上电的时候,IO状态判定是否进入),如果你设置的Bootloader是禁止IO状态进入的话,而你的应用程序又未调通UART时,这样的情况下升级是会变砖的.因为Bootloader没有强制延时等待升级的功能.</p><p>当设置好你要求的Bootloader后,点击文件菜单里的保存Bootloader,这样就生成你刚才设置的Bootloader文件.再通过下载器(ST-LINK)下载到芯片中.</p><p> 此后,你若需要下载程序只需要打开本软件,打开你要下载的文件,确认当前的Bootloader设置与写进芯片里的设置要一致后,点击下载即可.</p><p> 如果是使用UART自定义接口跳转到Bootloader的话,在点击下载之前,先在帮助里的就绪文本框里输入你应用程序需要的十六进制数据.再点击下载即可.</p><p> Bootloader更新:</p><p> 首先设置好新的Bootloader设置,除CHIP和SIZE外,其余的可以和芯片里的设置可以不相同(CHIP和SIZE绝对要和写进芯片里的设置要一致)</p><p> 通信里的波特率(记住,不是Bootloader的BPS)必须与芯片内的设置一致,然后点击文件的更新Bootloader,则可更新新设置的Bootloader.</p><p> 更新Bootloader后,再下载用户程序即可(方法见上)</p><p> 举个例子吧:</p><p> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;原来写到芯片的UART的BPS是115200,现在希望新Bootloader使用9600通信</p><p> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;1.先设置Bootloader的BPS为9600,选择通信的波特率要与芯片的115200一致,</p><p> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;2.确认其他设置都匹配,和就绪命令都设置好了,点击更新Bootloader.</p><p> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;3.当显示更新完成后,更改通信设置的波特率为9600,再打开你的应用程序升级即可 </p><p>链接:&nbsp;https://pan.baidu.com/s/1IeMhJHUHklh8DbBrdJR7_w&nbsp;提取码:&nbsp;veg7</p><p><br></p>
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
dxslp
1楼-- · 2020-01-06 17:24
dxslp 发表于 2014-9-18 13:13
AAD08300204000000081C30543E404E7048581891E017B05F7858189F61A05F78581897B0543F4F7858189CC
          ...

能不能搞个界面 用于显示串口输出的内容
guyue180
2楼-- · 2020-01-06 19:50
MARk一下。
way2888
3楼-- · 2020-01-07 01:34
 精彩回答 2  元偷偷看……
dxslp
4楼-- · 2020-01-07 02:35
way2888 发表于 2014-9-18 19:37
这些数据你代入以下数据类型就知道了
typedef union
{   struct

AA4C4C000540FE000000000000000000CC 这个crc16对应的是哪几个字符计算得到的 我组合了几种都不对
way2888
5楼-- · 2020-01-07 07:44
dxslp 发表于 2014-9-18 20:23
AA4C4C000540FE000000000000000000CC 这个crc16对应的是哪几个字符计算得到的 我组合了几种都不对 ...

boot.c文件里有计算方法,vb里也有,找找看吧
dxslp
6楼-- · 2020-01-07 13:00
本帖最后由 dxslp 于 2014-9-19 13:56 编辑

有没有人愿意做个离线串口烧写器
我用逻辑分析仪分析了下 暂时只能做到这个程度了
主机PC    从机mcu
就绪码        a0
ccdd          a9
bootloader(cc结束)  Ac
app          a7(校检出错发送AD)
。。。。
结束         ab
            

校检出错 重新连接PC发送内容:AA 3F D9 00 00 80 FA5 00 00 00 00 CC CC DD


bootloader的内容

3B0008AE03FF94A6ACCD006C3F002004350100003F085F35AA50E0720B5230F7C65231A1AA27E9A1CC260B3D0027E8CD01093F0020E03D0027DD3D082714A40FB7014EBA013F08D703605CA3008A25C720C4A1EE26F13501000820BB9D9D9D9DC75231720D5230FB9D9D9D9D817213505F8192BD0001819093721C505B721D505C35040000CD00AB4AB70026F8720D505FFB721D505B721C505C8190F692BD0001905CCD00B9B600815F5C72BB0002BF0281CD00C6813556506235AE50628190935F975858585858585858BF005101B80101B80001513508000093585102A480024F0251905D270702A81602A821029093B6004AB70026E281905F3F033F02200F1C0362F693CD00CF9093BE025CBF02CE03621C0008BF00BE02B30025E390C303602703CC022BC60365A1FE262DC6036EA1AA2618CD00C6AE036A9093AE9FF8CD0248A6A5BD009FF77213505FA6ABCD006C725F5235AC009FF881A1F52605AC009FFC81AE036ABF06203AB6054CB705C60364B700B605B10024165F4192C606D702E0BE065CBF06CE03625ACF036226DAB600CD0230CD0251C603645F97CD027B7213505FCE0362A300012F69C60364AE0366CD02BFB705C60364CD0230CD02A0CD00C6CD0233BE002605BE02A38000269EA6FFBD009FF73F04C603644444B700B604B10024BA3D04270EBE0690935F4158581C8000CD0248BE061C0004BF06AE0004CD027BCE03621CFFFCCF0362B6044CB70420C4A6A7CC006CA6ADCC006CAE02E0550366000055036700015503680002550369000381BF025FBF0093CC00879093B7047210505B7211505C3F002006CD00AB4CB700B600B10425F4720D505FFB7211505B7210505C81BF025FBF00AE0366D60003BB03D70003D60002B902D70002D60001B901D70001F6B900F7819093B7043F00201092BC000190F7CD00B9905CB6004CB700B600B10425EA814AB7001C0003F6B702B600B402B7013300B600B402F7B60181AA  CC
12 10 9 5 0

app
typedef union
{   struct
    {   u16 Crc16;
        s16 Number;
        u8  BlockSize;
        u8  Cmd;
        u32 Addr;
        u8  Data[128];
    };
}UartType;

AA   D083   0020    40            00                       000081C3
帧头 Crc16  Data数 BlockSize      Cmd                       Addr
                   S103:0x40      FE:编程用户复位向量地址
                  S105,S207:0x80  (当用户升级只升级数据是
                                  Data数据为0000000000,
                                  表示不编程复位向量)
0543E404E7048581891E017B05F7858189F61A05F78581897B0543F4F7858189      CC
Data                                                                                                              帧尾
:2081C300   0543E404E7048581891E017B05F7858189F61A05F78581897B0543F4F7858189F5         
结束
AAE5F6000540FE0000000082008129EEEACC

用stm单片机的串口去模拟PC端,发送接收没问题,bootloader下载到mcu里面也没问题,现在做大的应该问题是bin文件如何变成bootloader认识的格式,本人能力有限,楼主貌似也比较忙,不知有没有人愿意解决这个问题。做个软件,打开bin文件后另存为一个txt文件,内容为app[]={AA,BB,CC....},app的内容与bootloader识别的一致

一周热门 更多>