历史上的今天
返回首页

历史上的今天

今天是:2025年03月10日(星期一)

正在发生

2020年03月10日 | ARM裸板开发配置流程一

2020-03-10 来源:eefocus

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:

【设置多个位】 

先读,清零,置位,回写

推荐阅读

史海拾趣

Datapro International Inc公司的发展小趣事

Datapro International Inc公司成立于20世纪90年代初,当时正值电子信息技术飞速发展的时期。公司的创始人是一群充满激情和创新精神的年轻工程师,他们看到了在数据存储和处理方面的巨大潜力。于是,他们决定成立Datapro International Inc公司,致力于开发高效、稳定的数据存储解决方案。

在创立初期,Datapro International Inc公司面临着重重困难,包括资金短缺、技术挑战和市场竞争等。然而,他们凭借坚定的信念和不懈的努力,成功开发出了第一款具有创新性的数据存储产品,该产品凭借其卓越的性能和稳定性迅速赢得了市场的认可。这一成功为Datapro International Inc公司的发展奠定了坚实的基础。

Alorium Technology公司的发展小趣事

Datapro International Inc公司成立于20世纪90年代初,当时正值电子信息技术飞速发展的时期。公司的创始人是一群充满激情和创新精神的年轻工程师,他们看到了在数据存储和处理方面的巨大潜力。于是,他们决定成立Datapro International Inc公司,致力于开发高效、稳定的数据存储解决方案。

在创立初期,Datapro International Inc公司面临着重重困难,包括资金短缺、技术挑战和市场竞争等。然而,他们凭借坚定的信念和不懈的努力,成功开发出了第一款具有创新性的数据存储产品,该产品凭借其卓越的性能和稳定性迅速赢得了市场的认可。这一成功为Datapro International Inc公司的发展奠定了坚实的基础。

Digital Equipment Corp公司的发展小趣事

DEC始终致力于技术创新和产品研发。在20世纪70年代和80年代,DEC推出了一系列具有划时代意义的计算机产品,如PDP系列计算机和VAX系列计算机。这些产品在技术上处于领先地位,受到了市场和客户的广泛认可。此外,DEC还通过国际扩张策略,将其业务拓展到了全球范围内,进一步巩固了其市场地位。

CP Technology Inc公司的发展小趣事

CP Technology Inc一直注重产品质量和客户服务。公司建立了严格的质量管理体系,从原材料采购到生产过程控制,再到产品检测和售后服务,都力求做到精益求精。这种对品质的执着追求赢得了客户的广泛赞誉和口碑传播,为公司的长期发展奠定了坚实基础。

Chen Yang Technologies GmbH & Co KG公司的发展小趣事

在快速发展的过程中,Chen Yang Technologies始终重视内部管理和人才培养。公司推行了一系列创新的管理理念和措施,如扁平化管理、项目制运作等,这些措施有效提高了工作效率和团队协作能力。同时,公司还注重人才培养和引进,通过设立激励机制、提供培训和发展机会等方式,吸引和留住了一批优秀的技术人才和管理人才。

Elcos AG公司的发展小趣事

随着公司规模的扩大和业务的增长,Elcos AG面临着供应链管理的挑战。为了降低成本、提高效率和保证产品质量,公司决定对供应链进行优化。通过引入先进的供应链管理软件、加强与供应商的合作和建立严格的质量控制体系等措施,Elcos AG成功实现了供应链的优化和升级。这不仅提高了公司的运营效率和市场竞争力,还为客户提供了更加稳定可靠的产品和服务。

问答坊 | AI 解惑

十天学会AVR视频教程

第一讲:开发板和软件的操作使用 1、 介绍配件。 2、 安装软件(ICC AVR 和AVR STUDIO)及其使用,包括新建工程、程序下载,仿真调试;整板测试;板上资源。 3、 着重介绍一下USB接口的仿真器。 第二讲:AVR单片机的概述和C语言的基础知识 ...…

查看全部问答>

关于一个单片机IO口输出的问题

小弟刚刚接触研发,还没入门,我在用单片机(stc89c58)的IO口驱动继电器时,想让单片机上电后就使IO口输出高电平,希望继电器有动作,结果就是没有动作。后来发现必须先置低IO口后再输出高电平才能得到自己想要的效果,到现在我也不明白什么为什么 ...…

查看全部问答>

DS2-电力载波通讯PLC

DS2-电力载波通讯PLC   什么是电力载波通讯PLC技术?   电力载波通讯PLC(英文:Power line communication)是电力系统特有的通信方式,电力载波通讯是指利用现有电力线,通过载波方式将模拟或数字信号进行高速传输的技术。最大特点是不需要重 ...…

查看全部问答>

单片机破解的常用方法及应对策略

单片机破解的常用方法及应对策略…

查看全部问答>

FPGA异步时钟设计中的同步策略

1 引言     基于FPGA的数字系统设计中大都推荐采用同步时序的设计,也就是单时钟系统。但是实际的工程中,纯粹单时钟系统设计的情况很少,特别是设计模块与外围芯片的通信中,跨时钟域的情况经常不可避免。如果对跨时钟域带来的亚稳态、 ...…

查看全部问答>

办公室的[危险品]手雷鼠标

在办公室里看到有人手持一个手雷,你会作何感想?别着急,这很可能就是这样一款手雷鼠标。它的功能跟普通的鼠标完全一样,只是增加了一个手雷的外壳。…

查看全部问答>

开机自动运行问题

我现在要实现开机自动运行一个小程序,但是按照网上给的步骤 1.将MyApp.exe复制到目录 D:\\WINCE420\\PUBLIC\\XSBase255_test\\RelDir\\XSBASE255_ARMV4Release下; 2.修改MyWinCE工程的project.bib文件,在FILES   Section添加 M ...…

查看全部问答>

如何在驱动中创建虚拟串口与USB通信???

最近要在原来的板子上添加3G模块,用的是中兴的MC8630,但该模块的AT指令是通过串口来发送接收的,而相关的数据信息是通过USB来进行的 如此一来,我们是这样设想的:在原来的板子上模拟一个虚拟串口来接收上层的AT指令,然后该虚拟串口再把接收到的指令 ...…

查看全部问答>

wince 下mfc变成如何改变常规定时器的优先级

小弟最近在用mfc编程。用常规定时器定时接收串口中的数据,但是当我点击界面中其它按钮的时候,接收到的串口数据有丢失现象。请问可不可以把常规定时器的优先级设高一些,让其它如鼠标消息的优先级设低一些,从而使接收数据不丢失。 …

查看全部问答>

sd卡的 RCA作用

小弟目前正在研究SD卡协议相关,对CMD3的Response中的RCA不是很理解,不知道具体作用是做什么的,与读写卡操作时的逻辑地址,物理地址有什么样的关系?…

查看全部问答>