0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32操作系统系列使用C语言的教程

汽车玩家 来源:CSDN 作者:CSDN 2021-08-10 23:26 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

C语言,相对于汇编有更好的可读性,便于维护等优点。下面实验将使用C语言实现点亮LED灯。C语言与硬件是紧密连在一起的,结合芯片中的flash和sram,简单了解C语言。

步骤:

  • FLASH,就是存放.bin文件的地方。SRAM,用于存放程序的堆栈,全局变量。


  • MEMORY,用于定义存储器范围。


  • AT>rom,表示将对应的SECTION放置到rom中,即Flash中。


  • _data_start / _data_end,用于说明data段在flash中的位置,方便程序将data段从flash中复制到sram中。


  • _ram_data_start,表示data段将复制到sram中的什么位置。


  • ADDR(),表示获得SECTION的运行地址vma,当程序被下载到flash后,程序开始运行时首先要将data段移动到sram中0x20000400地址处,这样程序运行时才不会出错。


  • LOADADDR(),表示获得SECTION的加载地址lma。


  • SIZEOF(),用于求SECTION的大小


  • 整个SECTIONS,可以看做是程序在flash中的布局,其中.bss不占用flash空间,它是由程序中开始运行时,在sram中开辟空间并初始化为0。


  • 各个SECTION,如.vectors\.text\.rodata\.data\.bss,分别存放不同类型的数据。


本质就是C语言中的指针操作,volatile作用是确保本条指令不会因编译器的优化而省略。如代码“RCC_APB2ENR |= 0x00000010;”,表示向寄存器的第4位(从0位开始计数)写1。

文章整合自:CSDN

编辑:ymf

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    244

    文章

    24739

    浏览量

    692766
  • STM32
    +关注

    关注

    2313

    文章

    11197

    浏览量

    374810
  • C语言
    +关注

    关注

    183

    文章

    7648

    浏览量

    146227
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    兆芯全系列CPU深度适配统信桌面操作系统V25

    这款号称国内操作系统里程碑式版本的统信桌面操作系统V25在智能化、高效性、可靠性三个维度实现了突破,推动国内操作系统从“可用”全面迈向“成熟与智能”的发展新阶段。V25桌面操作系统与兆
    的头像 发表于 04-15 18:03 1019次阅读

    操作系统体系结构

    操作系统的体系结构是一个开放的问题。正如上文所述,操作系统在核心态为应用程序提供公共的服务,那么操作系统在核心态应该提供什么服务、怎样提供服务?有关这个问题的回答形成了两种主要的体系结构:大内核和微
    发表于 01-15 08:19

    操作系统运行机制

    计算机系统中,通常CPU执行两种不同性质的程序:一种是操作系统内核程序;另一种是用户自编程序或系统外层的应用程序。对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程
    发表于 01-15 07:12

    请问CW32系列微控制器是否支持操作系统,如RTOS?

    CW32系列微控制器是否支持操作系统,如RTOS?
    发表于 12-16 08:14

    什么是嵌入式操作系统

    、嵌入式操作系统的定义 嵌入式操作系统是专门为资源受限的嵌入式设备(比如 STM32 单片机、物联网模块、工业控制器)设计的微型操作系统,核心作用是:管理硬件资源、调度多任务、提供标
    发表于 12-09 10:33

    C语言特性

    数据,实现对设备的精准控制,同时降低功耗,延长设备的使用寿命。 2、可移植性:跨平台的通行证 C 语言具有良好的可移植性,这意味着用 C 语言编写的程序可以在多种不同的硬件平台和
    发表于 11-24 07:01

    龙蜥操作系统装机量突破1000万

    11月17日,以“生态共融·智驱未来”为主题的2025龙蜥操作系统大会(OpenAnolis Conference)在北京成功举办。千余位全球技术大咖、业界精英和行业开发者齐聚一堂,深入探讨AI时代下操作系统产业发展的新趋势、新挑战与新路径,共话龙蜥社区引领
    的头像 发表于 11-20 11:40 979次阅读

    单片机的操作系统

    抢占和轮转调度,适用于低资源消耗场景(如STM32F0系列)。 ‌ ‌ μC/OS-II ‌:抢占式多任务内核,支持64个任务,内存分区管理避免碎片,中断嵌套深度达255层,适合工业控制系统
    发表于 11-14 06:18

    嵌入式实时操作系统的特点

    。 低功耗和小尺寸:实时嵌入式操作系统通常要求运行时的资源占用较少,以适应嵌入式系统对功耗和尺寸的限制。 常见的实时嵌入式操作系统包括 FreeRTOS、ThreadX、Micrium μC
    发表于 11-13 06:30

    RusT-Thread:基于Rust面向资源受限嵌入式设备的操作系统的实践 | 技术集结

    摘要随着物联网和嵌入式系统的发展,实时操作系统(RTOS)的安全性和性能需求日益提高。传统基于C语言的RTOS在内存安全和并发控制方面存在局限,容易导致缓冲区溢出、数据竞争等问题。本项
    的头像 发表于 11-07 17:37 7094次阅读
    RusT-Thread:基于Rust面向资源受限嵌入式设备的<b class='flag-5'>操作系统</b>的实践 | 技术集结

    STM32C011开发(3)----Flash操作

    STM32C011 系列微控制器内置 Flash 存储器,支持程序存储与数据保存,具备页面擦除、双字写入、读写保护等功能。本文将简要介绍 STM32C011 的 Flash 结构与特性,并通过实际代码示例,讲解 Flash 的擦
    的头像 发表于 09-18 16:48 5348次阅读
    <b class='flag-5'>STM32C</b>011开发(3)----Flash<b class='flag-5'>操作</b>

    如何选择合适的实时操作系统

    选择合适的实时操作系统(RTOS,Real-Time Operating System)可能会影响你在不同行业的职业发展路径。
    的头像 发表于 09-09 14:47 1284次阅读

    龙芯CPU与银河麒麟操作系统V11深度适配

    近日,龙芯中科受邀参加“麒麟遨天·共承长”2025中国操作系统产业大会,见证银河麒麟操作系统V11的正式发布。龙芯桌面CPU(3A5000/3A6000)、服务器CPU(3C5000/3D5000
    的头像 发表于 09-02 10:44 1133次阅读

    树莓派操作系统:版本、特性及设置完整指南!

    树莓派操作系统是什么?树莓派操作系统是由树莓派基金会专为树莓派开发的官方操作系统。它基于DebianLinux发行版,并针对树莓派的ARM架构进行了专门优化。树莓派操作系统有多个版本,
    的头像 发表于 07-28 18:26 1931次阅读
    树莓派<b class='flag-5'>操作系统</b>:版本、特性及设置完整指南!

    鸿道Intewell操作系统:人形机器人底层操作系统

    操作系统的实时性赋能东土科技的鸿道(Intewell)工业操作系统作为国内唯一通过汽车、工业控制、医疗、轨道交通四项功能安全认证的系统,为标准体系中的技术层架构提供了底层支持。其微内核虚拟化架构可将人形机器人电子架构成本降低50
    的头像 发表于 05-16 14:44 994次阅读