thinkker 发表于 2013-8-8 17:37:35

IAR的Main()函数上来就是printf,谁知道初始化在哪完成的



看到没,这个是FREESCALE 开发文档自带的程序自动产生的项目,既然main一上来就是printf,那么总要有个地方配置、初始化然后IAR自动调用编译进去吧,谁知道在哪里,是怎么设置的?

ssavr568 发表于 2013-8-8 18:29:45

stdio这个库

i55x 发表于 2013-8-8 18:51:24

这个你看看是不是semihosting

thinkker 发表于 2013-8-9 17:35:58

i55x 发表于 2013-8-8 18:51 static/image/common/back.gif
这个你看看是不是semihosting

什么意思,这里面好多初始化函数,不清楚是通过什么机制自动调用的

lileistone 发表于 2013-8-9 17:47:35

那个芯片?把工程发上来。

Freescale例程的风格是在main函数之前初始化,典型的:上电第一条指令起来是一小段汇编,然后就会调用C语言函数,比如startup,初始化data段、bss段、RAM函数等等,然后接着就调用类似system_init这样的,初始化各种外设,最后跳进main函数。

lileistone 发表于 2013-8-9 17:50:04

哦我刚看到主楼还有图,你在common或者cpu那个文件夹里翻翻,找crt0.s,start.c或者startup.c或者common_startup()这样的,估计在这里初始化的。
我们以前K10和Coldfire 52258的例程就是在main函数之前做完初始化的

thinkker 发表于 2013-8-9 18:02:20

lileistone 发表于 2013-8-9 17:50 static/image/common/back.gif
哦我刚看到主楼还有图,你在common或者cpu那个文件夹里翻翻,找crt0.s,start.c或者startup.c或者common_st ...

谢谢!找到了,初始化是在start.c里的start函数,在crt0.s里调用了start。start()函数里跳到了main()函数。
页: [1]
查看完整版本: IAR的Main()函数上来就是printf,谁知道初始化在哪完成的