1. 为什么单片机不需要编写启动代码
有启动代码的,而且可以改的,就是那个startup.asm文件,是个汇编程序
2. 请问什么是启动代码(单片机或者arm的)
cortex
m3现在没有所谓的arm几的区分了,就像你在手机上见的a8,a9一样。此外还有汽车上的r系列。cortex系列现在好像只有三中,m0(超低功耗),m1(fpga上实现),m3(跟m0差不多,也是为了取代普通的单片机的高性价比产品),m4没怎么注意
3. 有关keil51的STARTUP.A51的问题
别用所谓的汉化版、并不是所有工程都必须使用用户自定义的startup.a51的。如果项目中没有,则Keil亦会通过库中的启动代码实现标准化的启动流程。
Keil C51是美国Keil Software公司(ARM公司之一)出品的51系列兼容单片机C语言软件开发系统。
与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
系统介绍:
支持8051微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。
Keil C51目前由ARM国内授权代理商提供技术支持和销售等相关服务。
产业标准的Keil C编译器、宏汇编器、调试器、实时内核、单板计算机和仿真器,支持所有的251系列微控制器,帮助你如期完成项目进度。
以下图表显示Keil的开发工具以及它们相互之间的接口。
4. 单片机C语言 控制多个电机启动代码
这要看是什么电机,发送6400个脉冲具体走多少,要看看电机具体的控制模式。
5. 单片机的启动代码start.s,汇编写的,并没有说地址是在什么位置,怎么可以保证这段代码不是在中断区域。
有些不太明白你的意思,如果是用汇编写的在程序开始之前你应该会定义数据段,程序段以及常数段一类的.至于你说的我觉理解你说的是两种情况:第一,程序在遇到中断的时候,主程序会怎么执行的问题.也就是你说的启动代码在不在中断区域的问题,.其实程序在遇到中断的时候会将在当前指令压栈,保护当前数据,并跳到中断,执行完中断程序过后再回到先前主程序压栈的地方,继续执行主程序.所以说中断程序在什么位置是没有多大影响的,他是你设置的一个定时时间,时间到了就去执行,第二种情况:是你疑惑中断代码,启动代码在整个程序中的位置问题,关于这个我想说在程序开始之前,汇编语言一般都会有
0X00H是程序起始地址,0X08H是中断向量.我不能很理解你的意思,所以,只能说这些,希望对你有帮助!
6. 请教单片机的启动过程
看过一篇文章说道:
CPU启动后到有两种方式:
1、CPU重启后,将其PC寄存器设为特定地址,只要用户的起始程序存在这个地址,就可以被正确执行;
——貌似51就是启动后将PC寄存器设为00H。
2、CPU重启后,会将CPU中存储中断矢量表地址的寄存器设为某特定地址,接着引发RESET中断,程序
员只要把中断矢量表存储在这个地址。并指定RESET中断的处理程序为自己写的某个函数,则该函数就可以在
开机后被CPU执行。
——中断矢量表不是固定在FLASH内部的一段内存吗?怎么又多了个存储中断矢量表的寄存器?
——栈、堆等的初始化到底是在RESET中断的执行之前还是之后?
由于,应用到的程序一直是用C写的,很少去关心单片机的启动过程,往往编译器也有现成的傻瓜版启动代码,
至于汇编毕业后就都忘得7788了。所以,单片机启动过程这一块我还是很乱很迷糊的,希望哪位有经验的朋友
能够指导或者做个概述一下,万分感谢!~
7. 请问什么是启动代码(单片机或者arm的)
位于单片机或者arm内部的程序存储空间,一般是从0开头,总大小不定的一段程序空间(本段空间受到特别保护的),里面存储的一段代码就是启动代码,通过它可以实现通过任意端口更新其他程序空间的程序以及完成一些外围硬件复位的工作
8. 单片机关于STARTUP.A51
用包含一词好像有点不妥,当在kiel C中新建项目时,会问:
Copy standard 8051 Starup Code to Project Forder and add file to Project?
翻译为:复制8051启动代码到项目并和添加文件到项目?
其实无论您选是还是否,您的代码中都将包含该文件。
该文件的作用是 初始化 内外部 RAM使其清零,另外还初始化SP等。
如果上述提示框您选否,对哪些RAM清零将采用默认的方式。
如果您想改变RAM清零区域(假如希望复位时某些RAM不被清零时会很有用。),您可以选是,这样该文件的一个副本将添加到您的项目,您可以根据需要改写此文件。
其他SP,SAMLL/COMPACT、LARGE模式的重入函数的堆栈和指针的初始化等和RAM的道理是一样的。
9. kill c51,51单片机启动代码
如果用户采用C语言编译程序,那么startup.a51可以在执行用户的main函数之前,对系统进行一些初始化工作。
初始化内容包括内部及外部RAM的清零、栈初始化等等。用户也可以根据自己的需要修改startup.a51中的初始化代码。
10. 如图所示:Keil v4单片机编程软件里对C52单片机在新建工程时会有一个启动代码,这个启动代码有什么作用
完成一些基本的初始化工作,例如RAM初始化、栈初始化。
对于用C写的用户程序而言,这样确保跑进main()函数之前系统已经有了一个可控的、稳定的初始工作环境。