arm
文章平均质量分 67
glorin
这个作者很懒,什么都没留下…
展开
-
转:ubuntu10.04下使用insight(需要先装有openocd)
软件的安装1. tar jxvf insight-6.8-1.tar.bz22. cd insight-6.8-13. ./configure --prefix=/opt/arm-linux-insight --target=arm-linux-gnu4. make 编译很久产生错误 cc1: warnings being treated as errors .././gdb/cli/cli-cmds.c: In function ‘pwd_command’: .././gd转载 2011-05-10 07:55:00 · 1976 阅读 · 0 评论 -
ARM体系结构与编程学习(五)
4.6.2 arm汇编实例;设置本段程序的名称及属性AREA BLOCK , CODE , READONLY;设置将要复制的字数num EQU 20;标识程序入口点 ENTRYStart;R0寄存器指向源数据区src LDR R0,=src;R1寄存器指向目标数据区dst LDR R1 ,=dst;R2指定将要复制的字数 MOV R2, #num;设置数据栈指针(R13),用于保存工作寄存器数值 MOV SP,#0X400;原创 2011-04-27 22:47:00 · 1220 阅读 · 0 评论 -
ARM体系结构与编程学习(二)
第四章 ARM汇编语言程序设计4.1 arm伪指令包括6种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、框架描述伪指令、信息报告伪指令、其他伪指令。4.1.1 符号定义伪指令:用于定义arm汇编程序中的变量,对变量进行赋值以及定义寄存器名称。 GBLA、GBLL、GBLS 声明全局变量 LCLA、LCLL、LCLS 声明局部变量 SETA、SETL、SETS 给变量赋值 RLIST 寄存器列表定义名称 CN原创 2011-04-26 11:25:00 · 1188 阅读 · 0 评论 -
lpc2103 软件中断原理
最近看lpc2103的启动代码,在软件中断处停了下来,我仔细分析了下,觉得这样理解(如果分析不对,希望大牛更正):代码中有一段(startup.s):;软中断SWI_Handler CMP R0, #4 LDRLO PC, [PC, R0, LSL #2] MOVS PC, LR;--------------------------------------------------------------------------转载 2011-04-25 10:14:00 · 1870 阅读 · 0 评论 -
ARM常用汇编指令
LDR 和STR——用于字和无符号字节指令格式: LDR/STR{cond}{T} Rd, LDR/STR{cond}B{T} Rd, LDR{cond}{T} Rd, 加载指定地址的字数据到Rd中; STR{cond}{T} Rd, 存储Rd中的字数据到指定的地址单元中; LDR{cond}B{T} Rd, 指令加载指定地址的字节数据到Rd的的最低字节中(Rd的高24位清零); STR{cond}B{T} Rd, 指令存储Rd中的最低字节数据到指定的地址单元中。 T为可选后缀,若有T,那么即使处理器是在转载 2011-04-25 10:07:00 · 4267 阅读 · 0 评论 -
主机中C程序移植到arm开发板上
在主机上写的成程序,如果不写Makefile文件,那么编译文件呢?方法是使用gcc,由于是移植到arm开发板上,所以使用的是arm-linux-gcc。下面总结一下方法:1、将arm-linux-gcc的交叉编译文件解压到某个目录,比如/usr/local/arm下,生成目录如4.4.12、设置环境变量,#sudo gedit /etc/environment,再添加路径:/usr原创 2011-06-09 09:56:00 · 4264 阅读 · 0 评论 -
转:insight+GDB+GDBserver调试arm应用程序
Insight是一个Tcl/Tk编写的gdb的图形用户接口,它是由在Red hat以及Cygnus的工程师写的。Red hat大方的将其捐赠给大众使用,甚至不时的提供人力继续完善它的功能。Insight项目始于1994年,至今已经有颇为成熟,它能很好的发挥大部分gdb的强大功能。 下面是安装步骤: 1、首先下载insight 6.8-1(6.8的版本有点小问题),然转载 2011-06-11 08:27:00 · 2455 阅读 · 0 评论 -
LINUX 使用tcgetattr函数与tcsetattr函数控制终端
为了便于通过程序来获得和修改终端参数,Linux还提供了tcgetattr函数和tcsetattr函数。tcgetattr用于获取终端的相关参数,而tcsetattr函数用于设置终端参数。这两个函数的具体信息如表6.2所示。表6.2 tcgetattr函数和tcsetattr函数 头文件函数形式int tcgetatt原创 2011-06-09 20:40:00 · 1356 阅读 · 0 评论 -
转:Keil MDK编译器与J-LINK使用
前几天进手了一个J-LINK,因为H-JTAG毕竟对MDK支持的不是太完美,比如用keil mdk上面的下载按钮烧录程序,不是直接就能烧录进去,而是弹出H-Flash软件,再手工选择文件烧录;而且用H_JTAG单步调试还容易莫名其妙的跑飞。好在J-LINK不是太贵(我是说国内仿制的),mdk又能比较完美的支持J-link,今天就将我使用mdk和J-link的情况做一下记录。原创 2011-06-09 19:36:00 · 3103 阅读 · 0 评论 -
转:C语言中把数字转换为字符串-sprintf
在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致sprintf 比printf 有用得多。sprintf 是个变参函数,定义如下:int sprintf( char *buffer, const char *format [, argum转载 2011-06-11 18:22:00 · 30937 阅读 · 1 评论 -
为什么adrl r2,mem_cfg_val这里不用ldr r2,=mem_cfg_val
请教书中sdram裸机代码memsetup:mov r1, #MEM_CTL_BASEadrl r2,mem_cfg_valadd r3, r1,#521:ldr r4, [r2],#4str r4, [r1],#4cmp r1,r3bne 1bmov pc,lrmem_cfg_val: .long 0x22011110 .long 0x00000700 .long 0x00000700 ······书中的SDRAM裸机例子,为什么adrl r2,mem_cfg_val这里不用ldr r2,=转载 2011-04-16 09:16:00 · 2911 阅读 · 2 评论 -
S3C6410bootloarder移植
S3C6410移植日记之一应深圳友坚科技之邀,这几天要把djyos移植到他们的idea6410上。 现在发布的是si版本,是以单片机模式运行的,S3C6410这样强劲的cpu,运行si版本,就作为高速单片机用了,所有地址都是按照物理地址一一对应映射。cpu的状态也没有区分内核态和用户态。1、中断引擎最初的部分代码在IRQ态(还没决定是否使用FIQ)。2、中断引擎的大部分以及用户ISR运行在SVC态。3、所有其他代码运行在SYS态。 移植碰到的第一个问题就是烧录代码到flash的问题,由于廉价转载 2011-04-16 08:25:00 · 1836 阅读 · 0 评论 -
Windows XP SP3下Eclipse 3.6-Helios安装、配置及汉化
<br /><br />1.下载JDK或JRE,推荐安装JDK,版本为Java SE Development Kit 6u21,下载地址为:<br /> <br />转自:http://spiritlevin.blog.163.com/blog/static/12836305220108209036593/<br /><br />http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-136632.html<br />下载后文件名为:转载 2011-04-18 11:15:00 · 1915 阅读 · 0 评论 -
Eclipse+Jlink gdbSever调试mini6410 uboot
Eclipse+Jlink gdbSever调试mini6410 uboot由于mini6410出厂时硬件上不支持仿真器,需要进行修改,具体请看RVDS2.2 + jlink v8调试 mini6410(http://www.towoo.net/forum.php?mod=viewthread&tid=245&page=1&extra=#pid267)对于Eclipse图形化方法调试,网上已经有很多的文章,本文也是从中得到很多,只是把调试用到6410上而已. 把软件清单列一下:1、 Eclipse-SDK-转载 2011-04-18 10:54:00 · 10199 阅读 · 0 评论 -
转:Qt串口通信
本文章原创于www.yafeilinux.com 转载请注明出处。转自:http://www.yafeilinux.com/?p=387Qt串口通信专题教程前言去年我使用Qt编写串口通信程序时,将自己的学习过程写成了教程(Qt编写串口通信程序全程图文讲解),但是由于时间等原因,我只实现了Windows下的串口通信,并没有去做Linux下的。自从教程发布到网上后,就不断有人提转载 2011-06-07 15:20:00 · 6717 阅读 · 1 评论 -
转:ubuntu wine卸载软件无法删除图标问题
1.执行以下代码cd ~/.local/share/applications/winelsrmdir xxx2 .可以进入文件夹 删除打开主文件夹,点击查看。选择显示隐藏文件。进入同上目录,删除剩余图标与文件夹########################################################虽然使用wine可以运行一些windows程序,但wine并不是万能的,有转载 2011-06-07 11:19:00 · 7737 阅读 · 0 评论 -
转:qtopia4汉化
参考qtopia包文档 doc/html/syscust-internat.htmlhttp://blog.chinaunix.net/u3/105675/showart_2106444.htmlqtopia 4.3.0 的releasenotes里说支持中文,并提供了一个简单的中文输入法。要想让qtopia能显示中文,只需把编码和字体文件弄对,基本就差不多了1. 新建字典配置文件进入qtopia转载 2011-06-06 21:56:00 · 1013 阅读 · 0 评论 -
ARM汇编学习笔记
<br /> 这两天参加了一个编写操作系统的项目,因为要做很多底层的东西,而且这个操作系统是嵌入式的,所以开始学习ARM汇编,发现ARM汇编和一般PC平台上的汇编有很多不同,但主要还是关键字和伪码上的,其编程思想还是相同的。现将一些学习感悟部分列出来,希望能给有问题的人一点帮助。<br /> 1、ARM汇编的格式:<br /> 在ARM汇编里,有些字符是用来标记行号的,这些字符要求顶格写;有些伪码是需要成对出现的,例如ENTRY和END,就需要对齐出现,也就是说他们要么都顶格,要么都空相等的空,转载 2011-04-28 10:57:00 · 7422 阅读 · 0 评论 -
ARM体系结构与编程学习(一)
第一章:ARM概述及其基本编程模型1.4 arm处理器模式arm体系结构支持7中处理模式。用户模式 (usr) 正常程序执行的模式 快速中断模式(fiq) 用于高速数据传输和通道处理 外部中断模式(irq) 用于通常的中断处理原创 2011-04-25 23:01:00 · 1974 阅读 · 0 评论 -
ARM体系结构与编程学习(六)
<br />ADR伪指令实例<br />;设置本段程序的名称及属性<br />AREA adrlabel ,CODE,READONLY<br /> ENTRY<br />start<br />;跳转到子程序func执行<br /> BL func<br />;调用angel_SWIreason_ReportException<br />;ADP_Stopped_ApplicationExit<br />;ARM semihosting SWI<br />原创 2011-04-28 10:54:00 · 1485 阅读 · 0 评论 -
openocd中部分问题解决
<br />安装openocd后,当执行openocd命令的时候,出现如下所示问题:<br />Open On-Chip Debugger 0.4.0 (2010-10-08-15:42)<br />Licensed under GNU GPL v2<br />For bug reports, read<br />http://openocd.berlios.de/doc/doxygen/bugs.html<br />trst_and_srst separate srst_gates_jtag trst_p原创 2011-05-09 23:11:00 · 4575 阅读 · 0 评论 -
转:TQ6410学习笔记
玩ARM9已经很久了,但心里早就想玩玩新的开发板了,前两天TQ6410已入手,这里先感谢一下,天嵌科技给我提供的开发板及其配件,十分感谢,我也愿意用业余时间来学习,并与大家分享,为天嵌贡献我自己的一份力量。 说到TQ6410,感觉很亲切,和TQ2440差不多,拿到手里真高兴啊,感觉一下子充满了能量,想尽快把它弄明白,简单的看过了电路图后,我决定先从S3C6440的芯片手册下手,以前给别人查资料的时候,就下载过,可是始终没来得及好好看,这一打开,吓死人,先不说1300多页的内容,看完书签栏就感觉好多东西都没有转载 2011-05-07 23:06:00 · 2589 阅读 · 0 评论 -
关于LPC3250中的SWI函数
__swi(0x00) void swiHandle1(int iHandle); //指定swiHandle1()函数是通过软件中断调用__inline unsigned int IRQDisable() //内联函数,相当于#define,但是是在函数调用处直接展开{ //减少了保存现场和恢复现场的开销,提高了效率 swiHandle1(0);}原创 2011-05-05 23:07:00 · 1485 阅读 · 0 评论 -
关于LPC3250中的FIQ
在LPC3250中,关于FIQ好像没有直接函数调用,其实不然。具体的流程请看例程:1在main.c中 GPI07INT_Init();函数设置FIQ中断void GPI07INT_Init (void){ micFiqSet(31,0); sic2FiqSet(GPI07_INT, 0); /* GPI_07的中断触发类型为下降沿 */ } micFiqSet和sic2FiqSet调用vicControl.h中的原创 2011-05-06 10:36:00 · 1232 阅读 · 0 评论 -
LPC3250中的IRQ中断
LPC3250中断控制器有3个,分别是主中断控制器(MIC_ER)、子中断控制1(SIC1)和子中断控制2(SIC2)。对这三个中断控制器的理解: MIC_ER通过特定位来控制所有中断的使能。其中MIC_ER[31:30]控制Sub2FIQ、Sub1FIQ,MIC_ER[1:0]控制Sub2IRQ、Sub1IRQ。而MIC_ER、SIC1及SIC2分别控制着不同的中断源。3个控制器控制的中断源一共73个中断源(3*32-6-8-9)。 中断初始化,以SIC2IRQ中断为例:原创 2011-05-05 22:11:00 · 1330 阅读 · 0 评论 -
ARM体系结构与编程学习(十三)
<br />9.5 FIQ与IRQ异常中断处理程序<br />arm提供的FIQ与IRQ用于外部设备向CPU请求中断。<br /> <br />9.5.1 不可重入的IRQ/FIQ异常中断处理程序<br />;使用关键词_irq<br />__irq void IRQHandler (void)<br />{<br /> volatile unsigned int *base = (unsigned int *) 0x80000000;<br /> if (*base == 1)原创 2011-05-01 18:55:00 · 902 阅读 · 0 评论 -
ARM体系结构与编程学习(十二)
9.4 SWI异常中断处理程序在实时操作系统中,通常使用SWI异常中断为用户程序提供系统功能调用。通常SWI异常中断处理程序分为两级:第1级SWI异常中断处理程序为汇编程序,用于确定SWI指令中的24位的立即数;第2级SWI异常中断处理程序具体实现SWI各个功能,可以是汇编,也可以是C程序。第1级SWI异常中断处理程序 AREA LevelOneSWI ,CODE ,READONLY EXPORT SWI_HandlerSWI_Handler;保存用到的寄存器原创 2011-05-01 17:17:00 · 1822 阅读 · 0 评论 -
ARM体系结构与编程学习(十一)
第九章 ARM异常中断处理9.1arm控制程序的执行流程1、正常程序执行:每执行一条arm指令,PC值加4字节;每执行一条thumb指令,PC值加2字节。2、跳转:B/BL/BLX,对于BLX,跳转到目标地址处执行,保存子程序的返回地址,根据目标地址的最低位可以将程序切换到thumb状态。3、中断:系统先执行完当前指令,然后保存现场,之后跳转到异常中断处理程序。中断执行完后,恢复现场,程序返回到发生中断的指令的下一条指令处执行。9.1.2异常中断向量表及优先级中断向量地址 异常中断类型原创 2011-05-01 15:30:00 · 1271 阅读 · 0 评论 -
ARM体系结构与编程学习(十)
第六章 ATPCS介绍在汇编编译器中使用-apcs选项。6.1.2寄存器使用规则子程序使用R0~R3来传递参数。用R4~R11来保存局部变量,thumb使用R4~R7。R12记作IP,调用scratch寄存器。R13记作SP,用作数据堆栈指针。R14记作LR,用作保存子程序的返回地址。R15记作PC,是程序计数器。6.1.3数据栈使用规则有四种堆栈方向:FD、FA、ED、EAATPCS规定使用FD6.1.4参数传递规则1、参数可变:参数不超过4,使用R0~R3,超过则将多的参数送到数据栈中保存2、参数固定:原创 2011-04-30 22:05:00 · 1010 阅读 · 0 评论 -
嵌入式linux2.6启动流程分析
Linux内核构成1 arch/arm/boot/compressed/Makefile arch/arm/boot/compressed/vmlinux.lds2. arch/arm/kernel/vmlinux.ldsLinux内核启动流程arch/arm/boot/compressed/start.SStart: .type start,#function .rept 8 mov r0, r0原创 2011-04-29 21:17:00 · 4009 阅读 · 0 评论 -
ARM体系结构与编程学习(七)
<br />第五章 ARM存储系统<br /> <br />5.1 arm存储系统概述<br />mmu 使用内存映射机制实现虚拟空间到物理空间的映射。通常嵌入式系统的程序放在ROM/FLASH中,这样系统断电后程序能够保存。但是<br /> 通常ROM/FLASH与SDRAM相比,速度要慢很多,而且嵌入式系统中通常把异常中断向量表放在RAM,利用内存映射机制可以解决这<br /> 种问题。在系统加电时,将ROM/FLASH映射为地址0,这样可以进行一些初始化处理。当这些程序原创 2011-04-28 19:35:00 · 3492 阅读 · 1 评论 -
ARM体系结构与编程学习(九)
SDRAM初始化过程如下:1、加电2、延迟指定时间,从第一个sdram的clk开始,通常为100us。具体值请参考SDRAM手册3、延迟一些自动刷新周期,通常为两个4、设置自动刷新寄存器5、等待一定时间以后开始写模式寄存器以下程序以L7205SDB为例AREA STARTUP ,CODE, READONLY ENTRYstart ;关中断 LDR R4,=0X90001000 MVN R5,#0 STR R5,[原创 2011-04-29 22:01:00 · 972 阅读 · 0 评论 -
2440的中断处理部分
一直在看2440的中断处理部分,不懂的实在太多了,百度到这篇文章,实在有听君一席话,胜养十年猪的感觉啊,下面上文章:中断向量 b HandlerIRQ ;handler for IRQ interrupt 很自然,因为所有的单片机都是那样,中断向量一般放在开头,用过单片机的人都会很熟悉,那就不多说了。 异常服务程序 这里不用中断(interrupt)而用异常(exception),毕竟中断只是异常的一种情况,下面主要分析的是“中断异常”说白了,就是我们平时单片机里面用的中断!!!所转载 2011-04-28 21:00:00 · 934 阅读 · 0 评论 -
ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解
<br />ARM926EJ-S/ARM920T 协处理器 CP14, CP15详解 <br /> <br />ARM 微处理器可支持多达 16 个协处理器,用于各种协处理操作,在程序执行的过程中,每个协处理器只执行针对自身的协处理指令,忽略 ARM 处理器和其他协处理器的指令。ARM 的协处理器指令主要用于 ARM 处理器初始化 ARM 协处理器的数据处理操作,以及在ARM 处理器的寄存器和协处理器的寄存器之间传送数据,和在 ARM 协处理器的寄存器和存储器之间传送数据。 ARM 协处理器指令包括以下转载 2011-04-28 20:32:00 · 1348 阅读 · 0 评论 -
ARM体系结构与编程学习(四)
<br />4.3 arm汇编语言格式<br />{symbol} {instruction|directive|pseudo-instruction} {;comment}<br />其中:symbol为符号。符号必须从一行的行头开始,并且符号不能有空格。在指令和伪指令中,符号用作地址标号。在伪操作中,符号用作<br /> 变量或者常量<br /> instruction,指令不能从一行的行头开始,前面必须有空格或者符原创 2011-04-27 11:24:00 · 1118 阅读 · 0 评论 -
ARM体系结构与编程学习(三)
<br />4.2 arm汇编语言伪指令<br />ADR 小范围地址读取指令 <br />ADRL 中等范围地址读取指令<br />LDR 大范围地址读取指令<br />NOP 空操作指令<br /> <br />ADR <br />ADR 将基于PC的地址值或者基于寄存器的地址值读取到寄存器中<br />start原创 2011-04-27 09:34:00 · 914 阅读 · 0 评论 -
qt4.4.3问题解决
问题1./Helloworld -qws ./Helloworl: error while loading shared libraries: libQtGui.so.4: cannot open sharedobject f原创 2011-06-06 14:08:00 · 4599 阅读 · 0 评论 -
转:移植tslib到开发板及部分问题解决
1.1. 移植QT到开发板1.1.1. tslib移植tar xvzf kergoth-tslib-1.0-89-g412d99d.tar.gzcd kergoth-tslib-412d99d./autogen.sh./configure --prefix=/usr/local/tslib --host=arm-linux ac_cv_func_malloc_0_non转载 2011-06-06 09:06:00 · 16473 阅读 · 2 评论 -
qt creator编译问题解决
使用qtcreator写出来的程序,进行编译时出现如下问题arm-linux-g++ -Wl,-rpath,/QT4/builddir/sdk/qtopiacore/target/lib -o helloworld1 main.o dialog.o moc_dialog.o -L/QT4/builddir/sdk/qtopiacore/target/lib -lQtGui -L/usr/原创 2011-06-05 10:04:00 · 2571 阅读 · 1 评论 -
转:ubuntu下解压与压缩命令总结
.tar<br />解包:tar xvf FileName.tar<br />打包:tar cvf FileName.tar DirName<br /><br />.gz<br />解压1:gunzip FileName.gz<br />解压2:gzip -d FileName.gz<br />压缩:gzip FileName<br />.tar.gz 和 .tgz<br />解压:tar zxvf FileName.tar.gz<br />压缩:tar zcvf FileName.tar.gz DirNa转载 2011-05-23 15:17:00 · 978 阅读 · 0 评论