
嵌入式linux开发
lwbeyond
这个作者很懒,什么都没留下…
展开
-
内核配置项的生成过程
根据 make menuconfig 我们知道内核的一些选项是可以配置的。y 是编译到内核m 是生成模块.kon 是不编译这个生成过程是怎么样的呢?我们以DM9000网卡为例,搜索DM9000s3c@s3c-desktop:~/workspace/system/linux-2.6.22.6$ grep "CONFIG_DM9000" * -nwRarch/mi原创 2012-12-26 14:21:15 · 1893 阅读 · 0 评论 -
字符设备驱动----LED驱动程序
一. 概念介绍 一般用户在应用程序里调用的 open, read, write 函数是 c 库的函数, 这些函数会触发 swi val异常,从而引发系统调用,进入到内核空间, 内核通过VFS(virtual Filesystem)来实现调用不同的驱动函数。 例如:我们有一个函数,int main(){ int fd1, fd2; int val = 1; fd1原创 2015-11-15 11:42:00 · 3327 阅读 · 1 评论 -
第0课第4节 刚接触开发板之使用vmwae和预先做好的ubuntu
4. 解压使用我制作好的ubuntu4.1 自己下载安装vmware 6.0.5以上版本4.2 按开发板使用手册解压ubuntu4.3 设置vmware的网络环境4.4 使用vmware打开ubuntu4.5 安装FTP工具CuteFTP Professional : 传文件 secure CRT :远程登录工具原创 2015-09-05 11:42:38 · 624 阅读 · 0 评论 -
学前班 第3节 怎么看原理图之内存类接口
3.类似内存的接口 : ram-like3.1 NOR, SDRAM, 网卡3.2 不同位宽外设的接线、访问过程3.3 怎么确定访问地址、设置内存控制器问1:地址线、数据线上接有众多设备,怎样做到只访问其中一个而避免其余的影响?答1:每一个芯片都有单后的片选引脚,访问它之前先设置片选引脚为低电平;其他芯片的片选引脚为高电平问2:是否需要我们手工来设置片选引脚?答原创 2015-09-04 19:18:57 · 1129 阅读 · 0 评论 -
第0课第3节 刚接触开发板之重烧整个系统
3. 重烧系统: uboot, 内核, 文件系统3.1 u-boot的烧写和烧写裸板是一样的3.2 烧写内核: dnw, tftpdnw: 在菜单里输入k, 然后使用dnw.exe发送文件tftp:tftp 30000000 uImagenand erase kernelnand write.jffs2 30000000 kernel3.3 文件系统:d原创 2015-09-05 00:43:39 · 801 阅读 · 0 评论 -
第0课第1节 刚接触开发板之接口接线工具
1. 接口、接线、装驱动、装软件1.1 如果PC有并口,装并口驱动1.2 安装USB串口卡的驱动, 以openjtag为例: 先接上去,然后按提示安装烧写软件用的工具。1.3 JZ2440v2集成的USB串口:运行PL2303_Prolific_DriverInstaller_v1.5.0.exe, 然后接USB线(板子上的USB-COM1口PC的USB口)串口调试工具。1原创 2015-09-04 23:01:54 · 1077 阅读 · 0 评论 -
第0课第5节 刚接触开发板之u-boot, kernel打补丁编译
uboot打补丁、建source insight工程、编译、烧写1. 解压 u-boot-1.1.6.tar.gz2tar xjf u-boot-1.1.6.tar.gz22. 打patchpatch -p1 3. 打完patch后再次打包tar xjf u-boot-1.1.6_jz2440.tar.gz2 u-boot-1.1.64. 此包可以放在window下,通原创 2015-09-05 21:02:06 · 1876 阅读 · 0 评论 -
第0课第2节 刚接触开发板之烧写裸板程序
2. 烧写: 裸板, 4种方法: 并口, openjtag, jlink, nor上的uboot2.1 使用并口工具烧写: 接线, 使用oflash烧写, 重新上电观察效果2.2 使用openjtag烧写: 接线,使用oflash烧写(oflash烧写完后会复位开发板)2.3 JLINK只能烧写NOR FLASH,烧好u-boot.bin,使用NOR启动2.4 使用原创 2015-09-05 00:26:29 · 935 阅读 · 0 评论 -
学前班 第1节 怎么看原理图之GPIO和门电路
微机原理 :侧重于计算机结构数字电子技术基础 :侧重于门电路1.GPIO和门电路 :general peripheral input/ouput1.1 输入、输出引脚、上拉电阻、三极管1.2 与门、或门、非门1.3 中断原创 2015-09-03 15:55:19 · 1362 阅读 · 0 评论 -
学前班 第2节 怎么看原理图之协议类
协议类原创 2015-09-03 16:30:25 · 969 阅读 · 0 评论 -
2. 分析uboot 的Makefile文件
一. 分析 uboot 的配置过程:make 100ask24x0_config查找:100ask24x0_config100ask24x0_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0查找:MKCONFIG MKCONFIG := $(S原创 2013-01-06 17:40:24 · 1217 阅读 · 0 评论 -
1. 编译uboot
1. 解压:tar jxf u-boot-1.1.6.tar.bz2cd u-boot-1.1.6/2. 打补丁patch -p1 3. 配置make 100ask24x0_config4. 编译make生成 u-boot.bin5.其它在 tool 目录下会生成一个mkimage,把它拷贝到/usr/bin下面,主要是为了生成uImage用的。cp mk原创 2012-12-31 14:37:40 · 948 阅读 · 0 评论 -
创建根文件系统
一. 编译安装busybox在busybox代码安装文档里有说明:make menuconfig # This creates a file called ".config"make # This creates the "busybox" executablemake install # or make CONFIG_PREFI原创 2012-12-28 15:01:38 · 1108 阅读 · 0 评论 -
内核启动过程
内核启动的第一阶段:这个阶段主要是处理uboot传入的参数我们从分析第一个 arch/arm/kernel/head.S 汇编程序开始:msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode @ and irqs disabledmrc原创 2012-12-27 14:29:28 · 986 阅读 · 0 评论 -
内核启动第一个程序
从kernel_init()函数我们知道,init_post是最后执行的一个函数,我们来分析这个函数:static int noinline init_post(void){ free_initmem(); unlock_kernel(); mark_rodata_ro(); system_state = SYSTEM_RUNNING; numa_原创 2012-12-27 17:31:25 · 2322 阅读 · 0 评论 -
内核makefile分析
一. 内核 Makefile 文件的分类1. 顶层Makefile它是 Makefile 的核心,从整体上控制着内核的编译与链接。2. .config配置文件,决定使用哪些文件。3. arch/$(ARCH)Makefile对应体系结构的Makefile,它决定哪些体系结构相关的文件参于内核生成。4. script/Makefile.*Makefile原创 2012-12-26 16:56:05 · 1254 阅读 · 1 评论 -
修改编译linux内核
一.首先要设置交叉编译工具 如果针对单个用户可以修改.bashrc文件,在最下面加入你交叉编译器的路径:export PATH=$PATH:/home/s3c/workspace/tools/gcc-3.4.5-glibc-2.3.6/bin注意要注消用户后才能生效。可以用arm-linux-gcc -v测试一下编译器环境设置成功了吗.二.打补丁cd linux原创 2012-12-26 12:26:34 · 1812 阅读 · 0 评论 -
字符设备驱动----中断程序
Linux内核将所有的中断统一编号,使用一个irq_desc结构数组来描述这些中断:每个数组项对应一个中断。一. 中断的处理流程如下:1. 发生中断时,CPU执行异常向量 vector_irq 的代码。 2. 在 vector_irq 里面,最终会调用中断处理的总入口函数asm_do_IRQ. 3. asm_do_IRQ 根据中断号调用 irq_desc 数组项中的handle_irq.原创 2015-11-17 23:55:59 · 1223 阅读 · 0 评论