C8051F120 到底如何 code banking?

[复制链接]
5055|13
 楼主| oh_no 发表于 2007-10-16 16:50 | 显示全部楼层 |阅读模式
又快下班了,C8051F120 的 code banking 还是没有弄对.已经是第二天了,真的有点闷...

开发环境:keil v2.31
开发语言:C

我的banking方法:
1:option for target->target code banking: 4,start:0x8000,end:0xffff
2:add L51_BANK.A51 and STARTUP.A51 to the project
3:取分区指令方法:
例如:我把配置程序放在bank3,访问方法如下:
BANK_SAVE = PSBANK;
PSBANK = 0x33;  
Config();                        
PSBANK = BANK_SAVE;

哪位朋友知道,指点下如何?


  

ayb_ice 发表于 2007-10-17 08:22 | 显示全部楼层

应该有例程吧。。。

 楼主| oh_no 发表于 2007-10-17 10:31 | 显示全部楼层

按照例程弄也不对...

熟悉的朋友指点下如何?
弄了几天了...
ayb_ice 发表于 2007-10-17 11:02 | 显示全部楼层

这种芯片有硬件支持,不难吧。。。

 楼主| oh_no 发表于 2007-10-17 11:14 | 显示全部楼层

ayb_ice,你好

ayb_ice,你好,你好像清楚应该怎么BANKING,可不可以指点一下呢?
ayb_ice 发表于 2007-10-17 11:38 | 显示全部楼层

要有一部分公共代码。。。

切页时先转到公共区,再到目标区。。。
 楼主| oh_no 发表于 2007-10-17 11:45 | 显示全部楼层

OK

你的意思是:
void main()
{
PSBANK = 0x00; //转到公共区

BANK_SAVE = PSBANK;  //目标区
PSBANK = 0x33;  
Config();                        
PSBANK = BANK_SAVE;
}

对么?

我调了几天了,弄不出来,才上来问问大家的,你可不可以说得详细点?
谢谢你了.  
 楼主| oh_no 发表于 2007-10-17 11:47 | 显示全部楼层

其它的都调试好了,就差BANKING

不分区的话,系统正常运行,但很多功能加不进去,必须BANKING
但一BANKING 系统就死了...

一点表示也没有...
ayb_ice 发表于 2007-10-17 13:51 | 显示全部楼层

随便说说

一般中断函数,经常用的函数放在公共区。。。
假设有两个函数分别是A,B,而且放在两个不同的区,都是在地址0XFF00处(但不同的页),现在A调用B,肯定要借助一程序(位于公共区),这个程序先切换到B程序所在的页,然后调用B即可,换句话说,A调用B是通过一公共区的程序(假设BB)实现的。。。
其实我也没有真正用过(用不上),但仔细看过这方面的资料。。。
PIC的有些单片机是要分页的,操作其实很简单(也是硬件支持的),可以参考一下。。。
 楼主| oh_no 发表于 2007-10-17 15:47 | 显示全部楼层

ayb_ice,谢谢你的指点

访问不同的BANK的时候,就是通过设置PSBANK来取指令,就是ayb_ice你所说的"这个程序先切换到B程序所在的页,然后调用B即可"
但就是不行,单片机一点表示都没有了...

事太多了,心烦意乱...

大家如知道,指点一下,我静下心来再看看DATASHEET吧.

先谢谢了!

ayb_ice 发表于 2007-10-17 16:34 | 显示全部楼层

你忽略了一点,任何切页程序必须在公共区。。。

 楼主| oh_no 发表于 2007-10-17 17:08 | 显示全部楼层

其实,系统一起动,它就在common运行

系统一起动就在common区运行,如果要调用其它bank中的指令的话,可以改变psbank来实现

我理解就是这样的,但是一直不行...

void main()
{
PSBANK = 0x00; //转到公共区  这句应该去掉

BANK_SAVE = PSBANK;  //目标区
PSBANK = 0x33;  
Config();                        
PSBANK = BANK_SAVE;
}

 楼主| oh_no 发表于 2007-10-17 17:08 | 显示全部楼层

又快下班了...

haibin2011 发表于 2012-3-27 23:17 | 显示全部楼层
13# oh_no 我也遇到这样的问题,我代码是90多k,现在也经常遇到程序跑不动,跑飞!你解决了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

8

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部