完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试让HootBootloader加载我的其他应用程序。我使用的是产品版本:MPLAB X IDE V4.15Java:1.8 0144;Java热点(TM)64位服务器VM 25.144-B01Runtime:Java(TM)SE运行时环境1.80y144-B01Stase:Windows 10版本10在AMD64上运行;CP1252;EnUUS(MPLAB)和和声版本V2Y05Y01I,用PIC32 MX795F512L PI运行。M在ExpReab16BoADI已经使用Orthor生成了Bootloader。我使用GPIO交换机(交换机3)PIN来检测引导加载程序的改变,并且LED闪烁显示我在Bootloader中,这里都很好。生成的BTLYMX.LD文件有以下的值SyrSeTeEdAdDR=0xBFC000;EVA ExpPTIAdDR=(0xbfc00+0x380);不可用于孤儿节。*仅分配给这些区域的部分可以分配到这些区域中。************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************C01000,长度=0x100/*中断向量表*/CONT3:Orth= 0xBFC02FF0,长度=0xBFC02FF4,长度=0x4配置1:Orthe= 0xBFC02FF8,长度=0x4配置0:Orth= 0xBFC02FFC,长度=0x4KSSE1B-BooToMeM:原点=0xbfc000,长度=0x300/*c启动代码*/KSEG1XDATAYMEM(W)!X):Oracle=0xA000 000,长度=0x2万SFRS:Orthe= 0xBF8000,长度=0x100000 Debug gExpReMeM:原点=0xBFC02000,长度=0xFF0配置FRS:Orthe= 0xBFC02FF0,长度=0x10},现在我将通过OrthyOpHelpHyVuluMyV.PDF文件(以下)中找到的指令。这似乎我需要改变长度= 0x2AF0-gt;0x3000以上的KSG00Sudio MyMeMe,但在步骤4)我真的很困惑。Bootloader SypLyFig .h(下)对于APPYFLASH BaseX地址(0x9d00)具有以下值。这是否意味着我将AppHFLASH BASEXY地址从0x9900MAMP改为(0x9FC00 500 +0x3000)?我该怎么办?那么,在步骤5中,我应该如何为我的应用程序做EBASE值呢?Bootloader Stuly.CONFIG.H.*定义APPYFLASH BaseX地址(0x9d00),定义应用程序开始执行*//*规则的AppHyFLASH Endox地址(0x9dMAM+0x8000 - 1)/*地址:将APPYFLASH BASEXY地址设置为应用程序链接器脚本*/y*定义的AppReStayADDR值TyAdvor(AppMyFraseBaseX地址)定义了BooTouleSerialPixy定义BTLYwitter BSPwitwits3,定义BooLoad Server Flash OrthPrigelyAddioOrthyApHelpHyMulnEnv.PDF.这部分描述了将用户应用程序放入所需程序闪存区域的过程。必须确保用户应用程序的内存区域与为引导加载程序保留的内存区域不重叠。MHC生成的引导加载程序应被视为您的产品引导程序的起点。因此,添加新的特性可能会导致引导加载程序超过引导加载程序链接器脚本中所需的大小。此外,在Apps/Bootloader /Basic文件夹中提供的引导加载程序被配置为-O1编译器优化。它不是Bootloader的最小可能大小,打开O-ORMIPs16/MyMIPS代码选项将减少引导加载程序的大小。如果引导加载程序的大小发生变化,则应执行以下步骤来调整引导加载程序和应用程序,以便使两者都适合并充分利用设备内存。1。为引导加载程序在程序Flash中确定新的结束地址。这可以通过使用MPLAB XIDE生成的.map文件和相应的编译器,或者使用MPLAB X IDE。2的ELFVIEWER插件来完成。把地址转到最近的页面边界。对于具有1K页面大小的设备,地址必须在0x400边界上结束。对于具有4K页面大小的设备,地址必须在0x1000边界上结束。3。在Bootloader中,更改以下文件:在PIC32 MX设备的BTXYMX.LD中,将KSeG0x程序Mem的长度更改为PIC32 C设备的BTLYCZ.LD中的新边界,将闪存区域长度值更改为新边界。在StasySCOFIG.h中,更改APPYFLASH BASEXY地址的值,以匹配预先确定的虚拟地址。在应用程序中,更改链接器脚本AppYMX.LD如下:将更改的AbaseX地址更改为新的边界,再加上足够的页以获得在4K(0x1000)边界上的地址开始的异常。这是为了将其对齐在MIPS核心所需的边界上。新的边界预先确定:将KSG00SUPLE程序MEM的起始值更改为新边界。重新编译Bootloader和应用程序以及测试操作。
以上来自于百度翻译 以下为原文 I am in the process of trying to get the HARMony bootloader to load my other application. I am using Product Version: MPLAB X IDE v4.15 I am running this with PIC32MX795F512L PIM on Explorer16 Board I have generated the bootloader using harmony. I am using a GPIO Switch (Switch 3) pin to detect the bootloader change and LED is flashing telling me that I am in the bootloader and all is well here. The generated btl_mx.ld file has the following values Now I am going through the instructions found in harmony_help_volumne_V.pdf file(Below). So from Step 3 below, this it seems that I need to change the LENGTH = 0x2AF0 ->0x3000 above for kseg0_program_mem But in step 4) I am really confused. The bootloader system_config.h (below) has the following value for APP_FLASH_BASE_ADDRESS (0x9D000000). Does this mean that I change APP_FLASH_BASE_ADDRESS from 0x9D000000 to (0x9FC00500+0x3000)? What should I do here? Then what should I do for my Applications _ebase value in step 5? bootloader system_config.h #define APP_FLASH_BASE_ADDRESS (0x9D000000) #define APP_FLASH_END_ADDRESS (0x9D000000 + 0x80000 - 1) harmony_help_volumne_V.pdf This section describes the procedure to place a user application into a desired program Flash memory region. It must be ensured that the user |
|
相关推荐
3个回答
|
|
您不必,因为从0x9fc0.2ff0到0x9fc0.2fff是配置寄存器。参数是长度,所以KSK00SuffyMyOrth+长度- 1=0x9fc0.0500 +0x2AF0- 1=0x9fc0.2ff的结尾。
以上来自于百度翻译 以下为原文 You don't have to, because from 0x9FC0.2FF0 to 0x9FC0.2FFF is for configuration registers. And the parameter is LENGTH, so the end of the kseg0_program_mem ORIGIN + LENGTH - 1 = 0x9FC0.0500 + 0x2AF0 - 1 = 0x9FC0.2FEF |
|
|
|
你不必这样做。这个想法是:将所有与引导加载程序(BTL)相关的所有东西放在引导闪存中(检查数据表中内存组织部分中的内存映射),以及与程序Flash中的应用程序相关的任何东西。因此,你的应用程序是从AppHyFlash基础BaseAd中定义的(定位)。请访问AppHyFlash终端地址。在加载APP之前,BTL将使用该信息擦除闪存。应用程序的入口点是应用程序。因此,在加载应用程序之后,引导加载程序可以跳转到该地址,或者在应用程序存在之后重置到该地址。中断向量,它应该从4K边界开始。它被放在程序存储器的开始或程序存储器的末尾。长度是0x1000(定义为例外的MEM),通常你不必改变这个,除非你改变了中断向量大小的定义。因此,如果你的AppSyrTeX地址ISAPFFLASH BaseX地址,你就不能把AppBaseLoad闪存基带地址放在你的情况下。S(0x9dBAMP)AppHFLASH EndoX地址(0x9dMAM+0x8000 - 1)AppyReSeTeX地址:AppHyfLaseBaseAddiSsSeBaseX地址:(AppHyfLaskBaseAddio+0x1000),或(AppHyFlash终端地址-0x1000 + 1)另一种设置可能是:AppHyReSeTyAd:(AppFixFaseBaseAddio+0x1000)异步地址
以上来自于百度翻译 以下为原文 You don't have to. The idea is to: put everything related to the bootloader(BTL) in the boot flash (check the memory map in the memory organization section in the datasheet), anything related to the APP in the program flash. So your APP program is defined (locates) in the area from APP_FLASH_BASE_ADDRESS to APP_FLASH_END_ADDRESS. The BTL will use this information to erase the flash memory before loading the APP. The APP_RESET_ADDRESS is the entry point for the APP, so the bootloader can jump to this address after loading the APP or jump to this address after the reset if the APP exists. The _ebase_address is for exceptions and interrupt vectors, it should start at 4K boundary. It used to be put at the beginning of the program memory or at the end of the program memory. The length is 0x1000 (defined in exception_mem), usually you don't have to change this unless you change the definition of the size of the interrupt vector. So if your APP_RESET_ADDRESS is APP_FLASH_BASE_ADDRESS, you cannot put _ebase_address at APP_FLASH_BASE_ADDRESS. In your case: APP_FLASH_BASE_ADDRESS (0x9D000000) APP_FLASH_END_ADDRESS (0x9D000000 + 0x80000 - 1) APP_RESET_ADDRESS: APP_FLASH_BASE_ADDRESS _ebase_address: (APP_FLASH_BASE_ADDRESS + 0x1000), or (APP_FLASH_END_ADDRESS - 0x1000 + 1) Another setup might be like: APP_RESET_ADDRESS: (APP_FLASH_BASE_ADDRESS + 0x1000) _ebase_address: APP_FLASH_BASE_ADDRESS |
|
|
|
我也在研究PIC32 MX Bootloader。我刚刚回到它完成它。我不认为和声脚本都是正确的。这是我的帖子:HTTP://www. McCHIP.COM/FUMMS/M1036793.ASPXIX,如果它有任何帮助。但我很快就会知道。
以上来自于百度翻译 以下为原文 I too am working on a PIC32MX Bootloader. I am just getting back to it an finishing it up. I do not think the Harmony scripts are all correct. Here is my post: http://www.microchip.com/forums/m1036793.aspx See if it is of any help. But I will know soon enough. |
|
|
|
只有小组成员才能发言,加入小组>>
5242 浏览 9 评论
2031 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3207 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2256 浏览 5 评论
778浏览 1评论
666浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
595浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
677浏览 0评论
576浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 13:14 , Processed in 2.484714 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号