Cortex-M3与M85单片机的SysTick使用上有区别吗?

原创 strongerHuang 2024-09-30 20:44

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

作者 | strongerHuang

微信公众号 | strongerHuang

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

而目前(2024-09)最新最强大的单片机内核是Cortex-M85。
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(1, BSP_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:宏定义,延时单位(毫秒)。
系统定义了三个宏:
typedef enum{    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 microseconds} bsp_delay_units_t;
R_BSP_SoftwareDelay:其实就是利用SysTick进行的延时。
进一步分析代码,可以看到更底层调用SysTick和CM0、CM23等也是一样。所以,你会发现,Cortex-M3与M85单片机的SysTick使用上没有多大区别。

------------ END ------------


瑞萨RA8系列教程 | 初识瑞萨 RA8 系列单片机
●瑞萨RA8系列教程 | 瑞萨 RA8 开发环境搭建
●瑞萨RA8系列教程 | 基于 Keil 开发 RA8单片机
瑞萨RA8系列教程 | 基于e2s实现RA8串口输出配置

关注公众号回复“加群”按规则加入技术交流群,回复“1024”查看更多内容。

点击“阅读原文”查看更多分享。

登录阅读全文
  • Cortex-M3
  • 单片机
  • SysTick
strongerHuang 作者黄工,高级嵌入式软件工程师,分享嵌入式软硬件、物联网、单片机、开发工具、电子等内容。
进入专栏
评论 (0)
  • 立即报名:2024 AI& Connect 是德创新技术峰会(深圳,10.22)


  • 苹果史上第一款超薄iPhone!iPhone17Air要来了:全新外观设计

    手机技术资讯 2024-10-21 845浏览
  • 3nm!小米放大招,国产首款3nm芯片流片!北京官宣!

    飙叔科技洞察 2024-10-21 705浏览
  • 电动汽车用高压直流继电器选型与匹配

    线束中国 2024-10-21 305浏览
  • PCB大厂欣兴宣布再加码扩产

    PCB资讯 2024-10-21 283浏览
  • 2024-2028年新能源汽车电子水泵市场及企业调研报告

    一览众车 2024-10-20 196浏览
  • 我国汽车芯片领域迎新突破:首个认证审查技术体系发布

    WitDisplay 2024-10-20 194浏览
  • 英伟达GB200芯片,出货大增250%

    皇华电子元器件IC供应商 2024-10-21 192浏览
  • Android全力押注Rust,Linux却在原地踏步?谷歌:用Rust重写固件太简单了!

    C语言与CPP编程 2024-10-21 183浏览
  • 1970-01-01 08:00 浏览
  • 1970-01-01 08:00 浏览
  • 助力AI芯发展,奕成科技板级高密FOMCM批量量产

    综合报道 2024-10-21 15:54 69浏览
  • 从云端管理物联网设备

    Nordic Semiconductor公司Tiago Monte 2024-10-21 14:16 16浏览
  • 游戏全满帧、续航更持久,OPPO Find X8系列再创能效体验上限

    OPPO 2024-10-21 13:48 26浏览
  • 豪威集团与飞利浦合作开发业内首个车内驾驶员健康监测解决方案

    2024-10-19 13:54 284浏览
  • Vicor 发布最高密度车规级电源模块,支持电动汽车实现 48V 电源系统

    2024-10-19 13:43 26浏览
  • 蝶变金港 · 无限可能 | 普源精电上海研发中心隆重开业!深化自研核心技术布局,加速行业解决方案创新

    普源精电 2024-10-18 18:42 232浏览
  • 【拆解】+ 数字音频转模拟音频小黑盒拆解

    ecoren 2024-10-09 98浏览
  • 【拆解】华硕的鼠标真的用料好嘛

    丸子~ 2024-10-07 750浏览
  • 【拆解】永不消逝的电波——摩托罗拉BP机拆解!

    whik 2024-10-06 990浏览
  • 【敏矽微ME32F103 Demokit】+开发环境搭建与串口控制LED验证

    平安一生 2024-10-17 211浏览
  • 【拆解】+ Adobe联名款 魔方插座拆解

    ecoren 2024-10-06 659浏览
  • 防雷器件及创新防护方案提供商-浪拓

    sales_263623713 2024-10-09 108浏览
  • 【敏矽微ME32F103 Demokit】+数码管显示测评

    wuyu2009 2024-10-16 623浏览
  • 【敏矽微ME32F103 Demokit】+初识篇

    jinglixixi_457498010 2024-10-18 235浏览
  • 【敏矽微ME32F103 Demokit】+串行通讯与MP3播放控制

    jinglixixi_457498010 2024-10-20 101浏览
  • 三种常见的瞬态干扰及EMS防护元件

    sales_263623713 2024-10-16 72浏览
  • 桥堆这样接是否可以实现正反接都可以工作?恒流电阻计算是否合理?

    QWE4562009 2024-10-12 744浏览
  • 9-23学习笔记
  • 9-27学习笔记
  • 大脑传,简体中文通俗脑科学全史
  • 10-1学习笔记
  • 10-6学习笔记
  • 9-28学习笔记
  • 9-26学习笔记
  • 9-22学习笔记
  • Toshiba东芝TLP5751产品规格书datasheet
  • MATLAB数字信号处理85个实用案例精讲.入门到进阶
  • Toshiba东芝TB62269FTG两相双极步进电机驱动IC 产品规格书datasheet
  • 携手UALink,阿里云磐久AI Infra 2.0服务器亮相2024 OCP全球峰会
    10月15日-17日,一年一度的开放计算全球峰会(OCP Global Summit)在美国加州圣何塞(San Jose)召开,本次峰会以“从创新到影响力(From Ideas to Impact")”为主题盛大开幕,吸引全球7000多位基础设施软硬件技术和应用领域的专业人士参会。作为全球最具影响力的的基础设施和开放计算领域标志性盛会,特别是在今年OCP基金会重磅宣布其人工智能开放系统战略计划后,2024 OCP全球峰会上专门设置人工智能特别关注议程(Special Focus Tracks),
    电子资讯报 2024-10-22 14:13 32浏览
  • 基于DPU的Openstack裸金属服务网络解决方案
    1.  方案背景和挑战裸金属服务器作为一类特别设计的计算类云服务,向最终用户提供了云端部署的专属物理服务器,这意味着最终用户不再需要与其他租户共享硬件资源,从而确保了资源的独占性、性能的最优化以及数据的最高级别安全。裸金属服务器作为云上资源的重要部分,其网络需要与云主机和容器同样连接在VPC下,并且能够像云主机和容器一样使用云上的网络功能和能力。当前,基于OpenStack的裸金属服务实现主要依赖于Ironic组件,并通过OpenStack的Neutron网络组件来实现裸金属服务器的网
    Yusur_Tech 2024-10-22 14:28 35浏览
  • 可控硅光耦——工业自动化智能转型的护航先锋
    随着工业自动化程度的持续深化,对安全性、可靠性和智能化水平的要求愈发严苛。在这一浪潮中,可控硅光耦凭借其卓越性能,正逐渐成为工业自动化领域的核心驱动力。本文将深入探讨可控硅光耦在工业自动化智能转型中的创新应用与价值。提升生产线安全性在工业自动化生产线中,电气设备与控制系统错综复杂,安全问题不容忽视。可控硅光耦作为出色的隔离器件,以其高效的电气隔离能力,有效防止电气干扰和电路故障对生产线的潜在影响,确保生产线的安全与稳定。实现智能控制与监测为了满足工业自动化系统对智能化控制和监测的需求,可控硅光耦
    晶台光耦 2024-10-22 11:12 42浏览
  • 虹科方案 | 释放总线潜力:汽车总线离线模拟解决方案
    导读传统的ECU模拟工具通常需要依赖上位机软件来发起通信,这在离线场景和自动化产线中带来不便。为了应对这一挑战,虹科推出了创新的汽车总线离线模拟解决方案,基于PCAN-Router系列网关,通过内部可编程固件,实现了自主报文自发功能和实时离线通信,为工程师提供了一个高效、灵活且安全的测试平台。一、行业痛点ECU模拟工具是专为模拟车辆电子控制单元(ECU)之间的通信和行为而设计的软件/硬件设备。它们具备通信模拟、数据生成与处理、实时模拟能力、故障模拟功能,同时具有接口兼容性、调试分析功能和灵活的配
    虹科汽车智能互联 2024-10-21 13:55 106浏览
  • 晶振的寄生频率及测试参数
    理想情况下,晶振应在基频或泛音模式下稳定工作。而在实际应用中,寄生振荡(Spur)可能会干扰主频信号导致主频发生偏移,有以下几点影响:    1. 频率不稳定:主频信号受到干扰后,频率漂移    2. 信号失真:输出波形失真并出现多频成分    3. 设备性能下降:导致电子系统无法正常运行或发生误操作    4. 降低信噪比:寄生振荡会引
    koan-xtal 2024-10-20 06:41 113浏览
  • 光耦知识分享 | 浅析施密特触发器光耦的主要特点
    施密特触发器光耦是将施密特触发器与光耦合器件(光电耦合器)相结合的一种电路设计。在这种设计中,光耦将输入信号转换成光信号,并通过光学隔离的方式将输入信号和输出信号电气地隔离开来,以增强电路的抗干扰能力和安全性。下面简要分析施密特触发器光耦的主要特点:电气隔离:光耦器件将输入和输出信号通过光信号传递,实现了电气隔离,从而防止了直接的电气连接。这种隔离可以防止地线干扰、电气击穿等问题,提高了电路的安全性和稳定性。抗干扰能力强:光耦器件的光学隔离特性可以有效隔离输入和输出之间的干扰信号,提高了电路的抗
    晶台光耦 2024-10-22 09:58 55浏览
  • 光耦应用 | 探讨可控硅光耦在新能源领域的创新应用
    可控硅光耦作为一种重要的光电耦合器件,广泛应用于新能源领域,为新能源技术的发展和应用提供了重要的支持。本文将探讨可控硅光耦在新能源领域的应用情况及其优势。可控硅光耦简介可控硅光耦是一种将输入光信号转换为输出控制电信号的光电耦合器件,具有高耐压、高耐温、高响应速度等特点。它主要由光源、光电转换元件和可控硅器件组成,可以实现光电隔离和电气控制的功能。可控硅光耦在新能源领域的应用1. 太阳能光伏系统可控硅光耦在太阳能光伏系统中广泛应用于光伏逆变器和充电控制器等关键电路中。通过可控硅光耦的控制,可以实现
    晶台光耦 2024-10-21 10:46 106浏览
  • 米尔基于全志T527系列核心板,国产高性能车载视频监控、部标一体机方案
    在国内对于特种车辆有重点安全防范要求,"两客一危"是对道路运输车辆的一种分类方式,其中“两客”指的是客运车辆和公交车辆,而“一危”指的是危险货物运输车辆。这种分类方式主要用于强调这些车辆在道路运输中的特殊地位,因为它们通常需要满足更高的安全标准。在国内,“两客一危"车辆通常需要安装"部标机”,也就是满足特定部门标准的设备。这些设备可能包括但不限于定位设备、驾驶员行为监控设备、车辆定位系统等系统构件。随着安全管理意思的加强,在理解满足部标机要求的基础上,运营方往往提出更高要求、更多功能需求。T52
    米尔电子嵌入式 2024-10-18 17:05 54浏览
  • 工业自动化为什么依赖光耦隔离器
    光耦合器隔离器在工业自动化中必不可少,可确保信号传输,同时保护敏感电子设备和人员免受高压影响。选择合适的光耦合器隔离器取决于对操作环境和隔离要求的了解。本文将重点介绍在为工业应用选择光耦合器隔离器时需要考虑的关键因素。 光耦合器隔离器在工业自动化中的作用在工业环境中,光耦合器隔离器在系统的不同部分之间提供电气隔离。这种隔离可保护低压控制电路免受高压电力电子设备的影响,使光耦合器在以下方面至关重要:PLC:安全地连接控制信号。电机驱动器:将控制电路与高压部分隔离。工业传感器:确保干净的信
    腾恩科技-彭工 2024-10-18 16:30 57浏览
  • 元器件第049篇 晶体谐振器 (XTAL) 结构 分类
        前一篇介绍了晶体振荡器(Crystal Oscillator, XO),这一篇介绍石英晶体谐振器(Quartz Crystal Resonator),简称 Quartz 或 XTAL。很多工程师习惯叫它“晶振”,也有人叫它“无源晶振”以便和XO区分。    这种元件结构简单:取一个晶体切片,两侧制作电极,电极用引线引出,外面加保护壳,就完成了。晶体周围除了必要的支撑点,没有其它固定物,以便晶体切片自由谐振。石英晶体质地坚硬而脆,因此这个元件天然就比
    电子知识打边炉 2024-10-19 18:23 57浏览
  • 光耦——连接半导体创新的桥梁
    半导体技术作为现代科技的重要支柱之一,在电子、通信、能源等领域都有着广泛的应用。而在半导体领域,光耦作为一种重要的光电器件,正以其独特的优势和广泛的应用领域,为半导体创新注入新的活力,成为连接半导体创新的桥梁。实现电气与光学的转换在半导体器件的制造和应用过程中,经常需要将电气信号转换为光学信号,或者将光学信号转换为电气信号。而光耦作为一种光电转换器件,能够实现电气与光学之间的转换,为半导体器件的互联和应用提供了新的解决方案。通过光耦,可以实现对半导体器件的隔离、控制、数据传输和信号转换,提高了半
    晶台光耦 2024-10-21 10:48 106浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦

玻璃钢生产厂家走廊商场美陈供应商东莞玻璃钢吉祥公仔雕塑无锡玻璃钢雕塑榆林人物玻璃钢雕塑公司滁州公园玻璃钢雕塑市场玻璃钢雕塑厂家潍坊重庆玻璃钢雕塑厂家电话湖北创意玻璃钢雕塑价位天津玻璃钢动物雕塑厂曲阳玻璃钢橙子雕塑山东园林玻璃钢雕塑沈阳商场美陈雕塑设计玻璃钢雕塑厂家动态秦淮商场圣诞美陈组合式玻璃钢花盆销售厂家泰安商场美陈道具商场天窗美陈ip深圳透明玻璃钢雕塑山西步行街玻璃钢雕塑多少钱山东商城玻璃钢园林艺术雕塑苏州玻璃钢雕塑卡通宝山区专业玻璃钢雕塑厂家供应兰州玻璃钢植物雕塑公司网格玻璃钢雕塑玻璃钢雕塑直销工厂江门景观玻璃钢动物雕塑菏泽不锈钢水景玻璃钢卡通雕塑方城玻璃钢雕塑加工厂家丽水玻璃钢广场雕塑合肥玻璃钢仿铜麒麟雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化