[ARM入门] KEIL 编译器问题

[复制链接]
805|0
 楼主| dm8832 发表于 2017-3-4 17:30 | 显示全部楼层 |阅读模式
      一直使用keil,最近研究了下--use_frame_pointer选项,KEIL会将当前函数的堆栈起始地址(frame pointer)记录到R11,
当进入函数时一般会push {r11,lr},保存调用者的跳转地址和frame pointer,这样形成了一个call stack链表,当程序出现异常时,
就能分析出调用关系。
      问题是,我发现当某个函数里没有调用其他函数时,编译器只push {r11},就没法在堆栈中形成call stack链表,
怎么强制让keil在函数调用时push lr?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部