关闭

嵌入式学习笔记202-Linux kernel跑起来

在《嵌入式学习笔记104-uboot_1.1.6移植(4)》、《嵌入式学习笔记300-linux根文件系统搭建》uboot和根文件系统都准备好的前提下,此时的kernel已基本可以跑起来,不过还差正确的挂起文件系统,其中uboot传给kernel的挂载处是root=/dev/mtdblock2 ,而在《嵌入式学习笔记201-Linux kernel动起来》的打印分区信息是: mtd: partiti...
阅读(835) 评论(0)

嵌入式学习笔记300-linux根文件系统搭建

制作根文件系统首先需要用busybox编译出系统文件所需的应用程序,然后再以此拓展构建根文件系统。 这里使用busybox1.16.0,可以在本博客查询看是否有上传。 tar jxvf busybox-1.16.0.tar.bz2 -C your_path 配置:进入busybox-1.16.0 修改makefile,将164行的CROSS_COMPILE=/xx/xx/4.3.3/bin/a...
阅读(734) 评论(0)

嵌入式学习笔记104-uboot_1.1.6移植(4)

前面的4篇uboot博文基本概括了uboot的整体flow,现在使能支持启动linux,至此之前请先阅读《嵌入式学习笔记200-Linux kernel初体验》和《嵌入式学习笔记201-Linux kernel动起来》。准备kernel的镜像文件才可以立马检测uboot是否能够启动kernel。在u-boot-1.1.6\include\configs\tq2440.h 最后添加如下几行code:...
阅读(596) 评论(0)

嵌入式学习笔记201-Linux kernel动起来

在前篇博文《嵌入式学习笔记200-Linux kernel初体验》在已经确保环境编译是ok的,接下来让kernel能够最基本的动起来,起码可以看到基本的启动打印! 修改外部输入时钟频率, 修改 linux-2.6.30.4\arch\arm\mach-s3c2440\mach-smdk2440.c 在大概163行将16934400改成12000000。 static void __init smdk...
阅读(848) 评论(0)

嵌入式学习笔记200-Linux kernel初体验

本实验采用linux-2.6.30.4 version测试,交叉编译为4.3.3,相关源码可以自行下载或到本博客查看是否有,在自己环境下尝试编译kernel通过确保环境ok为后续的移植做好准备。 对下载的linux-2.6.30.4.tar.bz2进行解压到自己指定位置 tar jxvf linux-2.6.30.4.tar.bz2 -C your_path 修改编译工具及架构: 进入kernel根...
阅读(719) 评论(0)

嵌入式学习笔记103-uboot_1.1.6移植(3)

经过之前对uboot的整体flow分析,现在开始针对2440移植,需要注意的是移植的code可能包含支持部分的2410code 不过并没有在s3c2410板子实测过。 主要概括:第一阶段的汇编code尽量短小,能用C实现的就用C,由于2440的board和头文件是从2410 copy过来的 里面会有很多信息或者宏关于2410,并且很多.c文件的头文件由于include的是2410,所以新增的一些关...
阅读(967) 评论(0)

嵌入式学习笔记102-uboot_1.1.6移植(2)

接下来分析uboot的第二阶段,在第一阶段的start.S的末尾有: ldr pc, _start_armboot_start_armboot: .word start_armboot 而start_armboot()就是第二阶段的入口,首先我们要认识两个重要的结构体,start_armboot()函数的一系列初始化可以说都是以这个结构体为主线的:typedef struct global...
阅读(678) 评论(0)

嵌入式学习笔记101-uboot_1.1.6移植(1)

根据前篇博文(嵌入式学习笔记100-uboot1.1.6初体验)最后的结论,现在开始将其实现: a. 修改makefile的CROSS_COMPILE指定编译器 arm-linux-gcc -v –> gcc version 3.4.5 CROSS_COMPILE = /opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/...
阅读(585) 评论(0)

嵌入式学习笔记100-uboot1.1.6初体验

到官网或其他网上下载u-boot-1.1.6.tar.bz2 解压包到相应目录:tar -jxvf u-boot-1.1.6.tar.bz2 -C ../xxxxxx , 我是解压到samba共享的目录上以便到时候用sourceinsight建立工程。 解压好后先 make distclean or make mrproper 确保源码干净 setup project via sourceinsig...
阅读(622) 评论(0)

嵌入式学习笔记008-裸奔篇之串口

串口是个好东西,前几篇裸奔程序由于没有串口,自己调试都是有led等来表示的,比较“苦逼”,终于可以用串口了~~~,这里主要采用上一篇博文(嵌入式学习笔记007-裸奔篇之定时器),也就是串口也是用中断实现的,而且也只是在前一篇博文增加串口的初始化uart0_init(),以及在中断处理函数增加对串口的处理。只要稍微改造前一篇博文就是一个通用的中断处理程序! 这里主要实现在串口输入一个字符,接受后+2再...
阅读(707) 评论(0)

