嵌入式硬件第六弹——ARM(3)

(续接上篇)

3. GPIO外设

IOMUXC:引脚复用功能 + 引脚电气属性



Linux编译:

  • arm-linux-gnueabihf-gcc -g -c led.S -o led.o
  • arm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -oled.elf
  • arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin
  • arm-linux-gnueabihf-objdump -D led.elf > led.dis

Makefile编译:

  • 目标:目标文件 led.bin
  • 依赖:依赖源文件 led.S
  • 规则:源文件到生成目标文件中间的规则

4. 时钟与定时器

定时器 (EPIT GPT):是一个通过对已知频率的时钟信号进行计数,来实现定时、延时或事件计数功能的硬件模块或软件机制。
时钟(clock):在电子系统中是一个产生稳定、周期性振荡信号的电路或组件。这个信号像节拍器或心跳一样,为数字电路中的各种操作提供同步时序基准。
实时时钟(RTC real time clock): 是微处理器中的一个功能模块,用于在系统主电源关闭的情况下,继续提供精确的日历和时间信息。

4.1 时钟

4.1.1 硬件概念

时钟源:晶体整荡器

工作做原理:利用石英晶体的压电效应和固有谐振频率,来产生高度稳定的电信号。

PLL(phase locked loop)锁相环电路: 倍频

Prescale 分频器: 分频

PFD(phase fractional Prescale)相位分数分频器: 输出频率可升可降

4.1.2 代码编写

4.1.2.1 kernal

CCM_ANALOG_PLL_ARMn

  1. 先选择osc_clk,让step_clk为24MHz
  2. 再将PLL1的输出改成step_clk,让ARM暂时工作在24MHz;
  3. 配置PLL为1056,注意设置倍频因子之前先把PLL之后的二分频设置好,避免ARM内核故障!!
  4. 最后改回pll1_main_clk
4.1.2.2 528 PLL

CCM_ANALOG_PFD_528n

4.1.2.3 480 PLL

CCM_ANALOG_PFD_480n

4.1.2.4 AHB_CLK_ROOT(132M)

CBCMR[PRE_PERIPH_CLK_SEL]

CBCDR[PERIPH_CLK_SEL]

CBCDR[AHB_PODF]

4.1.2.5 IPG_CLK_ROOT(66M)

CBCDR[IPG_PODF]

4.1.2.6 PERCLK_CLK_ROOT(66M)

CSCMR1[PERCLK_CLK_SEL]

CSCMR1[PERCLK_PODF]

4.2 定时器

4.2.1 EPIT

Enhanced Periodic Interrupt Timer:增强型周期中断定时器

1s中断,中断服务函数中反转led灯

频率计算时1000*1000=1MHz

存储计算时1024*1024=1MByte

4.2.2 GPT

General Purpose Timer:通用目的定时器

输入捕获和比较输出

利用自由运行模式编写精准延时函数

相关推荐
学工科的皮皮志^_^2 小时前
RS485学习
经验分享·笔记·单片机·嵌入式硬件·学习
wearegogog1232 小时前
基于STM32的数据采集+心率检测仪设计
stm32·单片机·嵌入式硬件
没有医保李先生2 小时前
mcu中cpu通用和特殊寄存器
单片机·嵌入式硬件
C^h2 小时前
RT thread中断管理学习记录
单片机·嵌入式硬件·学习
senijusene3 小时前
从启动到中断:基于i.MX6UL的ARM Cortex-A7中断系统详解
arm开发·嵌入式硬件
天选硬件打工人3 小时前
第二十九篇:【硬件工程师筑基系列 6-2】样板上电前全检查与安全上电流程 | 避免炸板的核心防线
单片机·嵌入式硬件·安全·硬件架构·硬件工程·射频工程
蓝凌y14 小时前
51单片机之外部中断
c语言·单片机·嵌入式硬件
12.=0.16 小时前
【stm32_2.2】【快速入门】对GPIO解析、外设的初始化和配置、细节分析GPIO
stm32·单片机·嵌入式硬件
我是标同学16 小时前
单片机IO增强电流驱动能力的三极管几种接法
单片机·嵌入式硬件