C语言,相对于汇编有更好的可读性,便于维护等优点。下面实验将使用C语言实现点亮LED灯。C语言与硬件是紧密连在一起的,结合芯片中的flash和sram,简单了解C语言。
步骤:
- FLASH,就是存放.bin文件的地方。SRAM,用于存放程序的堆栈,全局变量。
- MEMORY,用于定义存储器范围。
- _data_start / _data_end,用于说明data段在flash中的位置,方便程序将data段从flash中复制到sram中。
- _ram_data_start,表示data段将复制到sram中的什么位置。
- 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
+关注
关注
237文章
22449浏览量
645873 -
STM32
+关注
关注
2239文章
10671浏览量
348738 -
C语言
+关注
关注
180文章
7530浏览量
128580
发布评论请先 登录
相关推荐
详解实时操作系统和非实时操作系统
实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统。
linux属于什么操作系统
Linux属于一种类UNIX操作系统。Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统
如何判断自己的应用需要上实时操作系统?
无线,WIFI无线。主要是数据采集,多种通信规约转换。
请问怎么判断自己的设备需要上实时操作系统;实时操作系统中,ucos、freertos、rt-thread在应用上,或者说是实时性响应上应该没区别吧。
发表于 10-28 08:12
开源操作系统大全
,重启后不会影响用户数据;KnightOS 内核具有独立特性,它采用类 Unix 的环
境,使用 Z80 的汇编语言编写,开发者可以用它来编写自己的操作系统;需要较少的内存,使用 31K 的内存即可
发表于 10-27 15:13
STM32嵌入式操作系统介绍
的分配、任务调度,控制、协调并发活动。• 目前在嵌入式领域广泛使用的操作系统有:嵌入式实时操作系统FreeRTOS、µC/OS-II、RThread、WindowsCE、VxWorks 等等.
发表于 09-28 06:59
STM32嵌入式操作系统介绍
的分配、任务调度,控制、协调并发活动。• 目前在嵌入式领域广泛使用的操作系统有:嵌入式实时操作系统FreeRTOS、µC/OS-II、RThread、WindowsCE、VxWorks 等等.
发表于 09-11 07:24
RT-Thread操作系统有哪些优势?
软件包和SDK,扩展系统功能
开发者说,RT-Thread是最简洁,优雅的开源操作系统之一,简单易用。
RT-Thread 主要采用 C 语言编写,浅显易懂,方便移植。它把面向对象的设
发表于 06-28 08:16
为什么不用Go开发操作系统?
操作系统 (OS) 是计算机系统的心脏和灵魂,它管理着计算机的硬件和软件资源,并为用户提供与计算机交互的方式。传统上,C 和 Assembly 等语言因其低开销和 “接近机器码” 的特性而被用于开发
评论