×
单片机 > 单片机程序设计 > 详情

ARM裸板开发配置流程一

发布时间:2020-08-21 发布时间:
|

ARM裸板开发中:

能不能开发板一上电就运行c语言程序?

答:不能,ATPCS(arm和thumb程序调用规范)默认使用了ARM中的资源,而一上电ARM的资源还没有初始化好!


【解决方法:】在bootloader中的boot阶段中初始化好ATPCS用到了的资源。(bootloader = boot + loader)


ATPCS中默认使用了ARM中的资源:

1、R0-R3(给函数传参,register中只能使用这是个寄存器,当输入参数超过4个的时候,必须借助栈空间来传递), R0(函数的返回值)  ----> 初始化,没有必要  (不关心)

2、自动保护r4-r12----> 压栈处理  ---->  stmfd sp!,{r4-r12}  ----> 必须初始化SP,让其指向合法地址


boots阶段做的事情:

1、关闭看门狗、中断(使能cache)

2、初始化SOC的时钟控制器

3、初始化DRAM的选项,例如刷新周期...

4、初始化不同模式下SP的值,它的值的特点,高地址,而且这个地址必须指向可读可写的地方(内存)

5、结果:正常跳转到main函数


------------------------------------------------

内存 : RAM

静态 SRAM 有电压,就可以工作(网卡)

动态 DRAM   动态刷新才能工作(内存条) 

-------------------------------------------------


硬件打交道:

unsigned int *p = addr; //找地址

p[x] = data; //赋值


ldr r1,=addr

ldr r0,=data

str r0,[r1]

----------------------------------------------------

片内资源  === SFR   ---》定位到具体控制器的描述中,找芯片用户手册中 REGISTER DESCRIPTION

CPU : 寄存器  r0-r15

控制器: 寄存器  有地址的

片外资源:


1、看门狗是一个控制器,关闭它,就是关闭这个控制器

addr : 地址,描述这个控制器的资源 0xEA20_0000

x :  范围 0

data :  看芯片手册中具体描述,如果只是关闭,0x0这个二进制集合,满足要求


2、初始化时钟

时钟 === 频率  (超频)一般CPU厂商都有参考值

clk :  时钟频率

pll :  锁相环,倍频,锁频

y = f(a,b,c,fin);

y : 输出频率 fin :输入频率 a,b,c : 倍频系数

HCLK : 高速时钟   PCLK:慢速时钟 


fin  ---->  pll  -----> fout  ----> DIV -----> armclk

12M |

|----DIV----> HCLK

|

|----DIV---> PCLK 

S5PC100 : 包含3个bus,每一个bus管理了哪些控制器

WDT : PCLK (慢速时钟) 

常用寄存器:

APLL_MASK  :  屏蔽寄存器 锁定时间寄存器

APLL_CON   :  控制寄存器 锁相环系数配置寄存器

CLK_SRC    :  时钟选择寄存器

CLK_DIV   :  时钟分频寄存器


3、内存初始化


4、初始化SP的值

指向内存,保证不要指向了代码区,不要覆盖其他段。

确定内存的首地址:

0x2000 0000

内存大小:

256MB  ------>  2^28   0x1000 0000


0x20008000 


usr  svc  irq


5、bl main


点灯:

LED 

unsigned int *p = addr;

p[x] = data;


1、先找到外围设备,判断该设备是片内资源,片外资源

怎么判断,就看该设备,是否有地址总线

2、通用IO口

只有1或者0这2中状态的情况下,对应的寄存器:

配置/选择 寄存器 数据寄存器

复用的思想: 


第一步操作,配置功能,再根据功能进行控制器的配置


GPIO:

【设置多个位】 

先读,清零,置位,回写

关键字:ARM  裸板开发  配置 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic491040.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析