对比cm3.h与cm85.h,其中SysTick用法区别

strongerHuang 2026-01-14 19:28

关注+星标公众,不错过精彩内容

作者 | strongerHuang

微信公众号 | strongerHuang

Cortex-M是ARM面向MCU的内核,推出约有20年了,最经典的就是Cortex-M3内核,也是目前市面上广泛使用的内核之一。

截至目前Cortex-M85内核依然是最强大的M内核
https://www.arm.com/zh-TW/product-filter?families=cortex-m
Cortex-M85相比Cortex-M3内核升级了很多功能,也变更强大了。

那么,作为普通用户(开发者),使用Cortex-M85和Cortex-M3内核单片机有什么区别呢?

cm3.h与cm85.h

单片机开发者,接触最多的就是core_cm3.h(core_cm85.h)文件,这里定义了与内核相关的大部分内容,平时我们调用最多也是这里的接口。

我们对比一下这两个源文件:
通过对比源代码,你会直观地发现,cm85比cm3代码行数明显大多了,1943行和4672行。当然,行数多了这么多,左侧红色(差异)部分也比较多。

虽然,左侧“红色比较多,但大部分都是多出来的行数以及宏定义。仔细对比,其实很多都是一样的,比如我们常用的系统复位函数:

__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset(void){  __DSB();                                                          /* Ensure all outstanding memory accesses included                                                                       buffered write are completed before reset */  SCB->AIRCR  = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos)    |                           (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) |                            SCB_AIRCR_SYSRESETREQ_Msk    );         /* Keep priority group unchanged */  __DSB();                                                          /* Ensure completion of memory access */
for(;;)                                                           /* wait until reset */  {    __NOP();  }}

再比如系统Tick配置函数:
__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks){if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk)  {return (1UL);                                                   /* Reload value impossible */  }
  SysTick->LOAD  = (uint32_t)(ticks - 1UL);                         /* set reload register */  NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */  SysTick->VAL   = 0UL;                                             /* Load the SysTick Counter Value */  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk |                   SysTick_CTRL_TICKINT_Msk   |                   SysTick_CTRL_ENABLE_Msk;                         /* Enable SysTick IRQ and SysTick Timer */return (0UL);                                                     /* Function successful */}

其实,你会发现,在Cortext-M3单片机上常用的这些函数接口,基本和CM85一样,这也说明CM85大部分接口向下兼容CM3

Cortex-M85单片机SysTick

定时器是单片机常用的一个模块,不管是延时,还是RTOS的心跳(系统时钟)都会用到定时器。所以,Arm考虑到这种情况,在每个Cortex-M内核都集成了一个SysTick模块。

这里结合瑞萨 RA8D1(Cortex-M85内核)单片机给大家讲述一下SysTick的用法。

使用 e2 studio 以及fsp软件包
工具自带的软件包其实是最实用的,这里以IO翻转,SysTick延时为例,手把手教大家创建一个工程,并演示效果。

1、打开e2 studio创建单片机项目
我们命名项目名称为:RA8D1_SysTick
选择对应芯片型号:R7FA8D1BEC
基本上只需要动动鼠标“点一点”,一个完整的工程就创建好了。

2、配置工程
这里配置一些基础的信息,我们使用一个IO(PA01)来测试一下SysTick延时时间。
配置时钟树:
配置输出Hex文件:
3、演示
这里只是简单演示Demo,我们添加一个IO翻转来测试SysTick延时时间。
while(1){    R_PORT10->PODR ^= 1<<(BSP_IO_PORT_10_PIN_01 & 0xFF);     //PA01亮灭翻转    R_BSP_SoftwareDelay(1BSP_DELAY_UNITS_MILLISECONDS);    //SysTick延时}
这个是1ms翻转,SysTick延时误差还是比较小,相对1ms来说误差可以忽略(采样频率100KHz看不出来误差)。
采样频率为100MHz,其实还是看得出来有点误差。当然,这个误差是晶振、软件等多种因素影响的。还有,us级别的误差,相对ms可以忽略
如果改为1us翻转,通过IO翻转来测试,误差就相对明显一点。

4、源码描述
有经验的工程师应该都能看懂,这里针对初学者简单说下。
R_PORT10->PODR ^= 1<<(BSP_IO_PORT_10_PIN_01 & 0xFF);
为了减少软件带来误差,这里直接操作寄存器进行IO翻转。

R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_MILLISECONDS);
R_BSP_SoftwareDelay:阻塞延时函数,是FSP软件包自带函数接口。

