[导读]作为通信协议的两大基础,IIC和SPI两者的应用都非常广泛,上一篇文章讲过了RTT上IIC的移植与实践。《一步到位!教你RT-Thread上设备IIC驱动移植》讲完IIC,自然少不了SPI的相关内容,基于此,本文就来详细说明RT-Thread上设备SPI的移植与实践,SPI的通信...
作为通信协议的两大基础,IIC和SPI两者的应用都非常广泛,上一篇文章讲过了RTT上IIC的移植与实践。
《一步到位!教你RT-Thread上设备IIC驱动移植》
讲完IIC,自然少不了SPI的相关内容,基于此,本文就来详细说明RT-Thread上设备SPI的移植与实践,SPI的通信原理不用赘诉,百度一搜索,对应的知识点就明明白白的。本文的主要内容还是阐述一下RT-Thread上SPI的一些细节内容,总体感觉RT-Thread的代码层次,以及各个设备驱动的核心文件都相当优秀,这个不是打广告,而是真正的谁用谁知道,随着慢慢的学习,也会慢慢爱上它,不得不对RTThread表示赞扬,的确优秀源自长时间的积累升华,好了,废话不闲叙,开始本文的主体介绍。1、RT-Thread上SPI设备“上线”这里的“上线”,你也许会好奇,这个只是我自己的理解,同RT-Thread设备IIC总线不一样的是,IIC总线注册了就可以直接使用,而SPI总线注册完了之后,相当于存在于内核中,还要进行一步,我所理解的“上线”得出操作,即SPI设备需要挂载到总线上面去,才可以进行相关操作。一下是代码里面的细节注册:register函数,同其他设备注册到内核系统中是同样的套路,“上线”:bus _attach_device,设备挂载在总线上,占用总线,开始通信。以上也可以简单理解为一个流程,1、注册SPI总线,2、相关硬件初始化,3、设备挂载SPI总线上,4、通信开始。2、RT-Thread上设备SPI主要文件分为3各部分,一个硬件驱动层:drv_spi.c,一个内核控制层spi_core.c,一个抽象层spi_dev.c。三个文件分工明确,结构都是比较清晰的,结合官方给的相关文档,参照RT-Thread设备驱动的相关架构,很容易理解这些文件中的相关驱动的内容,以下是相关工程文件内核的相关内容和相关函数介绍说明,整体清晰,局部细节有内涵,总体感觉RT-Thread相当优秀,层次清晰明了,丝毫不脱离带水,值得学习研究,相关函数和功能细节也可以查询官方文档获取相关专业解释。内核与硬件交互驱动也是比较简洁,一目了然,SPI也是一种通信协议,因此和IIC的相关主体也是一样,读、写、控制,较IIC驱动多了一个设备上总线的初始化相关的函数,主要是设备与总线的相关绑定内容。具体内容见下3、RT-Thread设备SPI通信板级实践
3.1、板级硬件结合Demo板原理图,芯片的硬件SPI1总线挂载了两个设备一个是flash,GD25Q16,一个LCD,两个SPI设备通过不同的GPIO引脚去完成片选。后续的板级实现,主要是对Flash进行了SPI控制实践。3.2、SPI实践硬件SPI对应GPIO功能设置,自然这些都是按照规格书进行相关操作,GPIO相关AF功能的设置,对应的芯片DataSheet都有祥诉,可以去参考SPI配置,包含SPI模式,SPI位宽,SPI最大传输频率等参数3.3总线注册如下图是RT-Thread发现的device,其中包含了IIC总线,SPI总线,对饮GPIO设备。3.4、设备“上线”“spi10”即“spi1”上的0号设备,查看list_device发现了新的设备“spi10”,这一个就是挂载在SPI总线上的Flash设备。结合自己定义的SPI设备名称,(当然这里的名称是可以修改的),执行设备挂载到SPI总线上,就可以在device list中看到自己定义的SPI设备,结合以下两张图片就可以清晰的实践SPI总线、SPI设备的发现与“上线”。3.5、读取SPI设备ChipID通过相关地址读取FlashID,分享的例程,实现了两种SPI操作读取FlashID。4、总结
通过学习和实践,越发觉得RT-Thread的优秀与不简单,路漫漫,依旧还是需要保持上下求索的心态,认真学习体会这一实时操作系统的魅力,后续也会坚持学以致用,文章肯定有许多不完善和表述不当的地方,还希望不吝赐教,谢谢,最后附上工程实践代码。END---------------------作者:yanzhengxin1此文章来自于21ic网站,著作权归21ic所有,未经允许禁止转载。▍
扫描二维码,关注更多精彩内容
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
在工业控制、汽车电子等硬实时场景中,任务调度的确定性直接决定系统稳定性。RT-Thread作为国产实时操作系统,通过优先级继承机制和死锁预防策略,为嵌入式开发者提供了可靠的调度优化方案。
关键字:
RT-Thread
工业控制
任务调度
在工业机器人、CNC机床等高精度运动控制场景中,传统RTOS常面临实时性不足、多轴同步困难等问题。RT-Thread凭借其微内核架构、丰富的组件生态和硬实时特性,为运动控制系统提供了全新的解决方案。
关键字:
RT-Thread
工业机器人
我们希望在HMI板上建立一些高度互动的东西,超越静态显示。我们的核心理念很简单:模拟抛硬币。这个名为《Lucky 3》的项目就是从这个概念发展而来的,它展示了HMI板如何为一款简单而普遍的机会游戏提供引人入胜的实时反馈。
关键字:
RT-Thread
HMI
嵌入式
在嵌入式系统领域,实时性是一个至关重要的指标,它直接关系到系统对外部事件的响应速度和处理效率。在众多实时操作系统(RTOS)中,RT-Thread、RT-Linux和Zephyr因其各自的特点和优势,成为业界广泛关注的焦...
关键字:
RT-Thread
RT-Linux
Zephyr
物联网
加利福尼亚库尔弗城2024年7月16日 /美通社/ -- Snail, Inc. (纳斯达克股票代码: SNAL) (以下简称"蜗牛游戏"或"公司")是一家领先的全球独立开发商和发行商,专注于互动数字娱乐,今日宣布方舟:...
关键字:
iOS
安卓系统
移植
移动平台
摘要:为了研究微型多旋翼的定点控制,设计并实现了一种基于RT-Thread的微型多旋翼定点控制系统。采用DigitalMotionProcessing库和双闭环PID进行姿态控制,使用磁力计与激光测距仪进行航向与高度的锁...
关键字:
RT-Thread
定点控制
数据融合
上海2023年2月16日 /美通社/ -- 近日,诺华中国宣布与中国红十字基金会正式启动"中国地中海贫血救助项目"广西地区专项援助,将在当地定向资助困难家庭地中海贫血患儿,同时通过相关医生培...
关键字:
BSP
控制
移植
大众
北京2022年12月7日 /美通社/ -- 2022年12月3日,由高博医学(血液病)广东研究中心南方春富(儿童)血液病研究院、南方医科大学南方医院共同主办的高博医学论坛·华南造血干细胞移植论坛通过线下线上...
关键字:
移植
HD
PID
血细胞
捐款近4000万 上海2022年12月7日 /美通社/ -- 2022年12月7日下午,中芯国际"芯肝宝贝计划"十年纪念暨2022年度捐赠仪式在上海仁济医院举行。十年来,该项目捐赠善款总额近4000...
关键字:
中芯国际
移植
北京2022年11月14日 /美通社/ -- 2022年10月,高博医学(血液病)北京研究中心北京高博博仁医院造血干细胞移植科迎来了五周岁"生日"。在吴彤主任带领下,移植科于2017年从无到有,历经五...
关键字:
移植
OS
MT
CD
上海2022年11月6日 /美通社/ -- 在第五届中国国际进口博览会期间,武田制药携5款创新产品亮相武田罕见遗传与血液疾病领域专场发布会。用于移植后抗巨细胞病毒(CMV)感染或疾病治疗[1]的马立巴韦[2]迎来&quo...
关键字:
移植
BSP
CD
FDA
亘喜生物科技集团宣布正在中国开展的、旨在全面评估GC007g治疗复发/难治性急性B淋巴细胞白血病效果的1/2期注册性临床试验顺利进入2期研究阶段,首例入组患者已给药。GC007g是亘喜生物旗下的一款靶向CD19的供者来源...
关键字:
移植
CD
北京2022年9月9日 /美通社/ -- 诺诚健华(香港联交所代码:09969)今天宣布,tafasitamab (Minjuvi®)联合来那度胺治疗不适合自体干细胞移植 (ASCT) 条件的复发/难治弥漫性大B...
关键字:
VI
NJU
BSP
移植
苏州2022年8月19日 /美通社/ -- 近日,华中科技大学同济医学院附属协和医院心外科董念国教授团队运用与心擎医疗联合研发的短中期体外全磁悬浮心室辅助装置MoyoAssist®,成功救治三例危重的终...
关键字:
磁悬浮
移植
IC
静脉
上海2022年8月17日 /美通社/ -- 2022年8月16日,聚焦于基因和细胞治疗的上海邦耀生物科技有限公司(以下简称"邦耀生物")宣布,其...
关键字:
CD
移植
BSP
ISP
苏州2022年6月28日 /美通社/ -- 2022年6月23日,首都医科大学附属北京安贞医院(以下简称安贞医院)与苏州心擎医疗技术有限公司(以下简称心擎)在北京、苏州两地线上连线,隆重召开体外心室辅助系统临床...
关键字:
BSP
磁悬浮
创始人
移植
日前,RT-Thread Space 高可靠性嵌入式实时操作系统完成北京轩宇信息技术有限公司(以下简称“轩宇信息”)第三方测评,测试结论表明 RT-Thread Space 嵌入式实时操作系统满足GJB7718-2012...
关键字:
RT-Thread
嵌入式
航空航天
最近几天在完成一个项目的EVT收尾工作,EVT这个名词可能有些朋友不是很熟悉,EVT(EngineeringVerificationTest)表示进行工程验证测试阶段。一般的新产品开发都分为三个阶段:EVT、DVT和PV...
关键字:
代码
移植
一年一度的RDC(RT-ThreadDeveloperConference,RT-Thread开发者大会)正式启动报名,本届大会以"Beyond"为主题,并将于2021年12月18日在在深圳大中华喜来登酒店举办。 ...
关键字:
RT-Thread
开发者大会