C语言在linux上 ==&gt世界是啊。

C语言的编加运作,分点儿步

从.net到delplhi

编译阶段 连接路

从windows到Linxu

java语言的步调是 转成.class文件  java的虚拟机运行

前程起多远?

 

哪突破自己?

C语言在windows上==> .o中间文件 ==>.exe可执行文件 打包函数是.dll文件

咦是投机?

C语言在linux上 ==>.o中间文件 ==>.elf可执行文件 打包函数是.so或者.a文件

本身打乌来,要到哪里去?

C语言的峰文件是给编译器看之比如stdio.h,库函数是受连接器看的

世界是呀?

 

举凡天底下选择了自我,还是自身选了社会风气?

 

怎么才能够一气呵成蜕变?

android系统的底色是linux,处理器分为两栽,arm和x86

失掉他妈的,干吧!!!

率先要以windows下的环境及,把C代码打包成手机能就此之函数库,需要模拟手机的环境

ARM可执行文件格式

 

  • ELF:可执行文件格式
  • AFX:ARM的调节文件
  • BIN:可以形容及flash或者RAM中直接运行

下载NDK

 
加载时地址便是次放置的地方,运行地址便是程序一定的断然地址,也不怕以编译连接时一贯的地方。如果程序是在flash里运行,则运行地址与加载地址是一致的。如果程序是以ram里运行,但顺序是储存在flash里,则运行地址指向ram,而加载地址是赖为flash。代码一般是发烧写在NAND里面

解压缩放到一个目下就是足以了

 

目录里的ndk-build是要运用的通令工具,需要在linux下运行

ARM上电启动

 

  1. 初始化ARM CPU异常处理为量表
  2. 明令禁止看门狗???
  3. 明令禁止中断
  4. 初始化系统时钟,包括CPU主频,系统总线时钟频率,外设总线时钟频率
  5. 初始化SDRAM (SD卡) 控制器
  6. 装ARM CPU 在各种模式下之栈指针
  7. 安装ARM中断向量表,安装中断处理程序
  8. 盘可执行文件到RAM中
  9. 超越反至C语言程序的MIAN函数开始实践。

安装linux的仿器Cygwin 模拟Linux系统,只待将Devel和shell点成install就好

linux内核原码的团队

登cygdriver目录,这个目录将我们windows电脑及之盘符放上了

init    核心初始化代码       
该目录下之mian.c中的start_lernel函数式内核运行的第一独C语言函数,相当给本的mian函数

动 cd /cygdriver/c/xxxxx
可以进入C盘

arch  体系布局的基本代码    不同之CPU不同的吩咐

 

MM 独立于CPU体系布局的内存管理代码

安装eclipse插件 cdt,可以于eclipse里面开发C或者C++

kernel 内核核心

 

drivers 驱动程序

ipc 进程之中通信的代码

lib 库代码

 

本裁剪配置图  Kconfig|Kconfig|Kconfig|Kconfig ==>.config|makefile
==>uimage或者zimage

CPU刚上电启动时,一般内存控制器还没有配备了,无法还内存中运行程序。

linux内核要运行CPU还必须满足一些标准化

为初始化CPU以及其它外设,必须使来一个先入为主内核的次来部署硬件,这个顺序就算是BootLoader=BIOS+GRUB=Uboot(严格因硬件)

 

CPU内部有一个称为MMU的内存转换单元,其中起一个页表,用来贯彻CPU寻址与内存还是其他IO寻址转换。对于不同的操作系统,可以安装不同之内存转换的页表,UBoot可以写不同之情节,将不同之CPU地址分配为不同的硬件配备。比如32各类CPU寻址范围也4G,可以只被内存分配1K,给硬件分配3G。这样就算你的内享有4G,CPU也唯有下中的1K。(当然就是自杀的节奏)

 

 

 

相关文章