N12 arm-clk时钟

一、C语言

套接字:

  • 交换机:二层设备,基于 MAC 地址转发,只在同一网段工作,无路由能力;
  • 路由器:三层设备,基于 IP 地址转发,跨网段互联;
  • 网关:网络的 "出口点",路由器常充当内网的默认网关

URG:紧急指针有效。

作用 :标记数据包中包含紧急数据,需要优先处理,无需等待缓冲区满。

ACK:确认号有效

作用 :除了第一次建立连接的 SYN 包外,几乎所有 TCP 数据包都会置位 ACK,是

可靠传输的基础。

PSH:立即推送数据

作用 :要求接收方立即将数据推送给应用层,不要在缓冲区等待更多数据。

RST:重置连接

作用 :强制异常关闭连接,拒绝继续通信,清空所有缓冲区数据。

SYN:同步序列号(建立连接)

:用于建立 TCP 连接,发起方向接收方同步初始序列号(ISN)。

FIN:释放连接


二、arm时钟

输入时钟源(左侧 CLOCK SWITCHER)
  • PLL1 (建议996MHz):ARM PLL,专门给 CPU 内核提供高频时钟。内核 默认528Mhz
  • PLL2 (固定528MHz):系统 PLL,带 4 路 PFD 分频输出(352/594/400/200MHz),用于DDR、外设等。
  • PLL3 (固定480MHz):USB / 系统 PLL,带 4 路 PFD 分频输(720/540/508.2/454.7MHz),用于 AHB、IPG 等总线。
  • PLL4 (650MHz):Audio PLL,用于音频外设。
  • PLL5 (650MHz):Video PLL,用于显示 / 视频外设。
  • 还可旁路 PLL,直接使用 OSC 24MHz 或其他外部时钟。
关键寄存器控制
  • CBxMR 系列 :时钟源选择寄存器(如 CBQMR[PRE_PERIPH2_CLK_SEL]),用于选择多路输入中的一路。
  • CBCDR/CSCDR 系列 :时钟分频寄存器(如 CBCDR[AHB_PDF]),设置后分频系数。
  • CACRR:专门用于 ARM 时钟的分频控制。
  • cg:时钟门控位,用于关闭未使用模块的时钟以降低功耗。
  • **MUX:**复用选择,多路选择器,从多个输入时钟源中选择一路作为当前时钟路径的输入。
符号颜色 名称 位宽 分频范围 用途
灰色 Static Divider 固定 固定分频比(如 ÷2、÷4) 固定比例的时钟分频
深绿色 2-bit Divider 2bit 1~4(即 ÷1、÷2、÷3、÷4) 简单、少档位的分频
青色 3-bit Divider 3bit 1~8 中等范围分频
橄榄绿 6-bit Divider 6bit 1~64 精细、大范围分频(如外设时钟微调)
  • CCM:时钟控制器(Clock Controller Module)
  • CCM_ANALOG:模拟 PLL 锁相环控制器
  • PFD(PLL2) 频率 = 基准频率(528) × 18 / PFD_FRAQ
  • PFD(PLL3) 频率 = 480 × 18 / FRAC
cs 复制代码
void clk_init(void)
{
    //ARM clk 528
    CCM->CCSR &= ~(1 << 8);    
    CCM->CCSR |= (1 << 2);

    unsigned int tmp = CCM->CACRR;
    tmp &= ~(0x7 << 0);
    tmp |= (0x1 << 0);
    CCM->CACRR = tmp;

    tmp = CCM_ANALOG->PLL_ARM;
    tmp &= ~(0x3 << 14);
    tmp |= (0x1 << 13);
    tmp &= ~(0x7f << 0);
    tmp |= (88 << 0);
    CCM_ANALOG->PLL_ARM = tmp;
    CCM->CCSR &= ~(1 << 2);   // ARM PLL 528M 

    //PLL2 pfd0~3  352-27  594-16  400(396)-24 200-48
    tmp = CCM_ANALOG->PFD_528;
    tmp &= ~((0x3f << 0) | (0x3f << 8) | (0x3f << 16) | (0x3f << 24));
    tmp |= ((27 << 0) | (16 << 8) | (24 << 16) | (48 << 24));
    CCM_ANALOG->PFD_528 = tmp;

    //PLL33 pfd0~3  720-12  540-16  508.2-17  454.7-19
    tmp = CCM_ANALOG->PFD_480;
    tmp &= ~((0x3f << 0) | (0x3f << 8) | (0x3f << 16) | (0x3f << 24));
    tmp |= ((12 << 0) | (16 << 8) | (17 << 16) | (19 << 24));
    CCM_ANALOG->PFD_480 = tmp;

    //AHB_CLK_ROOT  132M
    tmp = CCM->CBCDR;
    tmp &= ~(0x7 << 10);
    tmp |= (0x2 << 10);
    tmp &= ~(0x1 << 25);
    tmp &= ~(0x3 << 8);
    tmp |= (0x1 << 8);   //IPG_PODF   1/2  66M
    CCM->CBCDR = tmp;

    tmp = CCM->CBCMR;
    tmp &= ~(0x3 << 18);
    tmp |= (0x2 << 18);
    CCM->CBCMR = tmp;

    //PERCLK_CLK_ROOT 66M
    CCM->CSCMR1 &= ~(0x7f << 0);

    clk_gate_allenable();
}

三、定时器相关

EPIT:Enhanced Periodic Interrupt Timer(增强型周期性中断定时器)

向下递减

就是芯片里一个专门用来定时、产生中断的外设

  • Counter Register (32bit) :32 位倒计时计数器,你标注的 100 就是它的初始值,会在每个预分频时钟 沿减 1,直到减到 0
  • Load Register (32bit) :32 位重载寄存器,你标注的 10 是它的值。当计数器减到 0 时,会自动把这个值重新加载到计数器,开始下一轮倒计时。
  • Compare Register (32bit) :32 位比较寄存器,通常设为 0,当计数器值等于比较值时触发比较事件。
  • Prescaled Clock:经过分频后的时钟,是计数器递减的驱动节拍。
相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz2 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院2 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest2 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix