关于KEIL C中CODE定址问题

woshisaochenwen   2009-7-30 12:59 楼主
现在有一个程序是分BANK的,在某一BANK中有一条 printf("test0000000000000000000");编译完后发现 "test0000000000000000000"被放到了common bank中,有没有什么办法能让这个字符串被编译到一个指字的地址之后?
比如要把test0000000000000000000放到 0x1200地址之后的任意地方。

回复评论 (3)

手上没有KEIL,可能说的不是很准确。你可以右键点开TARGET的菜单,进入设置菜单,那里有很多个TAB,TAB名不大记得了,有一个TAB是设置链接信息的,那里可以定义所有code的地址和RAM的地址,当然就包括了任何一个变量和函数的地址了。
点赞  2009-7-30 13:17
在TARGET的标签页里勾选code banking,然后在banks选择那个数量,然后填上bank area的起始和终止地址。还要勾选‘far’memory type support

另外你的电路也要有相应的硬件分组
点赞  2009-7-30 14:58
printf是库函数,库函数放在common bank,所以也将打印的字符串放在common bank.你一定要指定打印字符串的存储位置有什么必要吗?
点赞  2009-8-1 22:26
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复