zqljg 发表于 2007-12-17 20:37:31

请教马潮老师avr studio访问外部SRAM设置的问题

请问在avr studio有像CAVR那样可以设置访问外部SRAM的向导吗?另外它有定义外部访问的SRAM的关键字吗,在程序里又是如何使用,谢谢!

machao 发表于 2007-12-17 20:45:49

avr studio本身只是AVR汇编的环境,所有的汇编指令要自己写.使用外部RAM和内部RAM相同,使用伪指令.ORG、.DB、.DW等直接定义。

你如果使用外部扩展的RAM,说明系统比较大和复杂了,为何使用汇编而不用C?

zqljg 发表于 2007-12-18 12:08:40

马潮老师,我是用avr stduio+winavr,就是用C语言写的啊,再次请教了,应该说是用GCC编译器吧,因为avr studio 没有像CAVR的那样的向导,谢!

machao 发表于 2007-12-18 23:19:36

winavr不是AVR STUDIO本身的东西,它是一个免费的系统,AVR STUDIO只是提供一个接口.

winavr我没认真用过,不过应该有相应的配置,请查看它的使用帮助.

sea_sky_ocean 发表于 2008-5-26 22:17:56

这个问题我也在关注,不知哪位曾经使用过?查了使用说明,好像没有发现一个说法!

cpu100 发表于 2008-5-26 22:36:33

我用过,M8515带61L256,大概的源码如下:
//1. 在工程的主头文件中,添加预定义命令 #define __XRAM_SIZE__ 指定外部 RAM 的容量。
#define __XRAM_SIZE__ 0x2000//8k


//2. 在工程的主头文件中,如下定义一个外部 RAM 初始化函数。启动代码将在初始化变量之前调用此函数。
#define __INIT1__ __attribute__ ((naked)) __attribute__ ((section (".init1")))
void __xram_init(void) __INIT1__;

//3. 在工程的主源文件中,实现该函数,触发外部 RAM 及设置等待、分区等状态。
void __xram_init(void)
{
    //MCUCR = 0x80;
        MCUCR = 0x80|(1<<SRW10);
        EMCUCR |= 1<<SRW11;//插入2个等待周期
}
页: [1]
查看完整版本: 请教马潮老师avr studio访问外部SRAM设置的问题