ARM9--AT91SAMxxx
lichangc
这个作者很懒,什么都没留下…
展开
-
ARM9启动分析--存储器区分和启动流程解析
最近遇到一个大大的问题,其实以前都一直有问题,但是我没有去深究过!主要是我自己想来弄点新东西,打算用J-link烧写ARM9的处理器,如果能够将j-link的强大调试功能也移到arm9上,那将是一件多么美妙的事情啊。就带着这个问题我一直看资料,最开始我是有两块开发板的,具体点说是三块。但是我当初只用了一块的时候,我没发现什么问题。我当时就是按照别人给我的说明书上进行操作的,也没有去理解和分析为什么原创 2011-06-08 15:29:00 · 2563 阅读 · 0 评论 -
AT91SAM926x内核编译流程
安装包准备1.linux-2.6.30.tar.bz2 原始包2.2.6.30-at91.patch.gz at91些列的包3.2.6.30-at91-exp.4.tar.gz 9g45等的芯片包 安装1.官方方法wget http://www.kernel.org/pub/linux/kernel/v2.6/linu转载 2013-01-28 17:01:14 · 3194 阅读 · 0 评论 -
AT91SAM926x开发全流程
http://www.mcuzone.com:8080/dokuwiki/doku.php?id=product:sam9_linux#lcd_%E6%97%B6%E5%BA%8F本页内容发表于MCUZone。如果你对本页的技术内容有疑问,请到 MCUZone技术论坛 发帖。如果你认为本页的内容侵害了你的权益,请与hotislandn@hotmail.com;hdapple_2转载 2012-04-05 10:54:18 · 7334 阅读 · 0 评论 -
uboot的 bootm 和 bootargs
在u-boot 文件夹下的/include/configs/at91sam9263.hu-bootcmd前面有说过bootcmd是自动启动时默认执行的一些命令,因此你可以在当前环境中定义各种不同配置,不同环境的参数设置,然后设置bootcmd为你经常使用的那种参数。u-bootargsbootargs是环境变量中的重中之重,甚至可以说整个环境变量都是围绕着bootargs来转载 2013-02-18 11:30:07 · 792 阅读 · 0 评论 -
系统启动挂载根文件系统时Kernel panic
系统启动挂载根文件系统时Kernel panic这类问题很常见,先总体介绍一下解决思路。能出现让人激动的的控制台,那么系统移植已经接近完成;但是不少人在最后一步出现问题。要点如下:1. 在正确的位置烧写正确格式的文件系统映象:2. 内核支持这种文件系统格式3. 文件系统的内容要完备上面说得简单,一个个介绍。1. 在正确的位置烧写正确的文件系统映象:转载 2013-02-18 17:39:49 · 737 阅读 · 0 评论 -
一级启动Bootstrap关键代码分析及U-boot代码对dataflash分区实现
更多相关u-boot博客/*U-boot启动信息*/DataFlash:AT45DB321Nb pages: 8192Page Size: 528Size= 4325376 bytesLogical address: 0xC0000000Area 0: C0000000 to C0003FFF (RO)Area 1: C0004000 to C0007FFF转载 2013-02-18 23:12:27 · 2590 阅读 · 0 评论 -
SAM9261完全启动Bootstrp/U-boot/linux-2.6.30/rootfs
经过一段时间的奋斗,终于将linux在AT91SAM9260的板子上启动了。下面是启动后打印出来的字符。成功启动,花了将近一个月的时间。从编译bootstrp开始一步步的实现。其中遇到了很多困难,但是都被慢慢征服了!呵呵 希望未来是美好的!如果时间允许我将会把所有的实现步骤贴出来!但是不一定能实现!linux内核版本问题,gcc编译器,glibc的不同都会导致不一致性!希望想学习的朋友能够坚持!呵原创 2013-02-20 19:44:04 · 1828 阅读 · 0 评论 -
Linux内核中ioremap映射的透彻理解
几乎每一种外设都是通过读写设备上的寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: (1)I/O映射方式(I/O-mapped) 典型地,如X86处理器为外设专门实现了一个单独的地址空间,称为"I/O地址空间"或者"I/O端口空间",CPU通过专门的I/O指令(如X86的转载 2013-02-22 17:09:16 · 959 阅读 · 0 评论 -
linux 驱动开发
linux驱动开发,听这个名词好像是很高深的东西!其实不然,对于开发人员来讲最总要的是理解几个概念!知道开发思路,下面将从概念,到应用做一个详细的阐述。 linux驱动:什么是linux驱动,其实很简单,就是基于linux操作系统,在系统下面想对外设进行操作。需要通过linux内核提供的驱动操作接口,对外设的寄存器进行设置,通过设置这些寄存器后能够方便linux系统对其进行操作。下面原创 2013-03-22 11:28:32 · 2564 阅读 · 5 评论 -
基于AT91SAM9G10(AT91SAM9261)与FPGA的高精度数据采集系统
图 数据采集系统正面图 图 数据采集系统背面图 本数据采集系统是基于ARM9和FPGA通信实现的采集系统。系统由12bit高精度的AD574原创 2013-05-20 10:39:40 · 3234 阅读 · 1 评论 -
BusyBox1.21.0编译流程
busybox1.21.0下载后,解压开。首先make defconfig配置busybox。在配置完成后,使用make menuconfig进入到配置界面。 进入后选择编译为静态库。同时,设置交叉编译器为:arm-none-linux-armgiaeb-编译器。其中有一个很关键的问题就是包含glibc的头文件。位置为:/opt/arm-none-linux-gnueabi/libc/u原创 2013-06-05 16:32:01 · 1913 阅读 · 0 评论 -
cannot find crt1.o:错误解决方案
crt1.o: No such file or directory/opt/bin/../lib/gcc/arm-none-linux-gnueabi/4.7.2/../../../../arm-none-linux-gnueabi/bin/ld: cannot find crti.o: No such file or directorycollect2: error: ld returned 1原创 2013-06-17 01:34:18 · 46414 阅读 · 5 评论 -
crash_guard callback() 错误解决方法
I recently installed Ubuntu 12.10 by keeping the home folders from Linux Mint 13 distribution. The system installed fine, but at the beginning everything was in Chinese (even the text in the Terminal)转载 2013-11-18 23:55:36 · 2426 阅读 · 0 评论 -
Error: unrecognized/unsupported machine ID
Error: unrecognized/unsupported machine ID 原因:This kind of error message happens if the machine ID which is set in U-Boot doesn't match the kernel's ID(s). Unfortunately a standard U-Boot s转载 2013-01-28 13:29:41 · 1876 阅读 · 0 评论 -
AT91SAM9260下的U-Boot移植和添加LCD驱动支持
第一步:从http://www.denx.de/wiki/U-Boot/SourceCode网站下载u-boot-2008.10.tar.bz2这个文件。第二步:建立自己的交叉编译环境,我用的是arm-none-linux-gnueabi-,可以从这里下载最新的交叉编译器。建立的系统为fedora 16。设置好交叉编译环境变量。一般觉得export命令来设置会比较好用,有的会提供修改pro原创 2013-01-23 17:30:22 · 4046 阅读 · 0 评论 -
交叉编译时候如何设置连接库的搜索路径
(1)、交叉编译时候直接使用-L和-I参数指定搜索非标准的库文件和头文件的路径。例如:arm-linux-gcc test.c -L/usr/local/arm/2.95.3/arm-linux/lib -I/usr/local/arm/2.95.3/arm-linux/include(2)、使用ld.so.conf文件,将用到的库所在文件目录添加到此文件中,然后使用ldconfig命转载 2012-03-23 11:53:31 · 3326 阅读 · 0 评论 -
iphone4原理图
呵呵,上传一个iphone4的原理图,学习一下大师级别的设计风格。下载地址:http://download.csdn.net/detail/lichangc/3977939原创 2011-12-28 15:56:28 · 1290 阅读 · 0 评论 -
AT91SAM9260的SMC的驱动开发
Linux Cross Referencehttp://lxr.free-electrons.com/source/drivers/ata/pata_at91.cLinux/drivers/ata/pata_at91.c1 /* 2 * PATA driver for AT91SAM9260 Static Memory Controller 3 * with Com翻译 2012-01-06 11:29:18 · 3539 阅读 · 1 评论 -
AT91SAM9260 SMC外接LCD的驱动
LCD数据线对应连接到9260数据总线WR与OE连接到9260WR与RD线CMD连接到地址线A2CS是连接到NCS7首先初始化NCS7所在SMC/*------------------------------------------------function : init at91sam9260 smc in ncs7in :cs : ncsxconfig : str转载 2012-01-06 15:25:37 · 4355 阅读 · 0 评论 -
sdram布线及建立时间,保持时间的问题
SDRAM,133MHz的应该没有什么大关系的,不过还是要做一下的。差分时钟控制在+-50mil以下,严格的差分走线;控制信以及地址线要和时钟线等长,线长不超过+-100mil.至于数据线,没有必要和时钟线,地址线以及控制线等长。每8个bit也就是一个Byte及其对应的DQS,DQM为一组。以32位DDR2为例:其实一共可以分为五个组来控制走线长度:第一组:时钟以及控制线,转载 2012-01-08 18:08:58 · 1922 阅读 · 0 评论 -
Linux下SRAM的读写
项目中需要用ARM与FPGA进行通信,通信方式是通过FPGA生成的SRAM作为数据的交换区,ARM9芯片为ATMEL的AT91SAM9260,采用Linux 2.6.19的内核,今天搞了一天,总算是读写成功,下面简要的说明一下。 ARM中只有I/O内存的没有I/O端口,ARM9运行后默认是开启MMU的,Linux采用虚拟存储管理内存,具体的内存管理方式本文不作展开。所以要使用Lin转载 2011-12-29 12:57:20 · 2269 阅读 · 1 评论 -
linux下的键盘驱动
来自:http://www.eepw.com.cn/article/41207.htm键盘在所有的驱动之中最为简单的一种,但它却包含了驱动的基本框架,对以后继续深入学习其他复杂的驱动大有裨益,以下便为你逐步剖析驱动的开发。采用的是查询方式。一.内核模块的注册和撤销 在加载模块的时候,首先运行的是内核模块的注册函数。它的功能包括内核注册设备以及变量的初始化。static i转载 2012-02-10 15:42:13 · 925 阅读 · 0 评论 -
linux内核编译问题解决方法
在linux内核编译过程中,可能会遇到有些文件没有的可能,下面是我用gcc4.6.2编译linux2.6.30.5内核过程中提示的错误:gcc: error: elf_i386: No such file or directory OBJCOPY arch/x86/vdso/vdso32-int80.soobjcopy: 'arch/x86/vdso/vdso32-int80.so.db原创 2012-02-24 10:55:28 · 3370 阅读 · 0 评论 -
移植AT91Bootstrap1.15
弄AT91SAM9260EK有一段时间了,一直没有时间把这些东西写下来。经过女友的多次鼓励,还是决定将这些东西写下来。一来,等很久以后,自己可以回头来看;二来,希望自己的这些点滴能够帮助后来者。 首先,这个移植起来不难,很简单,只要你是按照9260EK板做的,只需要添加你所用的NAND在里面就可以了。顺便在这里声明下,我的板子是按照9260EK做的,不过我的板子上没有NOR FLASH,转载 2012-04-03 16:07:21 · 1828 阅读 · 0 评论 -
SAM-BA和AT91SAM9260连接问题
SAM-BA在用usb连接过程中可能发生没有反应的问题,这里可能是你的jtagsel管脚选择了,如果出现初始化外部ram失败的问题,可能的问题是你的外部焊接有问题 ,如果外部焊接没有问题的情况下,请检查你是否用了fpga,fpga的不用管脚是否设置成为了输入三态门的状态!原创 2012-04-03 10:46:32 · 3220 阅读 · 1 评论 -
Nandflash与SAMBA GUI的兼容问题
在SAMBA GUI中使用Nandflash,需要检查哪些参数? 当使用一个nandflash时,必须仔细检查device ID。当执行一个读ID命令,就能够知道nandflash device ID。SAMBA GUI有一个列表(见下面),根据不同的device ID定义了nandflash特性(存储器组织,总线带宽,电压域等)如果你发现你的nandf转载 2012-04-05 10:02:02 · 1615 阅读 · 0 评论 -
AT91sam9260ek修改nandflash大小调试笔记
原开发板是256M的NANDFLASH,目的是想用一个64M的nandflash,并且从nandflash启动。 主要是对bootstraps修改,修改地方如下:(以百特光盘自带的AT91Bootstrap1.2为例) 1:AT91Bootstrap1.2/include/nand_ids.h中的增加两行{0xecf1, 0x400, 0x20000, 0x800, 0x4转载 2012-04-09 10:07:27 · 1738 阅读 · 0 评论 -
SAM-BA v2.6和NandFlash 坏区管理
Question当擦除或者写NANDFLASH的时候,SAM-BA v2.6会查找出很多坏区. 这个正常吗?我应该怎么处理他们呢?AnswerSAM-BA v2.5 或者是之前的版本,对AT91SAM9260-E或者 AT91SAM9263-EK主板的NandFlash烧写的时候,通常会出现这种情况.这些区不一定真正的损坏了,但是数据尤其是ECC原创 2012-04-09 10:37:23 · 3289 阅读 · 0 评论 -
linux/videodev.h: No such file or directory错误解决方法
yum install libv4l-dev*上面错误的问题是两个2.4以上的内核里面都没有包含videodev.h这个文件了。但是有的在include/linux/下面有videodev.h文件和videodev2.h这个文件,但是在v4lgrab.c文件中只有部分包含了videodev2.h这个文件。这样导致了就算是包含了videodev2.h这个文件,但是还是会报错。解决的办法是:原创 2012-03-22 12:00:45 · 45536 阅读 · 6 评论 -
驱动程序调测方法与技巧
驱动程序开发的一个重大难点就是不易调试。本文目的就是介绍驱动开发中常用的几种直接和间接的调试手段,它们是:利用printk查看OOP消息利用strace利用内核内置的hacking选项利用ioctl方法利用/proc 文件系统使用kgdb一、利用printk这是驱动开发中最朴实无华,同时也是最常用和有效的手段。scull驱动的main.c第338行如下,就是使用printk转载 2015-01-29 16:04:41 · 3183 阅读 · 0 评论