Microchip
直播中

李麒

7年用户 289经验值
私信 关注
[问答]

NVM网页上传使用阻塞代码该怎么办?

作为记录,我使用HARMony 1.07.01和web_server_nvm_mpfs演示应用程序,该应用程序具有pic32_eth_web_server配置。实际上,我用的是那个演示的副本,因为我不想破坏原版。我确实做了一些更改,因为我创建了自己单独的ENCX24J600驱动程序,我使用PERL脚本将一切重命名为ENCY24J600,它使用模式5中的PMP与enc424j600芯片通信。具体来说,我使用的是PIC32MX470F512L处理器,带有8MHz的晶体,并且我更改了设置,以使用这个新的ENC驱动程序。我还创建了一个“虚拟”BSP,它允许我不必处理任何开关、LED等。没有设置任何配置位,因此无法写入闪存。它运行得很好,我看到网页非常好。我挂断的是MPFS2.JAR。如果我让它创建mpfs_img2.c文件,它将允许我编辑网页,并在重新刷新芯片后,将这些更改反映在网页中。这告诉我,我的路径是正确的,否则这不会起作用。不幸的是,我不能让这个应用程序把.bin文件上传到设备上。有时它看起来像正常工作,但是在网页中没有任何变化,或者网页转到上传表单,因为它不再识别哪些内容被存储为有效的网页(我的假设,但是看起来是这样)。当然,当我键入这个时,我想知道是否设置了f的0x9d000000000地址或者NVM对于我正在使用的处理器来说是有效的。我查看了另一篇文章,其中建议将init文件中的mediaStartAddress(更好的更改被列为drv_nvm.c.ftl)更改为.mediaStartAddress=(uintptr_t)NVM_MEDIA_DATA。这也不能解决问题。最终我的目标是更新一个串行闪存驱动程序来处理文件系统和存储网页。我已经准备好了可以工作的代码,但是我遇到了一个使用阻塞代码的http驱动程序的问题;rainad通过一个单独的帖子通知我,它将在下一个和谐版本中被修复。同时,我希望有一个工作系统,它允许我在网络上通过mpfs2.jar应用程序更改网页。从这里我可以做一些有针对性的修改来修复我自己的HTTP文件,继续我的研究。

回帖(4)

苗雨

2019-8-13 13:02:03
有人对此有什么想法吗?我有一些指向malloc导致问题的附加信息,特别是http.c:pHttpCon->uploadBufferStart=(uint8_t*)TCPIP_STACK_MALLOC_FUNC(mpfsAllocSize)的第2123行;在这个函数调用之后,uploadBufferStart总是零。TCPipStaskMalLogyFunc(MPFSALCOSIZE)转换为MALLC(MPFSALCOSIZE)。
举报

陈晨

2019-8-13 13:18:53
TCP/IP堆栈是否为您正在使用的内存分配足够的内存。项目堆足够大。
举报

苗雨

2019-8-13 13:33:08
根据Device&Project Configuration,项目堆是44960字节;这是为示例项目设置的默认值。至于TCPIP Stack选项下的Select Heap配置,我附上了设置的屏幕截图。
举报

云达贞

2019-8-13 13:52:08
为常规/malloc分配留下的堆的数量是(项目堆-TCPIP_STACK_DRAM_SIZE)。请确保您至少有可用的tmpfsAllocSize开始。然后可以增加项目堆。如果不可能,请降低TCP/IP堆:TCPIP_STACK_DRAM_SIZE。在所有的堆分配和不释放的地方。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分