嵌入式移植专栏
文章平均质量分 57
专注分享嵌入式RISC soc 移植过程的点滴经验
CH_Qing
尚善若水,水善利万物,而不争!
展开
-
Linux battery 移植的相关概念
FullChargeCapacity(FCC): 充满后的电量,由于环境,温度,重点次数的影响,一般都比DesignCapacity 小。绝对充电状态可能,永远达不到100%,因为Design Capacity 是一个固定值,因为FCC 总会随着时间等因素缩减。相对充电状态总是从0% 到 100%, FCC 会随着充电次数,环境等因素逐渐递减。RelativeStateOfChage (RSOC): 相对充电状态。DesignCapacity: 设计电量,就是理论最大电量。原创 2023-05-04 18:58:35 · 1519 阅读 · 1 评论 -
LCD 显示问题分析
我们说的LCD 显示包括并口的LCD,串行的LVDS 接口的LCD,mipi 接口的LCD, 和edp 接口的LCD,甚至包括VGA,和HDMI。原创 2023-07-03 13:46:13 · 2841 阅读 · 0 评论 -
Linux 声卡调试
【代码】Linux 声卡调试。原创 2023-06-06 14:25:07 · 207 阅读 · 0 评论 -
关于CIS移植的一些基本概念
【代码】MIPI 摄像头的原理。原创 2023-01-18 15:25:30 · 3713 阅读 · 0 评论 -
Linux IIO 子系统简介
IIO 子系统系统框架。原创 2023-01-11 13:50:40 · 2377 阅读 · 0 评论 -
大话I2C与smbus 开发
说其I2C 的复杂传输协议,就是在一次I2C 传输协议里,可能包含上面的好几个简单I2C 传输(但不完全是简单的I2C传输协议), 只不过,他们只有一个stop bit 【P】。在平常的开发中,一直以为I2C & smbus 只是硬件上的差异,软件上基本没有什么差异,后来的开发中发现,其实两者还是有很多的差异。在这一次复杂的I2C 传输中,包含两个I2C 的简单传输帧,第一个是S Addr Rd [A] [Data] NA,第二个是 S Addr Wr [A] Data [A] P。原创 2022-10-25 14:33:19 · 3516 阅读 · 3 评论 -
查看BIOS 传递过来的acpi 表
sys/firmware/acpi/tables/下有很多种类的表,具体你得问BIOS 传递过来的是那个表。反编译BIOS 传递过来的acpi 表,原创 2022-08-29 15:52:26 · 648 阅读 · 0 评论 -
mfgtool/uuu 烧录android 后无法烧录uboot
使用mfg tool烧写android5.1的镜像之后,再使用旧版的mfg tool烧写linux或者android镜像,都不能正常启动,而且运行的uboot还是android5.1版本的uboot。emmc boot分区在同事的帮助下才知道emmc有boot1,boot2以及RPMB(Replay Protected Memory Block),GPAP(General Purpose Area Partitions,最多可以有4个),UDA(User Data Area)分区。而我们一般只知道UDA原创 2022-05-20 14:29:20 · 723 阅读 · 0 评论 -
大话kernel 移植
1. kernel的启动流程2. linux kernel 的设备驱动模型3. linux 设备树的移植4. linux 设备驱动4. kernel 的init 进程4. kernel 的debug 参数原创 2022-05-19 10:58:50 · 195 阅读 · 0 评论 -
大话uboot 移植
1. arm soc 的启动方式2. uboot 源码的基本结构3. 如何移植4. uboot 环境变量5. uboot 启动 boot_args & boot_command6. uboot 源码分析原创 2022-05-19 10:35:18 · 1410 阅读 · 0 评论 -
Debian 开发研究笔记记录
debian source codehttps://sources.debian.org/src/lxrandr/0.3.2-1/debian packagehttps://www.debian.org/distrib/packages其他shellTo know what has changed in the home folder:find ~/ -mmin -5 -type fYou can change 5 to a smaller number if you wish.In th原创 2022-05-13 15:15:27 · 375 阅读 · 0 评论 -
代码及其管理规范
1. C 代码基本规范2. golang 代码基本规范2.1 命名规范辞要达意类型/变量/函数命名驼峰命名法:CamelCase, camelCase文件夹/包/文件命名lowcase,命名简单,文件命名可以使用 蛇形 命名法。包&文件夹尽量用一个单词命名。2.2 代码缩进 & 空行代码缩进用tab缩进, 将tab键的设置为4个空格,避免出现另一个编辑器打开时格式变乱的情况。空行package foo -> im原创 2022-04-11 11:43:45 · 3065 阅读 · 0 评论 -
嵌入式题库整理
这里写自定义目录标题C 部分:linux 部分网络部分:硬件理解:编程部分:C 部分:int* p = (int*)malloc(sizeof(int)*2), sizeof(*p)= —— (考察对指针的理解)一个32 地址的内存,向0x12345678 地址写一个0x78654321 用C 语言如何实现 (考察指针对内存的基础操作)请描述static,volatile, 和const 在C语言中的含义和用法(C基础)请你描述C 编程中,堆和栈的区别?(考察堆和栈)在头文件中能否定义变原创 2021-11-08 13:12:15 · 821 阅读 · 0 评论 -
[OTA] 基于swupdate的OTA系统更新解决方案
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-10-22 23:52:32 · 4821 阅读 · 14 评论 -
Weston 添加虚拟键盘
/etc/xdg/weston/weston.ini[input-method]path=/usr/libexec/weston-keyboard[keyboard]keymap_rules=evdevkeymap_model=pc105keymap_layout=us,de,gbrepeat-rate=30repeat-delay=300原创 2021-08-10 19:06:16 · 1645 阅读 · 1 评论 -
4G/5G 模块测试与调试
mmcli --scan-modems<< successfully requested to scan devicesTo list detected cellular devices use command:mmcli --list-modems<< /org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] MC7455To acquire more device informati原创 2021-08-06 10:40:14 · 6458 阅读 · 5 评论 -
ARM64 Ubuntu 18.04 mirror
/etc/apt/sources.listdeb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic universedeb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates universedeb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic multiversedeb http://mirrors.ustc.edu.cn/ubuntu-por原创 2021-07-29 17:09:00 · 360 阅读 · 0 评论 -
repo manifest format
repo Manifest FormatA repo manifest describes the structure of a repo client; that isthe directories that are visible and where they should be obtainedfrom with git.The basic structure of a manifest is a bare Git repository holdinga single default.xml原创 2021-07-20 17:09:18 · 204 阅读 · 0 评论 -
Hardware video acceleration
https://wiki.archlinux.org/title/Hardware_video_acceleration#Comparison_tables原创 2021-07-20 09:49:24 · 165 阅读 · 0 评论 -
imx8 kernel drm source trace
drm_atomic_helper_commit_modeset_enables原创 2021-06-29 19:49:21 · 1086 阅读 · 0 评论 -
[yocto] wifi 移植使用手册
1. porting driver各个厂商有个各厂商的driver, 配置方式, 拿过来,照着porting guide 去porting okay 就行, 有什么问题,问厂商就行!2. 上层软件工具需求wpa_supplicant/iwdconnman/NetworkManagerwpa_supplicant是linux系统的最基础无线网卡管理程序,可以没有connman/NetworkManager, 但不能没有 wpa_supplicant。 因为没有它, 无线将无法链接& 管原创 2021-06-22 18:25:35 · 1091 阅读 · 0 评论 -
[yocto] bluetooth 移植使用手册
1. porting driver各个厂商有个各厂商的driver, 配置方式, 拿过来,照着porting guide 去porting okay 就行, 有什么问题,问厂商就行!2. 关于bluez5yocto 中有著名的connman,用于管理Ethernet, wifi,bluetooth,和VPN。但经过实测发现,yocto3.0 中的connman 并不能管理bt。(扫描不了)所以我们得使用更低层一点的组件-bluez5.zeus 默认搭载了bluez5, 它是linux蓝牙管理&am原创 2021-06-22 16:52:00 · 1900 阅读 · 2 评论 -
Make modules M <=> make modules SUBDIRS
这两个参数完全等价,在5.0 kernel 中, 似乎已经去掉了SUBDIRS 的部分。所以强烈建议换成 make M=# Use make M=dir to specify directory of external module to build# Old syntax make ... SUBDIRS=$PWD is still supported# Setting the environment variable KBUILD_EXTMOD take precedenceifdef SUB原创 2021-06-07 14:02:21 · 316 阅读 · 0 评论 -
[笔记] Yocto Base Knowledge
New BBFILES_DYNAMIC variable which allows activating layer content only when some other layers are present - i.e. allowing extension of content provided by other layers without creating hard dependencies原创 2021-06-03 10:59:34 · 354 阅读 · 0 评论 -
什么是MIT, GPL, LGPL, Apache协议?
原创 2021-05-27 09:04:20 · 968 阅读 · 0 评论 -
[Yocto]多个bbappend 文件存在时的情况
they are appended in order of BBFILE_PRIORITY defined in each layer’s layer.conf file e.g. a bbappend in layer with BBFILE_PRIORITY = 5will be appended before bbappend from another layer with BBFILE_PRIORIY = 6so in theory you can negate the effects of .原创 2021-05-24 14:56:36 · 1339 阅读 · 0 评论 -
yocto important link
layers.openembedded.org/layerindex/branch/master/recipes/原创 2021-04-08 23:14:01 · 84 阅读 · 0 评论 -
关于windows service 的一些基础知识
Service 程序是在后台悄悄运行的。我们通过将自己的程序登记为服务,可以使自己的程序不出现在任务管理器中,并且随系统启动而最先运行,随系统关闭而最后停止。 服务控制管理器是一个RPC 服务器,它显露了一组应用编程接口,程序员可以方便的编写程序来配置服务和控制远程服务器中服务程序。创建一个windows service 的流程基本如下:写一个service 程序, 在这里需要注意的是,service 程序和普通的程序是有区别的。 windows service 程序是由windows servi原创 2021-04-06 14:14:40 · 4021 阅读 · 0 评论 -
ARM平台性能大比拼
该文章使用unixbench 对作者使用开发过的平台,进行性能测评。用理论和数据告诉你那家ARM 强悍。1. AM3352单核A82. IMX6Q3. AM57xx4. RK3399(Dual core Cortex-A72 + Quard core Cortex-A53)------------------------------------------------------------------------Benchmark Run: Tue Jul 07 2020 10:32:1原创 2020-07-08 10:20:22 · 1998 阅读 · 0 评论 -
docker 移植的基本概念
本文的主要实践是将docker 移植到arm64 linux debian 上。通过总结,理论上你可以徒手将docker 移植到仍何一个嵌入式设备上。1. docker 的基本概念2. docker 的内核支持3. docker 移植的注意事项注解一:docker 为什么要使用/dev/mqueue ?Docker provides /dev/mqueue to containers because some applications require or take advantage of t原创 2020-06-23 10:18:20 · 969 阅读 · 0 评论 -
网卡PHY 移植注意事项
1. MAC 和PHY 的关系MAC 就是以太网控制器,属于OSI的数字链路层。 phy 属于OSI的物理层(Physical layer),所以叫phy. MAC主要处理的数字信号,PHY负责把MAC的数字信号进行编码,串行化等操作后,转化为模拟信号进行发送。PHY在数据接受时, 进行如上所述的逆操作,将模拟信号转化为数字信号,解码,并行化后,传给MAC。PHY 有一个重要的功能就是 自协商。 什么是自协商? 就是PHY一旦连入网络,PHY 会和它相连接的端口的PHY进行协商,当前通信使用的速率是原创 2020-06-04 15:32:07 · 3589 阅读 · 0 评论 -
RK3399 Boot from SD card
Booting from an SD card on RK3399=================================To write an image that boots from an SD card (assumed to be /dev/sdc):Option 1: Package the image with Rockchip miniloader: -...原创 2020-05-06 13:54:40 · 994 阅读 · 0 评论 -
Imx6 Set Network interface
如何设置IMX6 Yocto2.2 网络接口?Yocto2.2 的网络由connMan 管理,设置网络通过命令 connmanctl 进行。设置静态IP# 查看Service$ connmanctl services*AO Wired { ethernet_00142d269dfd_cable }# 设置静态IP 地址$ connmanctl co...原创 2020-04-12 22:42:00 · 406 阅读 · 0 评论 -
关于IMX双通道LVDS 的深入讲解
其实之前写过LCD/LVDS的一些时序的基本概念《与LCD移植相关的概念》。但后来发现还是不够全面。关于双通道LVDS,可能会有很多人有一些陌生,它是什么原理? 有什么作用? 时序如何设定? 接下来, 就让我们带着这些问题去阅读下面的文章吧! 1. IMX LDB桥对LVDS 的支持情况:让我们先看一张imx6 TRM 中的图.IMX6 LVDS 桥提供两个LVDS通道, 或许...原创 2018-07-20 10:59:37 · 12350 阅读 · 8 评论 -
u-boot 之u-boot.img uboot.bin uboot_crc.bin 及 uboot_crc.bin.crc
编译uboot会生成很多image: u-boot.img uboot.bin uboot_crc.bin 及 uboot_crc.bin.crc 。 这些image文件有哪些区别和联系, 我们将做以下详细分析: 1. u-boot.bin 是u-boot 编译生成的原始的image 文件, 很多image 文件的生成都需要依赖于它。2. u-boot.img 它是给u-boot.b原创 2017-10-17 11:04:33 · 5790 阅读 · 1 评论 -
从tty到uart层,分析uart数据流程(一)
(本文分析基于linux3.2.0)关于Uart 和tty的关系,在此不必多谈,总之uart driver 是基于tty实现!下面我们直指主题:一. tty层的架构 关于tty层的架构,这个图是最好的描述: 其中读,写数据必须先通过line discipline,然后通过line discipline将数据分别交付给tty_core层或tty_d原创 2015-03-10 09:24:11 · 4104 阅读 · 1 评论 -
从tty到uart层,分析uart数据流程(二)
上一节中,我们主要了解了uart的一些重要的数据结构,和uart的发送数据的流程。下来我们会分析uart接受数据的流程,和发送比较起来,收流程更加复杂一点!关于发送流程,我们会从底层一步一步分析,知道tty core层。原创 2015-03-10 20:04:21 · 3374 阅读 · 1 评论 -
关于uboot的CONFIG_SPL_BUILD宏的一个小知识点
我们知道uboot分为BL0, BL1, BL2。其中BL0就是我们常说的ROM Code。BL1就是我们常说的SPL1,BL2就是我们常说的狭义的uboot。其中SPL 和uboot共用一个源码体系。他们之间的产生是通过一个重要的宏CONFIG_SPL_BUILD来在源码中分开的。 有一个问题很重要问题,在uboot源码中,经常会看到这些片段#if defined(CONFIG_SPL_BUIL原创 2015-08-21 13:39:30 · 5065 阅读 · 0 评论 -
Linux设备树笔记
设备述概念: http://www.wowotech.net/linux_kenrel/dt_basic_concept.html 设备树流程分析: http://blog.csdn.net/mrwangwang/article/details/36181131原创 2016-03-30 21:51:40 · 747 阅读 · 0 评论 -
VGA 分辨率参数
[1] = { .name = "INNOLUX_VGA_800x600@60", .width = 800, .height = 600, .hfp = 50, .hbp = 179, .hsw = 27, .vfp = 1, .vbp = 24, .vsw = 3, .pxl_clk = 40000000,原创 2016-08-16 14:40:02 · 3489 阅读 · 0 评论