JZs3c2440裸板程序GPIO操作总结】的更多相关文章

分别用汇编,汇编+C两种方式 ***************************************汇编编程led_on.s****************************************.text.global _start_start:  ldr ro,=0x***  //要操作的寄存器地址GPFCON  mov r1,#0x***   //要修改的寄存器值  str r1,[r0] ldr ro,=0x***  //要操作的寄存器地址GPFDATE  mov r1,…
初学ARM感觉写个裸板程序还真的不容易,可能是没有用到ADS,keil之类的开发平台的缘故吧.编译,链接过程在linux平台上完成,这样学起来更有实感,还能顺便熟悉linux环境,以及命令,何乐而不为呢? 为此得准备一些必要的基础知识,前几篇博客总结一些汇编的指令,以及makefile的总结.有兴趣的同学可以去看看. 汇编引导程序: 这段汇编代码做了3件事情: 1.关看门狗. 2.设置栈. 3.调用main函数. 这里想说明的就是,设置站.写C函数必须先设置栈,因为需要用栈来存放函数的参数值,局…
//***************************************************************** //作者:昊天 // //功能:在ok6410板子上跑裸板程序,用四个按键控制四个led灯的两灭及蜂鸣器的叫声, //      当按键1按下时(此时为低电平)点亮led1同时蜂鸣器响,当松手时,led1灭及蜂鸣器不响     //      以此类推剩下三个键 //时间:2012/12/13   22:01 //************************…
1.原理图 2.芯片手册 3.几条汇编代码 1.ldr:读内存 ldr R0, [R1] 假设R1的值是x,读取地址x上的数据(4字节),保存到R0中 ldr R0, =0x12345678 (4字节) R0 = 0x12345678 此语句是伪指令,它会被分为几条真正的ARM指令 2.str:写内存命令 str R0, [R1] 假设R1的值是x,把R0的值写到地址x(4字节) 3.b:跳转 4.mov: mov R0, R1 把R1的值赋给R0,R0 = R1 mov R0, #0x100…
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42239705  参考博客 : [嵌入式开发]嵌入式 开发环境 (远程登录 | 文件共享 | NFS TFTP 服务器 | 串口连接 | Win8.1 + RedHat Enterprise 6.3 + Vmware11) 开发环境 : -- 操作系统 : Vmware11 + RedHat6.3 企业版 + Win8.1; -- 硬件 : OK-6410-A 开发…
在裸板下使用 SPI 的话,有两种方法可选: 使用 IO 口模拟 SPI 进行操作 使用 SPI 控制器进行操作 这里我们选用控制器的方式,简单方便. 初始化 SPI static void SPIControllerInit(void) { /* 设置频率 */ SPPRE0 = 2; SPPRE1 = 2; /* 配置 SPI */ SPCON0 = (1<<4) | (1<<3); SPCON1 = (1<<4) | (1<<3); } 如手册所示,频…
ARM裸板开发过程,程序的链接地址设置为为0x30000000,而前期的启动代码以及相关硬件的初始化代码需要在内部iRAM(steppingstone,起始地址0x0)的4K中运行.链接地址与运行地址(程序启动后PC从0x0位置执行)不一致时,不能出现位置相关代码.文中主要针对 SDRAM 初始化程序地址无关码问题进行了简单的分析. (本文的由来是我在学习韦东山系列 ARM 裸板开发过程遇到的一个问题所引发的.在虚拟内存(MMU)操作部分,他提到了 SDRAM 初始化过程应该用位置无关的代码实现…
实验2:RK3399/NanoPC-T4开发板使用/sys/class/gpio操作外接GPIO设备,比如外接一个LED模块,通过GPIO1_A0管脚 1 介绍   LED模块   Matrix-LED是一个简单的发光二极管模块.3-Pin 2.54mm排针,V接电源,G接地,S信号通过一个三极管放大控制LED的导通或关闭.您可以向S输出静态的高低电平信号,也可以输出变化的PWM信号,信号电平可以是3.3V或5V.当您向S输出高电平时LED以最大亮度发光,低电平就完全熄灭,可变占空比的PWM信号…
Exynos4412 全部的 GPIO 都有固定的地址,为了方便操作这些 GPIO.Linux 内核 在 gpio-exynos4.h 里面定义了一些 GPIO 的宏.比如: #define EXYNOS4_GPA0(_nr)  (EXYNOS4_GPIO_A0_START + (_nr)) #define EXYNOS4_GPA1(_nr)  (EXYNOS4_GPIO_A1_START + (_nr)) #define EXYNOS4_GPB(_nr)  (EXYNOS4_GPIO_B_ST…
以往2440和6410的启动方式,只要我们把裸板代码烧写到NAND FLASH的开始位置,当开发板上点启动时,处理器会自动从NAND FLASH上拷贝前面一段的代码到内部的RAM中执行.按照以前的方法,我写了一段汇编代码,如下: 1_ARM/1_start/start.S #define WTCON 0xE2700000 .text .align .global _start _start: //close the watchdog ldr r1, =WTCON str r0, [r1] loo…