1 现象

  每次创建keil工程的時候都会弹出提示: Copy stardard 8051 startup code to project folder and add file to project。

2 解决:

(1)在执行C代码之前都要先运行一个汇编程序,这个汇编程序叫做startup code(启动程序),其作用是对单片机进行初始化操作,为主函数设置堆栈,运行完成之后才开始执行C程序中的主函数。

  加载的startup.A51文件,其主要作用是:上电时初始化单片机的硬件堆栈、初始化RAM、初始化模拟堆栈和跳转到主函数main。硬件堆栈是用来存放函数调用地址、变量和寄存器值的;模拟堆栈是用来存放可重入函数的,可重入函数就是同时给多个任务调用,而不担心数据的丢失,可重入函数一般在嵌入式系统中有所体现。如果不加载该文件,编译的代码可能会是单片机工作异常。

(2)如果沒有添加该启动程序,KEIL会默认预先执行该程序;如果添加该启动程序,可以修改此程序,运行时使用的就是经过修改的启动程序了。

3. 参考资料

(1)每次創建keil工程的時候都會彈出提示: Copy STANDARD 8051 startup code to project folder and add file to project_石輔寸的博客-CSDN博客

(2)keil中StartUp.A51的重要性 - 百度文库 (baidu.com)

(3)王静霞等. 单片机应用计数(C语言版)第3版[M]. 北京,电子工业出版社,2015:4.

Copy standard 8051 startup code to project folder and add file to project(STARTUP.A51)的更多相关文章

  1. intellij idea在project下同时打开多个工程(maven工程)

    前提:我的工程都是maven工程   我有两个工程,一个是接口contract,一个是接口的具体实现server.想要同时在一个工作空间下展示,方便调试开发,加载后效果如下   idea有worksp ...

  2. Win10使用Tex Live和VS Code和Latex Workshop插件编写Latex文档(未完成版本)

    首先取Tex Live官网下载安装包:https://www.tug.org/texlive/acquire-netinstall.html 我下载的是 http://mirror.ctan.org/ ...

  3. CODE【VS】3160 最长公共子串 (后缀自动机)

    3160 最长公共子串 题目描述 Description 给出两个由小写字母组成的字符串,求它们的最长公共子串的长度. 输入描述 Input Description 读入两个字符串 输出描述 Outp ...

  4. Project Euler 46 Goldbach's other conjecture( 线性筛法 )

    题意: 克里斯蒂安·哥德巴赫曾经猜想,每个奇合数可以写成一个素数和一个平方的两倍之和 9 = 7 + 2×1215 = 7 + 2×2221 = 3 + 2×3225 = 7 + 2×3227 = 1 ...

  5. Code force-CodeCraft-20 (Div. 2) D. Nash Matrix 详解(DFS构造)

    D. Nash Matrix time limit per test2 seconds memory limit per test256 megabytes inputstandard input o ...

  6. Bulid过程中中遇到的问题UnityEditor.BuildPlayerWindow+BuildMethodException: '' is an incorrect path for a scene file. BuildPlayer expects paths relative to the project folder.

    今天,在Bulid的过程中,遇到了一个错误“ UnityEditor.BuildPlayerWindow+BuildMethodException: '' is an incorrect path f ...

  7. (Entity FrameWork)Code First to an Existing Database

    Pre-Requisites You will need to have Visual Studio 2010 or Visual Studio 2012 installed to complete ...

  8. 链接脚本(Linker Script)应用实例(一)使用copy table将函数载入到RAM中运行

    将函数载入到RAM中运行需要以下三个步骤: (1)用编译器命令#pragma section "<section name>" <user functions&g ...

  9. Visual Studio Code 快捷键大全(最全)

    Visual Studio Code 是一款优秀的编辑器,对于开发前端带来了很多便利,熟悉快捷键的使用,能够起到事半功倍的作用,提高工作效率.下面就Visual Studio Code常用快捷键的一些 ...

  10. VC++6.0 add files to project 造成Visual Studio崩溃的解决方法

    1.下载filetool.exe,然后将文件解压在一个小文件夹内2.打开filetool.dsw 在release模式下编译程序,复制filetool.dll3.放在VC6.0安装目录AddIns的下 ...

随机推荐

  1. Java源码分析系列笔记-8.CyclicBarrier

    目录 1. 是什么 2. 如何使用 2.1. 不带Runnable 2.2. 带Runnale 3. 原理分析 3.1. uml 3.2. 构造方法 3.2.1. 使用Lock和Condition实现 ...

  2. Annotation注释详解~

    注释: jdk5.0后,Java增加了对元数据的支持.也就是Annotation(注释). 他是是代码中的特殊标记,可以在代码编译,类加载,运行时被读取,并执行相应的处理.这样用Annotation开 ...

  3. ttl串口wifi模块

    串口无线模块ZLSN7046T是上海卓岚推出的wifi转串口模块.它能够将wifi信号转化为串口信号,且支持多种功能,邮票孔封装,体积小巧可以外置天线或者内置天线.7046T支持一个UART TTL电 ...

  4. POLIR-Laws-诉讼法: 判断注册公司是否有独立法人资格? + 集团客户/母公司/子公司/分公司 + 和分公司发生纠纷,如何一并起诉总公司?

    POLIR-Laws-诉讼法: 和分公司发生纠纷,如何一并起诉总公司? 判断注册公司是否有独立的"法人资格"? 法人企业与非法人企业有什么区别 一.定义上的区别: 法人企业: 是指 ...

  5. Unity 编辑器格子工具

    using UnityEditor; using UnityEngine; public class CustomGridWindow3 : EditorWindow { private Textur ...

  6. ILRuntime作者林若峰分享:优化 Dots URP 性能优化 (干货满满)

    [转载] 地址:https://www.gameres.com/877050.html 视频:https://www.bilibili.com/video/BV1ca4y1W7wN 从Unity201 ...

  7. 计算ip地址

    例如: ip:192.168.9.3 子网掩码:255.255.254.0 网关:192.168.9.1 1:IP地址 = 网络地址 + 主机地址,二进制为: 11000000 10101000 00 ...

  8. go学习笔记:panic是什么含义

    panic 是 Go 语言中的一种运行时错误处理机制,用于处理程序中的异常情况. 基本含义 panic 会: 立即停止当前函数的执行 开始执行 defer 函数(如果有的话) 向上传播到调用栈,逐层执 ...

  9. 搜索优化之 A* 与 IDA*

    A* 构成 dijkstra 优先队列优化 \(+\) BFS \(+\) 玄学长度预估 \(=\) Astar. 解释 dijkstra 优先队列优化:每一次放进优先队列(小根堆)里的是 起点到这个 ...

  10. 文献精读:气候变化、CO2浓度提高和土地利用变化对全球陆地蒸散发的影响分析

    阅读文献是Liu(2021)发表的<Response of global land evapotranspiration to climate change, elevated CO2, and ...