第4部分 Linux部分_3.BootLoader的移植

上传人:yc****d 文档编号:243397071 上传时间:2024-09-22 格式:PPTX 页数:38 大小:4.10MB
返回 下载 相关 举报
第4部分 Linux部分_3.BootLoader的移植_第1页
第1页 / 共38页
第4部分 Linux部分_3.BootLoader的移植_第2页
第2页 / 共38页
第4部分 Linux部分_3.BootLoader的移植_第3页
第3页 / 共38页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,地址:中国,深圳经济特区福田区中康路,32,号弘亿大厦,电话:,6,传真:,9,邮政编码:,518000,网址:,http/,地址:,中国,深圳市福田区上梅林梅林路,10,号申汇基大厦,5,楼,电话:,3-672,传真:,1,邮政编码:,518000,网址:,http/,1,常用计算机的配置,第一章,Linux,部分,_,3.BootLoader,的移植,第四部分,2,目 录,4.3.1 BootLoader,简介,4.3.2 Blob,分析,3,系统的内部结构,BootLoader,FS,kernel,APP,HardWare,内核代码和各种驱动的代码,4,4.3.1 BootLoader,简介,BootLoader,是什么,?,在操作系统内核运行之前运行的一段小程序,5,4.3.1 BootLoader,简介,BootLoader,的作用,初始化底层硬件,建立内存空间的映射图,调用操作系统内核,GPIO,Memory,物理地址和,虚拟地址的映射,6,4.3.1 BootLoader,简介,BootLoader,的组成,固件,(Fireware),中,boot,代码,Stage1(,汇编部分,),Stage2(C,部分,),固件,(Fireware),中,boot,代码,硬件检测,资源分配,7,4.3.1 BootLoader,简介,Stage1(,汇编部分,),的作用,硬件设备初始化,拷贝,Boot Loader,的,stage2,到,RAM,空间中,为加载,Boot Loader,的,stage2,准备,RAM,空间,跳转到,stage2,的,C,入口点,设置好堆栈,8,4.3.1 BootLoader,简介,Stage2(C,部分,),的作用,初始化本阶段常用的硬件设备,内存映射,mmap,将,kernel image,文件和根文件系统,image,从,flash,读到,RAM,空间,调用内核,为内核设置启动参数,9,4.3.1 BootLoader,简介,BootLoader,种类,Redboot,ARMboot,VIVI,Blob,U-Boot,10,Redboot,介绍,1,、来源,2,、支持的处理器构架,3,、特性,Redhat,公司随,eCos,发布的一个,BOOT,方案,发布:,CPU,架构:,ARM,,,MIPS,,,MN10300,,,PowerPC,,,Renesas SHx,,,v850,,,x86,等,Redboot,特性:,支持,ECOS,,,Linux,操作系统,引导在线读写,Flash,支持串行口,kermit,,,S-record,下载代码,监控,(minitor),命令集,:,读写,I/O,,内存,,寄存器、 内存、外设测试功能等,Redboot,4.3.1 BootLoader,简介,11,ARMboot,介绍,1,、来源,2,、支持的处理器构架,3,、特性,ARMboot,是一个,ARM,平台的开源固件项目,,它特别基于,PPCBoot,,一个为,PowerPC,平台,上的系统提供类似功能的姊妹项目。,发布:,CPU,架构:,StrongARM,,,ARM720T,,,PXA250,等,是为基于,ARM,或者,StrongARM,CPU,的嵌入式系统所设计的,ARMboot,特性:,支持多种类型的,FLASH,允许映像文件经由,BOOTP,、,DHCP,、,TFTP,从网络传输,support,串口下载,Image,允许内存的显示及修改,ARMboot,4.3.1 BootLoader,简介,12,VIVI,介绍,1,、来源,2,、支持的处理器构架,3,、特性,vivi,是由,mizi,公司设计为,ARM,处,理器系列设计的一个,bootloader,发布:,CPU,架构:,ARM,VIVI,特性:,使用串口和主机通信,VIVI,4.3.1 BootLoader,简介,13,U_Boot,介绍,1,、来源,2,、支持的处理器构架,3,、特性,U_boot,全称,Universal Boot Loader,,是遵循,GPL,条款的开放源码项目。,从,FADSROM,、,8xxROM,、,PPCBOOT,逐步发展演化而来。,发布:,CPU,架构:,PowerPC (MPC5xx,,,MPC8xx,,,MPC82xx,,,MPC7xx,,,MPC74xx4xx),,,ARM,(,ARM7,,,ARM9,,,StrongARM,,,Xscale,),,MIPS,,,x86,U-boot,特性:,SCC/FEC,以太网支持,BOOTP/TFTP,引导,IP,,,MAC,预置功能,在线读写,FLASH,IIC,,,EEROM,,,RTC,支持,WatchDog,,,LCD logo,等,U_Boot,4.3.1 BootLoader,简介,14,Blob,介绍,1,、来源,2,、支持的处理器构架,3,、特性,Jan-Derk Bakker and Erik Mouw,发布的,,是专门为,StrongARM,构架下的,LART,设计的,发布:,CPU,架构:,Blob,支持,SA1100,的,LART,主板,但,用户也可以自行修改移植,像,Xscal,等,Blob,特性:,初始化硬件(,CPU,速度,存储器),引导,Linux,内核并提供,ramdisk,给,LART,下载一个内核或者,ramdisk,给,FLASH,片更新内核或者,ramdisk,测定存储配置并通知内核,Blob,4.3.1 BootLoader,简介,15,目 录,4.3.1 BootLoader,简介,4.3.2 Blob,分析,16,1,、,include,2,、,src,3,、,Utils,包含头文件,主要源码,软件附带的工具集,Blob,4.3.2 Blob,分析,17,4.3.2 Blob,分析,Blob,启动流程,(stage1),b start,_start :,bl define_gpio,bl clock_enable,bl setup_memory,Main(),ldrpc, =main,GPIO,口的初始化,GPIO,口的初始化,CPU,主频设置和内存的初始化,跳转到,main,函数,18,4.3.2 Blob,分析,Blob,启动流程,(stage2),Main(),uart_init(),time_init(),config_init(),printf(),iflash_init(),eth_init(),mdelay(1),_asm_(,mov r0, #3; mcr p14,0,r0,c6,c0,0,);,autoboot,Y,autoboot_mode(),N,while(!bExit),N,return 0;,Y,DisplayMenu(),iNum = getc(),if(iNum =.),Y,bSelect = true,while (!bSelect),N,Y,switch(iNum),Case.,Case.,N,19,4.3.2 Blob,分析,Blob,启动流程,(stage1),.text.start,段,.section .text.start,.global _start,_start :,b,start,段名的定义,全局标号的定义,.section .text,start,:,bldefine_gpio,blclock_enable,blsetup_memory,.text,段,20,4.3.2 Blob,分析,GPIO,口初始化,ldrr1, =GPIO_BASE,ldrr0, =_GPSR0,strr0, r1, #GPSR0,ldrr0, =_GPCR0,strr0, r1, #GPCR0,ldrr0, =_GAFR0L,strr0, r1, #GAFR0L,ldrr0, =_GAFR0U,strr0, r1, #GAFR0U,ldrr0, =_GPDR0,strr0, r1, #GPDR0,#define,GPIO_BASE,0x40E00000,#define,_GPDR0,0x00208000 | (116),#define,GPDR0,0x00C,GPIO,口的基址,GPIO,状态寄存器的设置,GPIO,功能替换寄存器的设置,GPIO,方向寄存器的设置,21,4.3.2 Blob,分析,GPIO,口的内部结构图,方向寄存器,功能替换寄存器,状态寄存器,状态寄存器,22,4.3.2 Blob,分析,GPIO,口初始化,ldrr1, =GPIO_BASE,.,ldrr0, =_GPDR0,strr0, r1, #GPDR0,#define,GPIO_BASE,0x40E00000,#define,_GPDR0,0x00208000 | (1 8, UART_DLH);,uart_put(BaudToDLV(UART_BAUDRATE) ,.,设置,GPIO34,为,FFRXD,设置串口波特率,29,4.3.2 Blob,分析,串口初始化,pxa_gpio_mode(,GPIO34_FFRXD_MD,);,#define,GPIO34_FFRXD_MD,(34 |,GPIO_ALT_FN_1_IN,),#define,GPIO_ALT_FN_1_IN,0x100,GPIO34_FFRXD_MD=0x122,pxa_gpio_mode(,0x122,);,30,4.3.2 Blob,分析,串口初始化,void pxa_gpio_mode(int mode) /,mode=0x122,int gpio = mode &,GPIO_MD_MASK_NR,; /,gpio=0x22,int fn = (mode &,GPIO_MD_MASK_FN,) ,8,; /,fn= 0x01,int gafr;,if,(mode &,GPIO_MD_MASK_DIR,) /,if,(,0,),GPDR,(gpio) |=,GPIO_bit,(gpio);,else,GPDR,(gpio) &= ,GPIO_bit,(gpio);,.,return,;,#define,GPIO_MD_MASK_NR,0x07f,#define,GPIO_MD_MASK_FN,0x300,#define,GPIO_MD_MASK_DIR,0x080,31,4.3.2 Blob,分析,串口初始化,void pxa_gpio_mode(int mode) /,mode=0x122,. /,gpio=0x22,fn= 0x01,if,(mode &,GPIO_MD_MASK_DIR,) /,if,(,0,),GPDR,(gpio) |=,GPIO_bit,(gpio);,else,GPDR,(gpio) &= ,GPIO_bit,(gpio);,/(GPDR1),&=,0x04,gafr =,GAFR,(gpio) & (,0x3, (gpio) &,0xf,)*,2,);,GAFR,(gpio) = gafr | (fn (gpio) &,0xf,)*,2,);,return,;,#define,GPIO_bit(x),(,1, (,x,) &,0x1f,),#define,GPDR(x),(*(,x,) &,0x7f,) ,3,),# define,_REG2(x,y),(*(volatile unsigned long *)(unsigned long)(x) + (y),32,4.3.2 Blob,分析,串口初始化,33,4.3.2 Blob,分析,串口初始化,void pxa_gpio_mode(int mode) /,mode=0x122,. /,gpio=0x22,fn= 0x01,gafr =,GAFR,(gpio) & (,0x3, (gpio) &,0xf,)*,2,); /,gafr=0x?c?,GAFR,(gpio) = gafr | (fn (gpio) &,0xf,)*,2,);,/,GAFR1_L=0x?d?,return,;,#define,GAFR(x),(*(x) &,0x7f),96,) ? &_GAFR(,x,) : ,(x) &,0x7f),2,),# define,_REG2(x,y),(*(volatile unsigned long *)(unsigned long)(,x,) + (,y,),34,4.3.2 Blob,分析,串口初始化,35,4.3.2 Blob,分析,串口初始化,?,36,4.3.2 Blob,分析,串口初始化,37,Thank you,view reading,谢谢观阅,38,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!