嵌入式学习日记
文章平均质量分 80
每天的积累
这个作者很懒,什么都没留下…
展开
-
Linux下驱动开发实例
它是一种 6 轴运动传感器,能够同时测量设备的加速度和角速度,因此广泛应用于姿态检测、航向控制、运动追踪等领域。这个驱动程序是一个用于 Linux 内核的简单平台设备驱动,目的是控制 GPIO(通用输入输出)引脚上的设备,比如一个 LED。它的功能主要包括初始化设备、配置 GPIO 引脚、中断处理,以及清理和释放资源。代码实现了一个 MPU6050 I2C 设备的 Linux 驱动程序,用于与 MPU6050 加速度计和陀螺仪传感器进行通信。Linux I2C 核心 API。原创 2024-09-29 17:24:20 · 1579 阅读 · 0 评论 -
LINUX下的驱动开发三
【代码】LINUX下的驱动开发三。原创 2024-09-27 18:01:25 · 1278 阅读 · 0 评论 -
Linux下的驱动开发二
用于全局管理驱动程序的状态和资源。在驱动开发中,有时需要一个全局的数据结构来保存设备的状态、驱动配置、缓存、锁等信息,这样不同的驱动程序函数可以通过该结构体访问和修改共享的资源。作用统一管理驱动状态: 全局结构体通常保存驱动程序的各种状态信息。例如,设备的注册信息、分配的内存、硬件寄存器映射等都可以保存在这个结构体中。共享资源: 驱动程序通常会有多个函数被内核调用,比如初始化函数、读写函数、中断处理函数等。使用全局结构体,可以让这些函数方便地共享和访问同样的数据或资源。原创 2024-09-27 16:55:18 · 1095 阅读 · 0 评论 -
面试知识点总结篇四
组成,每个字节由两个十六进制数字(0-9,A-F)表示,共有12个十六进制数字,如06-EA-56-3B-4F-4D。32位和64位是常见的字长,64位系统能够处理更大的数据量和内存地址。为网络层提供服务:无确认的无连接服务、有确认的无连接服务、有确认的面向连接服务。主要功能:端到端通信、复用和分用、差错检测、流量控制、拥塞控制(仅限TCP)端口号:端口号长度为16bit,能够表示65536(216)个不同的端口号。构成超网:将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。码分多址(CDMA)原创 2024-09-25 17:44:49 · 1026 阅读 · 0 评论 -
面试知识点总结篇三
联合体(union)允许在相同的内存位置存储不同的数据类型,成员共享内存。原创 2024-09-24 11:14:00 · 973 阅读 · 0 评论 -
面试知识点总结篇二
临界区是指在并发编程中,多个线程或进程访问共享资源时,可能导致数据不一致的代码区域。由于这些资源(如变量、数据结构或设备)只能被一个线程或进程在同一时间安全地访问,因此临界区需要通过同步机制来控制访问。原创 2024-09-23 21:16:30 · 940 阅读 · 0 评论 -
面试知识点总结篇一
运算符重载(Operator Overloading)是面向对象编程中的一种技术,它允许程序员重新定义或扩展已有的运算符(如 +、-、*、/ 等)在自定义类或对象上的行为。public:// 重载加法运算符(+)// 使用重载的 + 运算符// 输出 4 + 6ireturn 0;嵌入式系统是一种专门为执行特定任务或功能设计的计算机系统,通常嵌入到更大的设备或系统中。嵌入式系统的特点包括资源有限、对实时性的要求高、功耗低以及高度定制化。僵尸进程是指一个已经终止但仍然存在。原创 2024-09-23 15:33:16 · 1647 阅读 · 0 评论 -
FreeRTOS的一些知识点
【代码】FreeRTOS的一些知识点。原创 2024-09-18 19:11:06 · 730 阅读 · 0 评论 -
任务间通信
【代码】任务间通信。原创 2024-09-18 18:00:46 · 1032 阅读 · 0 评论 -
freeRTOS 任务的创建、挂起、恢复
【代码】freeRTOS 任务的创建、挂起、恢复。原创 2024-09-14 21:41:02 · 358 阅读 · 0 评论 -
FLash存储
【代码】FLash存储。原创 2024-09-14 11:12:39 · 333 阅读 · 0 评论 -
RTC、ADC
【代码】RTC、ADC。原创 2024-09-13 23:08:03 · 599 阅读 · 0 评论 -
STM32的使用:u8g2
【代码】STM32的使用:u8g2。原创 2024-09-12 23:41:23 · 432 阅读 · 0 评论 -
STM32与ESP8266的使用
【代码】STM32与ESP8266的使用。原创 2024-09-12 16:40:05 · 1620 阅读 · 0 评论 -
STM32使用 :串口的接收与发送
通常将 printf 函数的输出重定向到 UART,这样你可以使用 printf 在终端上输出调试信息。需要实现 __io_putchar 函数来将字符发送到 UART。对USART1模式设置为Asynchronous,即为异步通信方式,当然你也可以在这里设置串口的具体参数。设置RCC的high SPeed CLock的模式为Crystal/Ceramic。UART1挂载到APB2总线上,设置APB2为64MHZ即可。实际上是对__io_putchar的改写。www.mcuisp.com下载即可。原创 2024-09-11 19:37:00 · 792 阅读 · 0 评论 -
嵌入式学习之文件IO和标准IO
I/O(输入/输出)是指计算机系统与外部环境或内部组件之间的数据交换。主要包括用户I/O、文件I/O、网络I/O和设备I/O。五层I/O模型描述了数据从应用程序到硬件的传输过程,分为应用层、系统调用层、文件系统层、设备驱动层和硬件层。标准I/O函数如printf、scanf等,通过缓冲区提高效率和移植性;文件I/O函数如open、read等直接与操作系统交互。文件属性函数如stat用于获取文件信息。标准流指针(stdin、stdout、stderr)和文件流(FILE)提供灵活的文件操作接口。原创 2024-08-08 17:28:45 · 601 阅读 · 1 评论 -
嵌入式学习之线程和同步互斥机制
线程是进程中的执行路径,允许多个线程共享进程资源,从而实现并发执行。信号量(Semaphore)是一种用于控制共享资源访问的同步机制,适合用于限制资源访问的数量。条件变量(Condition Variable)与互斥锁结合使用,用于等待和通知特定条件的变化,适用于复杂的线程同步场景。信号量用于计数和控制资源访问,而条件变量用于等待条件变化。线程同步机制(如互斥锁、条件变量)确保多个线程安全访问共享资源,避免竞态条件。原创 2024-08-07 19:30:38 · 971 阅读 · 0 评论 -
嵌入式学习之网络编程基础
网络接口与物理层也叫网络访问层功能:将IP地址与物理地址MAC映射,以及将上一层的ip报文封装成帧,转换为二进制比特流传输ARP:通过IP地址获取其对应的MAC地址RARP:通过MAC地址获取其对应的IP地址MTU:最大传输单元:1500bytesMSS:最大报文长度:1460bytes网络层负责在主机之间的通讯中选择数据包传输的路径,即选择路由IP协议(Internet Protocol)ip协议根据数据包的目的地址来决定如何投递数据包ICMP协议。原创 2024-06-26 14:46:43 · 1073 阅读 · 0 评论 -
TCP与UDP连接的客户端与服务端的创建
【代码】TCP与UDP连接的客户端与服务端的创建。原创 2024-06-20 11:22:08 · 362 阅读 · 0 评论 -
6月3日作业
单链表的操作约瑟夫问题。原创 2024-06-04 00:00:22 · 121 阅读 · 0 评论 -
嵌入式学习之顺序表
Seqlist;#endif。原创 2024-06-02 23:07:38 · 358 阅读 · 0 评论 -
嵌入式学习之Makefile
2.Makefile会根据文件的时间戳(文件修改的时间)来决定工程内的文件是否需要重新编译。1.Makefile是一个工程管理工具,本质上就是一个文件,文件中存放的是代码编译规则。3.Makefile 是一种构建自动化工具的文件,用于管理和自动化软件构建过程。原创 2024-06-02 21:38:03 · 598 阅读 · 0 评论 -
嵌入式学习之c语言指针
例如,作为函数参数时,通常会使用 int (*)[4] 而不是 int (*)[3][4]。解引用一次,类型会少一个*,例如int** ptr降级后会成为 int*类型。取一次地址,类型会多一个*,例如int a升级后会成为int*类型。6.*p 的类型是 int*,即指向数组首元素的指针。类型:arr 的类型是 int (*)[4],而 &arr 的类型是 int (*)[3][4]。6.指针变量定义时可以给一个具体的指针,如果现在没有具体的值,那么将该指针指向null,占位。*号是和偏移前的pa结合。原创 2024-06-02 12:02:30 · 811 阅读 · 0 评论 -
嵌入式学习之构造类型
pragma pack(value) value=2^n次方(n=0,1,2,3,4) value=1 2 4 8 16 32。但是64为操作系统最多只能处理8个字节的数据,所以将默认对齐值设置为超过8,不生效。嵌套结构体的大小:结构体的对齐值为–》结构体中成员最大的对齐值。#pragma pack() //重置编译器的默认对齐值。可以使用#pragma pack指令来改变默认的对齐方式。原创 2024-06-01 22:12:21 · 787 阅读 · 0 评论 -
Linux一些操作技巧
功能:先将2.c中的内容清空,然后将1.c中的内容重定向到2.c中。cat 1.c > 2.c 将1.c中的内容打印2.c中。功能:2.c中原来的数据依然存在,将1.c中的内容追加到2.c后面。nano:使用 Ctrl+K 剪切,Ctrl+U 粘贴。ctlr+ shift + t 再开一个标签页。ctrl+ shift + e 水平分屏。ctrl + shift+ o 垂直分屏。,n跳转下一个,N上一个。原创 2024-05-27 14:50:46 · 651 阅读 · 0 评论 -
嵌入式学习
function 函数名() //定义函数时不需要写参数列表 {函数功能实现代码 }原创 2024-05-24 23:54:05 · 715 阅读 · 1 评论 -
嵌入式学习日记
rwx rwx r-x ————》有权限的位置为1,无权限的位置为0 ————》111 111 101。注解:r:read 读权限 ————》4。x:execute 执行权限 ————》1。w:write 写权限 ————》2。-:无权限 ————》0。原创 2024-05-23 09:07:37 · 221 阅读 · 0 评论