嵌入式学习笔记007-裸奔篇之定时器

s3c2440的定时器比较简单,这里主要借鉴韦东山老是的code加以改造一下,一个是对head.S的flow改善,另一个是设置FCLK=400MHZ,比例为1:4:8,试过将SDRAM的HCLK=200MHZ,发现不work,查看我的SDRAM是HY57V561620FLT-H clock = 133MHZ,故设置为100MHZ。 基本上看code及注释应该了解了,就不过多解释了,共有7个文件,如下...
阅读(700) 评论(0)

嵌入式学习笔记006-裸奔篇之中断

在讲解中断时有必要理清一些关系: 中断和异常 1.中断: a.可屏蔽中断(maskable): I/O设备发出的中断请求(irq)都属于.可处于两种状态:屏蔽的/非屏蔽的. b非屏蔽中断(nonmaskable): 只有几个危急事件才引起.总是由CPU辨认. 2.异常: a.处理器探测异常:当CPU执行指令时探测到一个反常条件所产生的异常. 根据保存在eip寄存器中...
阅读(973) 评论(0)

嵌入式学习笔记005-裸奔篇之flash

flash是用来存储程序的,类似PC机的硬盘,U盘之类的,即使断电数据也不会丢失,与之对应的就是SRAM/SDRAM,而目前嵌入式用的flash主要有nor flash和nand flash两类,nor flash接口可以直接与处理器的地址线相连直接访问,像访问SDRAM那样,所以如果考虑成本的话可以让程序直接上电后从nor flash启动,不过现在追求更快的运行速度,所以都是极小部分运行后将其余所...
阅读(655) 评论(0)

嵌入式学习笔记004-裸奔篇之SDRAM

前提:针对S3C2440来说,一个地址对应一个字节! 以下是SDRAM物理存储map,同样的地址,但对应的数据data也即位宽8bit、32bit作为分析 这里要解释一个地址连接很多新手的疑惑,就是连接8bitSDRAM是: CPU_ADDR0 –> SDRAM_ADDR0 CPU_ADDR1 –> SDRAM_ADDR1 CPU_ADDR2 –> SDRAM_ADDR...
阅读(761) 评论(0)

嵌入式学习笔记003-裸奔篇之按键

有了前面关于led的讲解后,后续的相关裸奔就方便多了,当然,code就不会像led那样简单了~ 现在开始讲解关于按键key的相关code 首先先看原理图找到key相关的引脚,在我的tq2440板子中,有如下分布: key1 – INT1 – GPF1 key2 – INT4 – GPF4 key3 – INT2 – GPF2 key4 – INT0 – GPF0 从上面可以看出GPF012...
阅读(591) 评论(0)

嵌入式学习笔记002-裸奔篇之点亮led

正如编写第一个程序所打印“hello world”那样,对TQ2440开发板的初次使用也是从最简单的部分入手,点亮led灯无疑是最简单的,起码只要设置几个寄存器就好,比起打印容易得多了,后续会讲到串口部分再来实现我们这句金典的对白~~~~ 板子共有4个led灯,如果能够成功点亮其中一个,那么其他几个将不是问题,故而我们的目标是先点亮第一个先,在此我们必须理清几个问题: a. led的引脚连接的相关...
阅读(857) 评论(0)

嵌入式学习笔记001-序言

开发环境: Win7(64bit) + VBox(Ubuntu12.04) 开发板    : TQ2440 写该系列笔记即是给自己学习linux旅程所留下的痕迹,同时也方便其他刚步入嵌入式大门的同道中人以供参考,若我的博文能够使你有所收获,将是我的荣幸~~~...
阅读(508) 评论(0)

关于printf()参数问题

...
阅读(835) 评论(0)

CPU,MPU,MCU,SOC,SOPC联系与差别

最近选了SOPC这门课程,突然发现很有兴趣,就乘胜追击多捣鼓一下,不过最初还是先解决CPU,MPU,MCU,SOC,SOPC以上这几个概念吧。 1.CPU(Central Processing Unit),是一台计算机的运算核心和控制核心。CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Dec...
阅读(1941) 评论(0)

FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法

FLASH连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位。为什么要偏1位?  从软件和CPU的角度而言,一个地址对应一个字节,就是8位数据。这是肯定的,不要怀疑这点。  对于具体器件而言,它的位宽是一定的,所谓位宽,指的是"读/写操作时,最小的数据单元" -- 别说最小单元是"位",一般设备上没有单独的"位操作",...
阅读(535) 评论(0)
36条 共2页1 2 下一页 尾页
    个人资料
    • 访问:26492次
    • 积分:574
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条
    文章分类