
硬件相关
文章平均质量分 81
雷古拉斯
专注近场通信
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《micro2440开发》第四章:micro2440简介
micro2440核心板采用6层板设计,并使用等长布线以满足信号完整性要求。为了调试开发和方便调试,主要芯片放在顶层。 micro2440是一个最小系统板,它包含最基本的5V电源电路、复位电路、标准JTAG调试口、用户调试指示灯、以及核心的CPU和存储单元等。其中FLASH存储单元包含NAND FLASH和NOR FLASH两种类型,通过跳线J1可以选择从NAND或NOR启动系统。一般N原创 2012-10-16 10:02:03 · 2781 阅读 · 0 评论 -
《micro2440开发》第五章:micro2440 JLINK配置——Jlink驱动/工具及ADS安装
==================================================================================================================================== 一、安装J-LINK驱动 目录:/JLINK驱动/ ====================================原创 2012-10-16 00:18:56 · 2005 阅读 · 0 评论 -
micro2440/tiny6410使用JLINK直接烧录nand flash
一、将内存初始化程序下载至SRAM并运行 1.打开J-Link Commander,将micro开发板拨至nand flash启动。 2.以下是常用命令: speed 12000:设置下载速率为12M。 r:reset,复位命令。 h:halt,停机、也有暂停的功能。 loadbin :下载filename文件到地址address上。 setpc:设在PC寄存器的值。 3.具体操原创 2013-05-09 14:13:22 · 3224 阅读 · 0 评论 -
《tiny6410裸机程序》第九章:tiny6410按键控制蜂鸣器程序
==================================================================================================================================== 还没有调通,先记录一下吧: 1.Startup.s preserve8 IMPORT keymain原创 2012-12-18 00:40:54 · 2272 阅读 · 0 评论 -
《tiny6410裸机程序》第五章:汇编与C混合编程-LED跑马灯最终说明、myled再次精简
RVDS的CodeWarrior配置如下: Linker(链接)设置 RealView Linker->Output: Linkertype选Simple;Simple image中RO Base填0x50200000、RW Base填0x50203000。 RealView Linker->Options: Image entry point填0x50200000。 RealView原创 2012-12-09 17:26:02 · 1497 阅读 · 0 评论 -
《tiny6410裸机程序》第三章:基础汇编test1
一、CodeWarrior for RVDS建立工程 1.File->New->Project 选ARM EXecutable Image;Project name填test1.mcp,Location填C:\work\6410\test1\ 二、CodeWarrior for RVDS添加源文件 test1.mcp窗口的空白处点击右键,选择Add Files、选test1.s。 三、C原创 2012-12-09 12:41:57 · 1263 阅读 · 0 评论 -
《tiny6410裸机程序》第六章:myled通过usb下载至nandflash不能运行
==================================================================================================================================== 一、前期准备 1.开发板必须在SD卡启动模式! 2.安装usb下载驱动,安装rs232 to usb驱动。 3.安装dns,并原创 2012-12-10 22:45:13 · 2015 阅读 · 0 评论 -
Window平台下ADS自带ARMCC编译工具链
ARM可执行文件常用格式有:gnu的elf,axd调试用的axf,以及烧录用的bin。 Linux下gnu的c编译器生成的是elf,Window下armcc编译器生成的是axf;两者都可以通过转换生成烧录的bin。 其中elf和axf格式基本相同;简单地说:elf和axf格式包含调试信息,bin格式不包含。 以下说明是在Window平台下对基于ARM11的S3C6410的编译过程。 一、A原创 2013-05-09 11:23:42 · 1704 阅读 · 0 评论 -
Linux平台下ARM-Linux交叉编译工具链
交叉编译工具链包括:gcc、glibc和binutils三个部分。 以下是ubuntu平台下ARM的编译: 一、反汇编工具 arm-linux-objdump -D -S hello >log //查看hello的汇编代码 二、ELF文件查看工具 arm-linux-readelf -a hello >log //查看hello文件 arm-linux-readelf -d hel原创 2013-05-08 21:15:53 · 1452 阅读 · 0 评论 -
ARM Cortex系列
ARM公司将ARM11以后的产品命名为Cortex,并分为A、R和M三个系列。 Cortex系列属于ARMv7架构,是ARM公司最新的指令架构。 由于应用领域的不同,基于v7架构的Cortex处理器系列采用的技术也不相同:基于v7A的Cortex-A系列,基于v7R的Cortex-R系列和基于v7M的Cortex-M系列。 一、ARM Cortex-A系列 该系列面向尖端的基于原创 2013-05-10 09:27:35 · 1703 阅读 · 0 评论 -
uboot之ARM位置无关代码设计
前言: 所谓位置无关代码是指:可执行镜像test.bin 我将它拷贝至内存0x30000000,然后pc = 0x30000000、它可以顺利执行; 我将它拷贝至内存0x38000000,然后pc = 0x38000000、它仍可以顺利执行。 1.程序的编译及运行流程 源码经过编译、汇编(生成相对地址符号表)和连接(提供绝对首地址、进而确定绝对地址符号表)后编程可执行镜像; 特别指出地原创 2013-05-10 12:34:41 · 2133 阅读 · 0 评论 -
《tiny6410裸机程序》第四章:汇编与C混合编程
RVDS集成环境下CodeWarrior配置如下: Linker(链接)设置 RealView Linker->Output: Linkertype选Simple;Simple image中RO Base填0x50200000。 RealView Linker->Layout: Object/Symbol填Startup.o;Section填start。 在应用程序设计中,如果所有原创 2012-12-09 17:00:59 · 1299 阅读 · 0 评论 -
ARM汇编
一、ARM寄存器 R15:别名PC,中文译为程序计数器;它的值是当前正在执行的指令在内存中的位置。 R14:别名LR,中文译为链接寄存器;它与子程序的调用密切相关,用于存放子程序的返回地址,是ARM程序实现子程序调用的关键。 R13:别名SP,中文译为栈指针寄存器;它是用于存放堆栈的栈顶地址的(内存位置)。 寄存器R0~R12是普通的数据寄存器,可用于任何地方。 CPSR:中文译为当前程原创 2013-05-07 10:01:35 · 1078 阅读 · 0 评论 -
《micro2440开发》第六章:micro2440 ADS单步调试总结
==================================================================================================================================== 一、CodeWarrior使用 打开ADS程序下的CodeWarrior for ARM Developer Suite: 1.原创 2012-10-25 08:32:32 · 1610 阅读 · 0 评论 -
《micro2440开发》第九章:micro/mini2440上使用dnw烧录Nand Flash
一、前置条件 1.安装USB slave驱动:micro2440/windows平台工具/usb下载驱动/FriendlyARM USB Download Driver Setup_20090421.exe; 2.免安装USB下载工具:micro2440/windows平台工具/dnw/; 3.已经使用前面文章介绍方法《micro2440开发》第五章:micro2440 JLINK配置,用J原创 2012-11-04 13:11:55 · 2697 阅读 · 0 评论 -
ARM协处理器
ARM920T = ARM9 core + MMU + Cache MMU和Cache由CP15的相关寄存器来控制。 一、CP15协处理器 在基于ARM的嵌入式系统中,对存储系统的管理通常是通过设置系统控制协处理器CP15来实现。 1.CP15可以包含16个32位寄存器,其编号由0~15: 其中C1、C7和C9是Cache相关设置; C1、C2、C3、C8和C10是MMU相关设置。原创 2013-05-07 10:42:18 · 1416 阅读 · 0 评论 -
裸机驱动之理解(*(volatile unsigned *)
#define rGPIOFDAT (*(volatile u32 *)0x7f0080a4) 理解如上宏定义,需要从两个部分: 第一:强转指针类型 (volatile u32 *)0x7f0080a4 0x7f0080a4只是一个普通值;前面加上(volatile u32 *)后,就是一个地址了,并且该地址指向volatile u32变量。 第二:(*(volatil原创 2013-05-02 22:14:48 · 2231 阅读 · 0 评论 -
《micro2440开发》第二章:S3C2440A中断系统
中断分为内部中断和外部中断;内部中断即通过指令让ARM核设置自身通用寄存器内的标志位、产生的中断,外部中断是由外围硬件通过中断控制器向ARM核内EU控制单元直接发送中断信号。 本文重点分析S3C2440A的外部中断(也叫硬件中断)。从如下几个方面:1.中断控制器与ARM核以及外设的总线接口;2.中断控制器相关寄存器的设置;3.基于外部中断的应用。 1.S3C440A中断控制器的原创 2012-09-13 12:09:12 · 912 阅读 · 0 评论 -
《ARM与Linux些许问题》第五章:ARM处理器SWI汇编指令分析
======================================================================================================================================原创 2012-10-19 17:46:38 · 1809 阅读 · 0 评论 -
《ARM与Linux些许问题》第一章:ARM工作模式
==================================================================================================================================== 早期的ARM核有状态(ARM或Thumb)切换(通过BX等指令修改CPSR寄存器(当前程序状态寄存器,存放条件码标志,中断禁原创 2012-10-18 15:36:21 · 5246 阅读 · 0 评论 -
《micro2440开发》第十一章:S3C6410地址空间
==================================================================================================================================== 一、S3C6410地址空间整体说明 S3C6410基于32位的ARM11内核(ARM是按字节(每一个字节都有地址)寻址,即地址原创 2012-12-05 08:57:42 · 1020 阅读 · 0 评论 -
《micro2440开发》第三章:s3c2440A IIS总线部分
s3c2440A芯片按字节(8位)寻址,物理地址都以16进制表示;由于Linux下(包括内核空间)是不能直接使用物理地址,所以对硬件的操作还必须在映射为虚拟地址以后。 物理地址到内核虚拟地址的映射可以有两种方式:动态(ioremap)映射方式和静态(map_desc)映射方式。 更多详细内容请看这个连接:http://www.linuxeden.com/html/develop原创 2012-09-11 18:55:07 · 953 阅读 · 0 评论 -
《micro2440开发》第一章:S3C2440A地址空间
首先,说明如下: ARM按字节寻址,即对存储的最小访问单元是字节;存储单元按字节对齐。 地址空间从高到底分为两部分:主存储区(包括静态存储区(存放img)和动态存储区(就是我们通常说的运行代码的内存))和外设寄存器区。 而主存储区又会分为很多bank,目的是为了让更少的地址总线寻址更多的地址(128MB*8 = 1GB)即片选+地址总线模式。 研究启动过程关心的是主存储区的静态存储区;还有原创 2012-08-07 17:12:54 · 3978 阅读 · 0 评论 -
《tiny6410裸机程序》第二章:LED跑马灯RVDS精简main.c说明
1.改写后的程序需要如下源文件:startup.s retarget_.s fpinit.c vfpinit.s system_.s main.c 2.另外需要链接器设置文件:6410_scatter.txt(RealView Linker中选择Scattered时设置); DRAM 0x5020 0000{ DODE 0x5020 0000 startu原创 2012-12-07 01:07:33 · 2453 阅读 · 0 评论 -
《micro2440开发》第七章:micro2440从NAND FLASH启动原理分析
===================================================================================== 接上:《micro2440开发》第一章:S3C2440A地址空间 ARM是不能直接从NAND FLASH启动的,这包括两层意思: 其一、ARM刚启动时不能直接获得NAND FLASH上存储的程序;因为对NAND FLA原创 2012-10-17 10:20:20 · 1083 阅读 · 0 评论 -
《tiny6410裸机程序》第七章:S3C6410外部中断简介
==================================================================================================================================== 本章内容是为下面要进行的按键裸机驱动做准备,主要讲解tiny6410的外部中断:涉及GPIO复用引脚设置为特殊功能作为中断源、子原创 2012-12-12 21:03:27 · 2075 阅读 · 0 评论 -
《tiny6410裸机程序》第八章:S3C6410总中断控制寄存器
子中断组的划分是根据设置它们的寄存器是否是同一个;总中断的按组划分,也是一样。 S3C6410总中断控制器共支持64个中断,分别由两组总中断控制器、即VIC0和VIC1来处理。上一章节我们分析的28个外部中断即第0组外部中断与总中断的对应关系是: 总中断号 中断源组 中断源成员描述 对应总中断控制器 0 INT_EINT0 外部中断的EINT0~EINT原创 2012-12-13 23:46:19 · 1493 阅读 · 0 评论 -
《tiny6410裸机程序》第八章:S3C6410外部中断控制寄存器
S3C6410将外部GPIO/EINT中断源分成了10组、分别通过以下外部子中断控制寄存器来设置它们: rEINT0CON0(rEINT0CON1)、rEINT0MASK、rEINT0PEND/控制第0组; rEINT12CON、rEINT12MASK、rEINT12PEND/控制第1和第2组; rEINT34CON、rEINT34MASK、rEINT34PEND/控制第3和第4组; rE原创 2012-12-13 22:53:38 · 1499 阅读 · 0 评论 -
《tiny6410裸机程序》第一章:LED跑马灯RVDS调试初探
==================================================================================================================================== 一、硬件引脚说明 tiny6410开发板具有4个用户可编程LED,它们位于核心板上,直接与CPU的GPIO相连接。 LED详原创 2012-12-05 20:31:08 · 1816 阅读 · 0 评论 -
《micro2440开发》第十章:tiny6410和micro2440的Jlink与RVDS/ADS调试对比学习
以后分析都将基于tiny6410进行: 一、安装rvds2.2问题汇总 安装:rvds/setup.exe 1.出现Error: %variable HOSTPLAT is not defined in File RDI\armsd\1.3.1\66\install.xml 原因:电脑的CPU是AMD的问题。 解决方法:把安装目录中的rvds/RDI/ARMSD/1.3.1/66下的原创 2012-12-04 23:35:30 · 1220 阅读 · 0 评论 -
使用U盘量产工具修复RAW文件系统格式的U盘
一、问题出现 目前原创 2014-05-05 16:53:58 · 5335 阅读 · 0 评论