共2条
1/1 1 跳转至页
ICCAVR ICCAVR编译代码,给出如下的错误提示,请各位高手帮助看看?
问
错误提示内容为:
!W C:/ICC/include/io8515.h(3): D:\1project\1335SED\1335sed_2.c(1): #warning directive: "This header file may not be current. Please use io8515v.h instead"
C:\ICC\BIN\imakew -f 1335sed_1.mak
iccAVR -o 1335sed_1 -LC:\ICC\lib\ -g -Wl-W -bfunc_lit:0.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S0 @1335sed_1.lk
!E 1335sed_2.o(120): Code address 0 already contains a value
!E 1335sed_2.o(120): Code address 0x1 already contains a value
C:\ICC\BIN\IMAKEW.EXE: Error code 1
Done: there are error(s). Exit code: 1
该错误提示指出了什么样的错误,一般如何改正啊,谢谢。
答 1: 那你还说编译通过了? 答 2: 这样改一下#include "io8515.h" => #include "io8515v.h" 答 3: 谢谢dadodo,改过了但还是不行啊。晓奇大哥的程序是可以通过编译的。
我是把他的代码给修改了一下,修改后,就不行了。 答 4: 代码内容如下:此程序代码为使用8515初始花液晶模块sed1335的。
如将各数组的定义中的const去掉,程序可以通过编译。
但是初始化还是不成功啊。请各位也帮忙看看。
#include "io8515v.h"
#include <stdlib.h>
#include <macros.h>
#define Uchar unsigned char
#define Uint unsigned int
#define BasePart1 0x00
#define BasePart2 0x40
#define BasePart3 0x80
#define BasePart4 0x00
// #define wait asm("nop\n nop)
//#pragma data:code
const Uchar null[1]={0x00};
const Uchar ParaSysTable8[8]= {0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 };
const Uchar ParaScrTableA[10]={0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4};
const Uchar scrform_ini[2]={0x07,0x00};
const Uchar hdot_scr_ini[1]={0x00};
const Uchar ovlay_ini[1]={0x04};
const Uchar disp_on_ini[1]={0x54};
const Uchar cur_set_ini1[2]={0x00,0x00};
//#pragma data:data
#define SystemSet 0x40
#define Scroll 0x44
#define DispOn 0x59
#define DispOff 0x58
#define Ovlay 0x5b
#define HdotScr 0x5a
#define CsrForm 0x5d
#define CgramAdr 0x5c
#define CsrDirR 0x4c
#define CsrDirL 0x4d
#define CsrDirU 0x4e
#define CsrDirD 0x4f
#define CsrW 0x46
#define CsrR 0x47
#define mWrite 0x42
#define mRead 0x43
#define Busy 0x40
void LcmInition( void );
//void Delay( Uint );
void LcmClear( void );
void SelfInit( void );
void WaitForBusy( void );
void sed1335_write(unsigned char commandcode,const unsigned char *parameter,int n)
{
int i=0;
PORTC |=0x02; //a0=1;
PORTC &=0xf7; //write=0;
WaitForBusy();
PORTA=commandcode;
PORTC |=0x04; //read=1;
//delay
PORTC &=0xfb; //read=0;
for(i=0;i<n;i++)
{
PORTC &=0xfd; //a0=0;
PORTC &=0xf7; //write=0;
WaitForBusy();
PORTA=*(parameter+i);
PORTC |=0x04; //read=1;
PORTC &=0xfb; //read=0;
}
}
void main( void ) {
// Uchar i;
SelfInit();
//delaytimer(500);
LcmInition();
LcmClear();
}
void SelfInit( void ) {
PORTC = 0xff;
DDRC = 0xff;
DDRA = 0xFF;
PORTA = 0xFF;
//MCUCR |=BIT(SRE)|BIT(SRW);
//TCCR0 = 0b00000011;
//TCNT0 = 0;
//tc0_ov_enable();
//SREG |= 0x80;
}
void LcmInition( void ) {
Uchar i;
sed1335_write(SystemSet,ParaSysTable8,8);
sed1335_write(Scroll,ParaScrTableA,10);
sed1335_write(CsrForm,scrform_ini,2);
sed1335_write(HdotScr,hdot_scr_ini,1);
sed1335_write(Ovlay,ovlay_ini,1);
sed1335_write(DispOn,disp_on_ini,1);
}
void LcmClear( void ) {
Uint i1=32768;
sed1335_write(CsrDirR,null,1);
sed1335_write(CsrW,cur_set_ini1,2);
PORTC |=0x02; //a0=1;
PORTC &=0xf7; //write=0;
PORTA =mWrite;
PORTC |=0x04; //read=1;
//delay
PORTC &=0xfb; //read=0;
while(i1--) {
PORTC &=0xfd; //a0=0;
PORTC &=0xf7; //write=0;
PORTA =0x00;
PORTC |=0x04; //read=1;
//delay
PORTC &=0xfb; //read=0;
}
}
void WaitForBusy( void ) {
while ( PINA & Busy );
}
答 5: to 真水无香 ,你这个程序我用ICCAVR编译通过,没错啊。 答 6: 这样修改只是解决你上面的编译错误程序自身的问题还得你自己查 答 7: 谢谢lm7556和dadodo,不过to:dadodo
这个小弟是知道的,小弟只是想解决编译错误。
to:lm7556
好像是我在option中的目标单片机没有选择的原因吧。我后来选了8515就好了。
不过奇怪的是。编译成功过一次,再把option中的目标单片机改回为custom,再编译,也能通过编译了。
再次谢谢两位的帮助。
!W C:/ICC/include/io8515.h(3): D:\1project\1335SED\1335sed_2.c(1): #warning directive: "This header file may not be current. Please use io8515v.h instead"
C:\ICC\BIN\imakew -f 1335sed_1.mak
iccAVR -o 1335sed_1 -LC:\ICC\lib\ -g -Wl-W -bfunc_lit:0.0x2000 -dram_end:0x25f -bdata:0x60.0x25f -dhwstk_size:16 -beeprom:1.512 -fihx_coff -S0 @1335sed_1.lk
!E 1335sed_2.o(120): Code address 0 already contains a value
!E 1335sed_2.o(120): Code address 0x1 already contains a value
C:\ICC\BIN\IMAKEW.EXE: Error code 1
Done: there are error(s). Exit code: 1
该错误提示指出了什么样的错误,一般如何改正啊,谢谢。
答 1: 那你还说编译通过了? 答 2: 这样改一下#include "io8515.h" => #include "io8515v.h" 答 3: 谢谢dadodo,改过了但还是不行啊。晓奇大哥的程序是可以通过编译的。
我是把他的代码给修改了一下,修改后,就不行了。 答 4: 代码内容如下:此程序代码为使用8515初始花液晶模块sed1335的。
如将各数组的定义中的const去掉,程序可以通过编译。
但是初始化还是不成功啊。请各位也帮忙看看。
#include "io8515v.h"
#include <stdlib.h>
#include <macros.h>
#define Uchar unsigned char
#define Uint unsigned int
#define BasePart1 0x00
#define BasePart2 0x40
#define BasePart3 0x80
#define BasePart4 0x00
// #define wait asm("nop\n nop)
//#pragma data:code
const Uchar null[1]={0x00};
const Uchar ParaSysTable8[8]= {0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 };
const Uchar ParaScrTableA[10]={0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4};
const Uchar scrform_ini[2]={0x07,0x00};
const Uchar hdot_scr_ini[1]={0x00};
const Uchar ovlay_ini[1]={0x04};
const Uchar disp_on_ini[1]={0x54};
const Uchar cur_set_ini1[2]={0x00,0x00};
//#pragma data:data
#define SystemSet 0x40
#define Scroll 0x44
#define DispOn 0x59
#define DispOff 0x58
#define Ovlay 0x5b
#define HdotScr 0x5a
#define CsrForm 0x5d
#define CgramAdr 0x5c
#define CsrDirR 0x4c
#define CsrDirL 0x4d
#define CsrDirU 0x4e
#define CsrDirD 0x4f
#define CsrW 0x46
#define CsrR 0x47
#define mWrite 0x42
#define mRead 0x43
#define Busy 0x40
void LcmInition( void );
//void Delay( Uint );
void LcmClear( void );
void SelfInit( void );
void WaitForBusy( void );
void sed1335_write(unsigned char commandcode,const unsigned char *parameter,int n)
{
int i=0;
PORTC |=0x02; //a0=1;
PORTC &=0xf7; //write=0;
WaitForBusy();
PORTA=commandcode;
PORTC |=0x04; //read=1;
//delay
PORTC &=0xfb; //read=0;
for(i=0;i<n;i++)
{
PORTC &=0xfd; //a0=0;
PORTC &=0xf7; //write=0;
WaitForBusy();
PORTA=*(parameter+i);
PORTC |=0x04; //read=1;
PORTC &=0xfb; //read=0;
}
}
void main( void ) {
// Uchar i;
SelfInit();
//delaytimer(500);
LcmInition();
LcmClear();
}
void SelfInit( void ) {
PORTC = 0xff;
DDRC = 0xff;
DDRA = 0xFF;
PORTA = 0xFF;
//MCUCR |=BIT(SRE)|BIT(SRW);
//TCCR0 = 0b00000011;
//TCNT0 = 0;
//tc0_ov_enable();
//SREG |= 0x80;
}
void LcmInition( void ) {
Uchar i;
sed1335_write(SystemSet,ParaSysTable8,8);
sed1335_write(Scroll,ParaScrTableA,10);
sed1335_write(CsrForm,scrform_ini,2);
sed1335_write(HdotScr,hdot_scr_ini,1);
sed1335_write(Ovlay,ovlay_ini,1);
sed1335_write(DispOn,disp_on_ini,1);
}
void LcmClear( void ) {
Uint i1=32768;
sed1335_write(CsrDirR,null,1);
sed1335_write(CsrW,cur_set_ini1,2);
PORTC |=0x02; //a0=1;
PORTC &=0xf7; //write=0;
PORTA =mWrite;
PORTC |=0x04; //read=1;
//delay
PORTC &=0xfb; //read=0;
while(i1--) {
PORTC &=0xfd; //a0=0;
PORTC &=0xf7; //write=0;
PORTA =0x00;
PORTC |=0x04; //read=1;
//delay
PORTC &=0xfb; //read=0;
}
}
void WaitForBusy( void ) {
while ( PINA & Busy );
}
答 5: to 真水无香 ,你这个程序我用ICCAVR编译通过,没错啊。 答 6: 这样修改只是解决你上面的编译错误程序自身的问题还得你自己查 答 7: 谢谢lm7556和dadodo,不过to:dadodo
这个小弟是知道的,小弟只是想解决编译错误。
to:lm7556
好像是我在option中的目标单片机没有选择的原因吧。我后来选了8515就好了。
不过奇怪的是。编译成功过一次,再把option中的目标单片机改回为custom,再编译,也能通过编译了。
再次谢谢两位的帮助。
共2条
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分 |