002-u-boot_内核_根文件系统
韦东山老师视频学习笔记-u-boot_内核_根文件系统(新1期_2期间的衔接)
xiaoaojianghu09
这个作者很懒,什么都没留下…
展开
-
韦东山uboot_内核_根文件系统学习笔记5.7-第005课_字符设备驱动_第007节_字符设备驱动程序之中断方式的按键驱动_Linux异常处理结构
一 单片机下的中断处理:①分辨是哪个中断;②调用处理函数;③清中断。下面结合代码查看#include "s3c24xx.h"void EINT_Handle(){ unsigned long oft = INTOFFSET; unsigned long val; switch( oft ) { // 分辨是哪个中断; ...原创 2020-03-02 21:57:21 · 169 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记5.11-第005课_字符设备驱动_第011节_字符设备驱动程序之同步互斥阻塞
目的:同一时间只能有一个应用程序打开驱动程序实现方法1:static int canopen =1;static int sixth_drv_open(struct inode *inode, struct file *file){ //如果第一次执行本函数,则--canopen=0,跳过下面判断语句 //否则,--canopen=-1,执行下面语句即返回-EBUSY if (-...原创 2020-02-16 15:53:46 · 118 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记5.10-第005课_字符设备驱动_第010节_字符设备驱动程序之异步通知
应用程序:主动去读取硬件状态①查询方式:非常消耗资源②中断方式:read函数一直休眠,永远不返回③poll:指定休眠时间驱动程序触发应用程序,应用程序再去读取④异步通知 signal 一旦设备就绪,则主动通知应用程序进行访问。这样,使用无阻塞IO的应用程序无需轮询的查询设备是否可访问,达到减小CPU消耗的目的。类似于硬件上的“中断”的概念,比较准确的称谓是“信号驱动的异步IO”。信号:是...原创 2020-02-15 22:53:02 · 178 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记5.9-第005课_字符设备驱动_第009节_字符设备驱动程序之poll机制
前言:POLL机制的引入目的:之前在Linux驱动之按键驱动编写(中断方式)中编写的驱动程序,如果没有按键按下。read函数是永远没有返回值的,现在想要做到即使没有按键按下,在一定时间之后也会有返回值。要做到这种功能,可以使用poll机制。分以下几部来介绍poll机制1、poll机制的使用,编写测试程序2、poll机制的调用过程分析3、poll机制的驱动编写1. 驱动程序poll机制相关...原创 2020-02-15 18:07:53 · 142 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记5.8-第005课_字符设备驱动_第008节_字符设备驱动程序之中断方式的按键驱动_编写代码
111原创 2020-02-14 17:29:08 · 169 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记5.6-第005课_字符设备驱动_第006节_字符设备驱动程序之中断方式的按键驱动_Linux异常处理结构
一 Linux 异常处理体系结构/框架通用异常处理机制linux内核对于异常的设置(P397)2.1 trap_init函数分析代码如下:其中:其中:vectors=0xffff0000__vectors_start=异常代码存储地址,这段代码都是跳转指令,例如LINE1064:出现未定义的指令LINE1069:中断跳转指令继续追踪上图vector_und变量...原创 2020-02-10 22:09:25 · 192 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记5.4~5.5-第005课_字符设备驱动_第004~005节__字符设备驱动程序之LED驱动程序_操作LED
一 编写实际驱动程序的几个知识点虚拟地址映射-ioremap函数/iounmap虚拟地址和MMU:eg:分配地址代码gpio_va = ioremap(0x56000000, 0x100000);//0x56000000起始地址,0x100000长度释放地址代码iounmap(gpio_va);//用户程序与驱动程序之间传值eg:char __user *buf;//...原创 2020-02-10 12:20:37 · 163 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记5.1~5.3-第005课_字符设备驱动_第001~003节_字符设备驱动程序之概念介绍/字符设备驱动程序之LED驱动程序_编写编译
执行swi+XXX汇编指令,触发内核的异常处理中断。System Call Interface根据中断源调用不同的处理函数。eg:open->swi value1/read->swi value2/write->swi value3。根据传入的不同值(value1/value2/value3)调用sys_read/sys_open/sys_write。sys_read/...原创 2020-02-08 21:30:43 · 218 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记4.4-第004课_根文件系统-第004节_构建根文件系统之构建根文件系统
一 最小的根文件系统需要的项(笔记4.1 4.2小结)(init 进程需要)打开终端: /dev/console, /dev/NULL不设置 inittab 格式中的 id(标准输入、输出和标准错误)时,就定位到 /dev/NULL 中去。/sbin/init(init 程序):它本身就是 busybox ./etc/inittab:需要配置文件配置文件若指定了某些应用程序或执行脚本...原创 2020-02-07 21:10:10 · 303 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记4.3-第004课_根文件系统-第003节_构建根文件系统之busybox
解压busybox-1.7.0.tar到linux服务器上,操作过程参见《完全手册》P350一 查看说明文件《INSTALL》注意:LINE8:构建嵌入式linux需要使用后面的指令,即指定安装到某个特定目录,而不是安装到默认目录,否则会破坏ubuntu系统。make menuconfig命令使用make menuconfig后编译报错,这个错误与上次错误一致为make版本过高导致。...原创 2020-02-07 15:52:56 · 146 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记4.2-第004课_根文件系统-第002节_构建根文件系统之init进程分析
一 busybox的作用busybox的作用:本质是一个应用程序,它实现了响应shell发送的ls/cp等各种指令。shell发送ls指令==执行busybox ls指令验证上述结论:根目录系统bin文件夹:/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。上图可以看出:ls指令实际上链接到了busybox文件busybox的作用:linux...原创 2020-02-06 22:12:30 · 223 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记4.1-第004课_根文件系统-第001节_构建根文件系统之启动第1个程序
一 内核如何启动第一个应用程序首先挂载根文件系统如果在uboot中删除掉根文件系统:启动内核:(1)此时根文件系统已经删除,相当于空目录,所以无法启动2.打开设备的代码。上图中报的warning也和下图代码中的打印信息一致。(2)上图报告的第二个错误信息对应下图代码的打印信息(3)上图报告的第三个错误信息对应下图代码的打印信息内核调用init_post函数static...原创 2020-02-06 12:42:51 · 352 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记3.1.1~3.1.2-第003课_内核配置裁剪及启动流程
一 linux内核编译初体验1 源码位置:JZ2440V3\systems\linux-2.6.22.6.tar.bz2(未经修改的源代码)JZ2440V3\systems\linux-2.6.22.6_jz2440.patch(百问网修改的补丁)2 打补丁:把文件放到ubuntu服务器上,解压缩,打补丁3 配置:配置的办法:a:使用make menuconfigb:使用默认配置,...原创 2020-02-06 08:52:30 · 297 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记2.2.1-第002课_从0写bootloader_更深刻理解bootloader-第002节_自己写bootloader之编写第2阶段
1、uImageuImage=64bytes(head)+zImageuImage存储地址:uboot里面mtd命令可以看到,即0x00060000zImage存储地址: 0x00060000+642、跳转执行定义一个函数指针,指针的值为0x30008000。执行该函数,相当于跳转到指...原创 2019-07-16 23:02:34 · 282 阅读 · 0 评论 -
uboot - 配置过程1(分析国产君正的ingenic-linux-kernel3.10.14-x1000-v8.2-20181116\u-boot\mkconfig脚本)
=分析uboot的配置过程(mkconfig脚本)=uboot怎么配置?我们在终端上执行make NAME_config时的运行过程解析!STEP1:%_config:: unconfig @$(MKCONFIG) -A $(@:_config=)我们执行make *_config时会运行makefile的这两行程序,先分析下:这个其实就是运行uboot根目录下的mkconfig文件...原创 2019-08-09 23:11:38 · 1752 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记1.1.1-第001课_U-boot分析与使用-第001节_u-boot分析之编译体验
一 编译配置过程(1)解压缩《u-boot-1.1.6.tar.bz2》(2)打补丁:patch -p1 < ../u-boot-1.1.6_jz2440.patch-p1 忽略补丁文件中的第一个“/”之前的参数即“u-boot-1.1.6”(由于我们已经在uboot目录下了)diff -urN u-boot-1.1.6/board/100ask24x0/100ask24x0.c u...原创 2019-09-23 21:54:00 · 544 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记1.2.1--第001课_U-boot分析与使用-第002节_u-boot分析之readme文件学习
根据uboot的readme文件可知:首先配置,之后编译1.Linux的概览图,对Uboot的结构先有具体的了解。2.Readme文件学习2.1 uboot目录层次board Board dependent files开发板相关文件common Misc architecture independent functions多体系结构独立函数cpu CPU specif...转载 2019-09-23 22:17:40 · 279 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记1.2.2--第001课_U-boot分析与使用_第002节_u-boot分析之mkconfig文件学习
STEP1.1 脚本调用由上一篇博客可知,第一步需要完成配置:make 100ask24x0_config那么,在makefile中查找100ask24x0_config目标100ask24x0_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0注释:(1)命令行以’@'...原创 2019-09-25 20:04:21 · 231 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记1.2.3--第001课_U-boot分析与使用_第002节_u-boot分析之makefile文件学习
STEP1:设置版本号VERSION = 1PATCHLEVEL = 1SUBLEVEL = 6EXTRAVERSION =U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)VERSION_FILE = $(obj)include/version_autogenerated.h这里U_BOOT_V...原创 2019-09-27 06:55:02 · 726 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记1.3.1--第001课_U-boot分析与使用_第003节_u-boot分析之start.s文件学习
根据上一节对于uboot程序的主makefile的分析,我们知道uboot程序首先要执行u-boot-1.1.6\cpu\arm920t\start.s文件,那么本节首先分析该文件。(参考资料https://blog.csdn.net/davidsky11/article/details/25162575)第一部分:/* ******************************...原创 2019-10-07 22:10:36 · 211 阅读 · 0 评论 -
韦东山uboot_内核_根文件系统学习笔记2.1.1-第002课_从0写bootloader_更深刻理解bootloader-第001节_自己写bootloader之编写第1阶段
韦东山uboot学习笔记11、关于栈空间的设置2、汇编语言常用法1、关于栈空间的设置Stack:即SP寄存器,它是向下增长的,可以设置SP指针指向内存的最高地址。执行C语言函数之前必须设置栈空间(即所谓的“准备C语言执行环境”)。2、汇编语言常用法以下两端代码目的均为赋值某个寄存器//C语言代码#define MPLLCON 0x4C000004 /* R/W, MPLL conf...原创 2019-07-14 19:16:47 · 335 阅读 · 0 评论