嵌入式Linux
文章平均质量分 62
夜雪-初霁
以时间换天分
展开
-
QT学习笔记
文章目录编译Qt应用以3个步骤进行编译qt助手信号与槽编译qmake会编译*.pro文件Qt应用以3个步骤进行编译编写.pro文件来描述要编译的项目使用qmake生成makefile该程序是使用制作(or nmake or jom on windows)构建的qt助手路径: /home/lxt/Qt5.14.2/5.14.2/gcc_64/bin/assistant信号与槽每次调用 connect 函数都会生成新的连接对象,注意不要对同样的信号和槽重复调用 connect原创 2021-06-01 21:48:20 · 384 阅读 · 2 评论 -
pcie_ssd命令
文章目录PCIE SSD查看硬盘信息测试写数据速度测试读数据速度格式化分区创建目录挂载分区PCIE SSD插上SSD后会出现设备:[root@RK356X:/]# ls /dev/nvme0*/dev/nvme0 /dev/nvme0n1 /dev/nvme0n1p1查看硬盘信息fdisk -l测试写数据速度fio -filename=/dev/nvme0n1p1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=原创 2021-06-01 21:46:46 · 382 阅读 · 1 评论 -
RK VOP设备树分析
文章目录平台环境VOP通路DSI/EDP/LVDS/RGB接口(以DSI举例)panellogo平台环境RK3566Linux4.19BuildrootVOP通路在vop节点下有vop_out: ports节点.vop_out: ports节点下分别有port@0 port@1 port@2节点,分别对应VOP0 VOP1 VOP2通道.port@0下有vp0_out_dsi0: endpoint@0、vp0_out_dsi1: endpoint@1、vp0_out_edp: endp原创 2021-05-14 13:55:09 · 5069 阅读 · 1 评论 -
linux内核去除git版本号
文章目录查看内核版本号除去git版本号去除+号查看内核版本号cat /proc/versionLinux version 4.19.172 (username@hostname) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05), GNU ld (Linaro_Binutils-2017.05) 2.27.0.20161019) #107 SMP Mon Apr 19 09:01:32 CST 2021除去git版本号在kernel中mak原创 2021-05-14 13:46:41 · 545 阅读 · 1 评论 -
firefly led驱动
系统加载后会寻找与设备树相关的驱动进行匹配。开发板上的LED灯在设备树中的leds节点中描述leds { compatible = "gpio-leds"; work { label = "firefly:blue:power"; linux,default-trigger = "ir-power-click";原创 2021-05-14 13:45:49 · 264 阅读 · 0 评论 -
Linux GPIO调试
文章目录查看已申请GPIO手动申请设置GPIO查看已申请GPIOcat /sys/kernel/debug/gpio手动申请设置GPIOecho 6 > /sys/class/gpio/exportls /sys/class/gpio/gpio6active_low device direction edge power subsystem uevent valuecd /sys/class/gpio/gpio6echo 0 > active_lowecho原创 2021-05-14 13:44:15 · 2681 阅读 · 0 评论 -
Linux4.19移植wifi驱动ap6356s
文章目录fireflyrk3399 linux4.19移植wifi驱动ap6356s修改设备树修改新内核配置在文件系统中创建路径拷贝固件并修改文件名编译打包烧写fireflyrk3399 linux4.19移植wifi驱动ap6356s修改设备树修改sdio相关节点;sdio-pwrseq,sdio等修改wireless-wlan相关节点修改sdio相关电源修改新内核配置make ARCH=arm64 menuconfig搜索/wl_rockchipSymbol: WL_ROC原创 2021-05-14 13:39:22 · 1989 阅读 · 0 评论 -
linux内核 printk打印等级记录
#define KERN_EMERG “<0>” /* system is unusable */#define KERN_ALERT “<1>” /* action must be taken immediately */#define KERN_CRIT “<2>” /* critical conditions */#define KERN_ERR “<3>” /* error conditions */#define原创 2021-04-29 22:11:02 · 167 阅读 · 0 评论 -
RPMB常用命令
RPMB常用命令UBOOTuboot读取TF卡目录/信息fatls mmc 1:1 /烧写keyfatload mmc 1:1 0x60000000 rpmbkey 20mmc rpmb key 0x60000000读取rpmb信息=> mmc rpmb read 0x61000000 0 1 MMC RPMB read: dev # 0, block # 0, count 1 ... 1 RPMB blocks read: OK=> md.b原创 2021-04-29 22:08:25 · 2617 阅读 · 1 评论 -
Linux RTC命令
RTC命令以下rtc0可能会是rtc1/查看日期时间cat /sys/class/rtc/rtc0/datecat /sys/class/rtc/rtc0/time设置定时开机echo +120 > /sys/class/rtc/rtc0/wakealarm 查看状态cat /proc/driver/rtc原创 2021-04-29 22:06:29 · 1916 阅读 · 0 评论 -
ARM Ubuntu系统多屏幕_触摸屏分屏定位
目录触摸屏定位例:开机启动触摸屏定位xinput命令查看TP的id //查看TP屏幕的ID号,为下部做准备。xrandr查看屏幕名字 //查看屏幕的显示的区域,在此能查看有一个屏幕在显示,屏幕的名字叫什么。xinput map-to-output {TP_id} {屏幕名字} //限定触摸屏幕的区域例:xinput map-to-output 11 DSI-1xinput map-to-output 7 HDMI-1开机启动对于firefly_ubuntu在原创 2021-04-29 21:49:40 · 1021 阅读 · 0 评论 -
rockchip buildroot wifibt
WIFI 测试常用命令启动服务wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.conf扫描周边APwpa_cli -i wlan0 -p /var/run/wpa_supplicant scanwpa_cli -i wlan0 -p /var/run/wpa_supplicant scan_resultswpa_cli -i wlan0 -p /var/run/wpa_supplicant scan && sle原创 2021-04-29 21:44:24 · 1044 阅读 · 0 评论 -
Linux时间管理和定时学习笔记
Linux时间管理和定时时间的概念时间的计量Linux系统中的时间管理Linux内核对时间的维护获取当前时间时间格式转换将时间转换为字符串指定格式的字符串获取高精度时间微秒纳秒Linux中的定时器相关APIinterval timerPOSIX timer时间的概念计算机中处处需要时间程序运行时间(音视频播放进度、下载、上传)系统日志logQQ、微信、短信聊天记录当前时间、上班时间、睡觉时间周期性做一些事情(杀毒、清理垃圾、软件升级更新)定时开关机OS调度:时间片、定时器时间分类原创 2021-04-23 23:00:24 · 218 阅读 · 0 评论 -
Linux多线程学习笔记
Linux多线程学习笔记多线程编程的概念有了进程,为什么还要多线程?多线程编程有哪些优点?多线程编程主要用在什么地方?进程、线程、协程Pthread线程库使用pthread库安装man手册程序的编译pthread常用APILinux与Windows的API创建一个线程:pthread_create线程的终止TIPS等待线程的终止JoinableUnjoinableAPI接口线程属性默认属性相关API函数线程调度与运行线程分类线程模型一对一模型多对一模型多对多模型Linux下的线程一对一线程模型LWP与普通用原创 2021-04-21 23:04:41 · 245 阅读 · 0 评论 -
Linux进程通信学习笔记
Linux进程通信学习笔记进程间通信进程的物理空间IPCIPC工具的分类通信同步异步通信不同IPC的应用场合无名管道:PIPELinux内核中的管道PIPE的内核层实现通信原理PIPE管道编程创建一个管道单向通信双向通信shell管道的实现基本流程和重定向功能dup函数和dup2函数SHELL管道的实现原理通过管道与shell命令进行通信popen函数读模式调用popen写模式调用popen通过管道同步进程管道缓冲区管道对应的内存缓冲区大小设置缓冲区大小PIPE通信特点命名管道:FIFO(named pip原创 2021-04-06 22:32:43 · 846 阅读 · 1 评论 -
Linux进程与终端学习笔记
Linux进程与终端学习笔记进程与程序的区别创建一个进程:fork子进程的运行子进程拷贝父进程执行一个二进制程序文件execvp函数exec函数簇exec函数簇命名规则写时复制(COW)与vfork一个新进程的诞生:虚拟空间一个新进程的诞生:物理空间一个新进程的诞生写时复制(copy-on-write)系统调用:vfork进程的退出终止当前进程exit函数exit函数背后atexit/on_exitTIPSreturn与exit的区别exit_group函数otherexit与_exit两者的区别_exit原创 2021-04-04 23:19:18 · 524 阅读 · 0 评论 -
Linux I/O缓存与内存映射
Linux I/O缓存与内存映射学习笔记计算机中的缓存I/O缓存页高速缓存内核中的缓冲区页缓存读流程写流程同步方式页缓存读写实验物理内存管理伙伴算法内存申请Linux虚拟地址空间页缓存的实现页缓存对象:属性页缓存对象:方法页缓存对象:物理页页缓存数据结构图读文件基本流程读文件示例写文件基本流程块设备驱动架构块缓存bio结构体块设备驱动架构块设备驱动用户空间的IO缓存用户空间的IO缓冲区系统调用的开销C标准库IO缓冲区FILE结构体文件读写流程三种模式自定义缓冲区Scatter-gather I/O(分散/聚原创 2021-04-04 16:52:42 · 301 阅读 · 0 评论 -
Linux文件IO编程学习笔记
Linux文件IO编程学习笔记文件的基本操作文件的打开open主参数副参数文件的关闭closeTIPS文件的创建文件的读写权限创建文件:open修改读写权限系统调用问题文件的读写函数基本函数ssize_t read (int fd, void *buf, size_t count);ssize_t write (int fd, const void *buf, size_t count);read函数解析write函数调用文件读写位置与定位改变文件位置指针改变文件偏移量文件空洞TIPS获取文件的属性信息文件原创 2021-04-02 23:48:53 · 308 阅读 · 0 评论 -
Linux文件系统学习笔记
Linux文件系统学习笔记文件的存储纯数据区元数据区文件索引节点 inode用来存储文件信息TIPSdata block数据块(逻辑块)TIPS超级块super block磁盘格式化物理格式化逻辑格式化不同的区段block group块组block groupgroup descriptor文件的存储分两部分纯数据区文件真正的数据存储区、基本存储单位为block元数据区文件属性:磁盘中的存储位置、文件长度等信息时间戳:创建时间、修改时间读写权限:使用read/write系统调用时,原创 2021-03-28 22:52:11 · 355 阅读 · 1 评论 -
# fireflyrk3399 linux4.19移植笔记
fireflyrk3399 linux4.19移植获取内核源码git clone ssh://XXXX.git把远程分支拉到本地 git fetch origin dev(dev为远程仓库的分支名)在本地创建分支dev并切换到该分支 git checkout -b dev(本地分支名称) origin/dev(远程分支名称)把某个分支上的内容都拉取到本地 git pull origin dev(远程分支名称)添加到RK的SDK用脚本进行编译将RK的SDK中的kernel目录修改为kern原创 2021-03-03 20:23:38 · 1643 阅读 · 2 评论 -
linux udev学习笔记
udevadm info查询sda的所有信息udevadm info --query=all --name=sdaudevadm info --query=all --name=mmcblk0p1udevadm info --query=path --name=mmcblk0p1查看mmcblk0p1的所有父设备一直到sysfs的根udevadm info --attribute-walk --name=/dev/mmcblk0p1 节点udevadm monitor打印输出接入设备原创 2021-02-28 20:22:07 · 184 阅读 · 0 评论 -
Linux Systemd 学习笔记
systemctlSystemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。查看 Systemd 的版本systemctl --version重启系统sudo systemctl reboot关闭系统,切断电源sudo systemctl poweroffCPU停止工作sudo systemctl halt暂停系统sudo systemctl suspend让系统进入冬眠状态sudo systemctl hibernate让系统进入交互式休眠状态sudo sys原创 2021-02-28 20:17:25 · 1061 阅读 · 1 评论 -
MIPI屏上电时序问题
MIPI屏上电时序问题问题现象:板子上电屏幕能显示,待机休眠后背光屏幕无图像.检查设备树初始化序列检查设备树上电延时检查LCD_EN,LCD_RST等端口申请和匹配使用示波器检查上电时序,最后发现设备树的电源管理部分regulator-always-on属性被设置,导致在mipi驱动中控制LCD电源开关无效,所以上电时序出现问题.去掉该属性即可....原创 2020-12-19 23:45:18 · 2527 阅读 · 1 评论 -
[RK3399] + [Android 9.0] + [汇顶GT911-V2.8驱动移植] + 触摸屏
[RK3399] + [Android 9.0] + [汇顶GT911-V2.8驱动移植]硬件部分设备树原厂提供的驱动源码硬件部分硬件上连接到I2C5注意上拉电阻GT911复位脚和中断脚注意上电时序会使得设备地址不同设备树&i2c5 { status = "okay"; i2c-scl-rising-time-ns = <140>; i2c-scl-falling-time-ns = <30>; clock-frequency = <100原创 2020-12-03 22:09:13 · 1780 阅读 · 0 评论 -
[RK3399] + [Android 9.0] MIPI屏
[RK3399] + [Android 9.0] MIPI屏MIPI接口背光控制电路设备树背光PWM结点dsi屏参通道和LOGO驱动部分MIPI接口背光控制电路设备树背光PWM结点backlight: backlight { status = "okay"; enable-gpios = <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; compatible = "pwm-backlight"; pwms = <&pwm0原创 2020-12-03 21:54:51 · 1947 阅读 · 0 评论 -
Linux驱动开发笔记目录
环境相关MIPI屏触摸IC原创 2020-11-22 09:35:05 · 174 阅读 · 0 评论 -
QEMU搭建U-Boot+Linux+NFS 环境 学习笔记
使用QEMU搭建U-Boot+Linux+NFS嵌入式开发环境QEMU简介使用QEMU的事情使用QEMU学习嵌入式的好处驱动开发技能搭建嵌入式基本开发环境基本环境Vmware+Ubuntu18.04Vmwaretools更新软件源安装uboot-tools代码编辑管理工具:git/vim交叉编译器:gcc-arm-linux-gnueabi交叉编译ABI和EABI安装QEMU安装环境自动安装手动编译安装QEMU支持的开发板ARM express开发板简介Vexpress系列开发板Vexpress系列支持的C原创 2020-10-30 00:03:40 · 2956 阅读 · 1 评论 -
内核打印调试printk学习笔记
内核打印调试printk学习笔记Printk打印格式与打印等级打印数据打印等级日志级别(loglevel)修改控制台打印等级控制台、终端和串口之间的关系终端(terminal)与控制台(console)控制台与串口嵌入式平台下的console查看和重映射伪终端Printk打印格式与打印等级打印数据打印数据格式(跟printf类似、不支持浮点型)打印指针%p:打印指针地址%pF:打印函数指针的函数名和偏移地址%pf:只打印函数指针的函数名,不打印偏移地址…原创 2020-10-26 15:14:57 · 2624 阅读 · 1 评论 -
printf学习笔记
printf学习笔记输出重定向流的概念程序输入或输出的一个连续的字节序列在C语言中,所有流均以文件的形式出现C语言中提供的5中标准流利用shell的I/O进行输出重定向在Linux下,文本流和二进制流是相同的流与文件的连接重定向符标准错误重定向为什么要进行重定向使用freopen重定向输入输出流打印文件名,函数名,行号ANSIC标准中的几个标准预定义宏C99新增的预定义宏使用printf插桩定位带来的问题解决行缓冲带来的延迟打印打印开关控制日志是有代价的C99标准对可变参数宏的支持打印等级控制内核打印等级原创 2020-10-22 23:08:12 · 158 阅读 · 0 评论 -
Autotools Makefile学习笔记
Autotools Makefile 学习笔记查看工具软件目录结构FlatShallowDeepAutotools自动创建Makefile流程使用autoscan扫描项目工程生成配置脚本configure将生成的configure.scan文件修改成configure.in(老版本)或configure.ac(新版本)修改configure.ac文件使用aclocal生成aclocal.m4文件使用autoconf生成配置脚本生成Makefile的通用规则文件Makefile.in手工编写Makefile.原创 2020-10-14 23:08:05 · 426 阅读 · 0 评论 -
Makefile学习笔记
目录Linux下编译CMakefile的用途Makefile的工作过程直接用GCC编译器进行编译使用Makefile进行编译与Windows下的IDE比较程序的编译与链接程序的存储与运行程序的编译和链接程序文件的分类查看文件头部信息 readelf查看文件类型 file动态库与静态库Makefile基本语法Makefile 文件的主要内容规则目标默认目标多目标多规则目标伪目标目标依赖打印(产生)依赖 gcc -M / gcc -MM模式匹配(通配符)隐式规则命令的执行并发执行命令使命令在同一进程执行条件执行原创 2020-10-06 00:36:14 · 267 阅读 · 0 评论 -
计算机三级嵌入式笔记
计算机三级嵌入式笔记ARM汇编指令LDR/STRLDR加载指令LDR伪指令ARM汇编指令LDR/STRARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。若想把数据从内存中某处读取到寄存器中,只能使用ldr:ldr r0, 0x12345678把0x12345678这个地址中的值存放到r0中mov不能实现这个功 能,mov只能在寄存...原创 2019-12-23 20:29:05 · 1785 阅读 · 0 评论 -
2440学习——设置系统时钟
流程设置LockTime变频锁定时间设置FCLK,HCLK,PCLK三者之间的比例设置FCLK与晶振输入频率(Fin)的倍数设置CPU工作于异步模式设置LockTime变频锁定时间设置LOCKTIME寄存器LOCKTIME(0x4C000000) = 0xFFFFFFFFldr r0, =0x4C000000 /* xy:伪指令 将地址写入寄存器中 /ldr r1, =0x...原创 2019-01-07 12:27:55 · 353 阅读 · 0 评论 -
嵌入式Linux Makefile 遇到的问题
arm-linux-ld -Ttext 0 -Tdata 0xee0此处 -Tdata 0xee0是将数据段开始存放地址指定在0xee0,因为程序编译出来数据段和代码段中间有空余部分,导致最终的bin文件很大,烧写要很长时间。使用这个要注意指定的存放地址,防止数据段将代码段覆盖...原创 2019-01-07 13:13:29 · 204 阅读 · 0 评论 -
ubuntu搭建nfs连接2440开发板问题
重启NFS服务卡死在Starting NFS kernel daemon搭建过程和解决方法建立在开发板和电脑虚拟机ping通的情况下1.sudo vi /etc/exports2.添加一句/home/xy/rootsystem *(rw,sync,no_root_squash,no_subtree_check)这句话表示被共享出去的文件目录其中:*:允许所有的网段访问,也可以使用...原创 2019-01-31 15:40:41 · 205 阅读 · 0 评论 -
2440 ping Ubuntu9.10
今天为了需要弄NFS所以需要将2440开发板和电脑上的虚拟机Ubuntu9.10 ping通,后面折腾了半天才弄好,我是用笔记本直接通过网线和开发板连接的,因为没有路由器。我的环境Windows10Ubuntu 9.102440开发板笔记本电脑连接方式:网线和开发板直连解决方法设置Windows物理网卡本地 IP 地址为静态IP(注:是物理网卡的ip地址不是无线网卡的后...原创 2019-01-31 11:49:22 · 322 阅读 · 0 评论 -
C语言从放弃到入门
目录重新了解C语言数据类型大小编译器与语言标准重新了解C语言数据类型大小编译器在给每个不同数据类型分配内存空间大小时与电脑所装操作系统位数(32位/64位)无关,与所用的编译器有关.内存的分配由编译器决定的而与运行的环境无关.编译器与语言标准各个编译器对C语言的标准不一样,不同的编译器对C语言标准的支持不一样,有的编译器仅支持C89标准,而有的编译器能支持C99标准.gcc编译器对C...原创 2019-09-09 13:49:05 · 5140 阅读 · 2 评论 -
Ubuntu18.04 Linux 入门学习笔记
目录Ubuntu Linux 入门学习笔记Ubuntu Linux 入门学习笔记lsb_release -a 查看Ubuntu版本uname -a 查看内核版本sudo passwd root 创建root用户su 切换到root账户输入密码后原本当前终端显示$的位置显示#su [用户名] 切换到对应用户...原创 2019-09-24 21:00:14 · 1771 阅读 · 0 评论 -
ARM汇编学习-1
.text.global _start.text 部分是处理器开始执行代码的地方,指定了后续编译出来的内容放在代码段【可执行】,是arm-gcc编译器的关键词。.global关键字用来让一个符号对链接器可见,可以供其他链接对象模块使用;告诉编译器后续跟的是一个全局可见的名字【可能是变量,也可以是函数名】.global _start 让 _start 符号成为可见的标识符,这样链接器就知道...原创 2019-01-04 12:06:06 · 234 阅读 · 2 评论