
linux内核驱动
yff1030
这个作者很懒,什么都没留下…
展开
-
函数指针
int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数指针 */f=func; /* 将func函数的首地址赋给指针f */赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。注2:函数括号中的形参可有可无,视情况而定。UBOOT中go命令的实现:原创 2012-07-17 19:39:00 · 652 阅读 · 0 评论 -
嵌入式产品开发流程
嵌入式产品开发流程一般分为以下几个部分:1、 硬件开发2、 Bootloader移植3、 Linux内核移植4、 根文件系统制作(供内核启动使用)5、 业务相关的应用程序和驱动程序的开发6、 功能测试、性能测试、系统集成测试、系统设备、发布 光有内核,系统是启动不起来的。3和4两个阶段称为最小系统。原创 2012-07-19 18:31:47 · 920 阅读 · 0 评论 -
bss,data,text,rodata,堆,栈,常量段
//红色部分为问题部分section 结构SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } >region :phdr =fill...}secname:段名contents:决定哪些内容存放在此段start:本段的连接地址(实际运行地址)AT(转载 2012-07-19 10:25:09 · 12489 阅读 · 0 评论 -
UBOOT启动流程分析
UBOOT特点:用于多种CPU用于多种操作系统查看一下board/smdk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序 OUTPUT_FORMAT("elf32-littlearm","elf32-littlearm", "elf32-littlearm")/*OUTPUT_FORMAT("elf32-arm","elf32-ar原创 2012-07-19 18:26:51 · 1015 阅读 · 0 评论 -
Bootloader的概念
简单地说,bootloader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便于最终调用操作系统做好准备。Bootloader的启动流程,一般分为两个阶段:Stage1:硬件设备初始化(CPU内部的一些硬件)为加载bootloader的stage2准备RAM空间拷贝bootloader的stage2到原创 2012-07-19 18:29:18 · 587 阅读 · 0 评论