主题 : 为啥不能使用全局变量、数组和字符串呢? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 99737
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2014-01-08
最后登录: 2014-01-13
楼主  发表于: 2014-01-11 13:58

 为啥不能使用全局变量、数组和字符串呢?

210裸机,直接从IRAM里运行,从点亮LED开始,还很顺利。但到了串口控制那部分,单个字符输入输出都没问题,想字符串就不行了。后来发现问题在于不能定义全局变量、数组和字符串常量(局部的也不行),程序会直接死掉。

使用了lds编译控制,写了lds
SECTIONS
{
    . = 0x00000000;
    .text : {
        start.o
        * (.text)
    }
    .bss : {
        * (.bss)
    }
    .data : {
        * (.data)
    }    
}
也不行。。。

网上有高手说还要写代码copy那个data和bss,可是历程中13.uart_stdio也没有这种copy代码啊!通过minitools下进去就行,通过IRAM直接引导就不行了。哪位高手给指点下吧!
级别: 新手上路
UID: 99737
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2014-01-08
最后登录: 2014-01-13
1楼  发表于: 2014-01-11 14:42
难道说BL1里就支持这些段设置,从而不能使用全局变量、数组和字符串?
级别: 侠客
UID: 81596
精华: 0
发帖: 61
金钱: 310 两
威望: 62 点
综合积分: 122 分
注册时间: 2012-11-11
最后登录: 2016-12-26
2楼  发表于: 2014-01-13 00:33
BL1支持使用全局量 我这里没问题的
arm-none-linux-gnueabi-ld -Ttext 0xD0020010 $(OBJ) -N 加上-N