Linux RAM
文章平均质量分 81
linux 驱动开发学习
东方欲晓w
你若不勇敢,谁替你坚强。
展开
-
Linux应用编程:定时器
settimer工作机制是,先对it_value倒计时,当it_value为零时触发信号,然后重置为it_interval,继续对it_value倒计时,一直这样循环下去。3、使用 setitimer 时,通知信号的类别不能改变:SIGALARM,SIGPROF 等,而这些都是传统信号,而不是实时信号,因此有 timer overrun 的问题;2、setitmer 计时器时间到达时,只能使用信号方式通知使用 timer 的进程,而 POSIX timer 多种通知方式,比如信号,或者启动线程。原创 2024-01-12 21:45:41 · 1040 阅读 · 0 评论 -
FreeRTOS(以STM32F1系列为例子)
API 函数的参数uxPriority为创建的任务赋予了一个初始优先级。这个侁先级可以在调度器启动后调用API 函数进行修改。文件中设定的编译时配置常量的值,即是最多可具有的优先级数目。FreeRTOS本身并没有限定这个常量的最大值,但这个值越大,则内核花销的内存空间就越多。所以总是建议将此常量设为能够用到的最小值。低优先级号表示任务的优先级低,优先级号 0 表示最低优先级。有效的优先级号范围从 0 到。如果被选中的优先级上具有不止一个任务,调度器会让这些任务轮流执行。原创 2023-09-30 20:23:06 · 422 阅读 · 0 评论 -
json解析
开源网址:https://sourceforge.net/projects/cjson/优点在于,即使 json 文件出现错误,还是可以读取出其他的内容。两个文件拷贝到自己的项目中即可,在。花括号表示对象,使用。下面都是可以使用的。原创 2023-06-17 14:50:20 · 948 阅读 · 0 评论 -
linux beep 实验
linux 蜂鸣器实验、使用设备树、gpio、pinctl子系统实现原创 2023-05-11 15:51:44 · 236 阅读 · 0 评论 -
linux 并发与竞争 原子操作、自旋锁、信号量、互斥体
并发访问带来的问题就是竞争。对于临界区必须保证一次只有一个线程访问,也就是要保证临界区是原子访问的。我们要保护的是多个线程都会访问的共享数据。一般像全局变量,设备结构体这些肯定是要保护的,至于其他的数据就要根据实际的驱动程序而定。原创 2023-05-11 15:48:52 · 441 阅读 · 0 评论 -
linux pinctrl 和 gpio 子系统 LED驱动
借助 pinctrl 和 gpio 子系统来简化 GPIO 驱动开发。原创 2023-05-11 15:41:14 · 665 阅读 · 0 评论 -
linux 设备树下的led驱动(寄存器)
①、在文件中创建相应的设备节点。②、编写驱动程序,获取设备树中的相关属性值。③、使用获取到的有关属性值来初始化 LED 所使用的 GPIO。原创 2023-05-11 15:36:00 · 194 阅读 · 0 评论 -
linux 设备树详解
描述设备树的文件叫做,这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU数量、 内存基地址、IIC接口上接了哪些设备、SPI接口上接了哪些设备等等。树的主干就是系统总线,IIC 控制器、GPIO 控制器、SPI 控制器等都是接到系统主线上的分支。DTS 文件的主要功能就是按照上图所示的结构来描述板子上的设备信息。SOC厂商有多种开发板,将这些共同的信息提取出来作为一个通用的文件,其他的.dts 文件直接引用这个通用文件即可,这个通用文件就是.dtsi。原创 2023-05-11 15:30:31 · 1450 阅读 · 1 评论 -
嵌入式日志库ulog的使用和解析
time(& tt);// 打开文件my_test.txt 这里文件可以跟改为时间 fprintf(fp , "%s [%s]: %s\n" , get_time , // user defined function ulog_level_name(severity) , msg);执行后,文件中的内容类似以下,这个格式是按照自己喜好在日志函数中自己编写。原创 2023-04-19 19:44:08 · 2817 阅读 · 2 评论 -
Linux 字符设备驱动(新)
和这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用Linux内核推荐的新字符设备驱动API函数。原创 2023-04-12 08:51:01 · 82 阅读 · 1 评论 -
Linux 字符设备驱动(旧)
字符设备是 Linux 驱动中最基本的一类设备驱动,字符设备就是一个一个字节,按照字节流进行读写操作的设备,读写数据是分先后顺序的。比如我们最常见的点灯、按键、IIC、SPI,LCD 等等都是字符设备,这些设备的驱动就叫做字符设备驱动。原创 2023-04-12 08:49:01 · 80 阅读 · 0 评论 -
Linux内核编译
编译完成以后就会在这个目录下生成一个叫做zImage的文件,zImage 就是我们要用的Linux镜像文件。另外也会在下生成很多.dtb文件,这些.dtb就是设备树文件。原创 2023-04-09 13:48:43 · 890 阅读 · 0 评论 -
uboot图形化配置及其原理
可以参考linux内核源码中的①、在主界面中添加一个名为“My test menu”,此菜单内部有一个配置项。②、配置项为“MY_TESTCONFIG”,此配置项处于菜单“My test menu”中。③、配置项的为变量类型为 bool,默认值为 y。④、配置项菜单名字为“This is my test config”原创 2023-03-31 19:37:40 · 440 阅读 · 0 评论 -
uboot顶层Makefile分析
编译后生成的目录结构其中的目录结构解释。原创 2023-03-31 15:55:39 · 211 阅读 · 0 评论 -
uboot编译-下载-命令
倒计时的时候按下键盘上的回车键,默认是 3 秒倒计时,在 3 秒倒计时结束以后如果没有按下回车键的话 uboot 就会使用默认参数来启动 Linux 内核。用于直接对 DRAM 进行读写操作的,常用的内存操作命令有 md、nm、 mm、mw、cp 和 cmp。设置tftp文件夹,,其名字分为“boot”和“cmd”,也就是“引导”和“命令”,说明这个环境变量保存着引导命令,其实就是。首先ubuntu中需要安装好nfs,并且新建nfs使用目录,将所有需要使用nfs访问的文件放到该目录下。原创 2023-03-31 14:40:21 · 391 阅读 · 0 评论