- 博客(7)
- 收藏
- 关注
原创 uboot阶段armv8处理器多核启动
为了提升uboot阶段并行化效率,希望在uboot中使用另外一个CPU CORE执行函数,加快系统启动时间。只要core0和core1两个CPU并发起来,暂时不考虑CPU之间的同步与竞争。1. X0~X7参数和结果寄存器,用于参数传递、返回结果,也可用作临时寄存器或调用者保护的寄存器。2. X9~X15调用者保护寄存器:如果函数调用者用到了这些寄存器,在调用函数之前,需要将这些寄存器压栈,函数返回后再从栈中恢复。3. X19~X28:被调用者保护寄存。4. 具有特殊用途的寄存器armv8将cpu分为
2022-05-07 15:48:59 2097
原创 Linux 驱动入门-platform框架+gpio+中断
Linux platform框架下的驱动编程Platform框架是Linux中极为重要的驱动框架,绝大部分驱动都可以按照platform来加载/调试。gpio、pinctl和中断是不同的子系统,不同soc厂商,实现方法可能不相同,所以尽可能地按照原有的dts描述来写dts。先写好设备树直接在根目录下添加"key"节点: key { compatible = "alientek,key"; #这个是匹配属性,驱动就是根据这个字符串来决定加载哪个驱动 status
2022-04-26 14:05:30 1262
原创 Linux动态链接库
··· Linux下动态链接库(.so)类比于windows下的dll,动态链接库特点是:不参与编译,只在程序运行时调用至内存。 注意:so一定要以lib开头,比如编译为:lib_xxxx.so,则调用时为:-l_xxxx(小写L,去掉lib头和so尾)1.1 创建so将./lib/src文件夹下的liba.c libb.c 文件编译成so:$ gcc a.c liba.c libb.c -fPIC -shared -o lib_my.so其中:-shared 指定生成动态链接库
2022-04-25 18:58:51 2883
原创 Linux 单独编译驱动模块(ko文件)
0 背景调试内核模块时,不想每次都要整个工程一起编译,只想编译单独的ko文件,也不影响模块间的依赖关系(会修改mod.depend信息)。1 确认必要的环境变量创建env.sh文件,并chmod +x env.sh#!/bin/bashfunction runcmd(){ if [ $# -ne 1 ];then echo "Usage: runcmd command_string" exit 1 fi echo "$1" $1
2022-02-16 15:46:44 9358 5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人