首页 > 代码库 > 旧文-使用Sourcery G++ Lite Edition + keil 进行开发ARM- 2010年02月21日 10:43

旧文-使用Sourcery G++ Lite Edition + keil 进行开发ARM- 2010年02月21日 10:43

一致使用winarm + keil进行ARM开发,但是兼容性不好,例如有时候无法链接,而且WINARM已经很长时间没有更新了,故决定使用Sourcery G++ Lite Edition替换WINARM。
主要遇到了一下几个问题:
1,无法链接_isatty()函数。
把原来的isatty()函数改名为_isatty()即可。
2,(.ARM.exidx+0x0): undefined reference
(.ARM.exidx+0x0): relocation truncated to fit: R_ARM_PREL31 against `.text‘
 
链接脚本中添加:
.ARM.exidx : 
    {
         __exidx_start = .; 
        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
         __exidx_end = .; 
    } >eflash
 
3,sh_link not set for section `.ARM.exidx‘
把上述脚本改为:
/* .ARM.exidx is sorted, so has to go in its own output section.*/
    . = ALIGN(4); 
     __exidx_start = .; 
     PROVIDE(__exidx_start = __exidx_start); 
    .ARM.exidx : 
    {
        /* __exidx_start = .; */
        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
        /* __exidx_end = .; */
    } >eflash
    . = ALIGN(4); 
     __exidx_end = .;
     PROVIDE(__exidx_end = __exidx_end); 

旧文-使用Sourcery G++ Lite Edition + keil 进行开发ARM- 2010年02月21日 10:43