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:经过分频后的时钟,是计数器递减的驱动节拍。
相关推荐
福建佰胜张工14 分钟前
深度解析 Allen-Bradley 150-B135NBDA 智能电机控制器:选型、参数与工业应用
运维·数据库·单片机·嵌入式硬件·安全·自动化
wefg120 分钟前
【Docker】镜像相关指令
运维·docker·容器
智慧光迅AINOPOL25 分钟前
POF光电复合缆多业务承载原理
网络·安全·智能路由器
feng_you_ying_li42 分钟前
linux之网络层
linux·运维·网络
步行cgn1 小时前
HTTP 请求报文结构详解:请求行、请求头、请求体各自的作用
网络·网络协议·http
未来之窗软件服务1 小时前
Linux 运维日志删除的多种方式—东方仙盟
linux·运维·服务器·仙盟创梦ide·东方仙盟
卓豪终端管理1 小时前
IT 运维视角下的终端数据安全:能力框架与落地清单
运维
小雉系统1 小时前
BcoreOS实战:用一个升级包,让Rocky Linux跑进Debian服务器
linux·运维·服务器·debian
一只小鱼儿吖1 小时前
内网穿透技术全景:原理、安全与实践
网络·安全
甜到心里的蛋糕1 小时前
从 QQ 机器人到 B 站 AI 运营:一套可复现的视频流水线踩坑实录
运维·人工智能·python·自动化·视频制作