完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
标题似乎有点奇怪,我也没有得到确切的,我应该写在那里,但希望我能让你明白我想做什么!我将有一个主引导加载程序和二次引导加载程序都将驻留在不同的内存区域(可能是引导闪存或程序闪存)。一个引导加载程序将一次激活,另一个将不活动。-让我们考虑一下,主引导加载程序是活动的,现在我将下载我的应用程序。固件。我也从应用程序固件中读取激活的引导加载程序版本,这样我就可以检查是否需要更新Bootloader。-如果我需要更新Bootloader,那么非激活引导加载程序将被激活,它将用更新的Bootloader替换以前的激活引导程序。二次引导加载程序将切换到非活动模式。因此,二次引导装载器在更新主引导装载器时才变得活跃。在整个过程中,我想为主引导装载程序、辅助引导装载程序版本和一些固定内存位置的自定义配置数据保留一些内存区域,并且可以从PR访问。IMARE,二级以及应用固件。
以上来自于百度翻译 以下为原文 Heading seems kinda weird, I am also not getting what exact should I write there, but hope I am able to make you understand what I want to do exactly! - I will have Primary bootloader and secondary bootloader both will resides in different areas of memory (may be boot flash or program flash). - One of bootloader will be active at a time and other will be inactive. - Let consider, Primary bootloader is active, and now I will download my application firmware. I am also reading the active bootloader version from application firmware so that I can check whether I need to update bootloader. - And If I need to update bootloader then inactive bootloader will be activated and it will replace previously active bootloader with updated one. And secondary bootloader will switch back to inactive mode. Thus secondary bootloader only become active when it have to update primary bootloader. - In whole this process, I want to reserve some memory area for Primary bootloader version, secondary bootloader version, and some custom configuration data with fixed memory location and can be accessible from Primary, secondary as well as application firmware. |
|
相关推荐
3个回答
|
|
那么,如果需要更新辅助引导程序呢?Bootloader更新在字段中是有风险的,并且应该在可能的IMO中避免。在我的情况下,我通常只是创建了一个主应用程序。
以上来自于百度翻译 以下为原文 So what if your secondary bootloader needs to be updated? Bootloader updating is risky in the field and should be avoided where possible IMO. In cases where I have, I usually just created a primary application to do so. |
|
|
|
MZ部分有两个引导闪存面板,每个都有80K,所以你应该有足够的地方来做你想做的事情。引导加载程序的主要方式是通过DeVSEQ号。两个引导闪存组都有一个,并且哪一个更高(TSEQ,但是CSEQ被比较以确保TSEQ有效)被混叠到从0x1FC0000(物理)开始的较低启动闪存位置。然后从较低的启动闪存读取设备配置,执行的第一个指令是0xBFC0000(虚拟)。如果您想在启动后交换引导加载程序,那么请查看NVMCON中的BFSWAP位。当你这么做的时候要小心。否则,更安全的方法是把TSEQ号码更新到比当前活动号码高的号码,然后重置。
以上来自于百度翻译 以下为原文 The MZ part has two boot flash panels, each with 80K, so you should have enough there for what you want to do. The main way the bootloader is activated is through the DEVSEQ number. Both boot flash banks have one, and whichever one is higher (TSEQ, but CSEQ is compared to make sure TSEQ is valid) is aliased to the lower boot flash memory location starting at 0x1FC0_0000 (physical). Device configurations are then read from the lower boot flash, and the first instruction executed is at 0xBFC0_0000 (virtual). If you want to swap bootloaders after startup, then look at the BFSWAP bit in NVMCON. Just be careful when you do it. Otherwise, the safer way is to update the TSEQ number to a number higher than the currently active one, and reset. |
|
|
|
链接器文件呢?在这种情况下链接器文件如何工作?我们需要手动更改还是协调将处理链接?
以上来自于百度翻译 以下为原文 What about the linker files? How the linker file work in this case? Do we need to make changes manually or harmony will take care of linking? |
|
|
|
只有小组成员才能发言,加入小组>>
5129 浏览 9 评论
1984 浏览 8 评论
1914 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3149 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2212 浏览 5 评论
698浏览 1评论
586浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
467浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
603浏览 0评论
495浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-3 06:53 , Processed in 1.115473 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号