分类 Linux 中的文章

strace 实例分析

例子 test1.c #include <stdio.h> int main(int argc, char **argv) { printf("hello world\n"); return 0; } $ strace ./test1.out execve("./test1.out", ["./test1.out"], 0x7ffd55864680 /* 62 vars */) = 0 brk(NULL) = 0x5628470b5000 arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc7495aeb0) = -1 EINVAL (无效的参数) access("/etc/ld.so.preload", R_OK) = -1 ENOENT (没有那个文件或目录) openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=83237,……

阅读全文

嵌入式 Linux 按键驱动

设备树——按键节点 /* 节点 */ r_gpio_keys { /* 节点名称 */ compatible = "gpio-keys"; /* 节点属性 */ /* 子节点 */ sw4 { /* 子节点名称 */ /* 子节点的属性 */ label = "sw4"; linux,code = <KEY_RESTART>; gpios = <&r_pio 0 3 GPIO_ACTIVE_LOW>; }; }; 设备树节……

阅读全文

SPL 的由来,一切为了自举

ARM 的启动流程 bootRom –> SPL –> uboot –> kernel –> file system –> init 为什么要有 SPL ARM 的启动流程如上,其中有一阶段是 SPL,今天我们就来探究下,为什么要有 SPL ? CPU、内存、磁盘……

阅读全文

SPL 启动流程

版本 uboot-2018.07 u-boot.lds OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") /* 输出文件格式为 elf32-littlearm */ OUTPUT_ARCH(arm) /* 输出架构为 ARM */ ENTRY(_start) /* 指定整个程序的入口地址为 _start,这里跳转到 vector.S 执行 */ SECTIONS { /DISCARD/ : { *(.rel._secure*) } . = 0x00000000; /* 指定可……

阅读全文

内核 GPIO 子系统

GPIO 子系统框架 func call /** * struct gpio_chip - abstract a GPIO controller * @label: a functional name for the GPIO device, such as a part * number or the name of the SoC IP-block implementing it. * @gpiodev: the internal state holder, opaque struct * @parent: optional parent device providing the GPIOs * @owner: helps prevent removal of modules exporting active GPIOs * @request: optional……

阅读全文

树莓派启动过程

镜像构成 使用 buildroot 编译出来的树莓派镜像为 sdcard.img,其构成如下: 硬件构成 博通 BCM2837B0 SoC,集成四核 ARM Cortex-A53(ARMv8)64……

阅读全文

start_kernel()

过程 init/main.c start_kernel() rest_init() kernel_thread(kernel_init); // init PID = 1 kernel_thread(kthreadd); // kernel thread deamon PID = 2 pu_startup_entry(CPUHP_ONLINE); while (1) do_idle(); // idle PID = 0 参考 内核启动之start_kernel()和rest_init()函数 【Linux】……

阅读全文

Linux 内核知识体系

思维导图 参考 Linux内核学习经验总结-1w2b3l-ChinaUnix博客 叙述了作者学习内核的心路历程,附带书籍推荐,具有很强的参考意义……

阅读全文

嵌入式博主

链接 DS小龙哥 既然选择了远方 便只顾风雨兼程 - 永强 长沙红胖子 网络资源是无限的 辉辉308 华清远见 | 程序员的学习天堂 非著名码农的专栏 李迟的专栏……

阅读全文