自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (8)
  • 收藏
  • 关注

原创 ARM中断处理底层分析

2012-09-12 21:14:51 563

转载 KMP算法

最近在看数据结构与算法,弄了两天的KMP算法,感觉这个算法是一个锻炼用人脑模拟CPU机械执行的一个非常好的例子,我个人觉得理解它对我们写程序的思维是一个很好的锻炼。当任给你一个字符串(长度在可控范围里),你能心中没有任何不解或疑惑地去在大脑中按程序的规则去求出next[]值,去完成一个字符串的匹配,那么恭喜你,你对它已有了深刻的了解,你没有必要浪费时间看这篇入门级的文章。下面我们一起向着这个目标前

2012-08-16 17:04:30 3265 1

转载 关于链表笔试题的一些收集

1.已知链表的头结点head,写一个函数把这个链表逆序[cpp] view plaincopyvoid List::reverse()  {          list_node * p = head;          list_node * q = p->next;          list_node * r = NUL

2012-06-06 17:06:05 1372 1

原创 C语言--树的基本操作

#include#include#include#include#define DATATYPE int typedef struct _tree{DATATYPE nodecontent;struct _tree *leftchild;struct _tree *rightchild;}TREE;typedef  TRE

2012-05-30 14:35:40 2330 1

原创 uboot搞完了,发个总结

耗时2个星期,uboot的代码终于看完了,,他的结构比较复杂,最重要的是要搞清楚层次,有条线移植贯穿下去才不会被搞得晕头转向哦 ,给你们看一下我的uboot学习线路,start.s-----start_armboot()------main_loop()--------do_bootm()------do_bootm_linux() 1,start.s主要完成的是CPU的基本设置,比如

2011-11-28 16:54:21 2801 2

转载 main_loop()分析

main_loop()函数做的都是与具体平台无关的工作,主要包括初始化启动次数限制机制、设置软件版本号、打印启动信息、解析命令等。(1)设置启动次数有关参数。在进入main_loop()函数后,首先是根据配置加载已经保留的启动次数,并且根据配置判断是否超过启动次数。代码如下: 295 void main_loop (void)  296 {  297 #ifndef CFG_H

2011-11-28 10:52:44 2902

转载 gd_t和bd_t

gd_t和bd_t是u-boot中两个重要的数据结构,在初始化操作很多都要靠这两个数据结构来保存或传递.分别定义在./include/asm/global_data.h和./include/asm/u_boot.h1.gd_t: global data数据结构定义,位于文件 include/asm-arm/global_data.h。其成员主要是一些全局的系统初始化参数。需要用到时用宏定义

2011-11-25 14:00:12 3062

转载 do_bootm 分析

<!----> ChinaUnix.net首页 | 论坛 | 博客 |Linux | 人才 | 培训 | 精华 | Wiki |读书 |资料 | 手册 | 下载 | 搜索

2011-11-23 16:21:20 5010

转载 uboot命令模式的实现

uboot正常启动后,会调用main_loop(void)函数,进入main_loop()之后,如果在规定的时间(CONFIG_BOOTDELAY)内,没有检查到任何按键事件的发生,就会去加载OS,并启动系统,比如把linux内核压缩镜像从nand flash中读到sdram ,然后执行它。     如果在CONFIG_BOOTDELAY时间内,用户按下键盘上的任意一个按键,uboot就会进入

2011-11-21 10:29:33 1355

原创 ADS---》linux

JUMPADDR  =>  JUMPADDR:    -- 符号定义加:号INCLUDE  =>  .INCLUDEEQU  =>  .equTCLK2  EQU  PB25  =>  .equ  TCLK2, PB25TCLK2  EQU  PB25  =>  .equ  TCLK2, PB25DCD  =>  .longIF :DEF:  =>   #if define

2011-11-03 14:19:14 781

原创 在Red Hat Enterprise Linux 5中安装交叉编译工具arm-linux-gcc-4.3.2.tgz

1.将 arm-linux-gcc 的压缩包解压到tmp目录下2.将arm-linux-gcc-4.3.2.tgz解压到根目录下,使用如下命令:   [root@localhost ~]# tar xvzf arm-linux-gcc-4.3.2.tgz -C /   (注意大C与/间有一个空格)3.执行命令:vi/etc/profile 在path murge的语句断后添加

2011-11-03 11:54:40 671

转载 s3c6410---外部中断---key (基于OK6410)

先说一下外部中断:顾名思义,由s3c6410外部触发的中断就是外部中断,由s3c6410内部触发的是内部中断。但是具体到咱们的板子上,到底哪些是外部中断,哪些是内部中断呢?可以这样概括,除了INT_EINT0---INT_EINT4之外的都是内部中断。像watch dog就是内部中断,像key,wm9717触发的就是外部中断。       先说下外部中断从外设到cpu的具体流程:对

2011-11-01 17:06:32 3154 3

原创 ARM中C和汇编混合编程及示例

C语言中static关键字的常见用法及举例在嵌入式系统开发中,目前使用的主要编程语言是C和汇编,C++已经有相应的编译器,但是现在使用还是比较少的。在稍大规模的嵌入式软件中,例如含有OS,大部分的代码都是用C编写的,主要是因为C语言的结构比较好,便于人的理解,而且有大量的支持库。尽管如此,很多地方还是要用到汇编语言,例如开机时硬件系统的初始化,包括CPU状态的设定,中断的使

2011-10-31 09:42:12 552

转载 arm中ads实现c和汇编混合编译的方法

在嵌入式系统开发中,目前使用的主要编程语言是C 和汇编,虽然C++已经有相应的编译器,但是现在使用还是比较少的。    在稍大规模的嵌入式程序设计中,大部分的代码都是用C来编写的,主要是因为C语言具有较强的结构性,便于人的理解,并且具有大量的库支持。但对于一写硬件上的操作,很多地方还是要用到汇编语言,例如硬件系统的初始化中的CPU 状态的设定,中断的使能,主频的设定,RAM控制参数等。另外在一

2011-10-27 15:58:41 3372

转载 SD卡启动真相

前章我们也大致分析了SD卡的启动过程,在具体进行问题的定位及解决的过程中,发现还是有很多不明确的地方,网上的文章也多是人云亦云让我们来一步一步搞清楚S3C6410 SD卡启动的步骤及过程(我这里的开发板为OK6410,256M+1G的配置,SD卡为2G,MMC)一、开发板跳线,从SD卡启动view plain查看《OK6410开发板LINUX2.6用户手

2011-10-26 20:57:03 6660 1

转载 U-Boot

U-Boot提供了一个go命令,可以用来启动操作系统的内核或者其他应用程序。当U-Boot还没有实现网络功能时,常常需要调试,而每次都用JTAG把u-boot.bin烧写到Flash是一件费时费力的事情,因此调试的时候最好让U-Boot从SDRAM里启动。     如果不出差错,一般情况下,只要U-Boot跑起来了,它的loadb命令就是可用的。因此我们可以通过串口下载需要调试的u-boo

2011-10-20 14:05:42 758

转载 再谈U-Boot从SDRAM启动

再谈U-Boot从SDRAM启动 (2010-06-17 22:22) 转载分类: u-boot相关 最近帮朋友搞一个2440的板子,到上次搞linux和U-Boot已经一年多了,很多东西不用确实是忘记的比较快,呵呵!朋友给我的板子上已经烧录好了一个U-Boot,但是自己编译了一下Linux内核,用这个烧录好的loader始终跑不起来kernel,没办法只好自己尝试着重

2011-10-20 14:04:13 1148

转载 6410的启动过程

一直想在 6410上写个启动代码。由于板子上没有nor flash。所以只能通过SD卡启动或nand flash启动,在这里要注意,我们虽然说是从sd或nand启动,实际上在他之前,还有一段代码固化到了芯片的内部rom(irom)中了,这段代码是先运行的,这段代码会将SD卡或nand flash上程序加载到内部ram中(Stepping Stone(8kb)),然后从那里继续运行。

2011-10-20 12:26:17 712

C标准库完美清晰英文版下载(完整版)

本书集中讨论了C标准库,全面介绍了ANSI/ISO C语言标准的所有库函数。书中通过引用ISO C标准的相关部分,详细讲解了每一个库函数的使用方法,并通过示例描述了其实现细节,且给出了实现和测试这些函数的完整代码。此外,每章结尾附有不同难度的习题,帮助读者巩固和提高。通过此书,读者将会更好地使用C标准库,并学会如何设计和实现库。   本书结构清晰,内容权威,阐述精辟,对于各层次C程序员和相关专业高校师生都是一本优秀的参考书。

2011-12-08

国企,外企,私企,全面分析

在我自己十几年的工作经历中,从国家事业单位开始,陆续在小的民营企业、国内很强的民营企业(华为公司)、网络公司、世界500强外企(IBM和 HP)工作,期间走了一些弯路,也留下了很多经验教训。在回首这些年的职业经历时,颇多感慨:要是在关键的一些时间点上,能有高人指点,或者自己再多知道 一些关于职场的道理,也许这一路会走得顺畅很多,也会轻快很多。可是人生不能假设,也无法重来,不管怎样,遗憾也好、欢欣也罢,这就是自己十几年弯弯曲曲 的职业经历。

2011-11-28

uboot代码分析全纪录

3.1 Boot Loader 的 stage1 3.1.1 基本的硬件初始化 这是 Boot Loader 一开始就执行的操作,其目的是为 stage2 的执行以及随后的 kernel 的执行准备好一些基本的硬件环境。它通常包括以下步骤(以执行的先后顺序): 1.屏蔽所有的中断。为中断提供服务通常是 OS 设备驱动程序的责任,因此在 Boot Loa der 的执行全过程中可以不必响应任何中断。中断屏蔽可以通过写 CPU 的中断屏蔽寄存器 或状态寄存器(比如 ARM 的 CPSR 寄存器)来完成。 2.设置 CPU 的速度和时钟频率。 3.RAM 初始化。包括正确地设置系统的内存控制器的功能寄存器以及各内存库控制寄存器 等。 4.初始化 LED。典型地,通过 GPIO 来驱动 LED,其目的是表明系统的状态是 OK 还是 Error。如果板子上没有 LED,那么也可以通过初始化 UART 向串口打印 Boot Loader 的 Logo 字符信息来完成这一点。 。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2011-11-25

6410 UARTprintf

飞凌ok6410 串口打印函数工程,一直要的东西

2011-10-28

嵌入式BootLoader技术内幕.rar

好!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2011-10-19

ARM中文指令手册

好!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2011-10-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除