打印
[技术问答]

新唐arm系统初始化

[复制链接]
1704|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lzmm|  楼主 | 2024-5-19 23:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初始化分为系统初始化和ip初始化
本文主要讲 系统初始化,主要是时钟相关的设置。
先看手册中时钟的框图


涉及到系统初始化的引脚,通过原理图上可知 HXT使用pf2 pf3.uart0使用pb12 pb13引脚。


第一步:使能外部hxt(根据自己需要选择)
设置pf2 pf3为输入模式,并使能外部hxt,等待hxt时钟源稳定。


第二步 :调用接口开启pll时钟,并设置最大频率。
#define PLL_CLOCK       192000000
根据官方的时钟框图,到这里系统时钟基本配置完毕,mcu可以运行起来。


第三部: 开启uart
设置uart的分频。使能uart时钟。选择uart时钟源。配置pb12 pb13引脚的多能功为uart的rxd和txd。按照官网案例,初始化外设时钟的顺序是先使能时钟再选择时钟源。datasheet上讲解先选择时钟源再使能时钟。实际测试下这俩顺序前后不影响。
到此我们就可以通过调用printf打印信息,并通过串口查看了。
至此往后可以开始怼业务功能了。

使用特权

评论回复
沙发
gra22ce| | 2024-9-25 13:17 | 只看该作者
新唐的ARM系统初始化流程通常包括以下几个关键步骤。这些步骤确保系统从上电到进入用户应用程序的稳定运行状态。其主要步骤就是上电复位

使用特权

评论回复
板凳
星星点点didi| | 2024-9-25 13:20 | 只看该作者
如果系统有SRAM,启动代码会初始化SRAM并配置其访问方式。如果系统有Flash存储器,启动代码会初始化Flash并配置其访问方式

使用特权

评论回复
地板
nuan11nuan| | 2024-9-25 14:20 | 只看该作者
系统上电时,硬件复位电路会将所有寄存器和状态位复位到默认状态。复位后,处理器从预定义的复位向量地址开始执行启动代码

使用特权

评论回复
5
hhdhy| | 2024-9-25 15:25 | 只看该作者
启动代码首先设置堆栈指针(SP),以便后续函数调用和局部变量使用。如果需要,启动代码会初始化全局变量和静态变量

使用特权

评论回复
6
yuliangren| | 2024-9-25 16:33 | 只看该作者
如果使用外部晶振,启动代码会配置外部晶振并等待其稳定。配置PLL(锁相环):启动代码配置PLL以生成所需的系统时钟频率。根据需要,设置系统时钟分频器以生成不同的时钟频率(如CPU时钟、外设时钟等)

使用特权

评论回复
7
teaccch| | 2024-9-25 17:44 | 只看该作者
配置GPIO引脚的功能(输入、输出、复用功能等)。配置中断控制器,设置中断优先级和使能中断。

使用特权

评论回复
8
pe66ak| | 2024-9-25 19:08 | 只看该作者
初始化其他外设,根据应用需求,初始化其他外设(如UART、SPI、I2C、定时器等)

使用特权

评论回复
9
hight1light| | 2024-9-26 08:41 | 只看该作者
启动代码设置异常向量表,确保在发生异常时能够正确处理。启动代码最后跳转到用户应用程序的主函数(如main()),开始执行用户代码

使用特权

评论回复
10
nqty| | 2024-9-26 10:20 | 只看该作者
确保时钟配置正确,避免系统时钟频率过高或过低导致系统不稳定

使用特权

评论回复
11
tiakon| | 2024-9-26 13:05 | 只看该作者
外设初始化顺序要注意,外设初始化的顺序应根据依赖关系进行,确保每个外设在初始化时所需的时钟和资源已准备好

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

401

主题

8863

帖子

11

粉丝