基于ARM9的机器人视觉系统的目标是在选定好的S3C2410平台上移植并配置Linux操作系统,针对平台和应用的特点,制作合适的文件系统,为机器人视觉系统构建稳定的软硬件开发环境。...这里采用高端的32位嵌入式微处理器:基于ARM体系结构的S3C2410芯片(由三星公司生产),其主频为200MHz。...S3C2410采用了ARM920T内核,0.18μm工艺的CMOS标准宏单元和存储器单元。...2软件平台的构建和配置 目前,越来越多的嵌入式系统采用了Linux作为操作系统。Linux功能强大,运行稳定,驱动齐全,配置灵活,内核紧凑,从来就与嵌入式系统有密不可分的关系。...Linux内核版本众多,其中2.4系列比较成熟,在嵌入式平台中应用广泛,资料齐全。这里使用Linux- 2.4.18-rmk7-pxa1版本。
对 Linux 内核进行编译之前,首先要使用命令【make menuconfig】对 Linux 的编译选项进行配置。...第四部分 System Type ---> 系统类型 ARM system type (Samsung S3C2410) ---> ARM 系统,基于 S3C2410 S3C24XX Implementations...---> 基于 S3C24xx 架构的实现 --- S3C2410 Boot --- S3C2410 Setup [*] S3C2410 DMA support 支持 DM 功能 [...] S3C2410 DMA support debug 支持 DMA 调试功能 (0) S3C2410 UART to use for low-level messages --- Processor...options ---> 电源管理选项 [ ] Power Management support 电源管理有 APM 和 ACPI 两种标准且不能同时使用.即使关闭该选项,X86 上运行的 Linux
U-BOOT 支持ARM、 PowerPC等多种架构的处理器,也支持Linux、NetBSD和VxWorks等多种操作系统,主要用来开发嵌入式系统初始化代码 bootloader。...4.从Nand Flash启动U-BOOT的基本原理 4.1 前4K问题 如果S3C2410被配置成从Nand Flash启动(配置由硬件工程师在电路板设置), S3C2410的Nand Flash...控制器有一个特殊的功能,在S3C2410上电后,Nand Flash控制器会自动的把Nand Flash上的前4K数据搬移到4K内部RAM中,并把0x00000000设置内部RAM的起始地址,CPU从内部...u-boot源码不支持从nand flash启动,可是s3c2410支持从nand flash启动,开发板(sbc-2410x)加电后s3c2410将nand flash的前4k(保存有u-boot的部分功能...–拷贝功能–把nand flash中的内容拷贝到SDRAM)拷贝到sram(s3c2410芯片内的sram)。
SAMSUNG公司的S3C2410A芯片是一款16/32位的RISC微处理器芯片,芯片内使用了ARM公司的ARM920T内核,采用了称为AMBA(Advance...
因为此时的PC是返回地址,而PC-4才是CPU运行的地址) 3.首先来找到系统时钟的中断号irq 输入#cat /proc/interrupt,如下图所示: 其中中断号来自 linux-2.6.22.6...\include\asm-arm\arch-s3c2410\Irqs.h 而S3C2410 Timer Tick,就是我们的系统时钟计数值,在内核中就是jiffies这个全局变量,每隔一段时间+1。...所以S3C2410 Timer Tick的中断号为30 4.接下来便来修改asm_do_IRQ()函数 在asm_do_IRQ()中,添加以下带红色的字(#ifdef 1 ......
S3C2410结构框图 2. DMA请求源 3. DMA传输过程 4. S3C2410 DMA 的基本时序 5. DMA的服务模式 6. S3C2410 DMA 的两种控制协议 7....S3C2410 DMA 的三种协议类型 二、S3C2410A的DMA控制器 1. 6个DMA控制寄存器。...S3C2410具有一个4通道DMA控制器。该DMA控制器位于系统总线(AHB)和外设总线(APB)之间。每个DMA通道均能在系统总线和(或)外设总线之间执行一次数据搬移。...S3C2410结构框图 2. DMA请求源 4通道DMA 这里nXDREQ0 和nXDREQ1表示两个外部源, I2SSDO 和I2SSDI表示IIS 的发送和接收。 3....S3C2410 DMA 的两种控制协议 请求模式:If XnXDREQ remains asserted, the next transfer starts immediately.
实验六 键盘控制 LED 灯实验 1 实验目的 (1) 通过实验掌握中断式键盘控制与设计方法; (2) 熟练编写 S3C2410 中断服务程序。...2 实验设备 (1) S3C2410 嵌入式开发板, JTAG 仿真器。 (2) 软件: PC 机操作系统 Windows XP , ADS1.2 集成开发环境,仿真器驱 动程序,超级终端通讯程序。
-> Input device support -> Generic input layer -> Touchscreens Samsung S3C2410...该宏也没找到,所以去掉不了 去掉CONFIG_SND_USB -> Device Drivers -> Sound card support -> Advanced Linux Sound...步骤如下: cp .config config_ok //保存到config_ok文件 make distclean cd ../ mv linux...-3.4.2 linux-3.4.2_new //更改文件名 tar -xjf linux-3.4.2.tar.bz2 //解压需要比较的源文件 diff -urN linux...-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成补丁文件linux-3.4.2_new.patch
最小系统结构框图 最小系统例板 嵌入式最小系统硬件功能 微处理器:S3C2410是系统工作和控制中心; 电源电路:为S3C2410核心部分提供所需的1.80V工作电压,为部分外围芯片提供3.0V的工作电压...在 S3C2410 中,是通过UPLL来产生这一时钟的,UCLK只有在 UPLL配置好后才会生效。...在 S3C2410 中,功率管理模块通过软件控制系统时钟来达到降低功耗的目的。这些策略牵涉到 PLL,时钟控制逻辑和唤醒信号。图显示了 S3C2410的时钟分配。...(3)直接芯片使能 有些ARM处理器如S3C2410内部提供对NAND设备的相应控制寄存器,通过控制寄存器可以实现ARM处理器对NAND设备相应信号的驱动。...该方式使得ARM处理器与NAND设备的连接变得简单规范,图中c例给出了ARM处理器S3C2410与Nand Flash K9F2808U0C的连接方式。
Linux内核源码文件繁多,搞不清Makefile、Kconfig、.config间的关系,不了解内核编译体系,编译修改内核有问题无从下手,自己写的驱动不知道怎么编进内核,不知道怎么配置内核,这些问题都和...三者的语法 Makefile 参考:linux-3.4.2/drivers/Makefile 作用:用来定义哪些内容作为模块编译,哪些条件编译等。子目录Makefile被顶层Makefile包含。...enables support for LEDs connected to GPIO lines onSamsung S3C24XX series CPUs, such as the S3C2410...3、.config 参考:linux-3.4.2/.config 通过前俩个文件的分析,.config的含义已经很清晰:内核编译参考文件,查看里面内容可以知道哪些驱动被编译进内核。...hello.c: #include linux/module.h> #include linux/kernel.h> #include linux/init.h> static int
/* NAND FLASH (see S3C2410 manual chapter 6) */ typedef struct { S3C24X0_REG32 NFCONF; S3C24X0...unsigned char (*read_data)(void); }t_nand_chip; static t_nand_chip nand_chip; /* NAND Flash操作的总入口, 它们将调用S3C2410...write_cmd(int cmd); static void write_addr(unsigned int addr); static unsigned char read_data(void); /* S3C2410...NAND Flash */ void nand_init(void) { #define TACLS 0 #define TWRPH0 3 #define TWRPH1 0 /* 判断是S3C2410
/patch-ker.sh c m /work/system/linux-3.4.2//c:将yffs2文件夹copy到linux-3.4.2/fs里, m:指定多版本 /*通过menuconfig...,来使内核支持yaffs2*/ cd /work/system/linux-3.4.2/ make menuconfig 搜索yaffs,找到位于: -> File systems...-> Input device support -> Generic input layer -> Touchscreens Samsung S3C2410...mv linux-3.4.2 linux-3.4.2_new //更改文件名 tar -xjf linux-3.4.2.tar.bz2 //解压需要比较的源文件 diff...-urN linux-3.4.2 linux-3.4.2_new > linux-3.4.2_new.patch //生成补丁文件linux-3.4.2_new.patch 未完待续,下章来移植以前
unsigned char (*read_data)(void); }t_nand_chip; static t_nand_chip nand_chip; /* NAND Flash操作的总入口, 它们将调用S3C2410...write_cmd(int cmd); static void write_addr(unsigned int addr); static unsigned char read_data(void); /* S3C2410...NAND Flash */ void nand_init(void) { #define TACLS 0 #define TWRPH0 3 #define TWRPH1 0 /* 判断是S3C2410.../* NAND FLASH (see S3C2410 manual chapter 6) */ typedef struct { S3C24X0_REG32 NFCONF; S3C24X0
1.常用函数改动 1)device_create() 作用: 创建设备节点 头文件: #include linux/device.h> 替代了2.6内核里的class_device_create()...函数 2)device_destroy() 作用:卸载设备节点 头文件:#include linux/device.h> 替代了2.6内核里的class_device_destroy()函数 3)usb_alloc_coherent...www.cnblogs.com/lifexy/p/7515488.html) 4.以移植LED为例 4.1首先直接修改Makefile 将以前的内核位置改为KERN_DIR = /work/system/linux...编译驱动 2)去掉内核自带的lcd驱动 进入Device Drivers -> Graphics support -> Support for frame buffer devices S3C2410.../libc/usr/include/linux/input.h:32:#define EV_VERSION 0x010000 所以接下来修改编译器的EV_VERSION,将: #define
PWM定时器 定时器概述 定时器工作原理 定时器操作 预分频器和除法器 开启一个定时器的步骤 脉宽调制 PWM PWM基本原理 实例 正弦波采样 利用PWM技术实现简单DA转换 PWM简单的实现原理 S3C2410...的PWM的实现原理 死区控制 PWM定时器控制寄存器 PWM应用举例 S3C2410A的PWM定时器 定时器概述 S3C2410有5个16位定时器,其中定时器0、1、2、3、有PWM功能,定时器4只是一个内部定时器而无输出引脚...S3C2410的PWM的实现原理 脉冲占空比取决于TCMPBn中的值,脉冲周期决定于TCNTBn 中的值,按照调制信号的大小改变TCMPBn 里的值,就会实现PWM调制。
存放内核 0x00260000-0x10000000 : "rootfs" //存放文件系统 所以接下来我们来修改内核分区 修改内核分区 在si里搜索上图出现的”S3C2410...//设置交叉编译前缀 进入Busybox Settings --->Build Options --->() Cross Compiler prefix 在弹出的对话框里面写入:arm-linux...安装glibc库 输入$PATH找到交叉编译位于/work/tools/arm-linux-gcc-4.3.2/usr/local/arm/4.3.2位置, 通过find -name lib,.../work/nfs_root/fs_mini_mdev_new/lib mkdir /work/nfs_root/fs_mini_mdev_new/usr/lib -p cp arm-none-linux-gnueabi...配置EABI 进入si,搜索exitcode,找到0x00000004对应的宏定义是SIGILL,表示非法指令,是因为arm-linux-gcc-4.3.2是使用的EABI接口,内核由于未配置,所以出现非法
initramfs与initrd区别 (1) Linux内核只认cpio格式的initramfs文件包(因为unpack_to_rootfs只能解析cpio格式文件),非cpio格式的 initramfs...单独加载到ram中内核空间外的地址,比如加载的地址为addr(是物理地址而非虚拟地址),大小为8MB,那么只要在命令行加入”initrd=addr,8M”命令,系统就可以找到 initrd(当然通过适当修改Linux...init -> bin/busybox,否则内核启动将会失败) 链接入内核的initramfs文件在linux-2.6.24/usr/initramfs_data.cpio.gz 使用initrd...rootfs下有垃圾(里面有包含了一份rootfs) 下面这个大小启动成功了 ——————————————— root@zengxiaolong:/home/zengxiaolong/soft/s3c2410
为了便于用户选择不同的显示模式, S3C2410 LCD控制器采用了调色板。通过这个调色板,用户可以在4灰度级模式下从16级灰度中选择4级灰度,构成查找表。...(2)灰度模式操作 S3C2410 LCD控制器支持两种灰度模块:2位(4级灰度)、4位(16灰度级)。...(3)256级彩色模式操作 S3C2410 LCD控制器支持每像素8位的256色彩色模式。每个象素的8位有3位表示红,3位表示绿,2位表示兰,分别利用自己的查找表。...(5)扫描模式支持 S3C2410 LCD控制器支持3种显示:4位单扫描、4位双扫描和8位单扫描。...S3C2410 Datasheet
UBRDIVn=(取整)(PCLK/(波特率×16))-1 UBRDIVn=(取整)(UCLK/(波特率×16))-1 (8)回环模式 S3C2410的UART提供的一个测试模式。...(9)红外模式 S3C2410的UART模块支持红外线(IR)发送和接收。可以通过设置UART控制寄存器(UCONn)中的红外模式位来选择这一模式。...S3C2410内部也具有IIC总线接口模块,支持一个多主IIC-BUS串形接口,主S3C2410能发送或接收串形数据到从设备,并遵守标准的IIC协议。...接口设计: 低10位分别跟S3C2410的ADDR9-0连接,高10位接地。...S3C2410 Datasheet
当一次A/D转换结束后,通过读ADCDAT0寄存器来取得A/D转换结果,寄存器的低10位数据有效; A/D接口编程实例 举例:使用串口延长线把 S3C2410的串口与PC机的COM1连接,设置串口波持率为...S3C2410 Datasheet