摘要:通过vivi研究bootloader有一段时间了,基本是在与之相关的基础方面做工作,还没有真正深入研究vivi。以后的学习重心就要放到研究vivi源代码上面了。我想,真正细致地弄清楚vivi实现的细节,对C语言水平的提高,对ARM体系结构的认识,对S3C2410的熟悉,对嵌入式bootloader相...
阅读全文
摘要:http://blog.chinaunix.net/uid-25381054-id-3270860.html 刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod [OPTION]... NAME TYPE [MAJOR MINOR]命令手动创建设备节点,实际上Linux内核为我们提供了
阅读全文
摘要:#ifndef _I386_ERRNO_H#define _I386_ERRNO_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3
阅读全文
摘要:在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别 首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,因此char能表示-128~127, uns
阅读全文
摘要:http://blog.csdn.net/yaozhenguo2006/article/details/6761471构建根文件系统一. 根文件系统知识根文件系统是嵌入式linux系统三个重要组成部分之中的其中一个,其他两个是bootloader, kernel。在系统 中扮演者重要的角色。它是li...
阅读全文
摘要:笔者最近学习ARM9,各种问题不会,在努力探索中,不知道怎么把以前ARM7的知识和现在的联系起来,但是最近发现一个C语言的疑惑,属C语言基础问题,望大神们指点指点。#includetypedefstruct_led{intver;charname[10];}LED;intmain(void){int...
阅读全文
摘要:typedef int(init_fnc_t) (void); 这个就是一个取别名的过程。我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a;这个时候我们的MyInt 就和int是一样的意思。而对于函数的申明我们通常会这样申明:int InitFuncti
阅读全文
摘要:是“Block Started bySymbol”的缩写,意为“以符号开始的块”。 BSS是Unix链接器产生的未初始化数据段。其他的段分别是包含程序代码的“text”段和包含已初始化数据的“data”段。BSS段的变量只有名称和大小却没有值。此名后来被许多文件格式使用,包括PE。“以符号开始的块...
阅读全文
摘要:可执行程序包括BSS段、数据段、代码段(也称文本段)。BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。注意和数据段的区别,BS...
阅读全文
摘要:在我迷迷糊学看了lowlevel_init.S中的代码之后,有一个感觉就是,要想读懂其中的代码首先得看一下你所用的芯片手册,因为里面有比较详细的存储器控制(MemoryController)描述。我用的是s3c2440手册里写得十分清楚,总共有8个块(Banks)(Bank0~Bank7),每个块对...
阅读全文
摘要:uboot版本为201103rc1.看了一下lowlevel_init.s里面的代码,发现最难懂的地方当属这里了:ldr r0, =SMRDATAldr r1, _TEXT_BASEsub r0, r0, r1ldr r1, =BWSCON /* Bus Width Status Contr...
阅读全文
摘要:使用udev在/dev/下动态生成设备文件create_chrdev.c #include <linux/types.h> //dev_t #include <linux/cdev.h> //struct cdev #include <linux/fs.h> //alloc_chrdev_regio
阅读全文