历史上的今天
今天是:2024年12月18日(星期三)
2018年12月18日 | 深度讨论32复位及SystemInit函数在程序中的作用
2018-12-18 来源:eefocus
在32应用中,我们复位一般有两种方式:
1.按复位按键复位程序
2.拔动单片机上的跳冒完成32的
以上两种复位方式中,对芯片而言,其实都是引脚接收到一个跳变延信号后触发的程序而已。在keil自带的固件库中,我们可以看到一下程序:

这里是从库中截出的复位程序代码段。EXPORT定义了一个全局变量 Reset_Handler 。IMPORT表示引用了一个函数,这里引进的_main函数的作用是把我们平时写的主函数中的main函数起作用,将C程序与底层汇编程序连接起来,使程序发挥作用。而我们在刚开始学习的时候,经常会发现别人写的环境中,总有一个函数不知道什么意思:SystemInit()。我们看会图片中150行中引入了SystemInit这个函数,在下一行并调用了该函数,然而却没有申明,因此如果我们在写主程序时如果没有在main外面声明一个新的SystemInit函数,编译时程序将报错。

由图所示写一个空的函数出来即可,目的就是为了骗过编译器不报错。注意此处的函数名不要打错,要和固件库里的函数名一样。
如果你在Keil中遇到这种错误:
..\OBJ\Template.axf: Error: L6218E: Undefined symbol assert_param (referred from misc.o).
就是说明你没有对SystemInit()函数定义,因此在任意的.c函数中对SystemInit()定义即可解决该问题,函数里可以为空。

史海拾趣
|
本帖最后由 paulhyde 于 2014-9-15 09:17 编辑 明天就要开始比赛了。。你们小组准备的怎么样了。。(。。。) … 查看全部问答> |
|
DSP的io的耐压很严格吗 超过3.3就要烧它吗,我看资料极限值是4.75 我想用28030的DSP,不过用了都是16位的外部ADC和DAC,它们都是5V的片子, 这样都行进电压转换是不是很麻烦,必须要进行电压转换吗? 输入是5V转3.3v。输出是3,3转5v??? 还 ...… 查看全部问答> |
|
小弟入手m8,想做个m8能用的应用程序作为本科毕业设计,请各位大虾帮忙指点一下题目 小弟学的是计算机科学与技术,有c++,c#开发的基础,但是对wince知之甚少,现在正在苦学。前些时买了魅族的m8,正好要做毕业设计,所以想干脆做个wince的应用程序,因为现在也有了m8的sdk,但是不知做什么题目好,请各位大虾指点迷津!!!小弟不胜 ...… 查看全部问答> |
|
我是初学者,我用LM3s811编的4*4键盘程序哪位好心人帮修改一下,谢谢了 #include \"hw_ints.h\" #include \"hw_memmap.h\" #include \"hw_types.h\" #include \"gpio.h\" #include \"sysctl.h\" #include #include unsigned long Sysclk = 12000000UL; // 防止JTAG失效 void jtagWait(void) { ...… 查看全部问答> |
|
本帖最后由 wateras1 于 2014-2-26 16:00 编辑 最近看论坛正在如火如荼的进行着TI的蓝牙无线传感器活动,但是工欲善其事必先利其器,没有一个调试器,有了那个套件也没用,只能大眼睁小眼,瞎耗了。我看了网上卖那个CCDEBUGEER,最低都要98元,对 ...… 查看全部问答> |
|
2块几乎一样的板卡,4G和8G的SD卡能在一张上引导系统,另一张只有4G可以,是什么原因? 我有2块利用FSL的imx53组成的最小系统,2块板卡就只有使用的DDR的厂商和型号不一样的,但是2块上的DDR的容量都是256M一片,且都是DDR3,其余的配 ...… 查看全部问答> |




