Board logo

标题: 软件Overlay:程序编写与调试(2) [打印本页]

作者: 我是MT    时间: 2015-11-3 15:23     标题: 软件Overlay:程序编写与调试(2)

二,在程序执行时期将函数加载,函数ovly_copy是一个memcpy函数,将函数从LMA复制到VMA上。当OverlayLoad(0)执行完后,overlay0函数主体便存在于VMA上,可正确的执行。

图表9为_ovly_table的内容,要标示每一个overlay section的vma, size, lma,和是否mapped。必须要注意的一点,_ovly_table要位在一个lma等于vma的区域里。

2. 调试Overlay的程序
开启自动overlay调试功能的gdb命令是overlay auto。当overlay auto开启后,对于使用者来说,与一般程序的调试方法相同。
图表8的最后一行_ovly_debug_event()的用途是让gdb能把断点加在正确的地址上,这一行要写在OverlayLoad的后面。必须要有这一行,gdb的自动overlay调试才能正常。
当用户加一个断点在被overlay的区域,gdb会在函数被加载之后(即为执行完OverlayLoad),遇到_ovly_debug_event时,自动的把断点加到overlay的地址上。
3. 参考数据
Overlay Commands https://sourceware.org/gdb/onlinedocs/gdb/Overlay-Commands.html
Automatic Overlay Debugging https://sourceware.org/gdb/onlin ... c-Overlay-Debugging
Debugging Programs That Use Overlays
http://davis.lbl.gov/Manuals/GDB/gdb_11.html
Andes BSP v3.2.0 User Manual
Chapter 12 “Linker Script Generation”




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0