嵌入式开发基础从启动例程到硬件之程序是如何运行的?

本文介绍了嵌入式开发中程序的运行时结构,包括递归调用示例、程序的代码与变量部分存储、以及使用帧指针访问堆栈的基本机制。在嵌入式软件中,理解程序的启动和运行时结构至关重要,因为内存资源有限且调试环境可能不完善。文章强调了volatile关键字和堆栈管理的重要性,特别指出在微型计算机中堆栈溢出可能导致的问题。
摘要由CSDN通过智能技术生成

概述

在嵌入式软件中,存在着一般的应用软件中没有的想法。在这里,对“嵌入”特有的几个概念进行解说。例如,程序的运行时间结构和启动程序,中断,排列的实体,同步/非同步,volatile,
硬件等。

在计算机编程中,特别是C、C++、C#和Java编程语言中,volatile关键字表明,即使它们看起来没有改变,值也可能在不同的访问之间改变。

在此,对希望以嵌入式软件开发者为目标的新人们理解的想法进行解说。在这里解说的内容,在一般的C语言和软件开发的解说书中几乎没有说明(或许,也许大家周围的前辈也解释不清楚)。但是,在嵌入式软件开发中是极其重要的考虑方法。
另外,虽然也有关于硬件的说明,但是绝对不要认为“我是软件技术人员,所以没有关系”等。为了在这个世界上长期作为技术人员进行工作,严禁拥有软件技术人员或硬件技术人员的框架。
本文所说明的知识大致可以分为以下两部分。

  1. 启动程序的结构和启动程序运行的基本机制。
    运行时结构,启动例程,数组实体,volatile,异步调用。
  2. 程序在微型计算机(系统)和外部之间交换数据的基础知识。
    轮询和中断,边缘触发器和级别侦听,内存和端口。

关于C语言的书的内容,几乎都是关于C语言的语法和使用方法的解说。只要在Windows和Linux/UNIX上编程就足够了。例如,在Linux和UNIX上,就像咒语一样,
%cc example.c。
如果输入命令,编写在文件example.c中的C语言程序将被编译,生成一个名为a.out的可执行文件。
%./a.out。
如果输入命令,在文件example.c中写的程序(如果你想)执行。这个程序根据使用的OS环境和编译器等略有变化,但是在Windows和Linux/UNIX的环境下,基本上写main函数以后的程序,只需编译并运行该文件。为了运行程序,您不需要在意程序的启动和运行时的结构等问题。

程序是如何运行的?

程序是以怎样的方式运行的(程序的运行时结构),在一般的C语言的解说书中没有写出来。这是在开发在Windows和Linux/UNIX等OS上运行的程序时,运行时结构是由OS决定的,
因为使用C语言编程的人不必在意它。
但是,在嵌入式软件的开发中并不是这样的,那是因为可以使用的内存量有限制(也就是内存量少),以及调试环境不一定像Windows和Linux/UNIX时那样完备。
实际上,能够

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值