嵌入式系统
星空语
linux驱动开发
展开
-
adb: error: 46-byte write failed: Invalid argument
adb push fail问题解决方法记录原创 2023-10-23 14:22:07 · 736 阅读 · 0 评论 -
linux字符设备和块设备的区别 以及网络设备
2、块设备对I/0请求有对应的缓冲区,因此他们可以选择以什么样的顺序进行响应。对于存储设备而言,调整读写的顺序作用巨大,因为读写连续的扇区的读写速度比分离的扇区更快。1、字符设备以字节为单位。大多数设备是字符设备,因为他们不需要缓冲而且不以固定块大小进行操作。4、块设备工作于VFS(虚拟文件系统)之下。1、块设备只能以块为单位接受输入和输出。2、字符设备无需缓冲直接读写。3、字符设备只能被顺序读写。3、块设备可以随机访问。原创 2023-03-11 18:50:52 · 982 阅读 · 0 评论 -
DMA cache一致性怎么保持(修改中)
(1)在向内传输(rx)时,DMA设备将数据写入内存后,DMAC将向CPU发出中断请求,在RX ISR中使用该内存之前,需要先InvalidateD-Cache(sync_single_for_cpu)使cache无效重填(refill),此时CPU通过高速缓存cache获得的才是最新的数据。CPU的读/写用的是不同的cache(读用的是cache,写则用的是write buffer),所以建立流式DMA映射需要指明数据在DMA通道中的流向,以便由内核决定是操作cache还是write buffer。原创 2023-03-08 23:56:49 · 389 阅读 · 0 评论 -
MMU作用及Cache作用
2、TTW(Translation Table Walk):即转换表漫游,当TLB中没有缓冲对应的地址转换关系时,需要通过通过对内存中转换页表(大多数处理器的转换为多级页表)的访问来获得虚拟地址和物理地址的对应关系.TTW成功后,结果写入TLB中。1、TLB(Translation Lookside Buffer):即转换旁路缓存,TLB时MMU的核心部件,它缓存少量的虚拟地址和物理地址的转换关系,是转换表的cache,因此也经常被成为“快表”。原创 2023-03-02 23:34:48 · 266 阅读 · 0 评论 -
g2d 作用
【代码】g2d 作用。原创 2023-02-28 18:22:05 · 362 阅读 · 0 评论 -
如何唤醒 wait_event_interruptible()
线程1通过系统调用进入内核,后调用wake_up_interruptible等待唤醒事件,当事件不满足条件时,线程1进入休眠状态。中断或其他线程任务事件满足条件时,调用wait_event_interruptible,唤醒等待在wait_queue_head上的线程1。如果两个线程调用wait_event_interruptible(test,condition)阻塞休眠,一个中断调用wake_up_interruptible(test)但是并没有设置condition为1,会怎么样?原创 2023-02-28 17:04:46 · 293 阅读 · 0 评论 -
硅麦驱动开发及调试(pdm>>I2S>>pcm)
硅麦mic驱动开发原创 2022-11-17 15:57:47 · 1842 阅读 · 0 评论 -
source insight 绿色护眼主题&暗色护眼主题
效果如下:主题下载地址:链接:https://pan.baidu.com/s/1aSkQOo70nr498hf_wHN4Jw提取码:f3f6–来自百度网盘超级会员V5的分享原创 2021-10-09 10:44:03 · 1589 阅读 · 3 评论 -
2021-07-16
linux下通过sysfs操作GPIO以GPIO_57 GPIO_58为例执行如下操作:1)通知系统需要导出控制的GPIO引脚编号:echo 58 > /sys/class/gpio/exportecho 57 > /sys/class/gpio/export2)设置引脚的输出/输入状态,和输出输入高低电平echo out > /sys/class/gpio/gpio58/directionecho out > /sys/class/gpio/gpio57/direc原创 2021-07-16 11:23:23 · 64 阅读 · 0 评论 -
writel原理
内核里面writel(readl)是如何实现的writel和readl,这两个个函数实现在操作系统层,有内存保护的情况下,往一个寄存器或者内存地址写一个数据。先说一下writel:在arch/alpha/kernel/io.c中有188 void writel(u32 b, volatile void __iomem *addr)189 {190 __raw_writel(b, addr);191 mb();192 }这样一个writel函数的作用应该是向一个地址上写一个值转载 2021-03-11 16:27:38 · 2522 阅读 · 0 评论 -
yocto详解
参考:1、https://www.yoctoproject.org/docs/2.1/mega-manual/mega-manual.html#creating-a-general-layer-using-the-yocto-layer-script原创 2020-11-03 14:47:58 · 127 阅读 · 0 评论 -
SecureCRT如何自动保存log 并带主机类型和时间
##1、 在选项里选择全局配置2、全局配置里选择默认配置(以后不需要重新修改)原创 2020-08-14 19:20:33 · 768 阅读 · 1 评论 -
yocto syslog配置深入解析
1、 配置完成的结果1、配置完成后/etc目录下会有syslog.conf文件2、配置完成后/var/log下可以看到logfile,size最大为2048k,可以缓存两个副本2、配置及过程解析1、首先看syslog的源码yocto/build/downloads/busybox-1.29.2.tar.bz2软件包里,解压后可以看到:/build/downloads/busybox-1.29.2/sysklogd/syslogd.cstatic const struct init_glob原创 2020-08-14 18:37:49 · 1476 阅读 · 0 评论 -
基于Yocto和Buildroot平台的Syslog 配置
2. Syslog简介2.1. 简介在Unix类操作系统上,syslog广泛应用于系统日志,负责记录内核和应用程序产生的日志信息。syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器。接收syslog的服务器可以对多个设备的syslog消息进行统一的存储,或者解析其中的内容做相应的处理。常见的应用场景是网络管理工具、安全管理系统、日志审计系统。2.2. 日志格式规定syslog消息的UDP报文不能超过1024字节,并且全部由可打印的字符组成。完整的syslog消息原创 2020-08-07 10:18:44 · 1164 阅读 · 0 评论 -
syslog信息打印到控制台 无法打印到文件的问题解决
如下图所示,这些信息在配置完syslog后应该打印到/var/log/messages,但是却全部输出到控制台,(至于怎么配置syslog,请参考https://blog.csdn.net/sssddd12345_/article/details/105561142)输入make menuconfig选中如下配置70)保存后依次执行make savedefconfig,make clean && make重新编译后烧写,发现syslog信息被发送到指定文件.原创 2020-07-07 18:29:31 · 1500 阅读 · 2 评论 -
“kernel is not clean, please run make mrproper ” 的解决办法
遇见如下问题:make[2]: *** [prepare3] Error 1make[2]: *** 正在等待未完成的任务....package/pkg-generic.mk:238: recipe for target '/home/sunhelong/work/buildbetter/buildroot/output/build/linux-custom/.stamp_built' failedmake[1]: *** [/home/sunhelong/work/buildbetter/buil原创 2020-05-25 17:23:02 · 816 阅读 · 0 评论 -
linux支持 zImage rootfs dtb 剥离 及 zImage和dtb拼接
1.1. 选择bootz模式启动zImage内核之前选择bootm模式启动boot.im,boot.img带有its格式的header,需要根据header去header。现在直接启动zImage,需要通过do bootz()函数启动。方式如下:1.1.1. 在uboot目下执行make menuconfig,选中bootz1.1.2. 选中Command line interface —> Boot commands —> bootz1.1.3. 选中Enable a defa原创 2020-05-25 17:01:41 · 3254 阅读 · 0 评论 -
linux内核驱动学习路线
学习路线linux学习路线linux驱动开发操作系统要求① 懂硬件知识才能看懂电路图② 英文好会看芯片手册③ 有编写、移植驱动程序的能力④ 对操作系统本身有一定的理解,才能解决各类疑难问题⑤ 理解Android内部机制⑥ 懂汇编、C语言、C++、JAVA缺点① 这行的入门,绝对需要半年以上,即使全天学习也要半年。② 它的职位,绝对比APP的职位少③ 并且你没有1、2年经...原创 2020-04-15 16:36:11 · 2954 阅读 · 1 评论 -
WIN10超级终端下载链接及使用教程
地址见文末。1.直接运行,随便命名2选择连接的COM口3 选择对应的波特率 ,我的是115200,数据流控制选择无4点击应用,给开发板上电即可地址:https://pan.baidu.com/s/194b_UBLHRsf9VCnzIkATwA&shfl=sharepset提取码:4e4b...原创 2019-10-18 15:49:02 · 15301 阅读 · 20 评论