sypf 发表于 2018-4-25 12:53:43

HC89S003的bootloader开发中遇到的奇怪问题,顺便分享半成品。

有一个小项目,准备用HC89S003,当初就是看中了他有第二复位向量,价格挺便宜,做IAP省事。
芯片手册我就不发了,芯圣官网有。
第二复位向量的看了芯片我的理解大概是这样,设定以后,程序不从0000H开始,从某个比较后面的地址开始,比如3800H,那么从3800H之后,就可以放bootloader,然后mcu提供了不使能第二复位向量的软复位,执行以后就可以从0000H开始跑业务代码。
然后就买了一些芯片和仿真器开搞了。
一开始为了省事,第二复位向量没有启用,直接在0000H写bootloader,测试读取和写入flash是否ok。测试过了。
然后,问题来了。
我把设置修改了,中断向量放在0x3800,存储空间从0x3800开始。就是以下两项。


编译OK,看编译出来的HEX文件确实是0X3800开始的,然后,一烧录就提醒校验错误。
如下图:

去咨询FAE,FAE也不知道什么情况,销售代理也不知道·····
叫我另外再买烧录器来测试····
论坛里有大神知道这是为什么么?我设置有错?还是什么情况??
而且很神奇的是,起始地址设定在0x0fff或者更低,就没事。
0x1000开始,就不行了,起始地址设定在哪里,就报哪个地址的错误?
{:sweat:}
半成品bootloader上传上来了,和原厂的比,不需要占用4K空间,目前只要1K就够了。
只有读取和写入功能,crc做了会超过1K,被我注释了。
上位机还没写······

sypf 发表于 2018-4-25 12:54:54

对了,这个问题,我在3个环境下测试,都能重现,分别是虚拟机下的xp+c905 uv4,win7+c905 uv4和win10+uv5。所以,应该不是兼容性问题吧?

health 发表于 2018-4-25 13:09:48

是否是手册中提到的这个问题?

sypf 发表于 2018-4-25 13:21:35

本帖最后由 sypf 于 2018-4-25 13:23 编辑

health 发表于 2018-4-25 13:09
是否是手册中提到的这个问题?

这是哪个手册啊?我看到的手册里面,都没有这一段啊·····
我擦,找到了
代理商给的HC-LINK手册里面没有这一段,官网上的版本增加了这个说明,我去掉校验试试看

kinoko 发表于 2018-4-25 13:22:32

我用demo板+HCLINK测试你的工程可以烧进去。

sypf 发表于 2018-4-25 13:25:19

kinoko 发表于 2018-4-25 13:22
我用demo板+HCLINK测试你的工程可以烧进去。

直接烧录?没去掉校验也可以?你确认一下中断向量地址和起始地址都是0x3800?

kinoko 发表于 2018-4-25 13:37:23

sypf 发表于 2018-4-25 13:25
直接烧录?没去掉校验也可以?你确认一下中断向量地址和起始地址都是0x3800? ...


你工程的设置全部没动过,
该不会是你之前调试IAP时有死循环把flash写坏了吧{:titter:}

sypf 发表于 2018-4-25 13:43:23

本帖最后由 sypf 于 2018-4-25 13:44 编辑

kinoko 发表于 2018-4-25 13:37
你工程的设置全部没动过,
该不会是你之前调试IAP时有死循环把flash写坏了吧...

如果0x3800坏了,不至于0x1000也坏吧,而且我试了好几个地址,都是和设置的首地址一致,现在去掉校验是可以写入了,不过不工作·········
看了一下你的录像,下载选项选的是扇区?里面怎么选的呀?

mowin 发表于 2018-4-25 13:44:18

搭车问下,你们的芯片能输出32MHz内部RC时钟到IO吗?寄存器有这个选项值,但是没有输出。

kinoko 发表于 2018-4-25 13:51:40

sypf 发表于 2018-4-25 13:43
如果0x3800坏了,不至于0x1000也坏吧,而且我试了好几个地址,都是和设置的首地址一致,现在去掉校验是可 ...

勾选了扇区14、15

sypf 发表于 2018-4-25 14:14:11

kinoko 发表于 2018-4-25 13:51
勾选了扇区14、15


按照您给的设置,确实不行。校验要取消掉,才可以下载。

sypf 发表于 2018-4-25 15:31:39

基本上是搞定了,设定第二复位向量以后,不能调试了,直接下载运行可以。
但是一定要取消掉校验,不然不能下载。{:sleepy:}
然后地址修改一下,读写flash都测试通过了。
工程重新打包上来,可以收工去写上位机了。


谢谢楼上各位。

wkman 发表于 2018-6-29 10:36:13

{:shocked:} 这个是玩出彩来的{:victory:}

sypf 发表于 2018-6-29 11:43:41

gamethink 发表于 2018-6-29 10:58
是什么内核?价格如何?

51的,1块左右吧

wkman 发表于 2019-7-31 19:59:33

sypf 发表于 2018-6-29 11:43
51的,1块左右吧

经济不景气?{:dizzy:}   最近tb降到0.79~0.8¥了{:titter:}

qqtfh 发表于 2019-7-31 23:19:23

wkman 发表于 2019-7-31 19:59
经济不景气?   最近tb降到0.79~0.8¥了

STM8S003现在才卖1.02,而且是1K RAM,不降点价就没竞争力了。003是上次大面积缺货涨价把人坑惨了,要不这类兼容的单片机也没机会露脸。

farfar 发表于 2019-9-4 18:12:40

搭车问一下这位朋友,这款芯片调试时可以查看变量值吗?单步调试会乱跳吗?

sypf 发表于 2019-9-5 07:53:09

farfar 发表于 2019-9-4 18:12
搭车问一下这位朋友,这款芯片调试时可以查看变量值吗?单步调试会乱跳吗? ...

之前好像有个说明说单步进去似乎会停在下一步还是啥,调试看变量是没问题的

farfar 发表于 2019-9-5 08:49:33

sypf 发表于 2019-9-5 07:53
之前好像有个说明说单步进去似乎会停在下一步还是啥,调试看变量是没问题的 ...

感谢,之前用了N76E003,单步时跳得乱七八糟的,无法正常单步执行,如果这颗料可以单步的话倒是不错的选择。

kebaojun305 发表于 2019-9-5 09:30:10

farfar 发表于 2019-9-5 08:49
感谢,之前用了N76E003,单步时跳得乱七八糟的,无法正常单步执行,如果这颗料可以单步的话倒是不错的选 ...

这个是 keil 51编译器的问题,只要用51核 用keil 都有这个问题。

farfar 发表于 2019-9-5 09:47:09

kebaojun305 发表于 2019-9-5 09:30
这个是 keil 51编译器的问题,只要用51核 用keil 都有这个问题。

应该不是Keil的问题,应该是在单步执行时内核没有暂停运行才会这样的,STM32也是用的Keil就没有这样的问题。

kebaojun305 发表于 2019-9-5 10:03:26

farfar 发表于 2019-9-5 09:47
应该不是Keil的问题,应该是在单步执行时内核没有暂停运行才会这样的,STM32也是用的Keil就没有这样的问 ...

请问STM32是 51核吗?
页: [1]
查看完整版本: HC89S003的bootloader开发中遇到的奇怪问题,顺便分享半成品。