Blog

一遍用了千遍,千遍只为一遍

wsl搭建zephyr编译环境

简介 简单的记录下wsl下搭建zephyr编译环境的过程 配置环境 编译zephyr需要得到最小版本分别为 Tool Min.Version cmake 3.20.5 python 3.10 dtc ...

wsl升级python3版本

简介 介绍wsl怎么升级系统原生自动的python3版本,从python3.8.10到python3.10 升级python3 原始的系统版本是3.8.10 sudo add-apt-repository ppa:deadsnakes/ppa 添加apt源 选择敲回车键 更新一下 sudo apt update 查看是否有python3.10,这个...

wsl升级cmake

简介 在wsl上搭建zephyr环境的时候,需要升级cmake,特此记录一下 过程 获取cmake源码,这里选择的是3.23版本 sudo wget https://cmake.org/files/v3.23/cmake-3.23.0.tar.gz sudo tar -zxvf cmake-3.23.0.tar.gz 解压cmake源码后,进行配置 sudo ./con...

wsl访问宿主机代理上网

简介 一直以来在WSL里面进行代码开发,尤其是一些环境搭建,开源代码包下载的时候,因为网络问题,经常特别痛苦。WSL使用Windows的代理来上网,就可以解决这个问题。 过程 打开Windows上的代理,看个人喜好 编辑.wslconfig文件,路径如下 这是我原本的配置内容 然后修改为下面这样 - localhostForwarding=true + netw...

emmc的UDA分区enhance功能介绍

简介 主要研究下emmc中的UDA分区的enhance的用法,用的emmc芯片是三星的,芯片datasheet在参考链接有。 区域属性 emmc 标准中,支持为UDA 中一个特定大小的区域设定 Enhanced的属性。Enhanced attribute 的具体作用,由芯片制造商定义。 对于UDA分区来说,Enhanced attribute就是指Enhanced storage m...

树莓派开发(五)

I2C调试

简介 记录树莓派上baremetal调试I2C的一些点 协议 总览 I2C一个master可以接多个slave I2C总线使用两条线在master跟slave之间传输数据,SCL串行时钟线,SDA串行数据线 SCL跟SDA需要接上拉电阻,一般是4.7K,总线空闲时SCL和SDA处于高电平 标准模式...

debug,quiet,initcall_debug

bootargs参数

简介 简单演示下uboot设置内核loglevel的用法,以及结合initcall_debug参数的用法 用法 uboot的bootargs中设置debug,则内核启动过程中会把不小于debug等级的所有打印都显示出来,如果设置为quiet,除非是err信息,否则则不打印内核启动信息。但是所有的信息都会存在logbuf中,dmesg可以查看 而uboot的bootargs中设...

树莓派开发(四)

libc跟heap移植过程小小结

简介 主要说下baremetal的C库适配,分为两部分,一部分是libc,一部分是heap算法 编译 Makefile中增加-nostdlib选项,即可不使用编译工具链中自带的C库 libc libc是从ATF中移植的,参考的libc链接为,这里的重点就是printf的适配,以及相关的console结构体的适配 https://github.com/ARM-software/...

树莓派引导FIT格式的压缩kernel

简介 设置树莓派引导FIT镜像格式的linux,顺带验证FIT打包压缩的arm64的linux镜像 uboot配置 uboot需要打开CONFIG_FIT配置,然后剩下的其他的FIT配置会帮你自动勾上,就不操心了 kernel镜像打包 arm64 kernel默认只支持gzip压缩算法,产物有Image跟Image.gz 要打包FIT的镜像,我们需要由一个its文件来描述 ...

交叉编译libbpf

简介 简单介绍libbpf如何交叉编译,以及利用libbpf开发一个demo程序跑在arm64平台上,内核版本为6.6.42 环境依赖 克隆代码 git clone git@github.com:libbpf/libbpf-bootstrap.git git submodule update --init --recursive 升级llvm 在wsl上原本自己clan...