嵌入式
文章平均质量分 76
_阿桂_
熊,野生的,不能圈养
展开
-
瑞芯微rk3568移植openbmc(六)----关于novnc和vnc音频传输
修改novnc,添加音频和视频编码,合入openbmc原创 2023-04-24 14:01:01 · 1744 阅读 · 6 评论 -
瑞芯微rk3568移植openbmc(四)----关于novnc h264 webcodec硬解码
关于novnc h264 浏览器硬解码原创 2022-11-14 11:00:53 · 1682 阅读 · 3 评论 -
瑞芯微rk3568移植openbmc(三)----关于novnc h264 webassembly软解码
基于rock3a的单板,CPU为瑞芯微rk3568的环境,移植了openbmc原创 2022-11-04 23:02:02 · 1474 阅读 · 0 评论 -
瑞芯微rk3568移植openbmc(二)----关于vnc h264软解码及U盘挂载和文件传输
基于rock3a的单板,CPU为瑞芯微rk3568的环境,移植了openbmc原创 2022-11-04 22:13:32 · 2297 阅读 · 2 评论 -
瑞芯微rk3568移植openbmc(一)----关于ob移植的优缺点
基于rock3a的单板,CPU为瑞芯微rk3568的环境,移植了openbmc原创 2022-06-15 17:18:00 · 4089 阅读 · 58 评论 -
电源监控芯片UCD90xxx上电压电流的表示方法
原文:https://blog.csdn.net/ambercctv/article/details/52652902 PMBus定义了三种数据的表示方法:1)线性表示法,又LineAR16和LineAR11两种2)直接表示法在UCD90120上支持的LineAR16和LineAR11两种表示电压时使用LineAR16而表示电流时使用LineAR11,PMBus寄存器的VOUT...转载 2018-11-23 10:26:05 · 1166 阅读 · 0 评论 -
initramfs 的解压和打包
initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前,boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd 的情况下,内核启动被分成了两个阶...转载 2018-10-27 21:27:44 · 3230 阅读 · 1 评论 -
linux-详细解析密码文件passwd与shadow
输入命令:head -n 4 /etc/passwd输出:root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/sh以:隔开,相应的字段含义如下:用户名: 密码 : uid : gid :用户描...转载 2018-10-23 15:44:03 · 848 阅读 · 0 评论 -
X86系统中EAX、ECX、EDX、EBX寄存器的作用
转自:https://www.cnblogs.com/qq78292959/archive/2012/07/20/2600865.html 一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器E...转载 2018-09-13 18:32:56 · 1974 阅读 · 0 评论 -
汇编cmp比较指令详解
刚刚看到了cmp指令,一开始有点晕。后来上网找了些资料,终于看明白了,为了方便初学者,我就简单写下我的思路吧。高手绕过,谢谢! cmp(compare)指令进行比较两个操作数的大小 例:cmp oprd1,oprd2 为第一个操作减去第二个操作数,但不影响第两个操作数的值,它影响flag的CF,ZF,OF,AF,PF. ...转载 2018-09-12 18:23:12 · 124658 阅读 · 11 评论 -
两种形式的dma 实现memory copy代码
原文:https://blog.csdn.net/u012769691/article/details/46814305 在飞思卡尔的时候,需要用SDMA实现内存到内存memory copy的功能,需要做两部分的工作:1:在DMA controller中加入M2M的支持。2:写一个驱动来调用DMA controller的M2M功能。上面的2实际上对于不同的SoC来讲,思路是一样的,...转载 2018-11-30 10:49:51 · 559 阅读 · 0 评论 -
DMA驱动测试代码
转载:http://www.bubuko.com/infodetail-931408.htmlDMA传输可以是内存到内存、内存到外设和外设到内存。这里的代码通过dma驱动实现了内存到内存的数据传输。/*Function description:When we call dmatest_read(),it will transmit src memory datato dst memo...转载 2018-11-30 10:51:42 · 466 阅读 · 0 评论 -
DMA驱动
原文:https://blog.csdn.net/heliangbin87/article/details/81530448 dmaengine framwork主要分为两部分:DMA controller 和DMA engine API。涉及内核相关文档:Documentation/damengine目录、Documentation/devicetree...转载 2018-11-30 10:54:46 · 1527 阅读 · 0 评论 -
SATA 硬盘/SSD温度读取
目前SATA硬盘温度读取都是通过SMART协议来读取,当前可利用的开源工具有两个:1、hddtemp工具: hddtemp是专门读取sata硬盘温度的工具,如果只需要知道硬盘的温度,此工具足以。 该工具小巧玲珑,而且不需要依赖第三方库,可以直接使用,缺点:如果是自己的的代码需要知道硬盘温度,不能直接调用hddtemp接口。使用...原创 2019-01-24 10:27:25 · 6651 阅读 · 0 评论 -
打开/dev/mem设备,mmap后读写寄存器报Segmentation fault
通常读写某个寄存器的操作如下:fd = open("/dev/mem", O_RDWR|O_SYNC);if (fd == -1){ printf("open err!\n"); return (-1);}map_base = mmap(NULL, mem_length, PROT_READ|PROT_WRITE, MAP_SHARED, fd, base_add...原创 2019-03-07 17:19:44 · 2950 阅读 · 2 评论 -
emmc 分区管理
eMMC 分区管理Partitions OvervieweMMC 标准中,将内部的 Flash Memory 划分为 4 类区域,最多可以支持 8 个硬件分区,如下图所示:概述一般情况下,Boot Area Partitions 和 RPMB Partition 的容量大小通常都为 4MB,部分芯片厂家也会提供配置的机会。General Purpose Partitions (GPP) ...转载 2019-04-24 15:02:32 · 395 阅读 · 0 评论 -
Intel网卡i210升级iPXE固件
0、前言 目前ipxe编译的固件为rom或mrom格式,但intel官方工具支持支flb格式升级,因此需要将rom转换为flb格式。当前intel并没有提供rom转flb的工具,因此自己折腾了个升级步骤成功升级iPXE固件。1、下载ipxe源码https://git.ipxe.org/ipxe.git/tree2、查看当前网卡的pci venderID...原创 2019-09-21 15:06:48 · 8001 阅读 · 2 评论 -
Linux交叉编译dropbear使能SSH
最近项目需要用到armv8 cpu的嵌入式精简的文件系统,但是busybox生成的文件系统只支持telnet,不支持ssh连接,而openssh的库又很大,不符合精简文件系统,想到了轻量级的dropbear,下面就编译dropbear的步骤和遇到的问题进行一下说明。 编译准备:目标环境: NXP的armv8交叉编译链:aarch64-fsl-linux-gcc工具...原创 2018-08-31 14:38:51 · 3071 阅读 · 3 评论 -
标准9针串口引脚定义
本文转载于:http://book.51cto.com/art/201308/408900.htm 3.3.1.1 标准9针串口引脚定义从前面的内容中,知道了串口外形,就可以继续了解其每个引脚的定义,这是做线的基础。无论是RS-232C、RS-422,还是RS-485,串口接口的外形、尺寸都是相同的,部件间可以通用互换,但其引脚的定义却各不相同,因此要了解串口做线,首先要知道串口各引脚...转载 2018-08-27 15:36:43 · 1484 阅读 · 0 评论 -
mtd-utils工具的编译和使用
一、下载源码包并解压root@:/home/# wget ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-1.0.0.tar.bz2root@:/home/# wget http://www.zlib.net/zlib-1.2.3.tar.gzroot@:/home/# wget http://www.oberhumer.com/open转载 2016-06-16 14:18:11 · 4685 阅读 · 0 评论 -
linux网络设备—PHY
原文:http://blog.csdn.net/orz415678659/article/details/9370813一.结构体1.PHY设备[cpp] view plaincopystruct phy_device { struct phy_driver *drv; //PHY设备驱动转载 2016-01-11 16:59:43 · 726 阅读 · 0 评论 -
linux网络设备—mdio总线
一.结构体[cpp] view plaincopystruct mii_bus { const char *name; //总线名 char id[MII_BUS_ID_SIZE]; //id void *priv; //私有数据 int (*read)(struct mii_bus *转载 2016-01-11 11:01:22 · 815 阅读 · 0 评论 -
Linux 下smi/mdio总线通信
Linux 下smi/mdio总线通信韩大卫@吉林师范大学下面代码描述了在用户层访问smi/mdio总线, 读写phy芯片寄存器的通用代码。Linux内核2.6以上通用。将下面代码编译后,将可执行文件a.out 重命名为mdiomdio eth0 1 读取phy寄存器1的数值mdio eth0 0 0x1120 将0x1120写入 phy寄存器1eth0 为mac层转载 2016-01-11 10:57:02 · 676 阅读 · 0 评论 -
用mkfs.jffs2 命令制作jffs2镜像文件 (转)
下载:ftp://sources.redhat.com/pub/jffs2/mkfs.jffs2或者使用命令:apt-get install mtd-utils命令使用实例:mkfs.jffs2 -s 0x1000 -e 0x40000 -p 0x500000 -d rootfs/ -o jffs2.img说明:页大小0x1000转载 2014-05-07 00:01:04 · 374 阅读 · 0 评论 -
Android G1的nand分区情况
今天研究了一下Android G1的nand分区情况。由于底层研发的习惯,我先看了看文件系统在Nand Flash中的分布情况:我在Ubuntu下使用adb连接了G1,然后:# cat /proc/mtddev: size erasesize namemtd0: 00040000 00020000 "misc"mtd1: 00500000 00020000转载 2014-05-07 00:04:22 · 348 阅读 · 0 评论 -
交叉编译VIM并移植到ARM嵌入式Linux系统
一、编译环境:Host机:ubuntu-16.10(32bit)Target:arm 交叉工具链:arm-linux-gnueabi-gcc 工具包: vim-7.4.tar.bz2 ncurses-5.9.tar.gzvim下载地址:ftp://ftp原创 2017-06-27 10:56:21 · 2171 阅读 · 6 评论 -
交叉编译samba服务器
1、 使用samba-3.3.16.tar.gz源代码;2、 解压后在source目录执行:./configure--target=arm-linux-gnueabi --host=i686 samba_cv_CC_NEGATIVE_ENUM_VALUES=yesmakearm-linux-gnueabi-stripbin/*编译后的文件位于 source/bin目录,目标单板原创 2017-06-27 10:29:57 · 3270 阅读 · 0 评论 -
编译UPX加壳工具
编译UPX加壳软件下载相关软件Upx软件:https://github.com/upx/upx/releases/download/v3.94/upx-3.94-src.tar.xzLzma包:https://github.com/upx/upx-lzma-sdk/archive/v3.94.tar.gzUcl软件:http://mirrors.aliyun.com/ubuntu/原创 2017-09-29 08:44:30 · 2011 阅读 · 0 评论 -
Linux C程序中获取shell脚本输出(如获取system命令输出)
转载自 http://blog.csdn.net/hjxhjh/article/details/79095181. 前言Unix 界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个 ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序...转载 2018-04-02 14:14:31 · 1291 阅读 · 0 评论 -
Screen 加载用户配置
转载:https://blog.csdn.net/yasaken/article/details/7418583在使用screen的时候,相信不少同学碰到过这样的问题:使用screen启动一个新窗口之后,之前shell配置文件(比如:~/.bashrc)里定义的变量和alias全部失效。自己不得不使用“. ~/bashrc”又重新加载一遍配置,就这样,启动一个窗口,手动加载一次,非常繁琐麻烦。解决...转载 2018-04-03 16:41:57 · 372 阅读 · 0 评论 -
获取mmc 的ext_CSD寄存器值
以获取fw_version为例,也就是获取ext_CSD[261:254]的值:kernel/include/linux/mmc/card.hstruct mmc_ext_csd{+u8 raw_fw_version[8]; /*254 - 8bytes*/} kernel/include/linux/mmc/mmc.h+#define EXT_CSD_FW_VER 254 /* RO 8byte...转载 2018-05-14 19:03:27 · 5525 阅读 · 0 评论 -
ARM 命名规则、架构
处理器的命名应该包含两类:指令集架构命名规则和处理器系列规则。 可以先来看一张简图: 可见:架构的命名比较规则从ARMv1到ARMv8,数字越大越先进。但是处理器系列的命名就比较混乱了,因此接下来以架构的顺序来介绍ARM的历史:(1)ARMv1、ARMv2 这两代没有做CPU,没有商业化;(2)ARMv3 对应的 CPU 是 ARM6;(3)ARMv4 首次增加 Th...转载 2018-06-11 17:25:38 · 936 阅读 · 0 评论 -
arm64(aarch64)安装centos 7.5.1804
总体说明Arm64的centos版本自7.5.1804以后不再和7.4、7.3、7.2等之前的一样直接提供一个rootfs.tar.xz的压缩包,全部变成了ISO的安装文件,因此需要EFI来引导安装,如果Aarch64的cpu用的是uboot就只有干瞪眼了,笔者花了一翻功夫,终于找到如何从ISO中提取出centos 7.5.1804文件系统的方法,方便使用uboot的用户可以使用centos7....原创 2018-06-29 15:12:27 · 50143 阅读 · 45 评论 -
vim中的查找和替换
转载:https://www.cnblogs.com/huxinga/p/7942194.html1,查找在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。Vim查找支持正则表达式,例如/vim$匹配行尾的"vim"。 需要查找特殊字符需要转义,例如/vim\$匹配"vim$"。2,大小写敏感查找在查找模式中加...转载 2018-06-29 16:38:49 · 198 阅读 · 0 评论 -
Linux内核中_IO,_IOR,_IOW,_IOWR宏的用法与解析
在驱动程序里, ioctl() 函数上传送的变量 cmd 是应用程序用于区别设备驱动程序请求处理内容的值。cmd除了可区别数字外,还包含有助于处理的几种相应信息。 cmd的大小为 32位,共分 4 个域: bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。 bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量...转载 2018-07-18 12:02:18 · 231 阅读 · 0 评论 -
Linux内核使用ioctl函数实现用户态命令
转载自:https://blog.csdn.net/mumufan05/article/details/50507391驱动程序:/******************************** * GPIO驱动程序控制GPIO接口高低电平 * 基于gpio库,四个GPIO识别为一个设备 * 使用miscdevice结构体动态分配设备号,自动创建/dev/文件 * 使用ioct...转载 2018-07-18 12:05:35 · 725 阅读 · 0 评论 -
实例解析linux内核I2C体系结构
一、概述谈到在linux系统下编写I2C驱动,目前主要有两种方式,一种是把I2C设备当作一个普通的字符设备来处理,另一种是利用linux I2C驱动体系结构来完成。下面比较下这两种驱动。第一种方法的好处(对应第二种方法的劣势)有: ● 思路比较直接,不需要花时间去了解linux内核中复杂的I2C子系统的操作方法。第一种方法问题(对应第二种方法的好处)转载 2016-08-15 11:13:41 · 453 阅读 · 0 评论