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

2020-01-12 17:21发布

有一个小项目,准备用HC89S003,当初就是看中了他有第二复位向量,价格挺便宜,做IAP省事。
芯片手册我就不发了,芯圣官网有。
第二复位向量的看了芯片我的理解大概是这样,设定以后,程序不从0000H开始,从某个比较后面的地址开始,比如3800H,那么从3800H之后,就可以放bootloader,然后mcu提供了不使能第二复位向量的软复位,执行以后就可以从0000H开始跑业务代码。
然后就买了一些芯片和仿真器开搞了。
一开始为了省事,第二复位向量没有启用,直接在0000H写bootloader,测试读取和写入flash是否ok。测试过了。
然后,问题来了。
我把设置修改了,中断向量放在0x3800,存储空间从0x3800开始。就是以下两项。
TIM图片20180425124903.png (12.34 KB, 下载次数: 0) 下载附件 2018-4-25 12:49 上传
去咨询FAE,FAE也不知道什么情况,销售代理也不知道·····
叫我另外再买烧录器来测试····
论坛里有大神知道这是为什么么?我设置有错?还是什么情况??
而且很神奇的是,起始地址设定在0x0fff或者更低,就没事。
0x1000开始,就不行了,起始地址设定在哪里,就报哪个地址的错误?

半成品bootloader上传上来了,和原厂的比,不需要占用4K空间,目前只要1K就够了。
只有读取和写入功能,crc做了会超过1K,被我注释了。
上位机还没写······
test.rar (36.6 KB, 下载次数: 15) 2018-4-25 12:53 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
sypf
1楼-- · 2020-01-13 11:47
本帖最后由 sypf 于 2018-4-25 13:44 编辑
kinoko 发表于 2018-4-25 13:37
你工程的设置全部没动过,
该不会是你之前调试IAP时有死循环把flash写坏了吧  ...


如果0x3800坏了,不至于0x1000也坏吧,而且我试了好几个地址,都是和设置的首地址一致,现在去掉校验是可以写入了,不过不工作·········
看了一下你的录像,下载选项选的是扇区?里面怎么选的呀?
mowin
2楼-- · 2020-01-13 14:57
搭车问下,你们的芯片能输出32MHz内部RC时钟到IO吗?寄存器有这个选项值,但是没有输出。
kinoko
3楼-- · 2020-01-13 20:14
sypf 发表于 2018-4-25 13:43
如果0x3800坏了,不至于0x1000也坏吧,而且我试了好几个地址,都是和设置的首地址一致,现在去掉校验是可 ...

勾选了扇区14、15
sypf
4楼-- · 2020-01-14 00:41
 精彩回答 2  元偷偷看……
sypf
5楼-- · 2020-01-14 06:20
基本上是搞定了,设定第二复位向量以后,不能调试了,直接下载运行可以。
但是一定要取消掉校验,不然不能下载。
然后地址修改一下,读写flash都测试通过了。
工程重新打包上来,可以收工去写上位机了。
目前还不能调试,直接下载可以跑.rar (63.51 KB, 下载次数: 50) 2018-4-25 15:26 上传 点击文件名下载附件

TIM图片20180425153105.png (33.46 KB, 下载次数: 0)

下载附件

2018-4-25 15:31 上传


谢谢楼上各位。
wkman
6楼-- · 2020-01-14 06:24
这个是玩出彩来的

一周热门 更多>