- 博客(31)
- 资源 (148)
- 收藏
- 关注
原创 typedef int(init_fnc_t) (void) 和 typedef int(*init_fnc_t) (void);
typedef int(init_fnc_t) (void);这个就是一个取别名的过程。我们通常情况下会如下使用 typedef :typedef int MyInt;MyInt a;这个时候我们的MyInt 就和int是一样的意思。而对于函数的申明我们通常会这样申明:int InitFunction() (void);此时表示申明了一个函数名为Init
2012-08-30 13:41:46 1851 1
转载 gcc内嵌汇编:__asm__ __volatile__("": : :"memory")
gcc内嵌汇编简介在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。1、简单的内嵌汇编例:__asm__ __volatile__("hlt"); "__asm__"表示后面的代码为内嵌汇编
2012-08-30 11:17:40 2770
转载 Uboot中start.S源码的指令级的详尽解析
转载:http://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html/uboot_starts_analysis.html#id9291273Uboot中start.S源码的指令级的详尽解析版本:v1.7Crifan Li摘要
2012-08-28 12:48:14 5029 2
转载 学习DDR2时值得一看的资料
转载:http://blog.chinaunix.net/uid-20543672-id-3030997.html最近在认真研究DDR2芯片的时序和配置过程,这里总结一些关于学习DDR2时值得一看的资料:1、《内存的原理和时序(SDRAM、DDR、DDR-Ⅱ、Rambus_DRAM)》PDF文档,简直是学习DDRx技术的经典教程。刚开始做嵌入式的时候就看了这个文档来学习
2012-08-28 12:46:47 1740
转载 ARM汇编指令学习(1) - 实现数据块拷贝
程序要求:设计一段程序完成数据块的复制,数据从源数据区snum复制到目标数据区dnum,数据量大小为NUM字(1个字=4个字节),复制时以8个字为单位进行,对于最后所剩不到8个字的数据,以字为单位进行复制。 程序清单: 1 ;=====================================================================
2012-08-28 12:44:22 5086
转载 ARM汇编指令学习(0) - ARM 汇编语言程序格式
ARM 汇编语言程序格式 可执行映象文件的格式: *.axm *.bin *.elf *.hex 代码段示例:汇编语言源程序的基本结构: AREA Init,CODE,READONLY ENTRYStart LDR R0,=0x3FF50000 LDR R1,0xFF STR
2012-08-28 12:43:16 855
原创 arm CP15 c1 Control Register
The Control Register provides control and configuration of:memory alignment, endianness, protection, and fault behaviorMMU and cache enablesinterruptsthe location for exception vec
2012-08-28 12:37:41 1690
转载 ARM协处理器CP15(设置MMU,cache等)学习
转载:http://blog.csdn.net/gooogleman/article/details/3595294一直对协处理器CP15很恐惧,因为在网上基本上找不到中文的详细说明,现在找了一些ARM官方文档(ARM920T Technical Reference Manual)来看,准备对它做个了结。 协处理器CP15包含了如下寄存器。====
2012-08-27 22:42:56 777
转载 ARM异常、中断以及他们的向量表分析
转载:http://blog.csdn.net/gooogleman/article/details/3597175以前,我一直很疑惑这个“ARM异常、中断以及他们的向量表”是怎么回事,他们到底是怎么实现的,没有想到今天偶然看到(ARM System Developer's Guide: Designing and Optimizing System Software的ARM异
2012-08-27 22:41:50 664
转载 ARM Linux中断向量表搬移设计过程
转载:http://chongsoft.bokee.com/6872424.htmlPreface 引言我在这里用一些篇幅来描述一下arm体系结构下Linux中怎样来初始化中断向量表的,因为这个方法很具有通用性,我把它叫做代码大挪移。您说搬代码谁不会阿,不就是拷贝吗,的确如此,但是拷贝也有技巧。拷贝很简单啦,其实就是memcpy,这不用提,我在这里想说的是,你怎么把你的代码
2012-08-27 22:40:51 927
转载 ARM remap与重定位
转载:http://blog.csdn.net/dog0138/article/details/1603794#(一)关于ARM处理器Remap的理解0.什么是Remap 我的理解是:在ROM从0x0用几句指令引导系统之后,把RAM映射到0x0就是Remap。1.Remap的作用 当ARM处理器上电或者Reset之后,处理器从0x0取指。因此,必须保证系
2012-08-27 22:39:54 1192
转载 u-boot链接分析
转载: http://www.embedu.org/Column/Column345.htm一个典型的嵌入式系统中,bootloader代码放在NOR Flash或NAND Flash里面,系统加电或复位后,首先运行这段代码。通常把bootloader代码放在NOR Flash里面,NAND Flash由于硬件原因不能随机访问,需要特殊的硬件支持机制。bootloader代码除
2012-08-27 22:38:28 996
转载 BOOT阅读笔记
转载:http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=embedded&Number=655111&page=3&view=collapsed&sb=5&o=all做了近两年ARM下的驱动开发,常用的各个设备驱动基本都碰过,不过Boot由于任务安排的缘故(公司一直有专人在做),一直没有机会接触,从刚开始接触嵌入式的时候,
2012-08-27 22:37:28 523
转载 Makefile编译选项
-D:条件选择编译-I :头文件搜索路径-l:连接静态库 AR静态库打包命令的名字,缺省值是ar。ARFLAGS静态库打包命令的选项,缺省值是rv。AS汇编器的名字,缺省值是as。ASFLAGS汇编器的选项,没有定义。CCC编译器的名字,缺省值是cc。CFLAGSC编译器的选项,没有定义。
2012-08-23 13:05:30 547
转载 ARM 异常及中断
ARM 有七种异常,当异常发生时,ARM core 会自动执行 Vector Table 中的指令。ARM 的七种异常及在 Vector Table 种的偏移: 异常模式向量表偏移复位(reset)SVC+0x00未定义指令UN
2012-08-23 09:43:39 536
转载 CPU 访问外设方法
在嵌入式编程里,特别是32bit CPU里,各种各样五花八门的动作是CPU通过对外设的驱动来完成的.因为底层编程大部分工作就是外设编程。 CPU本身几乎每一种外设都是通过读写设备上的寄存器来进行操作的。外设寄存器也称为“I/O端口”,通常包括:控制寄存器、状态寄存器和数据寄存器三大类,而且一个外设的寄存器通常被连续地编址。注意,这里的外设是相对于CPU来讲的,比如S3C2440除了ARM
2012-08-23 09:40:16 5846
转载 Linux中source命令的用法
source命令:source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。用法: source filename 或 . filenamesource命令除了上述的用途之外,还有一个另外一个用途。在对编译系统核心时常常需要输入一长串的命令,如:make mrproper
2012-08-20 11:18:06 581
转载 Makefile中用宏定义进行条件编译(gcc -D)/在Makefile中进行宏定义-D
在源代码里面如果这样是定义的:#ifdef MACRONAME//可选代码#endif那在makefile里面gcc -D MACRONAME=MACRODEF或者gcc -D MACRONAME 这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。对于GCC编译器,有如下选项: -D macro=string,等
2012-08-17 22:17:33 2173
转载 Makefile中指示符“include”、“-include”和“sinclude”的区别
指示符“include”、“-include”和“sinclude” 如果指示符“include”指定的文件不是以斜线开始(绝对路径,如/usr/src/Makefile...),而且当前目录下也不存在此文件;make将根据文件名试图在以下几个目录下查找:首先,查找使用命令行选项“-I”或者“--include-dir”指定的目录,如果找到指定的文件,则使用这个文件;否则继续依此搜
2012-08-17 22:16:14 763
转载 u-boot makefile 中 .depend 文件生成
已知自动生成依赖的规则在顶层目录的rules.mk文件里面约定:rules.mk:---------#########################################################################_depend: $(obj).depend$(obj).depend: $(src)Makefile $(TOPDIR)/c
2012-08-17 16:00:03 6072
转载 GDB中应该知道的几个调试方法
一、多线程调试多线程调试可能是问得最多的。其实,重要就是下面几个命令:info thread 查看当前进程的线程。thread 切换调试的线程为指定ID的线程。break file.c:100 thread all 在file.c文件第100行处为所有经过这里的线程设置断点。set scheduler-locking off|on|step,这个是问得最多的。在使用step或者
2012-08-17 14:50:41 648
转载 如何调试makefile变量
对于Makefile中的各种变量,可能是我们比较头痛的事了。我们要查看他们并不是很方便,需要修改makefile加入echo命令。这有时候很不方便。其实我们可以制作下面一个专门用来输出变量的makefile(假设名字叫:vars.mk)vars.mk12345678%:
2012-08-17 14:47:58 406
转载 c++ 类的大小
先看看一个例子:#includeclass a {};class b{};class c:public a{ virtual void fun()=0;};class d:public b,public c{};int main(){ cout cout cout cout return 0;}程序执行的输出结果为:
2012-08-15 13:18:32 314
转载 C/C++ 内存管理
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放
2012-08-15 13:11:06 898
转载 嵌入式根文件系统比较
原文出处:http://blog.csdn.net/yicao821/article/details/6754195一、嵌入式根文件系统 Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统进行统一管理,Linux引入了虚拟文件系统VFS(Virtual Fil
2012-08-13 15:37:36 625
原创 Nand: OOB BBT ECC PEB LEB
OBB:例如Samsung K9F1208U0B,数据存储容量为64MB,采用块页式存储管理。8个I/O 引脚充当数据、地址、命令的复用端口。芯片内部存储布局及存储操作特点: 一片Nand flash为一个设备(device), 其数据存储分层为: 1 (Device) = 4096 (Blocks) 1 (Block) - = 32 (Pages/Ro
2012-08-13 13:13:31 2027
转载 diff 、patch 和 quilt (2)
原文地址:http://blog.csdn.net/fmddlmyy/article/details/21400972 quilt我们自己的项目可以用cvs或svn管理全部代码。但有时我们要使用其他开发者维护的项目。我们需要修改一些文件,但又不能直接向版本管理工具提交代码。自己用版本管理工具重建整个项目是不合适的,因为大多数代码都是别人维护的,例如Linux内核。我
2012-08-09 20:24:06 507
转载 diff 、patch 和 quilt (1)
原文地址:http://blog.csdn.net/fmddlmyy/article/details/2140064diff和patch是在Linux环境为源代码制作和应用补丁的标准工具。diff可以比较文件或目录的差异,并将差异记录到补丁文件。patch可以将补丁文件应用到源代码上。quilt也是一个制作和应用补丁的工具,它适合于管理较多补丁。quilt有自己的特有的工作方式
2012-08-09 20:20:26 430
原创 b2g Introduction(Boot To Gecko)
B2G是“Boot To Gecko”的缩写,是Mozilla公司基于Web标准开发的完全开放的移动操作系统,从系统本身到应用程序完全由HTML5、CSS和JS来写的。主要由3个部分组成,UI部分叫做Gaia,名字出自希腊语“大地”,也被称作“万物之母”;采用Mozilla引以为豪的Gecko引擎,Gecko就是上图中那只眼睛大大长的很萌的绿色小蜥蜴;底层部分叫做Gonk,名字来自一种在60年代盛
2012-08-05 16:06:59 850
原创 四种主要浏览器内核简介(Trident/Gecko/webkit/Presto)
Trident: IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE7。 Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。由于IE本身的“垄断性
2012-08-05 15:47:48 4045
Linux课件ppt及常用Linux命令集
2009-06-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人