平台介绍:TQ2440开发板,NorFlash 2M,NandFlash 521M(K9F4G08U0B), 2个32MSDRAM(H57V2562GTR-60C)
本系列目的:记录TQ2440裸机编程过程,顺便兼顾mini2440。
本篇内容:1.介绍GPIO要点;2.TQ2440流水灯编程;3.ADS1.2建立工程;4.下载执行;5.介绍启动程序
1. S32440的GPIO
查阅TQ2440的底板和核心板原理图,如下:
可知,LED1--GPB5, LED2--GPB6, LED3--GPB7, LED4--GPB8
查S3C2440手册,可知GPB有3个控制寄存器
其中,GPBCON配置引脚功能(2位),是输入、输出、特殊;GPBDAT设置引脚状态(1位);GPBUP设置是否启用上拉电阻。
上拉电阻的作用:1.解决总线驱动能力不足时提供电流;2.管脚悬空时容易受到外界干扰,加上拉电阻使引脚稳定在高电平,提高总线抗电磁干扰能力。
2. 参考程序:
Main.c
#include "led.h"
#include "common.h"
int Main()
{
Led_Init();
while(1)
{
LED01_ON; Delay(); LED01_OFF;
LED02_ON; Delay(); LED02_OFF;
LED03_ON; Delay(); LED03_OFF;
LED04_ON; Delay(); LED04_OFF;
LED01_ON;LED02_ON;LED03_ON;LED04_ON;
Delay();Delay();Delay();
LED01_OFF;LED02_OFF;LED03_OFF;LED04_OFF;
Delay();Delay();Delay();
LED01_ON;LED02_ON;LED03_ON;LED04_ON;
Delay();Delay();Delay();
LED01_OFF;LED02_OFF;LED03_OFF;LED04_OFF;
}
}
led.c
#include "led.h"
#include "2440addr.h"
void Led_Init(void)
{
rGPBCON &= ~((3<<10)|(3<<12)|(3<<14)|(3<<16));
rGPBCON |= ((1<<10)|(1<<12)|(1<<14)|(1<<16)) ;
rGPBUP &= ~((1<<5)|(1<<6)|(1<<7)|(1<<8)) ;
rGPBDAT |= (1<<5)|(1<<6)|(1<<7)|(1<<8);
}
common.c
void Delay(void)
{
int i;
for(i=0;i<1000000;i++);
}
led.h
#ifndef __LED_H__
#define __LED_H__
#include "2440addr.h"
#define LED01_ON {rGPBDAT &= (~(1<<5));}
#define LED01_OFF {rGPBDAT |= (1<<5);}
#define LED02_ON {rGPBDAT &= (~(1<<6));}
#define LED02_OFF {rGPBDAT |= (1<<6);}
#define LED03_ON {rGPBDAT &= (~(1<<7));}
#define LED03_OFF {rGPBDAT |= (1<<7);}
#define LED04_ON {rGPBDAT &= (~(1<<8));}
#define LED04_OFF {rGPBDAT |= (1<<8);}
extern void Led_Init(void);
#endif
common.h
#ifndef __COMMON_H__
#define __COMMON_H__
extern void Delay(void);
#endif
3.ADS1.2建立工程
ads1.2建立工程ARM Executable Image;添加文件;设置如下:
4.下载执行
开发板接3根线:1根5V电源,1根串口接电脑,1根TypeB USB接电脑。要安装TQ2440_USB下载驱动。串口可用SecureCRT软件打开。
可以选7,即直接下载到SDRAM中执行,也可以选a,即下载到NandFlash中,再从NandFlash启动即可。(我开始选a,把原Nandflash的uboot冲了,后来又充单独下载了一次uboot,nandflash仍恢复成linux,可行。)
5.介绍启动程序
必须要有启动代码,启动代码实现:
建立异常中断向量表;
初始化各模式的堆栈;
初始化硬件(关闭开门狗,设置系统时钟,设置SDRAM等);
初始化执行环境(加载域到执行域,即将代码从Nandflash拷贝到SDRAM)
跳转到c主程序。
————————————————
版权声明:本文为CSDN博主「君乙杨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yangqiwei2012/article/details/80374072
上一篇:S3C2440裸机------GPIO
下一篇:S3C2440开发板裸机程序系列02--按键和蜂鸣器
推荐阅读最新更新时间:2024-11-16 23:34
设计资源 培训 开发板 精华推荐
- 测量线性稳压器上的 2nV/Hz 噪声和 120dB 电源抑制
- MIC2841A 的典型应用:具有 DAM 和超快速 PWM 控制的高效 4 通道线性 WLED 驱动器
- LTC3803HS6-3、3.3V 输出隔离反激式 DC/DC 转换器的典型应用电路
- AM6TW-2409SH35Z 9V 6瓦双输出DC-DC转换器的典型应用
- R_75_V10基于IPS2电机换向传感器的设计
- 用于无线网状网络的 LTC3106EUDC 长寿命电池供电节点的典型应用电路
- EVAL-ADAS1000SDZ,用于评估 ADAS1000 ECG 前端以进行演示和开发的评估套件
- LTC3649IFE 24V 至 5Vout 突发模式降压稳压器的典型应用电路
- DC1945A,使用 LTC2185、16 位、125 Msps 双路模数转换器的演示板
- 使用 Analog Devices 的 AD9152BCPZ 的参考设计