arm-linux
文章平均质量分 61
marven
热爱ARM,热爱linux,热爱oracle 热爱嵌入式,热爱C/C ,热爱csdn。
展开
-
MACHINE_START宏
MACHINE_START宏 linux2.6.18内核,在Mach-s3c2410.c文件中,有如下的宏定义: <br />MACHINE_START(SMDK2410,"SMDK2410")/* @TODO: request a new identifier and switch to SMDK2410 */<br /> /* Maintainer: Jonas Dietsche */<br /> .phys_io = S3C2410_PA_UART,<br /> .io_pg_offst =(((u3转载 2011-01-12 12:20:00 · 870 阅读 · 0 评论 -
关于嵌入式系统的启动
嵌入式Linux启动分为两个部分,系统引导与Linux启动。系统引导将完成Linux装入内存前,初始化CPU和相关IO设备,并将Linux调入内存的工作。系统引导主要由BootLoader实现。在BootLoader将Linux内核调入内存之后,将权力交给LinuxKernel,进入Linux的启动部分。以下详细分析启动的过程与使用的文件。<br /><br />一、系统引导与BootLoader<br /> BootLoader因嵌入式系统的不同与PC机有很大不同,这里将以Hyper250(转载 2011-01-12 12:22:00 · 681 阅读 · 0 评论 -
U_BOOT_CMD命令的实现
在UBOOT当中,各个命令是通过U_BOOT_CMD这个宏来定义出来的,其本质其实理解起来也很简单,不过今天也从中学到了一点东西先来看UBOOT当中关于U_BOOT_CMD这个宏的定义:/* 这是定义一个结构的属性,将其放在.u_boot_cmd这个段当中,相当于.data/.bss这些段 */#define Struct_Section __attribute__ ((unused,section (".u_boot_cmd"))) /* 宏定义,用于定义一个命令 */#define U_BOOT_CM原创 2011-01-13 14:50:00 · 5844 阅读 · 2 评论 -
Linux中的物理和虚拟存储空间布局
<br />在支持MMU的32位处理器平台上,Linux系统中的物理存储空间和虚拟存储空间的地址范围分别都是从0x00000000到0xFFFFFFFF,共4GB,但物理存储空间与虚拟存储空间布局完全不同。Linux运行在虚拟存储空间,并负责把系统中实际存在的远小于4GB的物理内存根据不同需求映射到整个4GB的虚拟存储空间中。n物理存储空间布局<br />Linux的物理存储空间布局与处理器相关,详细情况可以从处理器用户手册的存储空间分布表(memory map)相关章节中查到,我们这里只列出嵌入式处理器平转载 2011-01-13 18:55:00 · 1188 阅读 · 0 评论 -
基于S3C2410-ARM-Linux静态映射分析
在华清远见上课过程中,发现静态映射方面初学者比较难于掌握和理解,下面分析一下静态映射机制的原理并通过GPIO和USB、LCD等的静态映射作为例子来说明如何通过这种静态映射的方式访问外设资源。 内核提供了一个重要的结构体struct machine_desc ,这个结构体在内核移植中起到相当重要的作用,内核通过machine_desc结构体来控制系统体系架构相关部分的初始化。machine_desc结构体的成员包含了体系架构相关部分的几个最重要的初始化函数,包括map_io,init_irq, in转载 2011-01-13 19:08:00 · 1090 阅读 · 0 评论 -
create_mapping如何创建内存映射表
1 ARM920T的MMU工作原理<br />下图显示了MMU地址转化关系<br /><br />一级表项的地址(pmd) = ( (TLB) & (0xFFFFC000) ) + ( (Table Index)<<2 );<br />注1:TLB(Translate table base),即转换表基地址<br />注2:由于每个表项占32位(4Bytes),因此(Table Index)<<2 <br />一级表项的内容(*pmd) = ( (pte) & (0xFFFFFC00) ) + prot_l转载 2011-01-13 19:39:00 · 2687 阅读 · 1 评论 -
U-boot 传递 RAM 和 Linux kernel 读取 RAM 参数
<br />U-boot 会给 Linux Kernel 传递很多参数,如:串口, RAM , videofb 等。而 Linux kernel 也会读取和处理这些参数。两者之间通过 struct tag 来传递参数。 U-boot 把要传递给 kernel 的东西保存在 struct tag 数据结构中,启动 kernel 时,把这个结构体的物理地址传给 kernel ; Linux kernel 通过这个地址,用 parse_tags 分析出传递过来的参数。 <br />本文主要以 U-boot 传递原创 2011-01-13 19:02:00 · 1371 阅读 · 0 评论 -
Linux如何映射物理内存到内核空间
在setup_arch()中: 1. parse_cmdline(): 根据uboot传递的mem信息,调用early_mem()通过arm_add_memory()把物理内存信息添加到meminfo结构体中。 2. paging_init(): 这个就是关键的初始化页表的函数,在里面会调用bootmem_init()->bootmem_init_node()->map_memory_bank(),在这里会根据meminfo的信息调用create_mapping()来为物理内存建立内核空间的映射,一般是从0转载 2011-01-13 19:22:00 · 2346 阅读 · 0 评论 -
S3C2440的存储器管理
以前不知道S3C2440的每个BANK都要设置位宽,也不知道为什么要设置,今天弄懂了。在使用BANK之前要设置每个BANK所接的外设时多少位的?由BWSCON寄存器设置,默认情况为8位。由于BANK0位启动区,所以有硬件指示,通过读OM[1:0]引脚来设置。 当宽度为8位的时候,"Memory Controller"硬件是这样做的:(不错位连接)(1)CPU想进行8位操作时,直接根据软件所给出的地址读取8位数据返回给CPU。(2)CPU想进行16位操作时,进行两次8位的操作,并组成一个16位的数据返回给CP原创 2011-03-04 17:42:00 · 1378 阅读 · 0 评论 -
Linux内核访问外设I/O资源的方式
<br />我们知道默认外设I/O资源是不在Linux内核空间中的(如sram或硬件接口寄存器等),若需要访问该外设I/O资源,必须先将其地址映射到内核空间中来,然后才能在内核空间中访问它。<br /> <br />Linux内核访问外设I/O内存资源的方式有两种:动态映射(ioremap)和静态映射(map_desc)。<br /> <br />一、动态映射(ioremap)方式<br /> <br />动态映射方式是大家使用了比较多的,也比较简单。即直接通过内核提供的ioremap函数动态创建一段外设I转载 2011-01-12 11:11:00 · 957 阅读 · 0 评论 -
买了个开发板
<br />把使用说明书里面的测试实验都跑了一遍,觉得真是帅呆了。580块钱花的太值了。前几个星期,跟着视频在自己电脑上装了一个虚拟机,安装了UBUNTU10.4。觉得还挺好玩的,可以和主机FTP,可以上网可以用命令做完成WINDOWS下的操作。。。。 下午,偶然发现超级终端里面居然也可以和LINUX一样输命令,而且基本上我以前所用到的命令这里都可以用。于是,按照说明书上的指导做。慢慢的发现我的板子也可以上网,就想设置虚拟机一样,将网线插到交换机,设置IP和网关,就可以上校园网了。~~~不可思议啊,简直就是原创 2010-08-23 15:14:00 · 1068 阅读 · 0 评论 -
PROTEL99SE元器件封装的规格
零件封装是指实际零件焊接到电路板时所指示的外观和焊点的位置。是纯粹的空间概念。因此不同的元件可共用同一零件封装,同种元件也可有不同的零件封装。像电阻,有传统的针插式,这种元件体积较大,电路板必须钻孔才能安置元件,完成钻孔后,插入元件,再过锡炉或喷锡(也可手焊),成本较高,较新的设计都是采用体积小的表面贴片式元件(SMD)这种元件不必钻孔,用钢膜将半熔状锡膏倒入电路板,再把SMD元件放上,即可焊接在原创 2009-10-05 14:26:00 · 3361 阅读 · 2 评论 -
ARM经典100问(下)
第53问: Q:我想详细的了解一下ADS开发工具中的stack.s ,heap.s和startup.s中代码的含义, 各位高手推荐本书或给解释一下 A:开发套件用户指南的第3.1.3节有说明. stack.s定义了系统模式堆栈的起始地址. heap.s为初始化库函数的堆,是按ADS的编译器要求编写的. startup.s向量表及初始化代码,是根据CPU来编写的. 第54问: Q:我不知道所选择的C转载 2009-10-05 14:21:00 · 1454 阅读 · 0 评论 -
Protel 99元件封装列表
元件 代号 封装 备注 电阻 R AXIAL0.3 电阻 R AXIAL0.4 电阻 R AXIAL0.5 电阻原创 2009-10-05 14:25:00 · 1307 阅读 · 0 评论 -
深刻认识差模电压和共模电压
我们需要的是整个有意义的“输入信号”,要把两个输入端看作“整体”。 就像初中时平面坐标需要用 x,y 两个数表示,而到了高中或大学就只要用一个“数”v,但这个 v 是由 x,y 两个数构成的“向量”…… 而共模、差模正是“输入信号”整体的属性,差分输入可以表示为vi = (vi+, vi-) 也可以表示为 vi = (vic, vid) c 表示共模,转载 2009-10-05 14:20:00 · 29787 阅读 · 3 评论 -
关于从NAND FLASH启动
今天将NAND 全部FORMAT以后,重新用NOR中的UBOOT向NAND中烧写UBOOT,按道理应该是和NOR 中的UBOOT界面一样才对。烧写进去以后发现根本不是,一直提示如下信息:##### EmbedSky BIOS for SKY2440/TQ2440 #####<br />Press Space key to Download Mode !<br />Booting Linux ...<br />Copy linux kernel from 0x00200000 to 0x30008000, s原创 2010-08-23 15:15:00 · 2518 阅读 · 0 评论 -
关于#define EnterPWDN(clkcon)
<br />经常见到嵌入式设计中,将某一程序段的入口地址转换为一个函数,我们来分析一下它的成分:<br /> 如在bootloader的0x00000020地址上的双字单元中有这样一条语句:<br />@Address is 0x00000020<br /> b powerdown @Jump to the flag "powerdown"<br />...<br />...<br />powerdown:<br />...<br />...<br /> 然后转载 2010-08-23 14:46:00 · 1575 阅读 · 1 评论 -
关于变压器的疑问
变压器中,因为原线圈的功率跟副线圈的功率相等,匝数比恒定,电压恒定,原线圈电流会随副线圈的电流改变而改变,那么,从另一角度说,原线圈中的电阻没变,电压没变,电流怎会变了呢? 为什么电阻没变,电压没变,电流却变了呢?<br />这是因为变压器不是一个纯电阻电路,它主要是一个感抗电路,<br />电阻+电感抗=阻抗<br />电流=电压/阻抗<br />副线圈的电流改变,改变了原线圈中的感抗,所以电阻没变,电压没变,电流变化了.<br /><br />附:变压器的原理<br /><br /> 当一个正弦交流电原创 2010-08-23 15:16:00 · 914 阅读 · 0 评论 -
ARM的44binit.s文件的详细注释
ARM的44binit.s文件的详细注释<br />2009-07-31 00:30<br />; *******************************************************<br />; * NAME : 44BINIT.S *<br />; * Version : 10.JAn.2003 *<br />; * Description: *<br />; * C start up codes *<br />; * Configure memory, Initialize转载 2010-08-23 14:48:00 · 882 阅读 · 0 评论 -
ARM汇编伪操作(ARM7TDMI) 命令集
ARM汇编伪操作(ARM7TDMI) 命令集本文链接:http://blog.sina.com.cn/s/blog_574d08530100hzfp.html<br />1.符号定义伪操作(定义变量,变量赋值,寄存器取别名 相关)<br />操作符 英文对照(个人猜测) 功能 语法格式<br />LCLA local arithmetic 定义一个局部的算术变量并初始化为0 LCLA 变量名转载 2010-08-23 14:41:00 · 1600 阅读 · 0 评论 -
关于hello world驱动的解析
<br />obj-m+=hello.o<br />all:<br /> make -C /opt/EmbedSky/linux-2.6.30.4 M=$(pwd) modules<br />clean:<br /> make -C /opt/EmbedSky/linux-2.6.30.4 M=$(pwd) clean<br /> <br /> <br />--------------------------------------------------------------原创 2011-05-09 15:40:00 · 744 阅读 · 0 评论