06 2017 档案
摘要:上篇中,已经制作了一个不能再小的根文件系统。本篇将继续完善根文件系统 在开发板上执行ps命令后,会出现如下内容: ps PID Uid VSZ Stat Commandps: can't open '/proc': No such file or directory说不能打开/proc,没有这个文件
阅读全文
摘要:在构建根文件系统之busybox中,我们已经实现了配置,编译,安装busybox。即那个init程序的来源。 首先在pc看一下,/dev/console 和/dev/null的具体信息: 执行ls /dev/console /dev/null crw 1 root root 5, 1 6月 27 0
阅读全文
摘要:配置busybox 首先将busybox的压缩包放入服务器进行解压缩; busybox集合了几百个命令,在一般的系统中并不需要全部使用。可以通过配置busybox来选择这些命令、定制某些命令的功能(选项)、指定busybox的连接方法(动态连接还是静态连接) 在解压之后的INSTALL文件里,有这样
阅读全文
摘要:busybox是ls、cp等命令的集合。 执行ls时,实际上是执行了busybox ls 执行cp时,实际上是执行了busybox cp 分析init程序之前,再让我们回想一下我们的目标:u-boot启动内核,内核启动应用程序,内核是怎样启动应用程序呢,内核启动了init进程,位于/sbin/ini
阅读全文
摘要:u-boot的目的:启动内核 内核的目的:启动应用程序,而应用程序位于根文件系统上面。因此,需要构建根文件系统。 只需完成以上几步,就可以在单板上搭建出一个linux系统来。 问题:有那么多应用程序,内核启动后首相打开哪一个? 内核启动的时候,挂接好根文件系统之后,执行应用程序在init_post函
阅读全文
摘要:目的:在同一时刻,只有一个应用程序打开/dev/buttons 驱动程序: #include <linux/module.h>#include <linux/kernel.h>#include <linux/fs.h>#include <linux/init.h>#include <linux/de
阅读全文
摘要:读取按键的方法: (1)查询的方式:极度耗费资源 (2)中断的方式:如果没有按键按下,read函数会一直的等待 (3)poll机制的引入:可以指定超时时间 上述三种方式有一个共同点:应用程序主动的去查询。 问题:有没有一种方式当有按键按下时,驱动程序通知应用程序去读取。这就是本节所说的异步通知,该方
阅读全文
摘要:明确为什么要引用poll机制? while(1) { read(fd,&key_val,1);//如果没有按键按下,它会一直在等待。现在想做这么一件事情:如果5s后,没有按键按下,它就会返回。此时就要用到poll机制 } 当应用程序调用poll时,会相应的调用内核空间的sys_pollsys_pol
阅读全文
摘要:常用的有三种方式: 在C/C++代码中嵌入汇编指令 汇编调用C/C++ C/C++中调用汇编 实例一: 在C中嵌入汇编: void string_copy(char *dst,const char *str) { char ch; __asm { loop LDRB ch,[str],#1 STRB
阅读全文
摘要:当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack); 当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack); 根据对战的生成方式分为:递增堆栈(Ascengding Stack)和递减堆栈(Decending Stack) 递增堆栈:堆栈由低地址向高地
阅读全文
摘要:有两种不错的方法可以实现该操作 方法一:利用移位操作可以很容易的实现 #include <stdio.h> int main(){ unsigned int a =0x11223344; printf("%0x\n",(a>>16) +( a & 0xFFFF)); return 0;} 方法二:利
阅读全文
摘要:1、将arm-linux-gcc-4.4.3压缩包,拷到home/armtoolchain下,进行压缩。 2、压缩命令:tar -xzvf arm-linux-gcc-4.4.3.tgz,解压后得到了usr文件。进入~/armtoolchain/usr/local/arm/4.3.2/bin下,会看
阅读全文
浙公网安备 33010602011771号