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

电子说

1.2w人已加入

描述

  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

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分