![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度探索嵌入式linux系统
文章平均质量分 78
结合自己十几年的linux研究经验,对linux系统构建、内核各个模块深度探索,并对系统进行性能分析。
专注&突破
专注&突破
展开
-
cmake (更新中)
概述概述关于 CMakeCMake 是一个可扩展的开源系统,以一种与操作系统和编译器无关的方式来管理构建过程。与许多跨平台系统不同,CMake 被设计为与本机构建环境配合使用。在每个源代码目录中放置简单的配置文件(称为 CMakeLists.txt 文件),用于生成标准的构建文件(例如,在Unix上是 makefiles,在Windows MSVC上是项目/工作区文件),然后按照通常的方式使用这些文件。CMake 可以生成本机构建环境,用于编译源代码、创建库、生成封装器以及以任意组合构建可执行文件。原创 2023-08-11 10:01:09 · 135 阅读 · 0 评论 -
图形系统之Wayland基础
................................................................................原创 2021-12-26 16:33:29 · 3301 阅读 · 0 评论 -
rk3568 buildroot
上一篇文章中我们大概对buildroot做了概要接收,不详细的地方推荐官网看一下。rk3568 sdk里面给出的buildroot 是瑞芯微公司根据官方源做了定制,瑞芯微已经配置好坏境变量,BSP配置和各模块开发,方便客户开发和定制。我们简单看一下怎么使用。原创 2022-09-30 16:04:15 · 1698 阅读 · 0 评论 -
开发环境搭建(持续更新...)
从这边篇开始我们一起研究ftrace的内核实现,我是基于较近长期维护版本linux 5.4,不过我们先不着急看代码,先把开发环境搭建一下。Qemu+arm64 安装必要软件sudoapt-getinstallqemu \ libncurses5-dev gcc-arm-linux-gnueabi build-essential 下载代码wget https://mirrors.edge.kernel.org/pub...原创 2021-07-05 11:35:11 · 229 阅读 · 0 评论 -
reboot 流程
前言 对于生在智能时代的我们,对关机和重启这两个概念肯定不会陌生,尤其经历早期Android智能机的人们,印象最深恐怕就是重启,当然现在不会了,还没有改过来的都被淘汰了。在Linux系统中我们使用reboot完成这个动作。应用层 重启reboot基本上都是通过一条命令实现,之所以聊一下应用层,主要是新的系统中reboot shutdown halt sleep等,这些操作被systemd统一管理了,我们简单看一下,不做深入研究...原创 2021-10-28 15:46:26 · 6989 阅读 · 0 评论 -
Linux kernel调试记录--持续更新
打印Linux内核函数调用栈 dump_stack加入头文件#include <asm/ptrace.h> 在想调用的函数调用 dump_stack();查看查看回调函数 打印回调函数printk("nr_to_call %d %p\n",nr_to_call,nb->notifier_call); 根据打印地址 在内核中查找aarch64-linux-gnu-objdump -dvmlinux | grep ffffff80083b3640 ...原创 2021-10-22 19:56:08 · 114 阅读 · 0 评论 -
深度探索uboot
概要 Uboot 是操作系统启动前的运行的一段引导程序,他主要负责初始化部分硬件,包括时钟、内存等等,加载内核、文件系统、设备树等到内存上,启动操作系统。当然uboot作用远不止这些,比如由于uboot是裸机单任务运行,我们也可以在这里面对硬件进行初步的测试、升级系统等等。 嵌入式开发中我们多多少少会涉及到uboot,所以还是有必要对这块做一些功课。我也是最近移植系统,遇到一些麻烦,对uboot做了一些研究,把他记录下来。本篇主要基于rockchip px...原创 2021-10-21 11:01:41 · 4648 阅读 · 0 评论 -
arm 体系结构与编程--更新中
概述 干了十来年,感觉个人技术发展受限于基础知识,想用半年的时间把基础知识再巩固一下,当然由于工作的原因这个时间有可能会拉长,但是我会坚持下来。 现在高级语言这么多,编译器已经帮我们做了很多优化,为什么还要学习汇编语言呢,下面是一本参考书给出来的答案:• the first steps in booting the computer,• code to handle interrupts,...原创 2021-09-18 17:01:45 · 498 阅读 · 0 评论 -
程序的奥秘-链接、装载和库-未完
作为一个写了十几年代码的老猴子,深深体会到基础不牢地动山摇这句话。想写好代码,做好项目,必须要懂程序,代码是怎么变成可执行程序的?可执行程序是怎么执行的?连接库又是怎么回事?......等等。如果你对这些感兴趣,欢迎和我一起研究基于arm64 linux应用程序的连接、装载和库(主要参考书籍 《程序员的⾃我修养》)入门...原创 2021-09-24 21:02:57 · 111 阅读 · 0 评论 -
系统构建-原始时代
作为一个写了十几年代码的老猴子,深深体会到基础不牢地动山摇这句话。想写好代码,做好项目,必须要懂程序,代码是怎么变成可执行程序的?可执行程序是怎么执行的?连接库又是怎么回事?......等等。如果你对这些感兴趣,欢迎和我一起研究基于arm64 linux应用程序的连接、装载和库(主要参考书籍 《程序员的⾃我修养》)入门...原创 2021-09-25 23:18:22 · 333 阅读 · 0 评论 -
系统构建--生产力工具Yocto
Yocto Project概述 Yocto Project是一个开源协作项目,可帮助开发人员为嵌入式产品创建基于Linux的定制系统,而不管硬件架构如何。该项目提供了一套灵活的工具和空间,全球的嵌入式开发人员可以共享技术,软件堆栈,配置和最佳实践,可用于为嵌入式设备创建定制的Linux映像。 Yocto Project结合,维护和验证了三个关键的开发元素。一组集成工具,使嵌入式Linux成功运行,包括自动构建和测试工具,板级支持和许可证合规流程,以及基于Linux的自...原创 2021-09-22 11:41:15 · 1666 阅读 · 0 评论 -
Linux系统构建工具buildroot手册
buildroot入门buildroot 介绍 buildroot 是一个构建嵌入式Linux系统的的框架,它可以简化系统构建流程(相比传统uboot kernel busybox方式)、自动打包等。他和kernel类似,整个编译系统由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot配置,menuconfig修改,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的...原创 2021-09-06 09:10:37 · 1787 阅读 · 0 评论