打印

PIC16F1936-bootloader实现遇到问题

[复制链接]
8679|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
参考资料:应用笔记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模式。

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

Bootloader警告信息.jpg (39.58 KB )

Bootloader警告信息.jpg
沙发
li840915|  楼主 | 2011-1-13 09:12 | 只看该作者
没有人做过吗?:o

使用特权

评论回复
板凳
airwill| | 2011-1-14 22:00 | 只看该作者
直觉, 一定是地址搞错了

使用特权

评论回复
地板
li840915|  楼主 | 2011-1-19 14:56 | 只看该作者
谢谢您的回复,确实是地址搞错了,现在问题是用bootloader写完后没有代码保护功能了。应用笔记AN1310代码保护那部分说“无论是否使能”代码保护“配置位,现版自举程序都会对器件存储器内容执行表读操作”也就是不管你应用程序是否使能“代码保护”,用bootloader烧写程序后内容都会被读取。确实是这样吗?有没有方法进行“代码保护”?

使用特权

评论回复
5
yewuyi| | 2011-1-19 16:03 | 只看该作者
本帖最后由 yewuyi 于 2011-1-20 12:27 编辑

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

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

如果你的‘代码保护’是指的防止代码丢失的话,那你在使用BOOTLOADER下载完代码后,关掉FLASH的写功能即可,下次下载代码时,需要BOOTLOADER首先打开FLASH的写操作,否则就会写失败。

使用特权

评论回复
6
akii| | 2011-1-19 16:14 | 只看该作者
在21IC的技术大讲堂有讲bootloader的

使用特权

评论回复
7
Mary_luo| | 2011-1-20 11:45 | 只看该作者
深奥的问题,呵呵!

使用特权

评论回复
8
li840915|  楼主 | 2011-1-20 17:46 | 只看该作者
叶工,谢谢您的回复。麻烦问一下如何“关掉FLASH的写功能”,怎么操作呢?O(∩_∩)O谢谢

使用特权

评论回复
9
yewuyi| | 2011-1-21 08:22 | 只看该作者
一般都有一个EECON1寄存器,中间的WREN即可关闭

使用特权

评论回复
10
瑞典罗啦| | 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。请您帮忙解决下 谢谢

使用特权

评论回复
11
GeekyGeek| | 2016-1-1 17:31 | 只看该作者
AN1310是microchip官方的用PIC汇编写的。我没用过。我之前用过一汇编的bootloader -- ds30_Loader; 开源,免费,支持绝大多数PIC.  比AN1310好用,你可以搜搜看。

使用特权

评论回复
12
瑞典罗啦| | 2016-1-28 15:47 | 只看该作者
GeekyGeek 发表于 2016-1-1 17:31
AN1310是microchip官方的用PIC汇编写的。我没用过。我之前用过一汇编的bootloader -- ds30_Loader; 开源, ...

我下了一个ds_Loader试了下 也是同样的找不到bootloader,本来以为会是USB接口的问题,后来换了RS232接口还是不行,请i您看看我是哪里出了问题,谢谢

使用特权

评论回复
13
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按钮
不知道你的步骤是否是这样,希望上面的详细步骤可以帮到你

使用特权

评论回复
14
瑞典罗啦| | 2016-1-29 15:04 | 只看该作者
GeekyGeek 发表于 2016-1-29 12:53
一般来说bootloader只在开机后一小段时间内接管单片机系统。也就是说bootloader在每次启动后只工作一会儿 ...

谢谢 解决了

使用特权

评论回复
15
luckycuy| | 2016-7-8 16:48 | 只看该作者

PIC16也能用bootloader么,我正准别学习,有资料介绍么  luckycuy@126.com 能发一份更好 不胜感激

使用特权

评论回复
16
瑞典罗啦| | 2016-7-25 10:35 | 只看该作者
luckycuy 发表于 2016-7-8 16:48
PIC16也能用bootloader么,我正准别学习,有资料介绍么   能发一份更好 不胜感激 ...

我看的是汇编的,要吗?建议你看C语言的。HITECH的编译器下也有C版本的,不过我没看过。

使用特权

评论回复
17
jili2716| | 2016-7-27 22:16 | 只看该作者
用最新版本的

使用特权

评论回复
18
michaellengleng| | 2016-8-3 09:40 | 只看该作者
解决了吗

使用特权

评论回复
19
jcdzxh| | 2016-12-18 12:38 | 只看该作者
玩1947,想整个BL,记号一个

使用特权

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

本版积分规则

0

主题

19

帖子

0

粉丝