ARM
文章平均质量分 76
shangyaowei
这个作者很懒,什么都没留下…
展开
-
2010年11月19日
(原创)Main函数之Isr_Init分析2010-06-08 12:21初始化中断服务程序。当中断产生时,处理相应的程序void Isr_Init(void){pISR_UNDEF=(unsigned)HaltUndef;pISR_SWI =(unsigned)HaltSwi;pISR_PABORT=(unsigned)HaltPabort;pISR_DABORT=(u原创 2013-12-19 20:30:20 · 348 阅读 · 0 评论 -
s3c2440 DM9000EP驱动程序
#include #include #include #include #include #include #include #include #include #include #include #include static volatile unsigned long *bwscon;static volatile unsigned long *bankcon4;原创 2013-12-19 20:42:37 · 1437 阅读 · 0 评论 -
S3C2410 MMU技术精解
MMU,全称Memory Manage Unit, 中文名——存储器管理单元。 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大原创 2013-12-19 20:42:44 · 469 阅读 · 0 评论 -
linux 下 opencv2.0 的编译与安装 …
环境: PC机系统:Ubuntu10.10 (linux2.6.35-23)目标板:天嵌2440 统 (系:Qt4.7,内核:2.6.30) arm-linux-gcc:4.3.3解压:OpenCV-2.0.0.tar.bz2 #cd OpenCV-2.0.0 ///////////// for x86 /////////////////./configure --原创 2013-12-19 20:43:05 · 459 阅读 · 0 评论 -
自己动手写bootloader
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://doublewen.blog.51cto.com/3097132/802508 为了写一个bootloader让板子跑起来,首先我们要知道bootloader是个什么东东才行。简单原创 2013-12-19 20:44:35 · 777 阅读 · 0 评论 -
Nand Flash存储结构及控制方法(K9F…
一、NAND Flash介绍和NAND Flash控制器的使用NAND Flash在嵌入式系统中的作用,相当于PC上的硬盘常见的Flash有NOR Flash和NAND Flash,NORFlash上进行读取的效率非常高,但是擦除和写操作的效率很低,容量一般比较小;NANDFlash进行擦除和写操作的效率更高,并且容量更大。一般NOR Flash用于存储程序,NANDFlash用于存储数原创 2013-12-19 20:44:44 · 622 阅读 · 0 评论 -
2012年10月23日
STM32的IAP方案几乎所有的同类书籍都介绍综合性的应用示例如“万年历 + 温度显示 + 闹钟响铃 + 计时表”这样的一个实时时钟范例或“STM32+ 音频解码 +大容量存储方案”这样的MP3播放器范例。这些综合性实例的目的在于引领读者进行综合性实验,达到把单片机的基础模块整合运用的目的。这些实例普遍存在一种共同点,即“练手”意义要大于“实用”的意义。本文将讲述一个STM32原创 2013-12-19 20:47:59 · 391 阅读 · 0 评论 -
RISC cpu cache管理总结
花了些时间,了解了一下 嵌入式中 cache的一些问题总结一下,贴出来共享一下. 写得不好,或者有什么问题 欢迎提出.ps: 也算是原创帖子了,欢迎讨论. 不知道怎么把帖子变成原创呢?本文以MIPS R4000系列cpu为例.假如使用的MIPS 4KEC (MIPSr232):D cache & I cache 的结构都是4组并联的 cache,每组为4KB原创 2013-12-19 20:48:16 · 983 阅读 · 0 评论 -
b MAIN 和 ldr&nbs…
http://blogold.chinaunix.net/u3/97851/showart_2287198.html看bootloader的时候经常看到这两种写法,不太明白区别,网上查了查。其实看了之后还是一头雾水?其中,2和3 似乎是一个东西,但结果是相反的。晕。//===============================================有几种说法:第一种原创 2013-12-19 20:52:57 · 508 阅读 · 0 评论 -
Uboot中start.S源码的指令级的详尽…
http://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html/uboot_starts_analysis.html原创 2013-12-19 20:53:03 · 443 阅读 · 0 评论 -
S3C2440 SPI驱动简单测试
http://www.cnblogs.com/nkzc/archive/2010/07/21/1781959.htmlhttp://apps.hi.baidu.com/share/detail/23661495#include #include#include #include #include#include#include #include #include原创 2013-12-19 20:42:00 · 389 阅读 · 0 评论 -
s3c2440 spi驱动DMA模式
#include #include#include #include #include#include#include #include #include #include #include #include #include #include #include #include#include #include #include #include原创 2013-12-19 20:42:20 · 582 阅读 · 0 评论 -
基于ARM与DSP的智能仪器系统设计
关键词:DSP, ARM, 系统设计, 智能仪器, 嵌入式1 引言 随着智能仪器及控制系统对实时性信号处理的要求不断提高和大规模集成电路技术的迅速发展。越来越迫切的要求有一种高性能的设计方案与之相适应,将DSP技术和ARM技术结合起来应用于嵌入式系统中,将会充分发挥两者优势以达到智能控制系统中对数据的实时性、高效性的通信要求。该嵌入式系统要求实时响应,具有严格的时序性。其工作环境可能非常恶劣原创 2013-12-19 20:44:03 · 729 阅读 · 0 评论 -
微处理器中各种总线简介(转载)
微处理器中常用的集成串行总线是通用异步接收器传输总线(UART)、串行通信接口(SCI)和通用串行总线(USB)等,这些总线在速度、物理接口要求和通信方法学上都有所不同。本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。 由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以原创 2013-12-19 20:44:05 · 1080 阅读 · 0 评论 -
S3C2440与SDRAM连接浅析
我们知道,S3C2440对外引出了27根地址线 ADDR0~ADDR26,如下图左侧所示,是不是只有27根?27根地址线所能寻址的最大范围为2^27=128MB。仅仅128MB显然是不够的,所以又有了BANK,什么是BANK,按我个人的理解,就是分块或者是分页,当然这种说法可能不是太严谨,你只要能明白大概意思就可以了。显然,对应上面我们应该也可以猜到,每个BANK的大小为128原创 2013-12-19 20:44:52 · 689 阅读 · 0 评论 -
友善之臂的qtopia2.2.0加入多线程…
本文章基于友之臂提供的arm版本的qtopia2.2.0和x86版本的qtopia2.2.0,前提是系统中已经安装好交叉编译器。要实现多线程,主要是要获得带多线程支持的动态链接库libqte-mt.so.2,libqte-mt.so.2需要通过编译qt获得,下面是编译libqte-mt.so.2的方法(arm和x86版本方法类似,一起叙述)。1) 将友善之臂提供的qt源码解压,按照友善之臂手册原创 2013-12-19 20:45:47 · 446 阅读 · 0 评论 -
多核编程:选择合适的结构体大小,…
作者:gfree.wind@gmail.com博客:blog.focus-linux.net linuxfocus.blog.chinaunix.net 本文的copyleft归gfree.wind@gmail.com所有,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。=======================原创 2013-12-19 20:48:44 · 385 阅读 · 0 评论 -
TEXT_BASE 位置无关代码
嵌入式开发的流程与高层开发大体类似,编码—编译、链接—运行。中间当然可以有联机调试,重新编码等递归过程。但有一些不同之处。(1)、首先,开发平台不同。受嵌入式平台处理能力所限,嵌入式开发一般都采用交叉编译环境开发。所谓交叉编译就是在A平台上编译B平台上运行的目标程序。在A平台上运行的B平台程序编译器就被称为交叉编译器。一个初入门者,建立一套这样的编译环境也许就要花掉几天的时间。(2)、其次原创 2013-12-19 20:52:59 · 500 阅读 · 0 评论 -
DM9000初始化过程
drivers/dm9000x.c eth_init()函数 这里的初始化并不复杂,首先对dm9000进行复位 static void dm9000_reset(void) { DM9000_DBG("resetting\n"); DM9000_iow(DM9000_NCR, NCR_RST); udelay(1000);原创 2013-12-19 20:42:33 · 768 阅读 · 0 评论 -
DM9000 驱动移植及源码简析
在成功移植Dm9000驱动到我的EIEVK-100(SMDK2440)开发板的前提下,本文从以下几个方面说明相关原理及过程:1.硬件情况2.Dm9000驱动移植详细过程3.Platform_device与platform_driver4.Dm9000驱动代码简要分析 一. 硬件情况DM9000在电路板上的连接中与编程相关的如下:1)EECS拉高:16bit模式;2)原创 2013-12-19 20:42:31 · 451 阅读 · 0 评论 -
IIC的linux驱动
//---------------IIC的linux驱动------------------#include #include #include #include #include #include #include #include #include #include #include #include #i原创 2013-12-19 20:42:22 · 458 阅读 · 0 评论 -
ARM-linux启动的流程
首先,portinglinux的时候要规划内存影像,如小弟的系统有64m SDRAM, 地址从0x0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dff ffff. 规划如下:bootloader,linux kernel, rootdisk放在flash里。 具体从0x0c00 0000开始的第一个1M放原创 2013-12-19 20:31:24 · 318 阅读 · 0 评论 -
ARM-linux启动的流程
首先,porting linux的时候要规划内存影像,如小弟的系统有64mSDRAM, 地址从0x 0800 0000 -0x0bff ffff,32m flash,地址从0x0c00 0000-0x0dffffff. 规划如下:bootloader, linux kernel,rootdisk放在flash里。 具体从 0x0c00 0000开始的第一个1M放bootloader,原创 2013-12-19 20:31:26 · 394 阅读 · 0 评论 -
s3c2410时钟信号:FCLK、HCLK和PCL…
2010-06-07 18:56s3c2410 有三个时钟FLCK 、HCLK 和PCLK(这3个时针都是核心时针)s3c2410 芯片有这么一段话:FCLK is used byARM920T ,内核时钟,主频。HCLK is used forAHB bus, which is used by the ARM920T, the memory controller, th原创 2013-12-19 20:40:44 · 414 阅读 · 0 评论 -
linux之TQ2440通过nfs挂载根文件系…
准备:首先在你的linux上确定nfs挂载没问题,然后设置好你要挂载nfs的目录,我的设置如下:/opt/EmbedSky/root_nfs *(rw,sync,no_root_squash)其次,你要把TQ2440制作的根文件系统root_qtopia_2.2.0_2.6.30.4_20100601.tar.bz2解压到root_nfs目录下(如果高手的话,自己制作根目录也行)。TQ24原创 2013-12-19 20:40:50 · 396 阅读 · 0 评论 -
改变TQ2440默认作为终端的串…
原文地址:改变TQ2440默认作为终端的串口以及NFS文件系统的配置作者:铁剑布衣串口如果被作为默认终端,那马串口就会用于输出系统调试信息,而不能用于我们自己的串口通信。在TQ2440的NOR中的U-BOOT,选择0 set the boot parameter。##### Parameter Menu#####转载 2013-12-19 20:40:52 · 387 阅读 · 0 评论 -
linux-2.6.24.4中和dma有关的函数…
s3c2410与DMA相关的寄存器s3c2410共有4通道的dma,每通道9个寄存器,共36个。 1、DISRCn 该寄存器保存待传送数据的源地址。2、DISRCCn 源控制寄存器。位1表示数据源的总线类型,位0表示地址是否自动增减。3、DIDSTn 该寄存器保存待传送数据的目的地址。4、DIDSTCn 目的控制寄存器。位1表示目的地址的总线类型,位0表示地址是否自动增减。原创 2013-12-19 20:42:08 · 402 阅读 · 0 评论 -
S3C2410:DMA介紹(精)
(2008-02-25 21:40) 之所以要介绍DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3c2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。Atomic transfer:指的是原创 2013-12-19 20:42:14 · 356 阅读 · 0 评论 -
编写的dm9000ep驱动(2.6.13)
the code behind is a some error ,the hwaddr must written to the relevantregesiters in the init function .this is important andessential.最近手头刚好有个开发板,也还有点时间,就试着写了一下它上面的网卡驱动,当然也是参考了其现有的驱动再写的,程序如下:#原创 2013-12-19 20:42:29 · 449 阅读 · 0 评论 -
SDRAM 简介及驱动程序
http://blog.csdn.net/mr_raptor/article/details/6555786原创 2013-12-19 20:44:48 · 436 阅读 · 0 评论 -
s3c2440对nandflash的操作
http://blog.chinaunix.net/uid-24219701-id-1739965.html原创 2013-12-19 20:44:54 · 391 阅读 · 0 评论 -
Uboot中 TEXT_BASE的理解
转载都知道U-BOOT分为两个阶段,第一T阶段是(~/cpu/arm920t/start.S中)在FLASH上运行(一般情况下),完成对硬件的初始化,包括看门狗,中断缓存等,并且负责把代码搬移到SDRAM中(在搬移的时候检查自身代码是否在SDRAM中),然后完成C程序运行所需要环境的建立,包括堆栈的初始化等,最后执行一句跳转指令: ldr pc, _start_armboo原创 2013-12-19 20:52:55 · 396 阅读 · 0 评论 -
关于adr指令的理解
之前在阅读arm的汇编代码时,碰到了adr指令,查arm的指令手册,只说该指令是采用相对地址的,但这个相对地址应该怎么理解,却没有具体说明。之后在网上以adr指令为关键字进行搜索,也没有找到进一步的知识。结果,今天在搜索android资料的时候,意外的发现了adr指令与ldr指令的不同,一下子解决了心中的问题。以adr指令与ldr指令对比作为关键字,甚至可以搜到好几篇文章,实在是......竟然原创 2013-12-19 20:53:01 · 421 阅读 · 0 评论 -
s3c2440驱动
#include #include #include //copy_to_use, copy_from_user#include#include//寄存器宏#include //readl,readb, writel, writeb#define BUFSIZE 100#define ttyS0_MAJOR 240#define iobase S3C24XX_VA_UA原创 2013-12-19 20:41:46 · 287 阅读 · 0 评论 -
SPI时序详解
SPI总线是Motorola公司推出的三线同步接口,同步串行3线方式进行通信:一条时钟线SCK,一条数据输入线MOSI,一条数据输出线MISO;用于CPU与各种外围器件进行全双工、同步串行通讯。SPI主要特点有:可以同时发出和接收串行数据;可以当作主机或从机工作;提供频率可编程时钟;发送结束中断标志;写冲突保护;总线竞争保护等。 SPI总线有四种工作方式(SP0, SP原创 2013-12-19 20:41:56 · 1190 阅读 · 0 评论 -
zImage和uImage的区别
一、简介 对于Linux内核,编译可以生成不同格式的映像文件,例如:# make zImage# make uImage zImage是ARMLinux常用的一种压缩映像文件,uImage是U-boot专用的映像文件,它是在zImage之前加上一个长度为0x40的“头”,说明这个映像文件的类型、加载位置、生成时间、大小等信息。换句话说,如果直接从uImage的0x40位置原创 2013-12-19 20:41:58 · 380 阅读 · 0 评论 -
s3c2410_wdt.c
#include #include#include #include #include#include#include #include #include#include#include #include #include #include #undef S3C_VA_WATCHDOG#define S3C_VA_WATCHDOG (0)#inclu原创 2013-12-19 20:42:02 · 425 阅读 · 0 评论 -
S3C2410通过IIS总线与音频芯片UDA1…
S3C2410通过IIS(Inter-ICSound)总线与音频控制芯片UDA1380进行通信。放音时发送数据到UDA1380的DATAI管脚,录音时从UDA1380的DATAO管脚接收数据,其数据传输方式为DMA方式。 IIS用于传输音频数据,IIC用于控制1380芯片。 IIS有pclk,sclk,lrclk,sdi,sdo。 PCLK(通俗来说就是声音的采样频原创 2013-12-19 20:42:10 · 1030 阅读 · 0 评论 -
linux内核学习初笔记(6)uboot第…
uboot第一阶段分析完毕,根据第一阶段最后的分析,程序跳转到了ram中继续执行start_armboot这个函数。下面来看看这个函数主要完成了什么功能。首先要说明一个结构体,之前提到过,叫全局数据结构体,用于保存一些全局数据,在uboot第一阶段设置栈指针时,其实就已经为这个结构体在内存中留出了空间,它的地址就是在堆的地址下方,栈的上方。全局数据结构体定义如下所示:typedef原创 2013-12-19 20:53:05 · 427 阅读 · 0 评论