完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我有一个带有Microchip TCP/IP协议栈的产品,我想把它升级为和声。我的产品使用PSP32 MZ与SST26存储MPFS2文件(网页)。我修改了HythSt26与HTTP网络服务器的协调:它运行。对这个地址进行偏移,在MPFS2数据与Microchip TCP/IP协议栈之间的内存组织兼容之前保留一个内存空间。介绍这种偏移的最佳方法是什么?…我想我必须改变MPSfSUnter()中的GySMPSFfObj.BaseAddio.= & Gt;这个MeoDoI必须能够使用文件系统管理器库(或者在使用SST26驱动程序)中改变我的预留内存空间中的数据值?…最好的方法是什么?)谢谢
以上来自于百度翻译 以下为原文 Hello, I have a product with Microchip TCP/IP stack and I want upgrade it to HARMony. My product use PIC32MZ with SST26 to store MPFS2 files (web pages). I modified Harmony to manage SST26 with HTTP Net Server : it operate. Harmony store MPFS2 data at the address 0x00000000 : problem is I would like set an offset to this address to reserve a memory space before MPFS2 data to be compatible with memory organization of my product with Microchip TCP/IP stack. What is the best way to introduce this offset ? ... I think that I must change gSysMpfsObj.baseAddress in MPFS_Mount() but I'm not sure. => With this method I will have to be able to change data values in my reserved memory space in using the File System Manager Library (or in using SST26 driver ?... what is the best way ?). Thanks |
|
相关推荐
4个回答
|
|
我不知道这是否会有帮助,但是这里是我管理这个的方法。在MPFSIMIMG2.C中,我在Link中转换文件,然后在HEX文件中导出。我的Bootloader使用这个地址范围来加载SST26。顺便说一下,如果我想使用XIP,这些地址映射到相同的SQI空间。
以上来自于百度翻译 以下为原文 I don't know if this will help, but here is how I am managing this. In mpfs_img2.c I change const uint8_t __attribute__((section ("flash_mem.media_data"),space(prog))) NVM_MEDIA_DATA[DRV_NVM_MEDIA_SIZE*1024] = { In the linker MEMORY { kseg1_boot_mem : ORIGIN = 0x9D000000, LENGTH = 0x480 kseg0_program_mem (rx) : ORIGIN = 0x9D000000 + 0x480, LENGTH = 0x200000 - 0x480 /* All C files will be located here */ kseg0_boot_mem : ORIGIN = 0x9D000000, LENGTH = 0x0 kseg0_data_mem (w!x) : ORIGIN = 0x80000000, LENGTH = 0xa0000 sfrs : ORIGIN = 0xBF800000, LENGTH = 0x100000 kseg2_ebi_data_mem : ORIGIN = 0xC0000000, LENGTH = 0x4000000 kseg2_sqi_data_mem : ORIGIN = 0xD0000000, LENGTH = 0x4000000 kseg3_ebi_data_mem : ORIGIN = 0xE0000000, LENGTH = 0x4000000 kseg3_sqi_data_mem : ORIGIN = 0xF0000000, LENGTH = 0x4000000 flash_mem (ra) : ORIGIN = 0xF0000000, LENGTH = 0x200000 } /************************************************************************* * Configuration-word sections. Map the config-pragma input sections to * absolute-address output sections. *************************************************************************/ SECTIONS { .flash_mem : { KEEP(*(flash_mem.media_data)) KEEP(*(flash_mem)) } >flash_mem /* Boot Sections */ .reset _RESET_ADDR : { Then the files get exported in the hex file. My bootloader uses that address range to load the SST26. Incidentally, those addresses map to the same SQI space if I ever want to use XIP. |
|
|
|
我不明白:你的链接器和外部闪存之间的关系是什么?=外部闪存使用MPFSXIMG2.BIN,而不是MPFSXIMG2.C.I不知道我需要干预哪一个和谐层来引入偏移。我认为:对于文件系统服务库地址0x90000必须对应于我的偏移地址:文件系统服务库不能允许访问R。备用内存区。对于MPFS库,它是一样的。但是我不知道对于文件系统媒体管理器,地址0x00亿必须对应于我的偏移地址或地址0x90000在SST26闪存中。
以上来自于百度翻译 以下为原文 I don't understand : what is the relationship between your linker and an external flash ? => external flash use mpfs_img2.bin and not mpfs_img2.c. I do not know which Harmony layer I need to intervene to introduce the offset. I think : - For File System Service library address 0x00000000 must be correspond to my offset address : File System Service library must not allow access to the reserved memory zone. For MPFS library, it is the same thing. => Am I right ? => But I don't know if for File System Media Manager, address 0x00000000 must to correspond to my offset address or address 0x00000000 in SST26 flash memory |
|
|
|
在我的例子中,我想让链接器分配并将对象放置在外部内存中,所以我用这种方式在C文件中使用数组。这样,我的引导装载器处理一个十六进制文件。MPFS层是完全相同的。你可以做你想要的与和声修改。在DrviStx26In初始化中,您必须将BosikStestRoad更改为基地址,我想。我可能会在SysCyf.g中创建一个定义来完成这个操作。
以上来自于百度翻译 以下为原文 The relationship in my case is that I want to have the linker allocate and place objects in external memory, so I am using it this way with the array in a C file. That way my bootloader handles one hex file. The MPFS layer is exactly the same though. You can do what you want with a harmony modification. In DRV_SST26_Initialize dObj->blockStartAddress = 0; You'll have to change the blockStartAddress to your base address, I think. I'd probably create a define in my SystemConfig.h to do this. |
|
|
|
程序在MPFS中修改了“GSIMPsfsObj.BaseAdvices”。C文件系统Media Manager库可以访问Flash的所有地址。-文件系统服务库和MPFS2库只能访问非保留的内存地址:地址0x000点到偏移量。为了我
以上来自于百度翻译 以下为原文 Programm operate with my modification of "gSysMpfsObj.baseAddress" in mpfs.c - File System Media Manager Library can access to all address of the flash. - File System Service library and MPFS2 Library can access only to non-reserved memory address : Address 0x0000 point to the offset. => It is good for me |
|
|
|
只有小组成员才能发言,加入小组>>
5171 浏览 9 评论
2001 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3176 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
737浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
635浏览 0评论
533浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 07:53 , Processed in 1.609878 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号