BSP_DELAY_UNITS_MILLISECONDS:宏定义,延时单位(毫秒)。
系统定义了三个宏:
typedefenum{    BSP_DELAY_UNITS_SECONDS      = 1000000///< Requested delay amount is in seconds    BSP_DELAY_UNITS_MILLISECONDS = 1000,    ///< Requested delay amount is in milliseconds    BSP_DELAY_UNITS_MICROSECONDS = 1///< Requested delay amount is in microsecondsbsp_delay_units_t;
R_BSP_SoftwareDelay:其实就是利用SysTick进行的延时。
进一步分析代码,可以看到更底层调用SysTick和CM0、CM23等也是一样。所以,你会发现,Cortex-M3与M85单片机的SysTick使用上没有多大区别。
------------ END ------------

RTOS系统裁剪,是什么意思?

嵌入式系统为什么需要校验码?

158元配齐A55+双千兆的开发板,直降506元,性价比拉满!


strongerHuang 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
评论
  • 2026年了,过去的一年工作和家庭事情都比较多,来面包板比较少。2026年事情好了很多,可以多来面包板分享自己的工作。 在新的一年里。工作方面,继续努力,自己的公司把业务都办理完成,能顺利营业就可以,主要也是为了自己工作方便。主业还是多参加比赛。具体的目标:(1)公司工商注册等都完成。(2)参加教学比赛2次。(3)完成论文3篇,一个项目论文,一个会议论文,这个是确定的,必须完成,自己在写一个论文。(4)参加一次技能比赛,视觉的比赛。 有时候运气也很重要,不是自己的也不去强求了
    curton 2026-01-05 09:59 77527浏览
  • 在智能家居的网络架构中,Wi-Fi、蓝牙、Zigbee与Thread等通信协议是实现设备无线互联与协同控制的底层逻辑。然而,这些协议在标准体系、寻址方式与网络管理机制上却彼此独立,缺乏统一的互操作框架,在进行跨协议组网时需要依赖中心网关作为“翻译桥梁”,这不仅抬高了全屋智能的部署成本,还增加了系统的网络复杂度与不稳定性。在此背景下,行业迫切地需要一种能跨协议、跨生态与跨品牌通信的统一标准来破局,从而在根本上解决智能家居场景中设备难互联、生态难融合与通信不稳定等问题,将智能家居从“平台主导”阶段全
    华普微HOPERF 2026-01-07 11:08 1153浏览
  • 2026年1月6日,美国CES展会上有一则重磅消息,芬兰初创公司Donut Lab正式推出全球首款可量产全固态电池,该电池不仅实现5分钟满电、10万次循环寿命的性能飞跃,更已完成OEM量产适配,搭载该电池的电动摩托车将于今年第一季度交付用户。这一突破标志着长期停留在实验室阶段的全固态电池技术正式迈入商业化落地阶段,有望彻底解决传统锂电池续航短、充电慢、安全隐患三大核心痛点,为新能源产业带来颠覆性变革。这款全固态电池的性能参数堪称“碾压级”超越传统锂电池。据官方披露,其能量密度达到400Wh/kg
    面包超人Tech 2026-01-09 09:23 1288浏览
  • 分享一个最新的便携微孔雾化装置的原理图,主要功能为驱动微孔雾化,兼具外围的升压和检水。适合:可以适用于医用微网雾化器、桌面加湿器、补水仪或者香氛仪的雾化驱动电路参考。特点:整体硬件成本低,具备自动扫频追频以及自动检水功能,按键和指示灯设计方便简洁主要逻辑功能需求雾化片:108KHz,16mm直径,微孔超声波雾化片雾化驱动:自动扫频追频,雾化量另行标定,名义雾化速率:4mg/s按键1: 长按开机,再次长按关机;关机状态下进入低功耗以节省电池电量;按键1在开机状态下循环,高-中-低档位控制雾化速率档
    努力精进的硬件 2025-12-30 09:53 1170浏览
  • ESP32S3小智开发板烧录指南ESP32S3小智开发板烧录核心需做好硬件接线、烧录模式操作与软件配置,步骤如下: 1. 硬件接线:用USB转TTL模块连接,3.3V接板载3.3V(严禁5V)、GND共地,模块TX接开发板RX(GPIO44)、RX接TX(GPIO43),确保接线无松动。 2. 进入烧录模式:按住板载BOOT键不松,快速按EN复位键,先松EN再松BOOT,此时开发板进入烧录模式。  3. 软件配置:IDF环境下先执行`idf.py set-
    丙丁先生 2026-01-10 12:33 69128浏览
  • 坚 守2025年于风雨飘摇中逝去。多年来,我如老牛耕垦,在这片希望的田野上持续耕耘。尽管每年收成不一、亦因人而异,但“老骥伏枥,志在千里”的古训,始终激励着我前行。过去一年,职场中虽遇波澜,然心境渐趋平和。恰如苏轼《观潮》诗中所喻:庐山烟雨浙江潮,未至千般恨不消。到得还来别无事,庐山烟雨浙江潮。历事后方知,潮起潮落不过常态,唯有坚守本心、专注所为,方能穿透迷雾、踏实前行。一、专利布局与维护全年围绕核心技术及新产品,累计申报发明专利3项、实用新型专利1项,其中2项发明专利已进入实质审查阶段。系统
    广州铁金刚 2026-01-09 10:40 1296浏览
  •         本月17日南京地区发生了一次导航严重偏离的事件,一时互联网、金融、军迷等人群议论纷纷。19号,“南京卫星协会”微信公众号给出了一篇分析文章,官媒和社媒纷纷转载,视为结案。但是不知道为什么,今天我去找了一下,没找到这篇文章。                        根据公开资料,我把北斗、GPS和G
    电子知识打边炉 2025-12-28 22:55 961浏览
  • 在全球变暖、环境污染与生物多样性下降的生态危机下,发展科技的目的已不仅仅在于为各行各业提质增效,还在于促进人与自然的和谐发展。LoRaWAN作为一种面向大规模部署应用的低功耗IoT通信技术,正凭借着低功耗、远距离、大规模连接和低部署成本等特性,成为连接人类社会与自然生态的重要“沟通桥梁”。这座“沟通桥梁”不仅能将自然环境中原本难以察觉、零散分布的生态变化持续转化为可采集与分析的数据形态,使森林、河流、湿地与野生生物“开口说话”,还能帮助管理者在广袤、偏远、环境恶劣的区域中长期、稳定地获取生态数据
    华普微HOPERF 2026-01-13 15:58 147浏览
  • 文:候煜、陈昊编辑:cc孙聪颖多年前,中国入世谈判首席代表龙永图在接受《华尔街科技眼》创始人采访时曾抛出一个鲜明观点:家电行业是国内“最皮实”的行业。在入世初期各领域普遍需要政策保护,唯独家电行业未受特殊庇护,却走出了相对稳健的发展路径。无论是全球市场知名度,还是行业整体营收规模,家电行业长期保持着稳固态势。而且,相较于始终站在风口、聚焦聚光灯下的互联网行业,家电行业始终略显低调。“稳”意味着行业变数少,也意味着从业者可以有一定的路径依赖。曝光度低意味着相对较少的关注和解读,于职业经理人而言,反
    华尔街科技眼 2025-12-30 12:56 2260浏览
  •   今天,做清理,想把闲置有点毛病了的一个老收录机看看还能不能用?  拿起电源线,呵呵,这线早就变硬了,拿到插头,准备插到电源插座上,哈哈,不声不响,插头断掉啦!  拿到了工作台,准备行动,拆解、检查、判断可否修复?  这可是一台够老的机器啦!1985年7月3日买的一台三洋牌手提式立体声收录机,那时是很时兴时髦的产品,发票和说明书都在。  前后左右上下都看了看,   SANYO STEREO RADIO CASSETTE RECORDER MODEL NO. M9805F  SANYO ELE
    自做自受 2026-01-06 21:15 1498浏览
  •        面包板社区选品绝对优品!首先感谢面包板及工作人员在这之前策划了很多可以赚取E币的活动(发技术帖、分享项目经验、回答问题、参会、11-12月每天坚持签到领E币),每一个都几乎与了,所以获利不少,这次活动力度之大更是前所未有,买东西返现!!!再次感谢,比心!!!来看看我买了哪些好宝贝:                     
    甜椒的尾巴 2025-12-31 09:37 2514浏览
  • 文:郭楚妤编辑:cc孙聪颖在硬核的美国科技展上,看到软萌的国宝大熊猫,是不是有一种反差感?这次,长虹将这份独特的“AI科技+国宝熊猫文化”带到了美国拉斯维加斯的CES展上,通过熊猫主题AI家电,以及全品类AI产品,在全球舞台上讲述着属于“东方智慧”的故事。于是,在此次CES展会上,你可以看到AI科技被赋予了文化的温度和脉络。打开长虹AI TV,智能体伙伴“熊猫小白”上线,化身全天候全场景的陪伴者。打开电视里的“熊猫乐园”,能够实时看到熊猫啃竹子、玩耍的治愈画面,仿佛把四川的竹林生态带到了身边。长
    华尔街科技眼 2026-01-08 15:22 1163浏览
  • 在高速数据传输的现代世界中,光模块扮演着至关重要的角色。它们如同信息高速公路上的“快递员”,负责将电信号转换为光信号进行远距离传输,再将光信号转换回电信号供设备使用。然而,在这看似简单的光-电转换过程中,有一个不起眼却不可或缺的元件在默默工作——它就是晶振,或称石英晶体振荡器。晶振:电子设备的“心跳”晶振的核心功能是产生稳定的时钟信号。想象一下,如果一场音乐会没有统一的节拍,演奏会变得混乱不堪。同样,在电子设备中,晶振提供的高精度时钟信号就像乐队的指挥,确保所有部件同步工作。在光模块中,这个“指
    TKD泰晶科技 2026-01-04 15:34 1744浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