Ⅰ kill c51,51单片机启动代码
如果用户采用C语言编译程序,那么startup.a51可以在执行用户的main函数之前,对系统进行一些初始化工作。
初始化内容包括内部及外部RAM的清零、栈初始化等等。用户也可以根据自己的需要修改startup.a51中的初始化代码。
Ⅱ 单片机关于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的道理是一样的。
Ⅲ MDK 如何加载启动代码
有一个汇编语言写的程序,名字类似 startup_xxxx.s, 单片机启动后就是首先进入该启动代码,该启动可能会调用SystemInit函数,这个函数可以在Keil的 ARM/INC 目录里面对应不同的单片机有不同的文件(.c文件),里面就实现了该函数。
Ⅳ 单片机的启动代码start.s,汇编写的,并没有说地址是在什么位置,怎么可以保证这段代码不是在中断区域。
有些不太明白你的意思,如果是用汇编写的在程序开始之前你应该会定义数据段,程序段以及常数段一类的.至于你说的我觉理解你说的是两种情况:第一,程序在遇到中断的时候,主程序会怎么执行的问题.也就是你说的启动代码在不在中断区域的问题,.其实程序在遇到中断的时候会将在当前指令压栈,保护当前数据,并跳到中断,执行完中断程序过后再回到先前主程序压栈的地方,继续执行主程序.所以说中断程序在什么位置是没有多大影响的,他是你设置的一个定时时间,时间到了就去执行,第二种情况:是你疑惑中断代码,启动代码在整个程序中的位置问题,关于这个我想说在程序开始之前,汇编语言一般都会有
0X00H是程序起始地址,0X08H是中断向量.我不能很理解你的意思,所以,只能说这些,希望对你有帮助!