ARMLinux系统结构内核_第1页
ARMLinux系统结构内核_第2页
ARMLinux系统结构内核_第3页
ARMLinux系统结构内核_第4页
ARMLinux系统结构内核_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARMLinux用户状态中断状态(IRQImterruptRequest)快中断状态(FIQ,FastImterrupt监管状态终止状态无定义状态系统状态ARM-Linux内存管理和表”,当CPU访问内存的时候:者页面映射表项中的2位的“访问权限”AP为staticstructmap_descxsbase255_io_desc[] initdata=/* rwcb0xE8000000,0x000000000x02000000DOMAIN_IO0100片选0CS0IntelStrataFlash0xF0000000,0x040000000x00100000DOMAIN_IO0100片选1CS10xf0110000,0x080000000x00010000DOMAIN_IO0100片选2CS2ExtendPORT0,扩充的{0xf0120000,0x08100000,0x00010000,DOMAIN_IO,0,1,0,0},//CS2:Extend0xf1000000,0x0C7000000x00010000DOMAIN_IO0100片选CS3USBHost(Ez-ARM-LinuxARM-Linuxstructhw_interrupt_type{constchar*typename;unsignedint(*startup)(unsignedintirq);void(*shutdown)(unsignedintirq);void(*enable)(unsignedintirq);void(*ack)(unsignedintirq);void(*end)(unsignedintvoid(*set_affinity)(unsigedintirq,unsignedlong每一个中断请求线都有一个structirqdesc数typedeftypedefstructunsignedintstatus; /*IRQstatus*/hw_irq_controller*handler;structirqaction*action;/*IRQactionlist*/unsignedintdepth; /*nestedirqdisables*/spinlock_tlock;

Structvoidhello(void)voidhello(void)printk(“helloarch/arm/kernel/call.S中添加新的系 NR_syscalls-( syscall_end- syscall_start)/4实验一创建和使用一个新的系统调用obj-yobj-y:=arch.ocompat.odma.o$(ENTRY_OBJ)entry-common.oirq.oprocess.optrace.osemaphore.osetup.osignal.osys_arm.o\time.otraps.o$(O_OBJS_$(MACHINE))mysyscall.o实验一创建和使用一个新的系统调用 ("swi#include<stdio.h>#include“test.h”intmain(void)printf("starthello\n");printf("end实验一创建和使用一个新的系统调用##arm-linux-gcctest.c-o#./test#./teststarthellohelloworldendhello化函数,以完成kernel内存初始化(创建和设置内部及通用创建uidtaskcountSLAB创建文件创建目录创建与虚存相关的创建信号队列创建内存文件描述符表kswapd内核线程。 do_execve()执行具体的操作do_exit(longcode)带一个参数code,用实现终止:sys_exit()sys_reboot()ARM-Linux在内核应用中直接调用被动调用Linuxmodule载入内核后,它就成为内核lsmodkernel中已经安装的modulesinsmodmodulekernelrmmodmodule从kerneldepmodmoduledependencyfile,以告诉将insmod要去哪儿找modules来安装structmodule{structmodule*next;structmodule_ref*ref;/*thelistofmodulesthatrefertome*/structsymbol_table*symtab;constcharintsize; /*sizeofmoduleinpages*/void*addr; /*addressofmodule*/intstate;void(*cleanup)(void);/*cleanuproutinestructsymbol_tableintsize;/*total,includingstringtable!!!*/intn_symbols;intstructinternal_symbolsymbol[0];/*actualsizedefinedbyn_symbols*/structmodule_refref[0];/*actualsizedefinedbyn_refs根据需要载入module(demandloaded调用系统调用sys_create_moduleLinux8内核、2.6内核和LynuxOS4.0在最好Linux2.6内核移植制作BootLinux2.6内核移植\h\hARMLinux是基于标准Linux内核为ARM做的\h.uk\h上下\h$makeLinux2.6内核移植$make修改t-linux文件,在TARGET_LIBGCC2_CFLAGS加上- $cdgcc-$cdgcc-$./configure--target=arm-linux--prefix=/arm-linux--with-headers=/root/linux-2.6.10/include--enable-languages=c--disable-shared--disable-threadsLinux2.6内核移植SUBARCH:=(shelluname–m|sed–es/i.86/i386/es/sun4u/sparc64/es/arm.*/arm/es/sa110/arm/)SUBARCH:修改编译器选项:CROSS_COMPILE=arm-linux-Linux2.6内核移植在SYSTEMTYPE目录中选择正确的CPU,在IntelImlementations选项中选择Int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论