vinoblues
vinoblues

注册于 4 years ago

回答
0
文章
0
关注者
0

hi bernard,你是指RTT的USB组件吗?:)


是啊,如果能够有人能够承担,维护起来就好了。


如果研究到深入的程度,很愿意贡献微薄之力 [s:157] 努力中...

嗯, rt_device_find(const char *name)我注意到了。
消息队列的句柄已经extern了~ [s:157]
--------------------------------------

主要是给人看的,部分对象有find函数,可以通过名称查找。
如 rt_device_find(const char *name)
但无法解决名称重复的问题,要人工去避免。

避免使用全局变量的常用方法是提供get和set的API。
当项目固定时,全局变量有时也许是最简单的办法。

我想,利用名称可以避免使用全局变量;而唯一性可以由系统在对象建立时自动检查,有重名则通过返值来体现。
顺带问一下,目前,注册这个“name”后,“name”在什么时候使用?
----------------------------------------------------

用名称性能太弱吧,另外也要保证名称的唯一性。
还是直接使用句柄靠谱一些。

是的,
1.DMA中断可产生,死锁现象偶尔出现,应该是你说的“当DMA末完成时,又配置新的DMA参数”
2.嗯,那我在驱动内部加以考虑。
非常感谢aozima!
----------------------------------------

1. 检查DMA中断是否产生,如无,则可能是DMA配置错误。
2. 驱动框架是不加锁的。

如果设备多线程访问不安全,需要在应用层或硬件驱动实现里面加锁。
不然,当DMA末完成时,又配置新的DMA参数,则必然会出现问题。

发布
问题

分享
好友