An error I don't understand...

Go To Last Post
13 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Usually I understand what the compiler is complaining about and find what I have boogered up, but this one has me mystified.

It's pointing to the line:

int LCDStringPx( const __memx uint8_t font[], const __memx char* s)

and it just says, "in convert_debug_memory_address, at cfgexpand.c:2528"

Here's the whole function

int LCDStringPx( const __memx uint8_t font[], const __memx char* s)
{
	int l = 0 ;
	while (*s != 0) 
	{
		char c = *s++ ;
		uint16_t BitPointer = * (font + (c-31)*2);
		BitPointer = BitPointer | ((uint16_t) * (font + (c-31)*2 + 1)<<8) ;
		uint8_t CharWidth = * (font+BitPointer++) ;
		l += CharWidth + 1 ;
	}	
	return l ;
}

"Haylp! Ah says Haylp!"

Attachment(s): 

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

:: Morten

 

(yes, I work for Atmel, yes, I do this in my spare time, now stop sending PMs)

 

The postings on this site are my own and do not represent Microchip’s positions, strategies, or opinions.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

so there still seem to be problems with using memx.
Torby, what studio version do you use?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

This seems to highlight a fault in AS6's "Error List" too. In GJL's bug report the full message is

"internal compiler error: in something at somewhere.c:N"

but AS6 is just showing:

"in something at somewhere.c:N"

What happened to the "internal compiler error" part of the message??

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Cliff,
to me that first line:
"internal compiler error: in something at somewhere.c:N"

would make as much sence as:
"in something at somewhere.c:N"

to more experienced users would this make sense at all?
I would expect a bit more detail to give some more error details.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

to me that first line:
"internal compiler error: in something at somewhere.c:N"

would make as much sence as:
"in something at somewhere.c:N"


Actually, the "internal compiler error" is MORE important initially. It says that this is not primarily an error in your code, but that the compiler has encountered a bug in the compiler itself. Lie hitting an ASSERT() or something like that.

Anyway, the first thing when encountering an error message you don't understand is to enter it verbatim into Google (removing anything that you identify to be specific for your code, like filename, line number, identifier name...).

And Torby: It's much easier for someone else to read, copy and search for an error message if you switch over to the Output tab and copy the text from there (rather than posting a screen dump). This would also have given us the complete error message. IDEs and filtered error lists are all fine most of the time, but in these cases you really want the actual output from the compiler.

As of January 15, 2018, Site fix-up work has begun! Now do your part and report any bugs or deficiencies here

No guarantees, but if we don't report problems they won't get much of  a chance to be fixed! Details/discussions at link given just above.

 

"Some questions have no answers."[C Baird] "There comes a point where the spoon-feeding has to stop and the independent thinking has to start." [C Lawson] "There are always ways to disagree, without being disagreeable."[E Weddington] "Words represent concepts. Use the wrong words, communicate the wrong concept." [J Morin] "Persistence only goes so far if you set yourself up for failure." [Kartman]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Oh. I never think of the output tab.

		Invoking: AVR/GNU C Compiler : 4.8.1
		"C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.1056\avr8-gnu-toolchain\bin\avr-gcc.exe"  -x c -funsigned-char -funsigned-bitfields -DDEBUG  -I"../../LibB"  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -mrelax -g2 -Wall -mmcu=atxmega192d3 -c -std=gnu99 -MD -MP -MF "LCD.d" -MT"LCD.d" -MT"LCD.o"  -I"C:\Users\Tom\Documents\Atmel Studio\6.2\Remote131216" -o "LCD.o" ".././LCD.c" 
		.././LCD.c: In function 'LCDStringPx':
C:\Users\Tom\Documents\Atmel Studio\6.2\Remote131216\LCD.c(568,5): error: in convert_debug_memory_address, at cfgexpand.c:2528
		 int LCDStringPx( const __memx uint8_t * font, char* s)
		     ^
		Please submit a full bug report,
		with preprocessed source if appropriate.
		See  for instructions.
		make: *** [LCD.o] Error 1
	Done executing task "RunCompilerTask" -- FAILED.
Done building target "CoreBuild" in project "Remote131216.cproj" -- FAILED.
Done building project "Remote131216.cproj" -- FAILED.

Ok. I'll make another case :roll:

My studio version is 6.2 (Version: 6.2.1153)

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0
 error: in convert_debug_memory_address, at cfgexpand.c:2528 

Actually that is a bit of a hopeless message! The term "internal compiler error" is far more revealing than just "error:".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm guessing it means there's something wrong at line 2528 in cfgexpand.c, which isn't my program.

I think there's a newer version of studio available, but I can't download anything till Saturday.

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

a, ok,
that clarifies a lot, thanks for the explanations.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

As a work around, compiling without debug info might work. (Who needs debug info anyway?)

avrfreaks does not support Opera. Profile inactive.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Well, I'll be! It does build with release turned on. 'Course, my handy AtmelICE won't help me figure out where my logic is screwy. Or maybe it's just 'cause I've been doing something different for a few days.

So, what kind of lice are "Atme lice?"

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut. 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Eee... And my logic seems very messed up.

Oh, and I found one of those atmelice. I had to google.

Attachment(s): 

If you don't know my whole story, keep your mouth shut.

If you know my whole story, you're an accomplice. Keep your mouth shut.