- 博客(10)
- 资源 (15)
- 收藏
- 关注
原创 Linux设备驱动开发(5.4.58)-3-NEWCHR
本文目标本文在上一节的基础上,采用可以指定主设备号,次设备号,手动申请dev_t和自动申请dev_t的API,封装一个全局的对象结构体并用private_data在方法间传递,减少全局变量使用,寄存器操作改用readl和writel,引入cdev、class、device对象。驱动里面的全局结构体是对象私有数据,fops是对象内部的操作函数,可以通过系统调用对外public。cdev、class、device应该是驱动对象的各种父类,用来抽象各种子系统的数据和行为,以便实现统一框架。以上是我个人理解
2020-08-23 00:53:18 280
原创 Linux设备驱动开发(5.4.58)-2-LED-CTRL
官方的io配置文档pinout.xyz关于r3b的物理地址官方说明重点是:If there is no kernel driver available, and a program needs to access a peripheral address directly with mmap, it needs to know where in the virtual memory map the peripheral bus segment has been placed. This varies
2020-08-22 00:51:01 342
原创 Linux设备驱动开发(5.4.58)-1-HELLO-WORLD
重要的点1、module_init和module_exit是宏,他的参数,即入口和出口函数,原型分别是:static int __init ldd1_init(void);static void __exit ldd1_exit(void);2、构造函数,要带主设备号,名字,对象方法。析构函数,要带主设备号,名字。ret = register_chrdev(LDD1_MAJOR,LDD1_NAME,&ldd1_fops);unregister_chrdev(LDD1_MAJOR,L
2020-08-21 03:09:45 253
原创 基于新版本Linux内核的树莓派3B+驱动开发环境搭建
搭建树莓派内核交叉编译环境参考文章官方仓库https://github.com/raspberrypi下载工具链https://github.com/raspberrypi/tools.git用gitee导入仓库(github慢,梯子麻烦),然后clone:git clone https://github.com/raspberrypi/tools ~/tools下载过程中准备环境sudo apt-get updatesudo apt install git bc bison fle
2020-08-20 14:03:58 809
原创 层次状态机编程三:状态机设计模式
1、钩子模式:比如报警器的布防、撤防、报警、在家布防状态,在处理撤防消息的时候,都是跳转到撤防状态,那把这个统一的行为,放到上一级状态实现。当然,因为在报警状态下,需要停止声光报警,所以报警状态可以重载一下这个消息的处理。2、提示器模式:比如wifi模块的数据查询和数据解析,都需要用到轮询机制。那么可以添加一个消息DataReady,这样把数据查询和数据解析解耦了。注意,为了提高性能...
2019-04-02 16:11:05 1890
原创 层次状态机编程二:设计QM状态机的基本约定
1、消息在头文件中定义为如下格式:enum GameSignals { /* signals used in the game /TIME_TICK_SIG = Q_USER_SIG, / published from tick ISR /PLAYER_TRIGGER_SIG, / posted by Player (ISR) to trigger the Missile /TAK...
2019-04-02 15:35:10 813
原创 层次状态机编程一:如何创建QM状态机
1、创建AOs2、创建AO内部状态机3、创建AO成员对象4、创建AO函数5、实例化对象6、AO构造函数7、对象c文件中,声明对象,实例化对象,定义构造函数和对象,例如:$declare(AOs::Missile)Missile AO_Missile;$define(AOs::Missile_ctor)$define(AOs::Missile)8、头文件中extern c文件中...
2019-04-02 09:43:52 1078
原创 实验3:CubeMx+Proteus+STM32 IO口模拟SPI协议的四种模式
目标:实现spi的Master端。参考资料:http://bbs.elecfans.com/jishu_441914_1_1.html这篇文章讲的非常直观易懂,看完就明白了。 1、首先配置口线,串口用来输入和打印,四个io口用来模拟spi,原本准备在一个单片机上同时模拟主从,但貌似不太可行,这种模拟的方式都是阻塞的。 2、proteus连接口线,放spi调试器和...
2019-01-15 16:30:07 5808 4
原创 实验2:CubeMx+protues+AD单通道采样
目标:实现采样读取AD口的电压。 添加全局变量 /* USER CODE BEGIN 1 */ uint16_t ADC1_Value; /* USER CODE END 1 */在收到串口指令的时候,进行采样,并在串口打印:void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){...
2019-01-09 22:17:20 1423 2
原创 实验1:STM32CubeMx+Protues+VSPD仿真实现调试串口
目标:通过CubeMx实现串口收发配置,用Protues运行仿真程序,串口输入a、b、c、d等指令,进行串口调试。CubeMx配置: (1)导出源代码,并在main.c中添加如下定义,用来接收串口数据:/* USER CODE BEGIN PV */uint8_t aRxBuffer; //接收中断缓冲...
2019-01-08 21:52:11 4190 2
脉搏血氧仪(keil5).rar
2020-04-09
BH67F2742高精度24位ADC,合泰额温枪,耳温枪方案代码
2020-03-26
实验3:CubeMx+Proteus+STM32 IO口模拟SPI协议的四种模式
2019-01-15
STM32CubeMx+Protues+VSPD仿真实现调试串口
2019-01-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人