嵌入式系统自启动 MTD技术通过把Nand FLash划分成bootloader分区,Linux kernel分区和file system分区来达到自启动的效果. 配置和编译内核 1.配置Linux内核支持MTD分区 make meunconfig ARCH=arm device drivers-><*>memory techology device(MTD) support->[*]MTD partitioning support->exit->save 2.找到内核…
1.解压boa嵌入式web服务 tar zxvf boa-0.94.13.tar.gz 2.进入src目录生成配置文件 ./configure 3.修改生成的Makefile CC=arm-linux-gcc CPP=arm-linux-gcc –E 4.修改源文件 4.1. vim util.c +100 time_offset = 0; 4.2. vim bao.c +211 去掉DIE();相关部分 4.编译 make 5.拷贝到根文件系统 cp boa .../rootfs/sbin 6…
软件系统架构 1.主机端软件架构 USB设备驱动->USB核心->USB主控制器驱动->USB主控制器 2.设备端软件架构 Gadget驱动->Gadget API->UDC驱动->USB控制器 MassStrorage驱动体验(host 接口) 可以让主机挂载大容量存储器 1.主控器驱动配置 make menuconfig ARCH=arm device drivers->usb support->[*]support for host-side usb-…
MTD设备概述 Flash在嵌入式系统中是必不可少的,它是bootloader.Linux内核和文件系统的最佳载体.在Linux内核中引入了MTD子系统为NOR Flash和Nand FLash设备提供了统一的接口,从而使得Flash驱动的设计大为简化. MTD使用体验 把系统烧写到Nand Flash后,通过命令cat /proc/mtd可以查看到Nand Flash的不同分区.每一个分区都是一个块设备,通过命令ls -l /dev/mtd* 可以查看到不同的分区块设备. 块设备驱动系统架构…
LCD裸机驱动回顾 1.LCD初始化 1.1.控制器初始化 1.2.端口初始化 1.3.指明了帧缓冲 2.LCD图形显示 2.1.将图形数据写入帧缓冲 Linux帧缓冲体验 把图片转换成开发板屏对应的宽高像素和颜色深度,然后把图片放到开发板文件系统中.通过cat image.bin > /dev/fb0命令把图片写入LCD帧缓冲,这样就可以在LCD屏上看到对应的图片.这个实验说明Linux下面一样使用了帧缓冲,并且帧缓冲变成了一个设备文件. Linux帧缓冲架构 应用程序通过把图像数据写入/de…
Linux内核制作步骤 1.清除原有配置 make distclean 2.配置内核 选择一个已有的配置文件简化配置 make menuconfig ARCH=arm 3.编译内核 ARCH指明处理器架构,CROSS_COMPILE指明交叉工具链.在编译uImage会显示找不到mkImage工具.该工具是用来给zImage加上uboot启动时检测的头部信息的.该工具在uboot的tools文件夹下,直接复制到系统根/bin/目录下就可以了. make uImage ARCH=arm CROSS_…
为什么要配置内核 基于硬件和软件的需求选出需要的功能,去掉不要的功能. 内核配置的方法 make config:基于文本交互的配置. make menuconfig:基于图形菜单的配置. make menuconfig配置方法 1.菜单项的分类 processor type and features   处理器类型 networking support            网络协议支持 device drivers                设备驱动支持 file systems     …
Linux系统架构 1.用户空间:应用程序.C函数库 2.内核空间:系统调用接口.内核.体系结构相关代码 Linux系统利用处理器不同的工作模式,使用其中的两个级别分别来运行Linux内核与应用程序,这样使操作系统本身得到了充分的保护.内核空间与用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的切换. Linux内核架构 1.系统调用接口 2.进程管理模块 3.内存管理模块 4.虚拟文件系统 5.网络协议模块 6.设备驱动模块 7.体系结构相关 Linux内…
嵌入式软件层次 1.Bootloader 2.Linux内核 3.文件系统 编译U-Boot 1.解压uboot tar zxvf uboot.tar.gz 2.清除uboot make distclean 3.配置uboot make mini2440_config 4.编译uboot ARCH指定处理器架构,CROSS_COMPLIE指明交叉工具链 make ARCH=arm CROSS_COMPLIE=arm-linux- 5.下载uboot ./dnw u-boot.bin 300000…
[一跃进入C大门] 跳转方式 1.相对跳转:b或bl指令,通过计算两个地址之间的差值来给pc赋值相对跳转 2.绝对跳转:ldr指令,通过给pc直接赋值,完成绝对跳转 代码编写 1.在汇编代码中直接使用绝对跳转,跳转到C代码中,然后在C代码中通过点亮LED来验证 2.210在跳转到C程序时,需要注意复制代码时,要跳过校验信息.要不然跳转到内存时,前16个字节为头信息,整个起始地址向后偏移了16个字节,就找不到正确地址了 [C与汇编混合编程] 为什么需要C与汇编混合编程 1.汇编语言:执行效率高,编…