现在有一个程序是分BANK的,在某一BANK中有一条 printf("test0000000000000000000");编译完后发现 "test0000000000000000000"被放到了common bank中,有没有什么办法能让这个字符串被编译到一个指字的地址之后?
比如要把test0000000000000000000放到 0x1200地址之后的任意地方。
手上没有KEIL,可能说的不是很准确。你可以右键点开TARGET的菜单,进入设置菜单,那里有很多个TAB,TAB名不大记得了,有一个TAB是设置链接信息的,那里可以定义所有code的地址和RAM的地址,当然就包括了任何一个变量和函数的地址了。
在TARGET的标签页里勾选code banking,然后在banks选择那个数量,然后填上bank area的起始和终止地址。还要勾选‘far’memory type support
另外你的电路也要有相应的硬件分组
printf是库函数,库函数放在common bank,所以也将打印的字符串放在common bank.你一定要指定打印字符串的存储位置有什么必要吗?