嵌入式Linux
文章平均质量分 79
Charming Sun
这个作者很懒,什么都没留下…
展开
-
以leds-gpio.c为例,浅谈device-tree、pinctrl和GPIO子系统
一、前言leds-gpio.c是内核源码drivers/leds/leds-gpio.c目录下的一个led驱动程序的例程(说明书位于Documentation/devicetree/bindings/leds/leds-gpio.txt),它使用了内核提供的led驱动框架(说明书位于Documentation/leds/leds-class.txt)。本文不具体分析led驱动框架,而是借由分析leds-gpio.ko模块的源文件leds-gpio.c来初步介绍一下device-tree、pinctrl和G原创 2022-03-27 07:54:28 · 3090 阅读 · 0 评论 -
以leds-gpio.c为例,浅谈class、bus和platform子系统
一、前言leds-gpio.c是内核源码drivers/leds/leds-gpio.c目录下的一个led驱动程序的例程(说明书位于Documentation/devicetree/bindings/leds/leds-gpio.txt),它使用了内核提供的led驱动框架(说明书位于Documentation/leds/leds-class.txt)。本文不具体分析led驱动框架,而是借由分析leds-gpio.ko模块的源文件leds-gpio.c来初步介绍一下class、bus和platform子系统原创 2022-03-27 07:50:07 · 1342 阅读 · 0 评论 -
Linux开发小贴士
查询并更改开发板上终端显示的列数(解决命令过长导致头部被尾部覆盖的问题):debian@beaglebone:~$ stty size24 80debian@beaglebone:~$ stty cols 160debian@beaglebone:~$ stty size24 160使用快捷键在终端中快速移动光标(以空格或标点符号分割单词)或冻结/解冻屏幕滚动:ctrl+a:移动光标到行首ctrl+e:移动光标到行尾ctrl+u:删除光标到命令行行首ctrl+k:删除光标到命..原创 2022-03-23 01:36:17 · 1488 阅读 · 0 评论 -
解析kobject、kobj_type和kset
一、kobject/sys目录(即sysfs虚拟文件系统)下的每一个目录项(包括子目录)都对应着一个kobject结构体实例,创建kobject结构体实例时需要指定目录名、上级kobject(可选)。include/linux/kobject.h:struct kobject { const char *name; struct list_head entry; struct kobject *parent; struct kset *kset; struct kobj_type *k原创 2022-03-23 01:25:44 · 2481 阅读 · 0 评论 -
为BeagleBone AI添加MPU6050加速度传感器的Linux驱动程序
一、修改设备树不要使用插件设备树更改pinmux,因为在很多板子上都无效,BeagleBone AI也不例外。首先对设备树作如下更改:将pinmux@1400节点的cape_pins_default子节点内的CTRL_CORE_PAD_VIN1A_D20(0x4a003544 - 0x4a000000 - 0x2000 - 0x1400 = 0x00000144)、CTRL_CORE_PAD_GPIO6_15(0x4a00368C - 0x4a000000 - 0x2000 - 0x1400 = 0x原创 2022-03-22 15:01:07 · 5773 阅读 · 1 评论 -
ARM ELF 镜像结构
ARM ELF 镜像结构参考链接:The structure of an ARM ELF image*注:虽然其它书籍或者文章把 “section” 翻译成“段”,但是这里为了不和 “segment” 相冲突,本文把 “section” 翻译成“节”。本文把 “link” 翻译成“连接”,也可理解为“链接”。 ELF 是 Executable and Linkable Format 的缩写,意为可原创 2016-11-09 04:26:54 · 2891 阅读 · 0 评论 -
MQTT协议应用:外网手机控制内网树莓派
实验目的:将外网手机发送的字符串使用树莓派的串口输出 不了解MQTT协议的请参考:MQTT协议体验 Mosquitto安装和使用 不了解使用Python操作树莓派串口的请参考:Raspberry Pi B的UART极简例程一、前期准备服务器安装好Mosquitto(MQTT代理软件);树莓派安装好Python(用来编写树莓派订阅代码),然后用pip安装paho-mqtt(实现了MQTT协议的原创 2016-04-04 16:19:21 · 9787 阅读 · 1 评论 -
编译mini2440的crosstool-NG和全志A20的Linux BSP(Buildroot)的心得
前言之前花了两个月时间用crosstool-NG编译出了mini2440的交叉编译工具链,后来又花了一个月时间编译全志A20的Linux BSP(使用Buildroot)。中间出了很多错误,也解决了很多错误,由于没有逐个记录下来,所以写一篇博客总结一下解决错误的一些思路。 主要过程是认真阅读编译日志、准确定位错误信息,然后根据错误信息自行解决,或者利用百度、谷歌搜索错误信息并找到解决方法。一、cr原创 2016-03-13 21:55:49 · 2144 阅读 · 2 评论 -
Raspberry Pi B的UART极简例程
一、安装WiringPi2-Python执行以下命令:sudo apt-get updatesudo apt-get install python-dev python-pipsudo pip install wiringpi2二、编辑Python代码创建如下Serial.py文件,并增加可执行权限:#!/usr/bin/env pythonimport wiringpiwiringpi.w原创 2016-03-13 21:06:37 · 2291 阅读 · 0 评论 -
The GNU build system体验教程:Hello world example with Autoconf and Automake
一、安装GNU构建系统在安装GNU构建系统之前先介绍四个软件包: Autoconf:生成configure配置脚本; Automake:生成makefile模板; Libtool:用可移植的方式编译无关位置的代码并且构建共享库; Autotoolset:生成各种模板文件帮助你开发出各种符合GNU代码风格的可移植的源码。输入以下命令以检查是否安装了最新的版本:$ autoconf --vers原创 2016-03-04 00:32:57 · 969 阅读 · 0 评论 -
Linux下使用J-link Commander烧写u-boot到NAND flash
1、将初始化SDRAM(内存)的程序烧写进片内4K的SRAM,并且使其运行;2、修改并编译已经移植好的u-boot的代码使其能够在SDRAM中运行,然后烧写进SDRAM使其运行;3、将需要烧写进NAND flash里的u-boot烧写到SDRAM中的另一地址;4、用u-boot命令行擦除NAND flash中的数据,并且将SDRAM中需要烧写进NAND flash里的u-boot复制进NAND flash;原创 2015-10-11 23:04:46 · 1549 阅读 · 0 评论