- 博客(22)
- 资源 (2)
- 收藏
- 关注
转载 Android编译完成后的代码结构
Android编译完成后,将在根目录中生成一个out文件夹,所有生成的内容均放置在这个文件夹中。out文件夹如下所示: out/ -- CaseCheck.txt -- casecheck.txt -- host -- common -- linux-x86 -- target -- common
2009-11-30 16:06:00 1416 1
转载 Android的源代码结构
Google提供的Android包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:.|-- Makefile (全局的Makefile)|-- bionic (Bionic含义为仿生,这里面是一些基础的库的源代码)|-- bootloader (引导
2009-11-30 16:01:00 992
转载 生产者-消费者问题实现 (linux下C语言)
操作系统的一个经典问题是"生产者-消费者"问题, 这涉及同步信号量和互斥信号量的应用, 在这里,我用线程的同步和互斥来实现. #include #include #include #include #include #define N 2 // 消费者或者生产者的数目#define M 10 // 缓冲数目int
2009-11-30 15:45:00 4383 2
转载 kbuild系统-内核模块的编译
Linux内核是一种单体内核,但是通过动态加载模块的方式,使它的开发非常灵活方便。那么,它是如何编译内核的呢?我们可以通过分析它的Makefile入手。以下是一个简单的hello内核模块的Makefile. ifneq ($(KERNELRELEASE),) obj-m:=hello.o else KERNELDIR:=/lib/modules/$(shell
2009-11-29 23:46:00 1128
转载 基于Arm 的linux 的启动分析
基于Arm 的linux 的启动分析目录:<bstyle=mso-bidi-font-weight:normal><span lang=EN-US style=font-size:12.0pt;font-family:宋体;mso-bidi-font-family:LMSans10-Regular-Identity-H;mso-f
2009-11-29 22:45:00 2630
原创 Ubuntu 9.04中下载编译Android源码
总结出Ubuntu 9.04下编译Android源码的过程,便于大家参考; 一.PC工作环境准备 首先安装一些必须的工具包:(已安装工具包进行升级,未安装的进行下载安装)apt-get install flex bison gperf libsdl-dev libesd0-devapt-get install libwxgtk2.8-dev build-essenti
2009-11-29 18:15:00 2437
原创 linux 内核源代码目录结构概述
进入linux源代码目录,会看到若干子目录和文件。现代操作系统一般由进程管理,内存管理,文件系统,驱动程序和网络协议栈组成。 arch : 包含了所有和体系结构相关的核心代码。它下面的每个子目录代表一种linux支持的体系结构。如arm目录就是与ARM体系结构兼容的CPU的子目录;/arch/i386则是intel CPU及其兼容体系结构的子目录. drivers: 包含了系统
2009-11-26 21:16:00 2060
原创 LPC2xxx系列ARM启动代码分析 Init.s
;----------------可参照http://hi.baidu.com/hmos/blog/item/461babd358127434970a1677.html--------;引入的外部标号在这声明 IMPORT __main ;C语言主程序入口 IMPORT InitStack
2009-11-26 21:04:00 971
转载 arm开发经验笔记
前一段时间做了arm的一些开发,主要是编写了arm的启动软件和移植了uCOS-II到arm7。我做事情喜欢深入简出,及从最简单,最原理的方面先做一个框架,然后在这个框架里面进行补充。我还是一个很喜欢和别人讨论的人,希望有人可以给我提出意见和建议。我的这个心得很初级,都是一些基本的东西。现在拿出来和大家分享,希望在我毕业之前能给大家留一些纪念。^_^ 由于这些东西发paper实
2009-11-12 17:28:00 798
转载 关于const char*, char const* and char *const 等的区别
1 关于const char*, char const* and char *const 等的区别 2 3 助记方法: 4 把一个声明从右向左读 5 比如: 6 char * const cp; 7 //cp is a const pointer to char 8 9 const char * cp; 10 //cp is a poi
2009-11-12 14:27:00 857
原创 对ARM7 LPC2210的Bootloader源码分析
对周立功公司开发板EasyARM LPC2210开发板Chenmingji写的Bootlaoder进行分析和解读。一、变(常)量声明 首先声明堆栈大小 ;define the stack size ;定义堆栈的大小 SVC_STACK_LEGTH EQU 0 FIQ_STACK_LEGTH
2009-11-12 14:01:00 1103
转载 UCOS-II在LPC2210上的移植--OS_CPU_A.s
UCOS-II在LPC2210上的移植--OS_CPU_A.sCPU: Philips ARM7 LPC2210OS: uC/OS-II 2.52IDE: ADS 1.2移植一个操作系统到一个CPU体系的结构上,移植者必须的要求:1、对目标体系结构要有很深的了解 -- ARM Architecture Reference Manual2、对OS原理要有较深
2009-11-12 09:55:00 961
转载 UCOS-II在LPC2210上的移植--OS_CPU_c.c
UCOS-II在LPC2210上的移植--OS_CPU_c.c CPU: Philips ARM7 LPC2210OS: uC/OS-II 2.52IDE: ADS 1.2移植一个操作系统到一个CPU体系的结构上,移植者必须的要求:1、对目标体系结构要有很深的了解 -- ARM Architecture Reference Manual2、对OS原理要有较深入的了
2009-11-12 09:49:00 1088
转载 UCOS-II在LPC2210上的移植--OS_CPU.h
UCOS-II在LPC2210上的移植--OS_CPU.h CPU: Philips ARM7 LPC2210OS: uC/OS-II 2.52IDE: ADS 1.2移植一个操作系统到一个CPU体系的结构上,移植者必须的要求:1、对目标体系结构要有很深的了解 -- ARM Architecture Reference Manual2、对OS原理要有较深入的了解 --
2009-11-12 09:41:00 1215
转载 linux中ELF加载过程分析
sys_execve | - do_execve|| - search_binary_handler |- linux_binfmt= elf_format |- elf_format-> load_elf_binary| - elf_entry = load_elf_interp()
2009-11-07 21:28:00 4265 1
原创 C++编程基础:类中的常量
首先看看常量定义规则:规则1:需要对外公开的常量放在头文件中,不需要对外公开的常量放在定义文件的头部。为了便于管理,可以把不同模块的常量集中放在一个公共的头文件中。规则2:如果某一常量与其他常量密切相关,应在定义中包含这种关系。而不应该给写孤立的值;例如:const float RADIUS=100; const float DLAMETER=RAD
2009-11-07 20:19:00 800 1
转载 ARM优化之局部变量的位宽
这次说下局部变量的位宽对于程序的影响。大家都清楚,局部变量都是在栈中实现的,并且在函数调用结束时释放掉,所以有些人在定义局部变量的位宽时并没有仔细的考虑位宽的影响,随意定义。在一般的情况下,并不会造成很大的影响,但是在循环操作的情况下,就会影响程序的性能。下面这段程序,用了BIT_U16定义了局部变量i,j。汇编内嵌在C中。view plaincopy to clipbo
2009-11-07 15:59:00 1167
原创 ARM优化之函数的形参数量
ARM的参数传递遵循ATPCS的规范,子程序间通过寄存器R0-R3来传递参数,返回值也通过R0来返回。这就造成一个问题,当构造超过4个参数的函数时,如何实现。翻阅了其他资料以及下面的代码比对表明,多出来的参数传递的时候,需要使用栈,而栈需要使用额外的指令以及对慢速存储单元的读写,所以不超过4
2009-11-07 15:26:00 1073
转载 arm c函数的调用过程arm汇编语言调用C函数之参数传递
对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure CallStandard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2Online Books ——Developer Guide的2.1节。这篇文档要讲的是汇编代码中对C函数调用时如
2009-11-07 00:39:00 6099 1
转载 浅析setup_arch()函数tag_list的uboot由来
1.linux中//------------------------------------------------------arch/arm/kernel/setup.c->setup_arch()void __init setup_arch(char **cmdline_p){ struct
2009-11-06 23:57:00 1587
转载 NFS ROOT 启动内核的配置(UBoot)
在一般的嵌入式系统开发中经常需要烧写内核文件和文件系统映像,为了保护和节省片子的烧写次数,为了方便我们开发的过程节省浪费在烧写上的时间,更多的是方便我们的开发不至于把系统上的文件搞的乱七八糟…其实,其实当我们的内核变大,板子Flash无法容纳内核和文件系统的时候,NFSROOT是个好的解决方案。因此想试试使用NFS ROOT:一、内核配置:添加内核对NFS的支持:n
2009-11-06 23:46:00 2707
转载 U-Boot如何为内核设置启动参数
大家都知道U-Boot启动的时候会将启动参数的地址放入R2中,然后再启动内核。我们看看这些参数是如何设置的。首先看两个重要的数据结构:第一个是global_data,定义在include/asm-arm/global_data.h文件中:typedef struct global_data { bd_t
2009-11-06 23:35:00 1995
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人