嵌入式ARM核心板的最小系统主要包含,MCU、DDR、NAND FLASH、复位电路构成,主频一般能达到400Mhz以上;
软件发挥出色性能,一般会跑操作系统,比如Linux操作系统;不像单片机那样简单,单片机直接在片上运行应用程序即可;
硬件主要以SAMA5D3 Xplained Board为例;MCU:SAMA5D36;
ARM软件一般分为:bootstap、uboot、kernel、dtb(设备树)、rootfs(文件系统)、App(应用程序);
BootStrap:这个功能主要是做MCU第一阶段的初始化工作,关闭中断,配置MCU主频,是否关闭外部低速晶振(32.768khz)等功能,如果使能低速晶振启动,硬件没有焊接,板子会启动不了。
U-Boot: 这个功能非常强大和重要,如果是新开发的硬件,uboot阶段是调试硬件的最佳阶段,如果在uboot里面,没把硬件验证完成,或者驱动没有调试通,基本不要往下开发了,内核阶段的难度就会更大,复杂度会更高,影响的因素更多。uboot可以理解为落跑的程序,非常有意思,后续我们会聊到这块;uboot主要有两个功能,1、程序启动引导;2、远程程序下载;
U-Boot Env: 全称为environment,环境变量,相当于uboot启动参数的配置项,比如给网卡设置IP地址,MAC地址;或者实用FTP烧录下载内核,设置服务器地址,从哪个分区启动等关键参数;
Image:内核是整个软件层中最核心的部分,这块如果做得不稳定,这款产品就是失败的,因为在系统运行过程中,应用程序也是需要内核调度的,不像uboot只是引导功能,阶段过了,就退出了;
dtb: 设备树是3.0内核以上的版本才推出的机制,解决内核因为板子类型多导致的内核源码臃肿的问题,是一种硬件配置语言,可以理解为是内核的配置参数,管脚定义和驱动功能使能都可以通过dtb来实现。
rootfs:文件系统,承载服务和用户操作数据等,SSH服务,FTP服务,应用程序存储,用户数据存储管理等;开机自启动设置等;
app:应用程序,用户开发的程序,一般单独放置一个文件夹中,程序和生成的运行数据分开;保护分区;
关键字:Linux 底层 平台软件
引用地址:
[Linux 底层] 平台软件分层介绍
推荐阅读最新更新时间:2024-11-08 14:12
ARM-Linux 中断分析
ARM体系结构中,把复位、中断、快速中断等都看作‘异常’,当这些‘异常’发生时,CPU会到固定地址处去找指令,他们对应的地址如下: 地址 异常类型 进入时的工作模式 0x00000000 Reset Supervisor 0x00000004 Und Undefined 0x00000008 Soft interupt Supervisor 0x0000000c Abort(prefetch) Abort 0x00000010 Abort(data) Abo
[单片机]
linux 2.6.24.4及根文件系统在S3C2410上的移植(使用4.3.2编译器支持eabi)(基于GEC2410)
之前移植了linux-2.6.24.4和根文件系统(使用busybox-1.10.1创建)在GEC2410平台上运行。可参考之前的笔记: 内核配置: http://blog.csdn.net/shevsten/archive/2010/05/17/5599790.aspx 根文件系统: http://blog.csdn.net/shevsten/archive/2010/05/26/5625133.aspx 在测试一个用4.3(支持EABI)编译的应用程序时开始出现找不到库,将4.3.2编译器目录/usr/local/arm/compiler/arm-none-linux-gnueabi/libc/armv4t/lib中所
[单片机]
linux驱动学习(2)-beep驱动
// 0设置down_counter中的数值(鸣叫频率) //------------------------------------------------------------- static int xiaoyang_beep_ioctl(struct inode *inode, struct file *file, unsigned int cmd,unsigned long arg) { unsigned long temp; if(cmd = 0) { //set as gpb0,output temp = __raw_readl(S3C2410_GPBCON); //GPBCON IO C
[单片机]
U-Boot在基于ADSP BF533的嵌入式Linux系统上的移植
1 引言 Boot Loader(内核引导程序)是在操作系统内核运行之前运行的一段自举程序,用于初始化硬件设备、改变处理器运行模式、重组中断向量和建立内存空间映射图,从而将系统的软硬件带到一个合适的状态或者用户定制的特定状态,以便为最终加载操作系统内核准备好正确的环境 。 嵌入式Linux系统常用的Boot Loader有arm-boot、redboot、U-Boot等。U-Boot (全称Universal Boot Loader)是当前比较流行的遵循GPL条件的开放源码项目。U-Boot具有源码公开的特点,开发人员可根据自身需要进行裁减;支持多种处理器和嵌入式操作系统内核;具有多种设备驱动源码:支持种引导方式;具有功能强大
[应用]
如何修改arm Linux中Printk的等级
首先,printk有8个loglevel,定义在 linux/kernel.h 中,其中数值范围从0到7,数值越小,优先级越高。 #define KERN_EMERG 0 系统崩溃 #define KERN_ALERT 1 必须紧急处理 #define KERN_CRIT 2 临界条件,严重的硬软件错误 #define KERN_ERR 3 报告错误 #define KERN_WARNING 4 警告 #define KERN_NOTICE 5 普通但还是须注意 #def
[单片机]
stm32可以跑Linux操作系统吗?
STM32是一款单片机,它由意法半导体公司制造。ST是意法半导体的简称,M是指微控制器(也就是单片机的)MCU的第一个英文字母,32是指32位的CPU,它的CPU是采用的ARM公司的Cortex-M系列的内核设计。 1. Cortex-M 的定位 ARM处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的模型。ARM的指令集从ARMv1发展到今天的ARMv9,每一次体系结构的修改都会添加实用技术。 图1 Armv7下的Cortex系列 在ARMv6之前,其内核指令集架构都是单一款式,但在ARMv7开始,其指令集架构变成3种款式,即目前大家熟知的Cotex-M、 Cotex-R、 Cotex-A,或者ARMv7
[单片机]
创建ARM Linux交叉编译环境实践
一、准备工作 首先需要一台运行Linux操作系统的PC以完成我们的编译工作。 其次要准备如下一些源文件。 1、源文件准备 binutils-2.14.tar.gz ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz gcc-core-2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz gcc-g++2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2.95
[单片机]
s3c6410 linux gadget hid驱动
我用的内核是linux2.6.38的,最开始的时候开发板是可以当U盘用的,而使用hid功能的时候出现如下问题: g_hid gadget: hid_setup crtl_request : bRequestType:0x21 bRequest:0xa Value:0x0 g_hid gadget: Unknown request 0xa s3c-hsotg s3c-hsotg: writen DxEPCTL=0x04228000 to 00000900 (DxEPCTL=0x00208000) s3c-hsotg s3c-hsotg: s3c_hsotg_rx_data: FIFO 8 bytes on ep0 but no
[单片机]