完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我试图使用HARMony 1.08.01和MHC 1.0.8.7,在PIC32MX795F512L的“USART ID 5”上创建一个命令提示符非常简单的项目。在MHC中,我启用了:Drivers/USART系统服务命令控制台。在sys_command.c(由Harmony提供)中进行了一些调试之后,我发现命令服务的状态(pCmdIO->cmdState)是永久性的SYS_CMD_STATE_DISABLE。命令in it SYS_CMD_Initialize()在SYS_Initialize()中的控制台in it SYS_CONSOLE_Initialize()之前被调用,但是由于控制台在命令in it还没有准备好,命令服务状态被设置为SYS_CMD_STATE_DISABLE,并且我不知道要怎么做才能使它跳转到另一个状态。对于USART上的简单命令提示,没有可用的和谐项目示例(我们一直有复杂的示例,但没有基本的示例)。最后,我在SYS_CMD_Tasks()中对sys_command.c应用了变通方法以获得提示(参见+行):SYS_CMD_STATE_DISABLE: //App层还没有准备好进行处理ss命令+if(*pCmdIO->pCmdApi->isRdy)(pCmdIO))+pCmdIO->cmdState=SYS_CMD_STATE_SETUP_READ;break;我错过了什么吗?什么是使它有效的正确方法。
|
|
相关推荐
8个回答
|
|
|
非常感谢你的回复。我认为你是正确的关于SysSCMDyRead YoToRead()。我在调试期间看到并尝试了这个函数,但是我没有意识到我必须周期性地调用它。我只调用过一次,这是错误的。此外,由于还需要更改提示字符串(默认情况下是“>”),所以我使用修补后的sys_command.c版本作为解决办法。我没有找到任何其他方法来覆盖框架的SysScript命令h中的这个定义
|
|
|
|
|
|
我也注意到命令历史不起作用。经过一些调试,我发现在SYS_CMD_Tasks()中,字符被逐个读取,但是转义序列处理要求一次读取3个字节。我添加了读取丢失的2个字节所需的修复程序。然后我看到,在当前光标位置(当使用左键和右键时)的插入没有得到正确处理和显示。我增强了comand行的历史输出。pCmdIO->cmdPnt和pCmdIO-&&&>也有一些bug。gt;cmdEndI还添加了CTRL-C来取消当前输入(也添加了任何无效的ESC序列,例如处理ESC 3次工作)。然后,我将提示字符串更改为我的需要,并使用修改后的副本/opt/micro./.ony/1.08.01/framework/system/comm and/src/sys_comm将历史大小增加到10。以及.c,我放入排序树,并将框架从项目中排除。请查找修改后的文件以及Harmony 1.08.01的修补程序。在将命令粘贴到命令行时,仍然丢失了字符。这可以通过全速运行控制台和命令任务来修复,没有任何延迟(或者至少是FreeRTOS下的YIELD()),但是这只消耗CPU从USART读取字符。使用带有1mSid.的vTaskDelay()并不总是在115200bps的提示下工作。我试图使用更大的USART驱动程序和控制台缓冲区,甚至DMA,但没有成功。欢迎任何工作区建议。
CMDYReal.PATCH.TXT(11.06 KB)-下载219次 |
|
|
|
|
|
比尔,CDC在200兆赫的合理持续吞吐量是多少?我需要接收和处理(推到目的地USAT)2-513字节分组,每20至25毫秒与不间断250KB的两个端口。假设PC/MAC在USB上抽出“921600”的数据流,同时为WINC1500(一个或另一个,但不是两个推送数据)提供服务,我主要处理裸金属dePIC33,在中断时执行用于协议的状态机——将数据包推送到FreeRTOS队列fo我会看这本书的。
|
|
|
|
|
|
嗨,我对USB CDC设备的理解是波特率是没有意义的。和谐/MHC设置一个USB CDC设备作为FS(全速?)它决定了虚拟COM端口上的“传输速率”。因为有PC串行通信程序(如CoolTerm)在230400波特下运行,我怀疑USB CDC链接是否会对您的250KB要求有任何问题。对于更大和更快的传输,我建议使用TCPIP客户端/服务器。CPU上的速度更快,负载更少。如果重复传输相同的数据结构,可以考虑使用UDP广播进行更快的传输。无论哪种情况,我相信配置了Harmony的PIC32MX或MZ设备都应该工作得很好,甚至不用费力呼吸。
|
|
|
|
|
|
条例草案,2.04在MZ似乎设置它的高速。我告诉SimpleTerm Gold,它是921600和“它工作”。我之所以这么说,是因为两个端口演示一个接一个地处理字符,并且快速释放发送的其他所有内容。我所使用的产品规范是WiFi或USB提供的双DMX输出。我倾向于使用一个ACK包返回UDP,并将数据报大小高达520字节发送到队列中。在USB上,CDC对于PC/MAC开发者来说可能更容易,但是HS-Hod每包520字节对我来说更干净。唉,我们现在已经完全劫持了线索。
|
|
|
|
|
|
嗨,太坏的线索,但这更有趣。我还没有尝试过USB主机模式,但是有它的演示,所以(最终)它可以在和谐的环境下工作。至于UDP,为什么需要ACK包呢?你会怎么处理?Retransmit?如果需要,使用TCP/IP。如果连续传输数据,则下一个包修复坏包中的任何错误。只是我的看法。
|
|
|
|
|
|
它是DMX轻量级控件,所以我假设我需要它们所有我可以使用的TCP/IP,但是数据的性质适合于数据包,而不是流IO。是的,我可以发送长度前缀并将流打包,但是从流中可靠地提取二进制数据包的麻烦远不止发送“ack 0x################”来对第n个场景进行打包。因此,数据/ ACK /重新发送,如果需要的话。我可以和CRC和NACK一起使用坏的CRC。这也是为什么我认为HS HID,因为它允许一个0到1024字节的数据包。我必须为两个具有512字节数据的DMX队列设置两个端点(也许还有序列前导),或者为一个端点添加一个字节,用于表示要放入哪个队列。DIC数据。在单个MS中没有可信的窗口超时是有道理的。我必须和客户讨论丢包。ack’ing的另一个原因是,出站队列上还有空间容纳更多的分组。除了缓冲传输和定时传输之外,还有一个比较器电路对SMPTE时间码进行解码,其中的音频将定期进行采样,FFT将发送回图形均衡器。R图像(只是创建图像的点)。我想一秒钟,在一个低优先级线程,应该是好的。
|
|
|
|
|
|
嗨,这个问题仍然存在与和谐2.05.01。我添加了上面描述的两行,我看到了命令提示符。谢谢分享。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1124浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1097浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
873浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 07:54 , Processed in 0.872168 second(s), Total 86, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
479