PIC16F1936-bootloader实现遇到问题

[复制链接]
9806|18
 楼主| li840915 发表于 2011-1-12 17:07 | 显示全部楼层 |阅读模式
参考资料:应用笔记AN1310,
  上位机软件:Serial Bootloader AN1310 v1.04,安装后有操作界面及相关程序(PIC16bootLoader+PIC16Appliation文件夹)
写入bootloader程序后能够与上位机软件通信,根据AN1310第14页重映射要求对应用程序进行如下操作:
1.将应用程序绝对定位为bootloader要求的地址400,Codeoffset复位为404
2.设置ROMA范围选项烧写应用程序时避开bootloader程序地址
3.AN1310要求添加汇编语言助手isr.as,但isr.as内注释说PIC16F193X可以不添加此文件,所以应用程序中没有添加isr.as文件
问题:
   1.芯片与上位机软件连接后导入应用程序HEX文件时出现一个警告“非法的复位向量”--见附件。
2.写入应用程序后无法运行并且写完后无法继续进入bootloader模式。

  请教高手我的设置有哪些问题?出现这些问题的原因是什么?谢谢!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| li840915 发表于 2011-1-13 09:12 | 显示全部楼层
没有人做过吗?:o
airwill 发表于 2011-1-14 22:00 | 显示全部楼层
直觉, 一定是地址搞错了
 楼主| li840915 发表于 2011-1-19 14:56 | 显示全部楼层
谢谢您的回复,确实是地址搞错了,现在问题是用bootloader写完后没有代码保护功能了。应用笔记AN1310代码保护那部分说“无论是否使能”代码保护“配置位,现版自举程序都会对器件存储器内容执行表读操作”也就是不管你应用程序是否使能“代码保护”,用bootloader烧写程序后内容都会被读取。确实是这样吗?有没有方法进行“代码保护”?
yewuyi 发表于 2011-1-19 16:03 | 显示全部楼层
本帖最后由 yewuyi 于 2011-1-20 12:27 编辑

bootloader肯定要能对FLASH进行各种操作,否则还叫BOOTLOADER吗!?

这就如代码对EEPROM进行操作一样的道理。

如果你的‘代码保护’是指的防止代码丢失的话,那你在使用BOOTLOADER下载完代码后,关掉FLASH的写功能即可,下次下载代码时,需要BOOTLOADER首先打开FLASH的写操作,否则就会写失败。
akii 发表于 2011-1-19 16:14 | 显示全部楼层
在21IC的技术大讲堂有讲bootloader的
Mary_luo 发表于 2011-1-20 11:45 | 显示全部楼层
深奥的问题,呵呵!
 楼主| li840915 发表于 2011-1-20 17:46 | 显示全部楼层
叶工,谢谢您的回复。麻烦问一下如何“关掉FLASH的写功能”,怎么操作呢?O(∩_∩)O谢谢
yewuyi 发表于 2011-1-21 08:22 | 显示全部楼层
一般都有一个EECON1寄存器,中间的WREN即可关闭
瑞典罗啦 发表于 2015-12-30 20:44 | 显示全部楼层
yewuyi 发表于 2011-1-19 16:03
bootloader肯定要能对FLASH进行各种操作,否则还叫BOOTLOADER吗!?

这就如代码对EEPROM进行操作一样的道 ...

叶工 你好 关于AN1310与bootloader通信的问题想请教下您,我用的是PIC16F877A单片机和PL-2303USB转串口模块。bootloader已经下载到单片机,但是在AN1310里点击Bootloader Mode,就会显示Bootloader not found。请您帮忙解决下 谢谢
GeekyGeek 发表于 2016-1-1 17:31 | 显示全部楼层
AN1310是microchip官方的用PIC汇编写的。我没用过。我之前用过一汇编的bootloader -- ds30_Loader; 开源,免费,支持绝大多数PIC.  比AN1310好用,你可以搜搜看。
瑞典罗啦 发表于 2016-1-28 15:47 | 显示全部楼层
GeekyGeek 发表于 2016-1-1 17:31
AN1310是microchip官方的用PIC汇编写的。我没用过。我之前用过一汇编的bootloader -- ds30_Loader; 开源, ...

我下了一个ds_Loader试了下 也是同样的找不到bootloader,本来以为会是USB接口的问题,后来换了RS232接口还是不行,请i您看看我是哪里出了问题,谢谢
GeekyGeek 发表于 2016-1-29 12:53 | 显示全部楼层
本帖最后由 GeekyGeek 于 2016-1-29 12:55 编辑
瑞典罗啦 发表于 2016-1-28 15:47
我下了一个ds_Loader试了下 也是同样的找不到bootloader,本来以为会是USB接口的问题,后来换了RS232接口 ...

一般来说bootloader只在开机后一小段时间内接管单片机系统。也就是说bootloader在每次启动后只工作一会儿。
使用uart bootloader的前期步骤
1. 断开pickit3, icd3等programmer的连接
2. 连接好串口
3. 打开PC上bootloader 的host程序,选择正确的COM口,浏览并加载要烧写的hex文件
3. 重新启动target board.
4. 立即点击bootloader host 程序的download按钮
不知道你的步骤是否是这样,希望上面的详细步骤可以帮到你
瑞典罗啦 发表于 2016-1-29 15:04 | 显示全部楼层
GeekyGeek 发表于 2016-1-29 12:53
一般来说bootloader只在开机后一小段时间内接管单片机系统。也就是说bootloader在每次启动后只工作一会儿 ...

谢谢 解决了
luckycuy 发表于 2016-7-8 16:48 | 显示全部楼层

PIC16也能用bootloader么,我正准别学习,有资料介绍么  luckycuy@126.com 能发一份更好 不胜感激
瑞典罗啦 发表于 2016-7-25 10:35 | 显示全部楼层
luckycuy 发表于 2016-7-8 16:48
PIC16也能用bootloader么,我正准别学习,有资料介绍么   能发一份更好 不胜感激 ...

我看的是汇编的,要吗?建议你看C语言的。HITECH的编译器下也有C版本的,不过我没看过。
jili2716 发表于 2016-7-27 22:16 | 显示全部楼层
用最新版本的
michaellengleng 发表于 2016-8-3 09:40 | 显示全部楼层
解决了吗
jcdzxh 发表于 2016-12-18 12:38 | 显示全部楼层
玩1947,想整个BL,记号一个
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部