完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
rtthread smart发布出来很久了,一直没时间玩,最近在rtthread上开发使用device框架感觉太爽太省心了。
然后突然想到,如果在rt smart上跑同样这套代码,device框架还有用吗? 因为smart是跑在有mmu芯片的系统,有内核态和用户态之分。 如果我一个device注册在内核态,在用户态使用 rt_device_find 查找到的 设备对象也是内核态的,用户态肯定不能直接操作内核态的数据呀,再说还有虚拟地址之分。 希望大佬能解答我的疑惑 |
|
相关推荐
7个回答
|
|
rtt 没有“内核态和用户态之分”吧
|
|
|
|
肯定可以,rt smart的目的之一就是设备框架,感兴趣可以试试哦。不过rtt之前的软件肯定没有用户态之分。不过rt smart上的新软件可以区分用户态和内核态。不知道这么回答是否明了?
|
|
|
|
所以之前的rtt软件包最好是运行在内核态了。因为很多rtt api调用返回的都是结构体之类的,虽然不知直接操作结构体的数据。比如rt_device_find 返回的肯定是目标设备的结构体,这个结构体对象肯定在内核的内存中,如果用户太的进程要操作,那要涉及内存共享啥的。
|
|
|
|
RRT的deveice框架参考了“Linux下一切皆文件”的设计思想,
在linux下用户也可以实用open/read/write/close对内核态下的设备驱动进行访问, 我想RT-Thread Smart在学习这一点上,应该是要支持的, 只不过这里肯定会发生系统调用,开销会大一点。 |
|
|
|
open/read/write/close应该是posix接口的
|
|
|
|
rt-smart上把rt_device_* API穿越了,都有对应的系统调用。
|
|
|
|
感谢大佬抽空回答,我觉得rt_device_是个很省心的设计。rt-smart还得多研究下代码,代码能解释出。 rt-smart代码比rt thread的代码复杂好多,学习难度大呀
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1056 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3545 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1482 浏览 0 评论
2181 浏览 0 评论
1663 浏览 0 评论
75421 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 12:42 , Processed in 0.704955 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号