共3条
1/1 1 跳转至页
ADS,v1 ADS v1.2编译出现错误信息,请大师帮忙指点!
问
(芯片是LPC21XX)
我的程序如下:
#include "config.h"
unsigned char ram[0x7d00];
void config(void)
{
unsigned int i;
for(i=0;i<0x7d00;i++){
ram[i]=0;
}
}
int main(void)
{
config();
while(1);
return 0;
}
编译出错信息:
Error : L6221E: Execution region IRAM overlaps with Execution region STACKS.
如果把 unsigned char ram[0x7d00];改为局部变量,即程序如下:
#include "config.h"
void config(void)
{
unsigned char ram[0x7d00];
unsigned int i;
for(i=0;i<0x7d00;i++){
ram[i]=0;
}
}
int main(void)
{
config();
while(1);
return 0;
}
编译才能成功。
为什么会这样呢?数组不能定义为全局变量吗?但是我需要把ram[0x7d00]定义为全局变量
的。
答 1: 换个名字试试,也许ram是编译器保留字 答 2: 我把数组名ram、函数名config换了也不行. 答 3: re:你的程序我在ADS上测试,没有问题。
可能是config.h的问题吧,我这里没有
就使用一个空的config.h文件,可以编译通过。 答 4: 非常感谢你回帖!我是用周工的工程摸板产生的项目,如果是CONFIG。H的问题,那我该怎样处理呢? 答 5: 非常感谢你回帖!我是用周工的工程摸板产生的项目,如果是CONFIG。H的问题,那我该怎样处理呢? 答 6: 周工的LPC21XX的工程摸板是不是有问题啊?如果不用周工的LPC21XX的工程摸板的话,编译连接正常,软件模拟仿真也正常,是怎么回事啊? 答 7: ram 定义的太大了。改成10个字节试试 答 8: 周工,我是用你的工程摸板建立的项目,怎么会出现这个问题呢? 答 9: ZLGARM,麻烦你看看我的问题可以吗? 答 10: 应该是没有那么多ram空间了可能:
全局变量未被优化,产生rw空间溢出,而局部变量由于在你的程序中没有做什么实质性的操作而被优化掉了所以不参加连接所以没有报错,不信声明局部变量时候加static试试。 答 11: 刚才我用你们的EASYARM《实验程序》中的LEDDISP作实验。刚才我用你们光盘中的\EASYARM\实验程序\GPIO_TEST\LEDDISP作实验。用我的程序替换了LEDDSP.c,结果是编译正常,软件仿真也能正常的! 答 12: 搞定了,感谢各位!
我的程序如下:
#include "config.h"
unsigned char ram[0x7d00];
void config(void)
{
unsigned int i;
for(i=0;i<0x7d00;i++){
ram[i]=0;
}
}
int main(void)
{
config();
while(1);
return 0;
}
编译出错信息:
Error : L6221E: Execution region IRAM overlaps with Execution region STACKS.
如果把 unsigned char ram[0x7d00];改为局部变量,即程序如下:
#include "config.h"
void config(void)
{
unsigned char ram[0x7d00];
unsigned int i;
for(i=0;i<0x7d00;i++){
ram[i]=0;
}
}
int main(void)
{
config();
while(1);
return 0;
}
编译才能成功。
为什么会这样呢?数组不能定义为全局变量吗?但是我需要把ram[0x7d00]定义为全局变量
的。
答 1: 换个名字试试,也许ram是编译器保留字 答 2: 我把数组名ram、函数名config换了也不行. 答 3: re:你的程序我在ADS上测试,没有问题。
可能是config.h的问题吧,我这里没有
就使用一个空的config.h文件,可以编译通过。 答 4: 非常感谢你回帖!我是用周工的工程摸板产生的项目,如果是CONFIG。H的问题,那我该怎样处理呢? 答 5: 非常感谢你回帖!我是用周工的工程摸板产生的项目,如果是CONFIG。H的问题,那我该怎样处理呢? 答 6: 周工的LPC21XX的工程摸板是不是有问题啊?如果不用周工的LPC21XX的工程摸板的话,编译连接正常,软件模拟仿真也正常,是怎么回事啊? 答 7: ram 定义的太大了。改成10个字节试试 答 8: 周工,我是用你的工程摸板建立的项目,怎么会出现这个问题呢? 答 9: ZLGARM,麻烦你看看我的问题可以吗? 答 10: 应该是没有那么多ram空间了可能:
全局变量未被优化,产生rw空间溢出,而局部变量由于在你的程序中没有做什么实质性的操作而被优化掉了所以不参加连接所以没有报错,不信声明局部变量时候加static试试。 答 11: 刚才我用你们的EASYARM《实验程序》中的LEDDISP作实验。刚才我用你们光盘中的\EASYARM\实验程序\GPIO_TEST\LEDDISP作实验。用我的程序替换了LEDDSP.c,结果是编译正常,软件仿真也能正常的! 答 12: 搞定了,感谢各位!
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |