完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,我正在研究一个定制的RS-485总线引导加载程序,在相同的时间将用户应用程序上传到多个设备。我正在用汇编语言编写Bootloader,使它尽可能小。目前,我基本掌握了引导加载程序的概念,但有一件事对我来说仍然很模糊。目前我正在使用PIC16F690微控制器来开发引导加载程序。根据存储器编程规范(DS41204),MCU的存储器组织形式如下:http://foto.modelbouwforu...emory_orginization.png程序存储器从0x000映射到0x0FFF,例如4096个空格。目前,我计划在程序空间顶部实现引导加载程序。然后,引导加载程序将把用户应用程序放在保留的引导加载程序内存之后,重定向重置和中断向量,以及所有这些好东西;)就这一点而言,我完全理解引导加载程序的概念。然而,当涉及到配置词时,我感到有点困惑。根据数据表,在用程序员对MCU进行编程之后,不可能更改配置字,因此在将引导加载程序烧录到MCU之后,我将不能更改配置位。这意味着在引导加载程序本身中设置的所有配置位也适用于稍后通过引导加载程序上传到芯片的用户程序员。只要配置字被正确地配置以便它同时适用于引导加载程序和用户应用程序,这应该不是问题。但是现在假设某人在他的/她的应用程序中配置了配置字。当编译这个应用程序时,十六进制文件包含有关它不应该包含的配置字的信息,例如:一旦编译,我们得到一个十六进制文件,它看起来像下面这样:如果我们剖析那一行特定的机器代码,我们将得到以下结果:问题是引导加载程序:由于程序存储器是可访问的(0x000到0x0FFF),所以不能写入这个特定的存储器地址。如果我的PC应用程序用引导加载程序把这一行特定的机器代码发送到我的PIC16F690,那么它将导致一个循环,因为我们试图写入超出允许的存储器位置(数据表在第2.1段中提到了这一点)。这肯定会导致问题,因为它会覆盖内存的特定部分。那么,当我遇到这种情况时,我该怎么办呢?我想一旦PC应用程序加载了十六进制文件,就检查它,并省略任何超出可访问内存区域的代码。我想这会起作用,但对我来说似乎是一种蛮力的解决办法。我搜索了不同的BooLoad,但我无法找到其他BooLoops/PC应用程序如何处理这个问题。谁能帮我解释一下这个话题?如果有什么不清楚的地方,请让我知道,这样我就可以重新回答我的问题了。
|
|
相关推荐
8个回答
|
|
谢谢你的回答,好吧,那么我可能会这么做。你是否知道这是一个共同的解决方案?例如,我能期待微芯片上的Bootloader和PC应用程序做类似的事情吗?
|
|
|
|
忽略你不能写的东西。PIC16F690是一个老芯片。你可以得到一个较新的PIC16F1XXX,钱少,内存多。
|
|
|
|
您不能为PIC16F690编写Bootloader,因为它不能在运行时编写自己的Flash。
|
|
|
|
好了,谢谢各位,我真的不能为PIC16F690编写Bootloader。我会寻找另一个兼容芯片…
|
|
|
|
在这种情况下,按照NKurzman的建议,直接去PIC16F1XXX芯片,而不是任何一个较老的家庭。
|
|
|
|
与以前的海报“使用较新的PIC16F1xxxx”设备一致。但也要明白,直到最近,PIC16F设备(所有类型的)都不能在程序控制下编写它们的配置寄存器。这意味着即使对具有重编程能力的部件来说,离开工厂时配置单词也必须是正确的。但这正在改变。PIC16F1887可以更新配置词!
|
|
|
|
有趣,这一切
|
|
|
|
关于16F1887/77,我有点迷惑关于更新配置词的能力,丹诺说…在关于NVM的数据表部分中,您可以找到表10.2,它表明CONFIG1-4是只读的,CON图5是R/W,稍后您得到了表10.3,它告诉我们CONFIG1-5是只读的。有窍门吗?
|
|
|
|
只有小组成员才能发言,加入小组>>
5303 浏览 9 评论
2065 浏览 8 评论
1972 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3239 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2279 浏览 5 评论
827浏览 1评论
715浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
663浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
716浏览 0评论
615浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-23 05:57 , Processed in 1.186106 second(s), Total 58, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号