韦东山衔接班
宫伟迪
不是一定要赢,只是不想输
展开
-
Linux中int main(int argc, char **argv)分析
作者:GWD 时间:2019.7.25一、led Linux驱动调用函数分析int main(int argc, char **argv){ int fd; int val = 1; fd = open("/dev/led_1", O_RDWR); if (fd < 0) { printf("can't open!\n"); } if (argc != 2) {...原创 2019-07-25 23:34:12 · 1405 阅读 · 0 评论 -
韦东山衔接班——4.3_构建根文件系统之busybox
作者:GWD 时间:2019.8.26注:Linux中交叉编译用CROSS开头配置编译busybox1、解压busybox2、make menuconfig出现配置菜单在readme或者install中会有介绍怎么编译,第8行默认安装到PC中,但我们是安装到ARM所以要采用后面的形式安装到指定目录中。3、编辑Makefile使其支持交叉编译,新版的busybox可以4、微调bu...原创 2019-08-26 09:19:20 · 325 阅读 · 0 评论 -
韦东山衔接班——4.2_构建根文件系统之init进程分析
作者:GWD 时间:2019.8.25一、Busybox的引入根文件系统中有很多命令,命令就相当与一个应用程序,若一个一个编译很麻烦,linux中有一个busybox。当我们执行ls时候就相当于执行了busybox ls;上一节提到的init进程其实也是指向busybox的进程,我们要分析init进程要先找到busybox的源码。1、busybox中的init有哪些功能2、解析配置文件...原创 2019-08-26 08:49:29 · 307 阅读 · 0 评论 -
韦东山衔接班——1.5_u-boot分析之U-BOOT命令实现
作者:GWD 时间:2019.8.22在u-boot的窗口输入命令会执行命令对应的函数,推测应该有个结构体对应命令的名字和函数(实际上这个结构体有在地址安排上有特殊之处,下文介绍)。一、分析run_commend1、提取参数,例如我们输入参数md.w 0提取参数后就在argv[0]、argv[1]中。2、find_cmd查找命令:在指定的段中查找名称一样的命令3、查找这个段中...原创 2019-08-22 22:53:31 · 232 阅读 · 0 评论 -
韦东山衔接班——1.4_u-boot分析之源码第二阶段
作者:GWD 时间:2019.8.22目的:怎么读出内核和启动内核原创 2019-08-22 10:36:57 · 259 阅读 · 0 评论 -
韦东山衔接班——1.3_u-boot分析之源码第一阶段
作者:GWD 时间:2019.8.21分析start.S(第一阶段,硬件相关)_start: b reset //第一条语句跳转到reset ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _...原创 2019-08-21 22:41:09 · 228 阅读 · 0 评论 -
韦东山衔接班——1.2_uboot分析之Makefile结构分析
作者:GWD 时间:2019.8.21一、分析Makefile的配置过程(从输入配置命令到创建config.h头文件的过程):1、顶层Makefile中执行100ask24x0_config后就相当于执行了D1882脚本,MKCONFIG是什么,在Makefile中查找一下,发现是源码中的mkconfig文件。2、执行配置时候就相当于执行了下面脚本3、接下来看一下mkconfig作...原创 2019-08-21 21:58:45 · 262 阅读 · 0 评论 -
韦东山衔接班——1.1_u-boot分析之编译体验
作者:GWD 时间:2019.8.21第一节:u-boot分析之编译体验一、Bootloader简介1、BootLoader的引入:bootloader就是一小段程序,系统上电后开始执行,初始化硬件设备、准备好软件环境、最后调用操作系统内核。Bootloader的实现非常依赖具体硬件,嵌入式系统中计时相同的CPU,它的外设也千差万别。2、BootLoader的启动方式:CPU上电后,会...原创 2019-08-21 21:22:44 · 258 阅读 · 0 评论 -
韦东山衔接班——4.1_构建根文件系统之启动第一个程序
作者:GWD 时间:2019.8.25一、内核怎样启动应用程序1、/dev/console是终端,下面两个dup是复制,读/写都来源于这个终端,这个终端对应于串口0;2、Run_init_process启动应用程序Execute_command是命令行参数字符串,如果我们设置init=XXX那么Execute_command就等于XXX这个字符串,也就是第一个应用程序是在命令行参数中...原创 2019-08-25 21:39:33 · 250 阅读 · 0 评论 -
韦东山衔接班——3.4_linux内核启动流程分析之内核启动
作者:GWD 时间:2018.8.25一、汇编部分到第一个C之前准备1、问:内核的工作答2、问:为什么有两个head.S答:其中一个是自解压代码,运行时先解压内核3、uboot中将参数写入结构体4、查找用于查看是否支持指定的CPU与单板5、在连接脚本中看一下3B这段存的是什么,所有架构初始化的信息都放在这个段中,然后启动后会进行遍历比较接下来就是要看一下在内核中a...原创 2019-08-25 21:23:56 · 320 阅读 · 0 评论 -
韦东山衔接班——3.1与3.2_linux内核启动流程分析之编译体验、配置
作者:GWD 时间:2019.8.25一、课程内容:概述:本节主要讲解了三种配置Linux内核的方法。1、问:内核文件在哪里?答:从网上下载2、问:烧录内核给arm的流程?答:1)、解压缩 2)、打补丁 3)、编译uImage然后烧写二、linux内核打补丁答:第一步:先解压文件:tar xjf linux-2.6.22.6.tar.bz2第二步:打补丁,-P是忽略补丁文件前...原创 2019-08-25 13:50:01 · 372 阅读 · 0 评论 -
韦东山衔接班——1.6_u-boot分析之U-BOOT启动内核
作者:GWD 时间:2019.8.24一、分析bootcmd1、bootcmd从何而来接上一节我们从这里开始分析跟踪getenv函数跟踪evn_get_addr函数,可知这些命令应该都存储在一个数组中继续跟踪这个数组,找到了目标BOOTCOMMAND的宏定义二、分析nboot命令从nand导入内核到0x32000000三、分析bootm命令1、flash上的内核...原创 2019-08-24 22:00:19 · 301 阅读 · 0 评论 -
韦东山衔接班——4.4_构建根文件系统之构建根文件系统
作者:GWD 时间:2019.8.26一、创建○1中的两个设备文件1、首先看一下PC机上的这两个文件夹是怎么样的这两个均是字符型设备,主设备号为5/1,次设备号为1、32、在自制根文件系统中加入这两个文件夹和设备号。...原创 2019-08-26 21:46:37 · 873 阅读 · 0 评论