打印

关于IAR的ARM启动文件有问题想问...

[复制链接]
2837|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Swd21ic|  楼主 | 2008-6-30 11:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先说我用的是AT91的ARM.
Atmel给出的启动文件直接调用了segment_init来初始化变量和RAM函数.
但IAR官方的启动文件(uCOS-II移植范例中也使用了)是在最后

ldr r0 =?main
bx  r0

我看了下反汇编.?main里主要是是调用了_low_level_init()然后调用segment_init().最后再跳转到main().

以上两个函数都能在IAR目录找到..但?main却无法找到..连所有帮助文档都搜索不到..

并且我修改目录里_low_level_init()的返回值为0,程序仍然会调用segment_init()... 证明程序好象并不是链接的这两个.c.

因为最近想做个稳定了系统+ucos.想把这些搞明白~请大家帮助.

相关帖子

沙发
kelecola| | 2008-6-30 12:29 | 只看该作者

IAR不熟

我想应该和mdk里是一样的吧,在MDK里__main是编译系统提供的一个函数,负责完成初始化库函数和应用程序的执行环境,最后自动跳向main函数。

使用特权

评论回复
板凳
yewuyi| | 2008-6-30 12:36 | 只看该作者

可能打包成库文件,看不到了

使用特权

评论回复
地板
Swd21ic|  楼主 | 2008-6-30 13:32 | 只看该作者

Re

我同意楼上的观点..

但这样那里面调用的 low_level_init()就不能改了..

实际上它是个空壳子

void low_level_init(void)
{
  return(1);
}

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

781

帖子

1

粉丝