2013年3月16日

2440-内部上拉电阻的作用

摘要: 1、 内部上拉电阻的作用: a) (提高输出电流,提高驱动能力)用来解决总线驱动能力不足时提供电流 b) (提高抗干扰能力)管脚悬空就比较容易接受外界的电磁干扰,使用上拉电阻,使得引脚稳定在高电平,提高总线的抗电磁干扰能力。 c) 2、 GPIO开发注意事项: a) 方向--配置引脚端口GPxCON b) 是否需要提高电流,提高带负载能力。--使用内部上拉电阻GPxUP c) 驱动能力–扩展外部驱动电路模块 d) 读/写引脚电平-GPxDAT3、 阅读全文

posted @ 2013-03-16 17:20 suwen 阅读(237) 评论(0) 推荐(0) 编辑

2440-系统时钟

摘要: 1、 系统时钟: S3C2440A时钟控制逻辑通过外接晶振,给整个芯片提供三种时钟: FCLK:用于CPU核 HCLK:用于AHB(Advanced High Performance Bus)总线设备,比如:CPU核、存储器控制、中断控制器、LCD控制器、DMA和USB主机模块等 PCLK:用于APB(Advanced Peripheral Bus)总线上的设备,比如WATCHDOG、IIS、IIC、PWM定时器、MMC接口、ADC、UART、GPIO、RTC和SPI等 mini2440开发板外接晶振频率Fin为12MHz,需要通过时钟控制逻辑的PLL提高系统时钟(正常模式下为400... 阅读全文

posted @ 2013-03-16 17:19 suwen 阅读(210) 评论(0) 推荐(0) 编辑

arm-led汇编编程-LDR伪指令与MOV的区别

摘要: 在学习led汇编编程时,发现一个问题,下面这句语句:;led_on LDR R0, =pGPBDAT LDR R1, =0X1E0 ;这里要用到ldr指令来传数据,不能用mov STR R1, [R0]一开始用MOV R1, #0X1E0,运行错误了,那到底MOV与LDR伪指令有什么共同点和区别呢?我猜测的:MOV指令的立即数是有条件的解释(参考文件:E:\arm\读书笔记\ARM嵌入式技术原理和应用\ arm中ldr与mov的区别): ARM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。想把数据从内存中某处读取到寄存器中,只能使用ldr。.. 阅读全文

posted @ 2013-03-16 17:16 suwen 阅读(340) 评论(0) 推荐(0) 编辑

arm汇编伪指令

摘要: 1、 在ARM汇编语言源程序中有些特殊助记符,它们没有相对应的操作码或者机器码,通常称为伪指令。 伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。在ARM汇编程序中,有如下几种伪指令:符号定义伪指令,数据定义伪指令,汇编控制伪指令,信息报告伪指令,宏指令以及其他伪指令2、 符号定义伪指令,用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。 常见的符号定义伪指令有如下几种(A表示data,L:logic,S:string): 定义局部变量的LCLA、LCLL、LCLS;(局部变量作用范围为当前段)... 阅读全文

posted @ 2013-03-16 17:13 suwen 阅读(1102) 评论(0) 推荐(0) 编辑

arm汇编语言与C语言的混合编程

摘要: 在C代码中实现汇编语言的方法有内联汇编和嵌入型汇编两种,使用它们可以在C语言中实现C语言不能完成的一些工作。例如,在下面几种情况必须使用内联汇编或嵌入式型汇编。(1)、程序中使用饱和算术运算,如SSAT16和USAT16指令(2)、程序需要对协处理器进行操作(3)、在C语言中完成对程序状态寄存器的操作1、 内联汇编 a) 语法:__asm{ 汇编语句}因为内联汇编嵌入在C或C++程序中,所以在用法上有其自身的一些特点: i. 如果同一行中包含多条指令,用分号隔开。 ii. 如果一条指令不能在一行中完成,使用“/”将其连接。 iii. 内联汇编中使用逗号“,”作为指令操作数的分... 阅读全文

posted @ 2013-03-16 17:02 suwen 阅读(1126) 评论(0) 推荐(0) 编辑

arm汇编的程序结构-20130113

摘要: 1、 汇编语言的程序格式 在ARM汇编语言程序中以程序段为单位组织代码。段是相对独立的指令或数据序列,具有特定的名称,分为代码段和数据段。 可执行文件通常由以下几个部分构成:(1)、一个或多个代码段,代码段的属性是只读;(2)、零个或多个数据段,数据段的属性为可读写。2、 汇编语言子程序调用(基本结构如下): AREA Init,CODE,READONLY ENTRY Start LDR R0,=0x3FF50000 LDR R1,0XFF STR R1,[R0] … PRINT_TEXT … MOV PC,BL … EN... 阅读全文

posted @ 2013-03-16 16:56 suwen 阅读(596) 评论(0) 推荐(0) 编辑

arm汇编指令学习2-20130112

摘要: 1、 做实验内容。在调试arm_test1时出现错误,如下:发现不能0x30003100内存地址不能被写入。解决方法是:选择Debug->Memory Map在Memory Map中填写需要允许读写的内存区域(范围不能太大),然后勾选Read,Writer,点击MapRange即可,如图:上面的边框可以对已选区域进行删除2、 阅读全文

posted @ 2013-03-16 16:47 suwen 阅读(143) 评论(0) 推荐(0) 编辑

2013年3月9日

arm汇编指令

摘要: 1、 跳转指令(主要是分支指令) 分支指令有三种:分支指令B;带链接的分支指令BL(影响LR寄存器);带状态切换的分支指令BX(影响CPSR中的ARM状态和Thumb状态切换)a) 分支指令——B指令,该指令跳转范围限制在当前指令的±32M字节地址内(ARM指令为字对齐,最低2位地址固定为0)。 例如:B WAITA ;跳转到WAITA标号处,但没有保存返回地址b) 带链接的分支指令——BL指令适用于子程序调用,使用该指令后,下一条指令的地址(PC-4)被拷贝到R14(即LR) 连接寄存器中,然后跳转到指定地址运行程序。跳转范围限制在当 前指令的±32M字节地址内。2、 数 阅读全文

posted @ 2013-03-09 19:20 suwen 阅读(619) 评论(0) 推荐(0) 编辑

arm微处理器编程模型

摘要: 1、 在异常发生后,ARM9内核会作以下工作:a)在LR中保存当前执行指令的下一条指令地址,即LR=PC-4,保存到对应模式下的LR寄存器中;b) 将CPSR复制到对应模式的SPSR中;c)将CPSR模式位强制设置为与异常类型相对应的值;d) 强制PC从相应的异常向量处取值;e)ARM9内核在处理中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套2、 当异常结束时,异常处理程序必须:a)将LR(R14)中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;b) 将SPSR的值复制回CPSRc)清零在入口置位的中断禁止标志3、 阅读全文

posted @ 2013-03-09 19:09 suwen 阅读(161) 评论(0) 推荐(0) 编辑

导航