[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [avr-gcc-list] Re: Patch: avrtest elf reader

From: hutchinsonandy
Subject: Re: [avr-gcc-list] Re: Patch: avrtest elf reader
Date: Wed, 21 May 2008 08:33:29 -0400

I agree with Paulo!

Exit as indicated to allow gcc testsuite to recognise error and include description. It might be useful to prefix message with AVRTEST --

That would make is slightly easier for me to scan results and see what triggered error (compiler, assembler, linker, AVRtest).

On no account, bypass normal code execution. We depend on AVRtest being able to run code and detect errors. (Ok with options you can do what you like I suppose)

Thanks for the effort!


-----Original Message-----
From: Paulo Marques <address@hidden>
To: Tristan Gingold <address@hidden>
Cc: address@hidden
Sent: Wed, 21 May 2008 7:39 am
Subject: [avr-gcc-list] Re: Patch: avrtest elf reader

Tristan Gingold wrote: 
I don't know if this is the right list to speak about avrtest or if >
patches can be sent by mails. If not, 
please tell me the right way. 
Since avrtest was born mostly to run gcc's testsuite, I guess this is the best mailing list for it. 
We (=AdaCore) have been using avrtest for a while, using the first >
posted version. We have improved its 
speed and feature. In the same time, avrtest had had a repository and has been improved (predecoding). 
> I am now trying to do a local merge. 
One of our improvement is direct support of ELF files. This avoids to launch avr-objcopy and also 
directly load the SRAM.  
I have been wanting to do this for a while now, and I must say that the code looks very similar to something I would have done myself. So, good work! :) 
The only thing I think needs to be changed is the way the program aborts on error. The gcc testsuite requires the program to print either "EXIT", "ABORTED" or "TIMEOUT" to give a PASS / FAIL / etc. result to the test. 
So, maybe changing the lines that simply "return -1" in the "load_elf" function to 'leave(EXIT_STATUS_ABORTED, "...")' would be enough. For instance, change: 
+ if (addr + memsz > MAX_FLASH_SIZE) 
+ return -1; 
+ if (addr + memsz > MAX_FLASH_SIZE) 
+ leave(EXIT_STATUS_ABORTED, "program too big to fit in flash"); 
This would ensure that the testsuite would correctly FAIL this test, and the user would quickly understand why. 
This second feature allows to use a strip down version of crt1 that
initialize the SRAM. 
The only downside of this, is that if we introduce a bug in the "real" crt1, the testsuite might not catch it, because the memory is being "magically" initialized to the correct values. Maybe change this to a command line option? 
Comments are welcome. 
All in all, good work :) 
This also opens the way for reading the symbols directly from the elf file. This would allow avrtest to have symbolic breakpoints and better address <-> name translations in the logged version to make it easier to follow code execution. 
-- Paulo Marques 
Software Development Department - Grupo PIE, S.A. 
Phone: +351 252 290600, Fax: +351 252 290601 
Web: www.grupopie.com 
"All generalizations are false." 
AVR-GCC-list mailing list 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]