ARM
文章平均质量分 73
林晓海
The only way to do great work is to love what you do. If you havent found it yet keep looking. Dont settle. As with all matters of the heart y...
展开
-
ARM1176JZF-S 体系结构之寄存器和操作模式
ARM1176JZF-S 8种操作模式在ARM1176JZF-S体系结构中有8种操作模式用户模式(User mode):大多数的应用程序运行在这个模式系统模式(system mode):操作系统的特权用户模式管理者模式(supervisor 模式):用于操作系统保护模式快速中断模式(FIQ)模式:用于处理快速中断时候的模式中断模式(IRQ)模式:用户处理普通中断时候的模式原创 2013-07-15 16:29:10 · 4527 阅读 · 0 评论 -
DDR的基本原理与工作过程
一、DDR的基本原理与工作过程 这种内部存储单元容量(也可以称为芯片内部总线位宽)=2×芯片位宽(也可称为芯片I/O总线位宽)的设计,就是所谓的两位预取(2-bit Prefetch),有的公司则贴切的称之为2-n Prefetch(n代表芯片位宽)。 在实际工作中,L-Bank(Logical Bank)地址与相应的行地址是同时发出的,此时这个命令称之为“转载 2013-08-10 12:38:39 · 4176 阅读 · 0 评论 -
Linux移植过程遇到的问题
原文地址:希望今天能完成linux3.3.8在OK6410上的部分移植作者:always_std今天解决仅解决了3个小问题,make zImage 成功,还是值得欣慰的。但是kernel烧进去后还是无法启动,DNW显示卡在Uncompressing Linux... done, booting the kernel.就不动了,怀疑哪个ID设置错误。。。看来不是ID错误解决方案:翻译 2013-08-27 13:24:30 · 3644 阅读 · 0 评论 -
linux系统移植时候存在的常见问题
今天用主线Linux内核移植到MINI6410,主线内核2.6.37.1基本已经支持了MINI6410的板子,所以移植到能够启动起来的阶段很简单,但是在移植的时候还是出现了一个比较常见的问题:MINI6410 # bootm 0x50008000 ## Booting kernel from Legacy Image at 50008000 ... Image Name: Linu转载 2013-08-27 10:44:17 · 1056 阅读 · 0 评论 -
Linux2.6.36/37下移植yaffs2
yaffs2 老版本不支持2.6.36以上内核。 网上下载的yaffs2常见版本(点击http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/下方的Download GNU tarball进行下载)一般不支持2.6.36/37。但2.6.36一下版本依然可以使用。 最新的yaffs2采用git发布,利用git工具下载到最新的yaffs2源代转载 2013-08-27 15:23:52 · 882 阅读 · 0 评论 -
mini2440 移植linux2.6.30.10 及yaffs2文件系统 2011-03-12 10:17:18
研究了四天linux内核移植和文件系统制作,总算移植成功,在这里和大家分享一下,我是一个初学者,有不对的地方,请大家指点。参考网友的资料:http://blog.chinaunix.net/u3/104564/sho ... 91186.htmlhttp://www.ourdev.cn/bbs/bbs_content.js ... bs_id=1032http://blog.sin转载 2013-08-27 15:57:12 · 663 阅读 · 0 评论 -
对嵌入式Linux中的根文件系统的理解和解析
虽然前面已经利用Busybox制作了根文件系统,但是对于根文件系统的作用和普通的文件系统之间的区别还是有点模糊。通过查找资料总结了一下对根文件系统的理解,也欢迎大家一起讨论。 首先要明白的是“什么是文件系统”,文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。在一篇oracle的技术文章中看到这样一句话“尽管内核是 Linux 的核转载 2013-08-27 17:27:35 · 751 阅读 · 0 评论 -
Linux内核启动参数
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。 Linu转载 2013-08-27 22:23:16 · 1034 阅读 · 0 评论 -
go 0x30008000之后遇到的问题
go 0x30008000之后遇到的问题停在"booting the kernel"不动了!-------------------------------------------问题:Uboot> go 0x30008000 (启动内核)Uncompressing Linux................................................转载 2013-08-27 22:28:38 · 1400 阅读 · 0 评论 -
修改制作yaffs映象文件的工具
三. 修改制作yaffs映象文件的工具在 yaffs 源码中有个 utils 目录,里面是工具 mkyaffsimage 和 mkyaffs2image的源代码,前者用来制作 yaffs1 映象文件,后者用来制作 yaffs2 映象文件。目前 mkyaffsimage 工具只能生成老格式的yaffs1 映象文件,需要修改才能支持新格式。(1)下载的yaffs2解压出转载 2013-08-27 22:14:49 · 754 阅读 · 0 评论 -
Linux内核启动参数
Console Options 参数说明选项内核配置/文件 console=Options用于说明输出设备ttyn 终端 ttySn[,options], ttyUSB0[,options] 串口uar转载 2013-08-27 22:25:22 · 833 阅读 · 0 评论 -
linux 移植遇到的问题备份
今天移植linux内核到开发板,真是问题重重,首先是机器码不对,而后又出现网卡驱动不对,紧接着又出现了文件系统不管挂载,不过还好,我遇到问题都比较擅长去分析和解决,也许这就是程序员的有点吧!让我们看看下面的具体提示,然后分析下吧:Start Linux ...Copy linux kernel from 0x00240000 to 0x30008000, size = 0x转载 2013-08-27 14:51:58 · 780 阅读 · 0 评论 -
window下版本控制工具Git 客户端安装
安装使用 1.下载msysgit http://code.google.com/p/msysgit/ 2.下载tortoisegit客户端安装 http://code.google.com/p/tortoisegit/ 设置Git的安装路径: 转载Git说明: Git是什么 Git 在Wikipedia上的定义:它是一个免费的、分布式的版本控制工具,或是一转载 2013-08-27 15:30:57 · 644 阅读 · 0 评论 -
yaffs2文件系统移植
1、Linux2.6.37下移植yaffs文件系统原始的linux内核是不支持Yaffs2文件系统的,我们首先需要下载yaffs2的内核补丁,给内核打上yaff2补丁才能使内核支持该文件系统。yaffs2 老版本不支持2.6.36以上内核。 网上下载的yaffs2常见版本(点击http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/下方的Do转载 2013-08-27 16:06:17 · 756 阅读 · 0 评论 -
制作initramfs镜像
Linux kernel在自身初始化完成之后,需要能够找到并运行第一个用户程序(这个程序通常叫做“init”程序)。用户程序存在于文件系统之中,因此,内核必须找到并挂载一个文件系统才可以成功完成系统的引导过程。在grub中提供了一个选项“root=”用来指定第一个文件系统,但随着硬件的发展,很多情况下这个文件系统也许是存放在USB设备,SCSI设备等等多种多样的设备之上,如果需要正确引导,US转载 2013-08-27 17:31:48 · 1068 阅读 · 0 评论 -
制作生产yaffs映像文件的工具
进入yaffs2/util目录,修改mkyaffsimage.c文件(1)在头文件引用中增加#include "yaffs_packedtags1.h"(2)修改write_chunkh函数233行-258行修改为如下:#ifdef CONFIG_YAFFS_9BYTE_TAGSyaffs_Tags t;yaffs_Spare s;error = write(outFi转载 2013-08-27 22:16:26 · 1210 阅读 · 0 评论 -
S3C6410 DRAM配置
S3C6410支持两个DRAM片选,可以分别接最大256MB的内存,该处理器用的DRAM控制器是来自ARM的PrimeCell Dynamic Memory Controller(PL340)。只看S3C6410的Datasheet中的DRAM部分介绍是不够的,你还需要看PL340的技术参考文档,这个文档网上搜索一下就有了。想完全了解6410的DRAM控制器,必须两篇文档都看。我都看了,虽然没完全转载 2013-08-09 16:45:36 · 1200 阅读 · 0 评论 -
STM32发生HardFault_Handler错误的查找方法
我遇到的HardFault_Handler错误的原因最最多的原因是数组越界以及指针指飞,其实这两个是差不多的,都是访问了不该访问的地方导致了错误,就像一个路痴,漫无目的的走到了一个陌生的地方……然后就迷路了……然后就木有然后了……(貌似是第一次写原创,我该如何装成经常写的样子……)以前查找这种错误时比较盲目,就是在程序中缕着流程一步步的查找,逐个屏蔽进行排除,在程序隔一段加个while(1),转载 2013-08-02 23:46:23 · 17447 阅读 · 1 评论 -
ARM TCM
ARM 的ram包括静态ram,动态ram,TCM。TCM是一个固定大小的RAM,紧密地耦合至处理器内核,提供与cache相当的性能,相比于cache的优点是,程序代码可以精确地控制什么函数或代码放在那儿(RAM里)。当然TCM永远不会被踢出主存储器,因此,他会有一个被用户预设的性能,而不是象cache那样是统计特性的性能提高。TCM对于以下几种情况的代码是非常有用、也是需要的:可预见转载 2013-07-05 13:20:43 · 721 阅读 · 0 评论 -
OK6410裸机环境搭建 不用Jlink的方式
这几天被飞凌的OK6410搞得快奔溃了,现在搭好了裸机的环境,下面记下来防止其他和我一样的菜鸟犯同样的错误。首先大家要先去飞凌嵌入式论坛中下载最新的光盘http://bbs.witech.com.cn/forum.php?mod=viewthread&tid=22351&extra=page%3D1我在这个地方吃了不少亏,拿个8G的SD卡拿原先买开发板时候送的光盘中的SD_Writer原创 2013-07-23 17:53:40 · 2364 阅读 · 0 评论 -
S3C6410 中断
Andrew Huang bluedrum@163.com 转载请注明作者及联络方式一.中断的场景模拟----------------------------------------------------------------------------中断(Interrupt)是最常用的硬件通知软件的机制。中断的优点相对另一种机制轮询(Polling)的缺点而言,这两种的机制我们转载 2013-07-23 19:09:32 · 718 阅读 · 0 评论 -
OK6410 中断
近来想学ARM开发,使用了S3C6410核的OK6410开发板,为了学习ARM的底层技术,想从裸机开始学习,结果一路挫折,问题多多,经过很长一段时间的摸索也没有太多成果,因为平常上班,项目的事情也忙,看书的时间也不够多,结果走进中断编程都经过了将近一个月!! 中断,我认为在初学单片机开发的时候是一个比较麻烦的事情,所有想把这个东西弄懂,结果在网上找了遍,都没有找到可以用的代码!为什转载 2013-07-23 20:23:18 · 834 阅读 · 0 评论 -
S3C6410 中断例子程序
EINT0CON0 External Interrupt 0(Group0) Configuration Register 0 设置 外部中断的触发方式(高电平等)EINT0PEND External Interrupt 0(Group0) Pending Register 屏蔽前的中断(谁中断,相应位置1)EINT0MASK External Interrupt 0(Grou转载 2013-07-23 22:13:38 · 936 阅读 · 0 评论 -
OK6410启动代码(4)
;--------------------------------------------------------------------------------------; ; File Name : vfpinit.s; ; File Description : This file contains the sub routines related to ;转载 2013-07-31 20:41:56 · 956 阅读 · 0 评论 -
OK6410启动代码(1)
;/*************************************************************************************; File Name : retarget_.s; ; File Description : This file implements the stack & heap initilaization;***转载 2013-07-31 20:37:43 · 881 阅读 · 0 评论 -
OK6410启动代码(2)
;/*************************************************************************************; File Name : startup.s; File Description : This file implements the startup procedure. ;******************转载 2013-07-31 20:38:34 · 954 阅读 · 0 评论 -
OK6410启动代码(3)
;--------------------------------------------------------------------------------------; ; File Name : system_.s; ; File Description : This file implements CP15 control.;*******************转载 2013-07-31 20:41:01 · 1165 阅读 · 0 评论 -
堆栈大小的设置
二、模板中设置向量中断堆栈大小为256即:IRQ_STACK_LEGTH EQU 256但是为什么我将其大小变为零,即:IRQ_STACK_LEGTH EQU 0也照样可以运行程序?程序中通过SPI中断收发数据。谢谢! 既然中断堆栈是为进入中断后局部变量和函数调用开辟的存储区,那如果将堆栈大小设为0,进入中转载 2013-07-31 20:55:35 · 6652 阅读 · 0 评论 -
mini6410中断控制器-VIC中断控制器
写的很详细回头总结:原文链接:http://blog.csdn.net/mr_raptor/article/details/6624515转载 2013-07-25 12:22:22 · 567 阅读 · 0 评论 -
Linux下的minicom和dnw
导读:一直在Windows下开发,某些bug总是使我不能全心全意的信任Windows,从开发嵌入式开始,一直就想把开发环境转移到Linux环境下,特别是下载程序的时候,不过确实有Linux的开发环境,就拿下载程序来说,Linux下的minicom和dnw真的是很好用,同时也可以学习源代码。下面教你如何下载、安装、使用dnw。 一直在Windows下开发,某些bug转载 2013-08-01 16:35:31 · 4118 阅读 · 1 评论 -
韦东山学习嵌入式Linux学习方法
在学习嵌入式Linux之前,肯定要有C语言基础。汇编基础有没有无所谓(就那么几条汇编指令,用到了一看就会)。C语言要学到什么程度呢?越熟当然越好,不熟的话也要具备基本技能。比如写一个数组排序、输入数字求和什么的。学C语言唯一的方法是多写程序多练习,编译出错没关系,自己去解决;执行出错没关系,自己去分析。以前我是用VC来练习C语言的,经常去尝试着写一些C语言竞赛的题目。它们是纯C、纯数学转载 2013-08-01 18:30:29 · 1684 阅读 · 0 评论 -
OK6410时钟配置
一、时钟源的选择 时钟源的选择内部时钟会产生用于外部的时钟源,其说明如表 3-1 所示。当外部复位信号被声明时,OM[4:0]引脚决定了 S3C6410的操作模式。OM[0]引脚选择外部时钟源,例如,如果OM[0]是 0,则 XXTIpll(外部晶体)被选择。否则,XEXTCLK(外部时钟输入)被选择。在OK6410板上是外接12M晶振。如下图所示:转载 2013-07-26 12:36:05 · 983 阅读 · 0 评论 -
OK6410 PWM
在OK6410开发板中,蜂鸣器的IO口为GPF15 关于GPF15的GPIO详细参考S3C6410的PDF手册GPF14 [29:28] 00 = Input 01 = Output 10 = PWM TOUT[0] 11 = CLKOUT[0] GPF15 [31:30] 00 = Input 01 = Ou转载 2013-07-26 13:13:07 · 1236 阅读 · 0 评论 -
u-boot如何向内核传递Flash的分区信息
1.如何对nand 分区。修改mtdparts环境变量就可以了么?对于目前的U-boot而言,是的.而且, 设置了mtdparts变量之后,你可以在nand read/write/erase命令中直接使用分区的名字而不必指定分区的偏移位置.set bootargs noinitrd console=ttySAC0 root=/dev/mtdblock3 rootfstype=jff转载 2013-08-28 09:39:33 · 955 阅读 · 0 评论