MX27汇编简介

Linux 是一个运行在保护模式下的 32 位操作系统,采用 flat memory 模式,目前最常用到的是 ELF 格式的二进制代码。一个 ELF 格式的可执行程序通常划分为如下几个部分:.text、.data 和 .bss,其中 .text 是只读的代码区,.data 是可读可写的数据区,而 .bss 则是可读可写且没有初始化的数据区。代码区和数据区在 ELF 中统称为 section,根据实际需要你可以使用其它标准的 section,也可以添加自定义 section,但一个 ELF 可执行程序至少应该有一个 .text 部分。

我们在MX27的nandboot中可以看到几个头文件:

mx27.h  mx27ads.h   hal_platform_setup.h

其中hal_platform_setup.h就是ARM初始化开始的一些汇编操作。

那么首先看看hal_platform_setup.h该文件,另外两个头文件就不多说了,只介绍用到的一些定义

 首先声明相关定义:

#define SOC_SI_ID_REG               0x10027800   ---定义在page145页,可以看到该芯片的ID

#define _reg_SOC_SI_ID_REG (*((volatile unsigned long *)(SOC_SI_ID_REG)))

static void setup_iomux(void)   --设置GPIO脚的功能,是复用还是常用的GPIO
 {
 if (!(_reg_SOC_SI_ID_REG & 0xF0000000)) {      ----首先看看ID的最高4bit,VerisionID是否有效
  /*MX27 TO1 */            ------最高是0000,那么就是TO1版本

下面就是修改CLOCK, MX27寄存器的地址从0x10027000 --0x10027FFF也就是CRM,具体在page115页查找
PCDR0和PCDR1,地址是0x10027018和0x1002701C,这两个是外围设备时钟分配寄存器,page128

_reg_CRM_PCDR1 |= 0x5;       //设置时钟分配参数,低位0-5是设置串口、GPT、PWM的时钟
  _reg_CRM_PCDR1 &= 0xFFFFFFC5;
 }
   /* enable clock for HCLK BROM and UART_1 */
 _reg_CRM_PCCR1 |= 0x80400400;    ----设置PCCR1-0x10027024,该寄存器和上面的PCDR是关联的寄存器,该寄存器就像是开关,将上面设置好的各个模块的频率,如果要达到某个模块,那么需要用这个寄存器来使能,该寄存器的名称就是: 外围设备时钟控制寄存器,和上面的PCDR :外围设备时钟分频设置寄存器, 注意两者区别!
  

下面的这个需要说明的是,MX27的管脚功能定义非常的丰富,举个例子:

封装中的D24脚,

1.它分为复用功能脚,或者是GPIO脚,可以选择!

2.如果是复用功能脚,那么还要选择是主复用功能(USBTH1_TXDP),还是次复用功能(UART4_CTS)

3.如果选择的是GPIO脚,那么要选择是否上拉,或者直接三态设置,INPUT或者是OUTPUT的选择!

GIUS和GPR寄存器设置,具体查看我的MX27应用手册中的第六章

 /* Set up GPIO/IOMUX for UART_1  */  查看page 254
 _reg_GPIO_GIUS(GPIOE) &= 0xFFFF0FFF; /* clear bit 12-bit 15 of GIUS_E */
 _reg_GPIO_GPR(GPIOE) &= 0xFFFF0FFF; /* clear bit 12-bit 15 of GPR_E  */

设置查看page 227中的PE7 uart2_Rx 和PE6 uart2_tx

 _reg_GPIO_GIUS(GPIOE) &= ~0x00000d8;    /* port E pin 3,4,6,7 for uart2 */
 _reg_GPIO_GPR(GPIOE) &= ~0x00000d8;     /* port E pin 3,4,6,7 for primary function */

}  

 

 

 

 

参考:http://blog.chinaunix.net/u2/62910/showart_1090856.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值