Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem


Loading

FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 2, 2008
http://www.freertos.org/portAVR32.html does not build, due to missing definitions that are nowhere in the FreeRTOS download package.

(from https://sourceforge.net/project/showfiles.php?group_id=111543&package_id=120544)

"Rebuild All":-

Building configuration: rtosdemo - Debug
Updating build tree...

48 file(s) deleted.
Updating build tree...
BlockQ.c
ParTest.c
PollQ.c
comtest.c
death.c
dynamic.c
exception.s82
Error[As012]: Undefined symbol: AVR32_INTC_IPR0_INTLEV_OFFSET C:\FreeRTOS\FreeRTOS\Source\portable\IAR\AVR32_UC3\exception.s82 300
Error while running Assembler
flash.c
flop.c
gpio.c
heap_3.c
intc.c
Error[Pe020]: identifier "AVR32_INTC_IPR0_INTLEV_SIZE" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\DRIVERS\INTC\intc.c 52
Error[Pe136]: struct "avr32_intc_t" has no field "icr3" C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\DRIVERS\INTC\intc.c 111
Error[Pe020]: identifier "AVR32_INTC_IPR0_INTLEV_MASK" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\DRIVERS\INTC\intc.c 199
Error[Pe020]: identifier "AVR32_INTC_IPR0_INTLEV_OFFSET" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\DRIVERS\INTC\intc.c 199
Error while running C/C++ Compiler
integer.c
led.c
Error[Pe020]: identifier "AVR32_PWM_PWM_0_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\BOARDS\EVK1100\led.c 77
Error[Pe020]: identifier "AVR32_PWM_PWM_1_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\BOARDS\EVK1100\led.c 77
Error[Pe020]: identifier "AVR32_PWM_PWM_2_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\BOARDS\EVK1100\led.c 77
Error[Pe020]: identifier "AVR32_PWM_PWM_3_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\BOARDS\EVK1100\led.c 77
Error while running C/C++ Compiler
list.c
main.c
pm.c
port.c
Error[Pe020]: identifier "AVR32_USART1_RXD_0_PIN" is undefined C:\FreeRTOS\FreeRTOS\Source\portable\IAR\AVR32_UC3\port.c 134
Error[Pe020]: identifier "AVR32_USART1_RXD_0_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Source\portable\IAR\AVR32_UC3\port.c 134
Error[Pe020]: identifier "AVR32_USART1_TXD_0_PIN" is undefined C:\FreeRTOS\FreeRTOS\Source\portable\IAR\AVR32_UC3\port.c 135
Error[Pe020]: identifier "AVR32_USART1_TXD_0_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Source\portable\IAR\AVR32_UC3\port.c 135
Error while running C/C++ Compiler
queue.c
read.c
semtest.c
serial.c
Error[Pe020]: identifier "AVR32_USART0_RXD_0_PIN" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\serial\serial.c 173
Error[Pe020]: identifier "AVR32_USART0_RXD_0_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\serial\serial.c 173
Error[Pe020]: identifier "AVR32_USART0_TXD_0_PIN" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\serial\serial.c 174
Error[Pe020]: identifier "AVR32_USART0_TXD_0_FUNCTION" is undefined C:\FreeRTOS\FreeRTOS\Demo\AVR32_UC3\serial\serial.c 174
Error while running C/C++ Compiler
tasks.c
tc.c
trampoline.s82
usart.c
write.c

Total number of errors: 17
Total number of warnings: 0

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 2, 2008
I tried V5.1.1 & 5.1.0

The first symbol that the build complains about,
AVR32_INTC_IPR0_INTLEV_OFFSET
is not defined anywhere in the package.


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 2, 2008
(Using V3.10 IAR embedded Workbench:-
IAR Assembler for Atmel AVR32
3.10A/W32 (3.10.1.3)
C:\Program Files\IAR Systems\Embedded Workbench 5.3 Kickstart\avr32\bin\aavr32.exe
17/10/2008 13:44:30, 4345856 bytes

IAR C/C++ Compiler for Atmel AVR32
3.10A/W32 (3.10.1.3)
C:\Program Files\IAR Systems\Embedded Workbench 5.3 Kickstart\avr32\bin\iccavr32.exe
17/10/2008 13:48:36, 9138176 bytes
...)

Where are the missing definitions to get this going?

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Bert Menkveld on December 2, 2008
I use GCC, so I don't know whether things might work differently with the IAR compiler.

I found that the best way to get a working project (ie. one that builds and runs) is to start with one of the example projects supplied with AVR32 Studio. This is done by selecting File->New->Example (in AVR32 Studio), and then picking an example project for your processor (there are 4 sections in the list of examples). This creates a complete project that builds and runs, and that you can then modify to your heart's content.

--
Bert Menkveld

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 2, 2008
I have just taken one of the undefined symbols at random (AVR32_INTC_IPR0_INTLEV_SIZE) and searched for it in my IAR installation directory, and found it to be defined in IAR Systems\Embedded Workbench 4.0\avr32\inc\avr32\intc.h

However, my installation is not up to date so maybe IAR have changed the names of the definitions?

Also, there was a lot of confusion over header files when this port was first done, some mess up with the compiler or other, and Atmel provided me with a patch for the compiler. Maybe the file comes from that?

Take a look at the Atmel UC3 Software Framework which can be downloaded from:
http://www.atmel.com/dyn/Products/tools_card.asp?tool_id=4192

This runs on top of FreeRTOS.org and is a bit different.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 2, 2008
I started with ThreadX then went for FreeRTOS.
I want a file system and, later, TCP/IP stack (at least TFTP,FTP,HTTP).

I AM using a more recent IAR workbench (V3.10A) than came with the IAR Kickstart CDROM.

Missing definitions appear to be related to Interrupt priorities, PWM and UART.


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 2, 2008
Yup.

Older workbench doesn't complain about the same symbols.

Fewer issues repoted.

Now, Use old workbench or newer workbench?

Building configuration: rtosdemo - Debug
Updating build tree...

46 file(s) deleted.
Updating build tree...
BlockQ.c
ParTest.c
PollQ.c
comtest.c
death.c
dynamic.c
exception.s82
flash.c
flop.c
gpio.c
heap_3.c
intc.c
integer.c
led.c
list.c
main.c
pm.c
Error[Pe020]: identifier "AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G2" is undefined C:\FreeRTOS\V5.1.1\FreeRTOS\Demo\AVR32_UC3\DRIVERS\PM\pm.c 162
Error[Pe020]: identifier "AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G3" is undefined C:\FreeRTOS\V5.1.1\FreeRTOS\Demo\AVR32_UC3\DRIVERS\PM\pm.c 163
Error[Pe020]: identifier "AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G2" is undefined C:\FreeRTOS\V5.1.1\FreeRTOS\Demo\AVR32_UC3\DRIVERS\PM\pm.c 223
Error[Pe020]: identifier "AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G3" is undefined C:\FreeRTOS\V5.1.1\FreeRTOS\Demo\AVR32_UC3\DRIVERS\PM\pm.c 224
Error[Pe020]: identifier "AVR32_PM_OSCCTRL32_MODE_EXT_CLOCK" is undefined C:\FreeRTOS\V5.1.1\FreeRTOS\Demo\AVR32_UC3\DRIVERS\PM\pm.c 278
Error[Pe020]: identifier "AVR32_PM_OSCCTRL32_MODE_CRYSTAL" is undefined C:\FreeRTOS\V5.1.1\FreeRTOS\Demo\AVR32_UC3\DRIVERS\PM\pm.c 284
port.c
queue.c
read.c
semtest.c
serial.c
tasks.c
tc.c
trampoline.s82
usart.c
write.c

Total number of errors: 6
Total number of warnings: 0

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Kevin on December 2, 2008
Make sure you have v1.3 of Atmel's framework, you can download from Atmel's website. The framework contains the headers files in "FrameworkDir/Utils/AVR32_HEADER_FILES". Unzip to the compiler's include directory (C:\Program Files\IAR Systems\Embedded Workbench 5.3\avr32\inc\avr32 on my machine). This overwrites the existing files so I recommend backing up the old headers first.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 4, 2008
I spent yesterday fixing symbol names in the demo kit to match workbench 5.3.

It builds! and executes in debug.
But no LEDS; no serial output. :-(

I got an email from IAR, to update some AVR32 include files in v5.3 of the KickStart workbench.

I did that.

Then recopied the FreeRTOS 5.1.1 demos tree (i.e. to version, as downloaded, without my fixes from yesterday). and rebuilt.

Same Interrupt, pwm, and UART symbol issues showed up.

This is going to be a headache for develoment integrity.

Does anyone have a complete FreeRTOS, demo package, for AVR32, running with KickStart WorkBench 5.3?

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 4, 2008
I shouldn't have to debug a supposedly working demo.

FreeRTOS 5.1.1 on AVR32 Kickstart v5.3

After fixing demo symbols for Interrupts, PWM, and UARTS, and gettig it to build:-

"The stack pointer for stack 'System' (currently Memory:0x5278) is outside the stack range (Memory:0xF800 to Memory:0x10000)"

This is going to be painfull.

OK, which version of Kickstart Workbench is FreeRTOS demo (v5.1.1) (for AVR32) supposed to work with?

I don't have time to debug this demo for workbench 5.3.


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Kevin on December 4, 2008
The stack pointer warning can be safely ignored as task stack is allocated on the heap rather than the stack defined in the build options.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 4, 2008
I just tried compiling the latest FreeRTOS download with V2.21B of the IAR tools and it built fine, but as I said before I think I have some patches that were supplied by Atmel. It looks like the latest compiler version I have is 3.10a, I will try installing that now.

You can ignore the warning about the stack, that is just because the compiler expects the stack to be within the region defined in the linker script, whereas in fact its within the heap.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 4, 2008
Having installed the new compiler version I can see that the libraries have changed, probably to be made simpler. All was going well doing the updates, as:

AVR32_INTC_IPR0_INTLEV_OFFSET -> AVR32_INTC_INTLEV_OFFSET
AVR32_INTC_NUM_INT_LEVELS -> AVR32_INTC_INTLEV_SIZE
AVR32_INTC_IPR0_INTLEV_MASK -> AVR32_INTC_INTLEV_MASK
AVR32_INTC_IPR0_INTLEV_OFFSET -> AVR32_INTC_INTLEV_OFFSET


until I got to this code:

static tLED_DESCRIPTOR LED_DESCRIPTOR[LED_COUNT] =
{
#define INSERT_LED_DESCRIPTOR(LED_NO, unused) \
{ \
{LED##LED_NO##_GPIO / 32, 1 << (LED##LED_NO##_GPIO % 32)},\
{LED##LED_NO##_PWM, LED##LED_NO##_PWM_FUNCTION } \
},
MREPEAT(LED_COUNT, INSERT_LED_DESCRIPTOR, ~)
#undef INSERT_LED_DESCRIPTOR
};


Yuk - what on earth is that! I'm sure somebody is very pleased with how clever they have been there but I'm not even going to attempt to fix the compile error its now generating. Its just too horible.

I think I am going to have to get in touch with Atmel and merge the latest FreeRTOS.org version with their software framework. They must have fixed this stuff in there, on the assumption they are using the latest compiler.

The other problem is the different revisions of the chips need different fixes applied, so this also needs sorting.

Sorry not to be of more use, this appears to be a bit of a smudge on the project that needs cleaning off.

Again I think the best course of action would be to use the official Atmel stuff.

Regards.


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 4, 2008
I have added this to the Known Issues list: http://www.freertos.org/a00104.html#knownissues

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 4, 2008
There's a PWM_PWM symbol name part 'tidy up'.

I cleaned up the INTLEVEL, PWM, UART (and LED) references and got FreeRTOs AVR32 Demo (V5.1.1) to build under kickstart 5.3, but it ain't running yet.
(3 days, so far)

I might get some help from Atmel.

I'll keep you posted.

(Which version of KickStart Workbench does the FreeRTOS AVR32 demo work with?)


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 4, 2008
Here are my changes that will, at lest, get the demo 'built' (though it ain't running yet:-

in int.c :-

around line 111 :-

__int_handler _get_interrupt_handler(unsigned int int_lev)
{
// ICR3 is mapped first, ICR0 last.
// Code in exception.S puts int_lev in R12 which is used by AVR32-GCC to pass
// a single argument to a function.
// Workbench compatibility issue:-
/* Workbench v?.?
unsigned int int_grp = (&AVR32_INTC.icr3)[INT3 - int_lev];
unsigned int int_req = AVR32_INTC.irr[int_grp];
*/
// Workbench v5.3
unsigned int int_grp = (&AVR32_INTC.icr[INT3])[INT3 - int_lev];
unsigned int int_req = AVR32_INTC.irr[int_grp];
//

Around line 197 :-
// NOTE: The _intx functions are intermediate assembly functions between the
// core interrupt system and the user interrupt handler.
// Workbench compatibility issue:-
/* Workbench v?.?
AVR32_INTC.ipr[int_grp] = ipr_val[int_lev & (AVR32_INTC_IPR0_INTLEV_MASK >> AVR32_INTC_IPR0_INTLEV_OFFSET)];
*/
// Workbench v5.3
AVR32_INTC.ipr[int_grp] = ipr_val[int_lev & (AVR32_INTC_IPR_INTLEV_MASK >> AVR32_INTC_IPR_INTLEV_OFFSET)];
//
}

In intc.h :-

around line # 55 :-

//! Number of interrupt priority levels.
// Workbench compatibility issue:-
/* Workbench v?.?
#define AVR32_INTC_NUM_INT_LEVELS (1 << AVR32_INTC_IPR0_INTLEV_SIZE)
*/
// Workbench v5.3
#define AVR32_INTC_NUM_INT_LEVELS (1 << AVR32_INTC_IPR_INTLEV_SIZE)
//


In FreeRTOSConfig.h :-

around lines 104 to 123 :-

/* Debug trace configuration.
configDBG is a boolean indicating whether to activate the debug trace. */
#define configDBG 1

// EVK1100 :-
#if BOARD == EVK1100
// Workbench compatibility issue:-
/* Workbench v?.?
#define configDBG_USART (&AVR32_USART1)
#define configDBG_USART_RX_PIN AVR32_USART1_RXD_0_PIN
#define configDBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_FUNCTION
#define configDBG_USART_TX_PIN AVR32_USART1_TXD_0_PIN
#define configDBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_FUNCTION
#define configDBG_USART_BAUDRATE 57600
#define serialPORT_USART (&AVR32_USART0)
#define serialPORT_USART_RX_PIN AVR32_USART0_RXD_0_PIN
#define serialPORT_USART_RX_FUNCTION AVR32_USART0_RXD_0_FUNCTION
#define serialPORT_USART_TX_PIN AVR32_USART0_TXD_0_PIN
#define serialPORT_USART_TX_FUNCTION AVR32_USART0_TXD_0_FUNCTION
#define serialPORT_USART_IRQ AVR32_USART0_IRQ
#define serialPORT_USART_BAUDRATE 57600
*/
// Workbench v5.3
#define configDBG_USART (&AVR32_USART1)
#define configDBG_USART_RX_PIN AVR32_USART1_RXD_0_0_PIN
#define configDBG_USART_RX_FUNCTION AVR32_USART1_RXD_0_0_FUNCTION
#define configDBG_USART_TX_PIN AVR32_USART1_TXD_0_0_PIN
#define configDBG_USART_TX_FUNCTION AVR32_USART1_TXD_0_0_FUNCTION
#define configDBG_USART_BAUDRATE 57600
#define serialPORT_USART (&AVR32_USART0)
#define serialPORT_USART_RX_PIN AVR32_USART0_RXD_0_0_PIN
#define serialPORT_USART_RX_FUNCTION AVR32_USART0_RXD_0_0_FUNCTION
#define serialPORT_USART_TX_PIN AVR32_USART0_TXD_0_0_PIN
#define serialPORT_USART_TX_FUNCTION AVR32_USART0_TXD_0_0_FUNCTION
#define serialPORT_USART_IRQ AVR32_USART0_IRQ
#define serialPORT_USART_BAUDRATE 57600
//

// EVK1101 :-
#elif BOARD == EVK1101
#define configDBG_USART (&AVR32_USART1)

and in exception.s82 :-

around line # 300 :-

ipr_val:
// Workbench compatibility issue:-
/* Workbench v?.?
DC32 (INT0 << AVR32_INTC_IPR0_INTLEV_OFFSET) | (_int0 - _evba),\
(INT1 << AVR32_INTC_IPR0_INTLEV_OFFSET) | (_int1 - _evba),\
(INT2 << AVR32_INTC_IPR0_INTLEV_OFFSET) | (_int2 - _evba),\
(INT3 << AVR32_INTC_IPR0_INTLEV_OFFSET) | (_int3 - _evba)
*/
// Workbench v5.3
DC32 (INT0 << AVR32_INTC_IPR_INTLEV_OFFSET) | (_int0 - _evba),\
(INT1 << AVR32_INTC_IPR_INTLEV_OFFSET) | (_int1 - _evba),\
(INT2 << AVR32_INTC_IPR_INTLEV_OFFSET) | (_int2 - _evba),\
(INT3 << AVR32_INTC_IPR_INTLEV_OFFSET) | (_int3 - _evba)
//

END


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 4, 2008
Response from Atmel:-

"You need to know which version of IAR was used to compile the V 5.1.1 package.

Our software framework 1.3.0 provides the header files for IAR Workbench 4.0 (IAR V2.2.2 at least).

You can download it at the following URL : http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4192

We are about to release our software framework 1.4.0 which provides the header files for IAR Workbench 5.3 (IAR V3.1.0a at least).

You can download a beta version at the following URL : http://www.atmel.no/beta_ware/

You can try to compile the V 5.1.1 package with those two environments.

If it does not work, I suggest you use our code examples which are provided in our software framework packages in folder : SERVICES\FREERTOS\Demo

and see if they suit to your needs. In every case, you need to update your header files by unzipping \UTILS\AVR32_HEADER_FILES\AVR32_Header_Files.zip package in C:\Program Files\IAR Systems\Embedded Workbench 4.0\avr32\inc. This will update the avr32 folder including the header files. I advise you backup your original header files first. "

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 4, 2008
Wow - how did you manage to get an answer from Atmel so quickly? Do you have the email address of an engineer or go through their support ticketing system?

It looks like is going to be some effort to get up to the latest IAR versions.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 4, 2008
I need to get the demos (currently v5.1.1) working asap,
on an EVK1100 platform, under workbench 5.3.

When I do (if someone doesn't beat this newbie FreeRTOS & newbie Atmel, old fart programmer to it) I'll be happy to give it back to this community.

Is someone else working to get the FreeRTOS, for AVR32, working with Workbanch 5.3?


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 4, 2008
The best place to ask would be on the AVR freaks forum http://www.avrfreaks.net , although the WEB site only seems to work for me one day in 3. Most AVR32 chatter comes directly from Atmel.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 5, 2008
OK, my patience has run out.
Enough is Enough.
Uncle!

After several days of fooloing around;
This morning I tried to roll back to a version of the workbench that the FreeRTOS demo(s) will work with.

I removed the workbench and attempted to install what appears to be v4.3 of the workbench from the IAR website
but it shows up as v 5.11B !?? and complains about GNU toolset when I try to load the FreeRTOS demo eww file !??

Please, gentlemen:
Which combination of FreeRTOS v5.1.1, GNU toolchain, Kickbench (which install file), software framework, etcetera
ACTUALLY BUILDS AND RUNS!????

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Kevin on December 5, 2008
Hi Richard,

I've been working with this processor for about 9 months now and had to laugh at your comment about Atmel's code as I've thought the same thing many times. I like the processor but the code package is frustrating to say the least.
I'm pretty sure that I can fix the FreeRTOS demo but I'm working under an insane deadline so don't have much time to work on it. If you can wait a week or so maybe I can send you something that works.
One thing I want to mention as that there's 2 different versions of processor out there: 1 is rev E I think, and is labeled with an 'ES' after the part number. Rev F, the production version, doesn't have this. 'ES' parts only work with Framework version 1.2 or earlier. Rev F parts must use framework version 1.3 or later. Code written for the 'ES' parts will not run on the production parts and vice-versa. To make things more interesting, the Atmel engineers felt it necessary to change the names of some constants in their header files (not the values, just the names) which gives compiler errors. I think that's what s_potter is running into.
Anyway I'll take a stab at fixing the demo if you don't mind waiting a bit.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 5, 2008
The latest AVR32 Embedded Workbench version is 3.10, the build works with version 2.21 (as previously noted). I am very confused by the version numbers you are giving. Also the IAR and GCC ports are completely separate and not intended to be used together.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 5, 2008
Thanks - that's great information.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 5, 2008
Confused version numbers is an understatement.

The http://www.iar.com/website1/1.0.1.0/780/1/index.php page shows "Product News" for V5,11, 5.10, and 4.30; all using the same download link to "KS4" (KickStart 4?) which is actually seems to be kickstart 5.

I currently have 3 workbench installation files:-

EWAVR32-KS-WEB-310A.exe
EWAVR32-KS-CD-221B.exe
ewavr-ks4-web-511B.exe

I have two SoftwareFramework files:-

AVR32-SoftwareFramework-1.3.0-AT32UC3A.zip
AVR32-SoftwareFramework-AT32UC3A-1.4.0.zip

The later workbench wants an updated GNU toolchain (avr32-gnu-toolchain-2.0.3.exe).

I have been banging at this for several days and have not found a combination that will build the FreeRTOS and run 'out of the box'.

Trying to build FreeRTOS v.5.1.1,
I have not been able to build with any success.

Ths does NOT bode well for consistent develoment environment.

OK so
Workbench 4.0 is v 2.21B ?

FreeRTOS v5.1.1 does not build with Workbench 4.> (2.21B), missing/mismatched ...CRYSTAL... defiitions.

FreeRTOS v5.1.1 does not build with Workbench 5 (3.1A), missing/mismatched Interrupt, PWM, and UART defiitions (with either of the two SoftwreFramework header files, or default).

Somebody please tell me which combination works:-

FreeRTOS v5.1.1
Workbench 4 / 2.21B / 5 / 3.10A
Software Framework (default) / 1.3.0 / 1.4.0
AVR GNU toolchain: req'd / not req'd / 2.0.3

I am given to understand that v5.1.1 + WB 2.21B + SF (default) + no special GNU toolchain should work -
but that combination gives me:-
Error[Pe020]: identifier "AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G2" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 162
Error[Pe020]: identifier "AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G3" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 163
Error[Pe020]: identifier "AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G2" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 223
Error[Pe020]: identifier "AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G3" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 224
Error[Pe020]: identifier "AVR32_PM_OSCCTRL32_MODE_EXT_CLOCK" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 278
Error[Pe020]: identifier "AVR32_PM_OSCCTRL32_MODE_CRYSTAL" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 284

!!!???? Hurrumpfh !!


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 5, 2008
> Confused version numbers is an understatement.
>
> The http://www.iar.com/website1/1.0.1.0/780/1/index.php page
> shows "Product News" for V5,11, 5.10, and 4.30; all using the
> same download link to "KS4" (KickStart
> 4?) which is actually seems to be kickstart 5.
>
> I currently have 3 workbench installation files:-
>
> EWAVR32-KS-WEB-310A.exe
> EWAVR32-KS-CD-221B.exe
> ewavr-ks4-web-511B.exe

That explains a lot. The last in the list is for the AVR processor - that is the 8 bit AVR, not the AVR32.

The software frame work will use the IAR tools or the GCC tools, maybe it can be built with both (like the FreeRTOS demo is supposed to), but not both at the same time.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 5, 2008
OK SO I have an EVK1100, which has a "UC3A0512ES" chip on it.

What do I have to install to get the FreeRTOS v5.1.1 to build and run?

WB 2.21B generates:-
Error[Pe020]: identifier "AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G2" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 162
Error[Pe020]: identifier "AVR32_PM_OSCCTRL0_MODE_CRYSTAL_G3" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 163
Error[Pe020]: identifier "AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G2" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 223
Error[Pe020]: identifier "AVR32_PM_OSCCTRL1_MODE_CRYSTAL_G3" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 224
Error[Pe020]: identifier "AVR32_PM_OSCCTRL32_MODE_EXT_CLOCK" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 278
Error[Pe020]: identifier "AVR32_PM_OSCCTRL32_MODE_CRYSTAL" is undefined C:\Projects\AVR32\FreeRTOS_v5.1.1_IwIP\Demo\AVR32_UC3\DRIVERS\PM\pm.c 284


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 5, 2008
EVK1100 kit has a UC3A1512-U chip.
So do our 'production' prototypes.

An earlier post indicates issues with "Software Framework" for chip version.

What does the "-U" mean for the Software Framework version?

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 5, 2008
Richard Barry gave me a zip file with a set of header files (AVR32) -
it builds! :-))
and runs!!!!!!! :-)))))

Thank you, Richard!

Now the fun starts! :-)

Note:-

This is FreeRTOS demo v5.1.1 (for AVR32 : UC3A)

with Kickstart workbench 4.0 ( 3/10A) - out of the box
(no 'software framework' or GNU tools update)

Steven

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 8, 2008
(Week 2)
Basic FreeRTOS Demo (built with IAR KickStart Workbench 4.0) builds and runs.

lwIP demo will not build under IAR Workbench:-
Insufficient stack space

OK: Install Cygwin
Which version of the GCC toolset do I need?
Let's try avr-gnut-oolchain 2.0.3:-

make (from GCC directory):-

.../cygdrive/c/Projects/AVR32/FreeRTOS_v5.1.1_Eth/Demo/lwIP_AVR32_UC3/AT32UC3A/gcc
$ make


avr32-gcc (GCC) 4.2.2-atmel.1.0.8 (mingw32 special)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling `../../BOARDS/EVK1100/led.c to `../../BOARDS/EVK1100/led.o.
Warning: Deprecated arch `uc' specified. Please use '-march=ucr1' instead. Converting to arch 'ucr1'
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_0_FUNCTION' undeclared here (not in a function)
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_1_FUNCTION' undeclared here (not in a function)
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_2_FUNCTION' undeclared here (not in a function)
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_3_FUNCTION' undeclared here (not in a function)
make: *** [../../BOARDS/EVK1100/led.o] Error 1

Steven@ICSS_TP5 /cygdrive/c/Projects/AVR32/FreeRTOS_v5.1.1_Eth/Demo/lwIP_AVR32_UC3/AT32UC3A/gcc
$

Hmmmm "...PWM_PWM..." again?

Now what?

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 8, 2008
I am using avr32-gcc (GCC) 4.1.2-atmel.1.1.0


Build output:

avr32-gcc (GCC) 4.1.2-atmel.1.1.0
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling `../../BOARDS/EVK1100/led.c' to `../../BOARDS/EVK1100/led.o'.
Compiling `../../DRIVERS/INTC/intc.c' to `../../DRIVERS/INTC/intc.o'.
Compiling `../../DRIVERS/TC/tc.c' to `../../DRIVERS/TC/tc.o'.
Compiling `../../DRIVERS/PM/pm.c' to `../../DRIVERS/PM/pm.o'.
Compiling `../../DRIVERS/MACB/macb.c' to `../../DRIVERS/MACB/macb.o'.
Compiling `../../DRIVERS/GPIO/gpio.c' to `../../DRIVERS/GPIO/gpio.o'.
Compiling `../../DRIVERS/FLASHC/flashc.c' to `../../DRIVERS/FLASHC/flashc.o'.
Compiling `../../main.c' to `../../main.o'.
Compiling `../../PARTEST/ParTest.c' to `../../PARTEST/ParTest.o'.
Compiling `../../SERIAL/serial.c' to `../../SERIAL/serial.o'.
Compiling `../../../../Source/tasks.c' to `../../../../Source/tasks.o'.
Compiling `../../../../Source/queue.c' to `../../../../Source/queue.o'.
Compiling `../../../../Source/list.c' to `../../../../Source/list.o'.
Compiling `../../../../Source/croutine.c' to `../../../../Source/croutine.o'.
Compiling `../../../../Demo/Common/Minimal/flash.c' to `../../../../Demo/Common/Minimal/flash.o'.
Compiling `../../../../Source/portable/GCC/AVR32_UC3/port.c' to `../../../../Source/portable/GCC/AVR32_UC3/port.o'.
Compiling `../../../../Source/portable/MemMang/heap_3.c' to `../../../../Source/portable/MemMang/heap_3.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/inet.c' to `../../../../Demo/Common/ethernet/lwIP/core/inet.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/mem.c' to `../../../../Demo/Common/ethernet/lwIP/core/mem.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/memp.c' to `../../../../Demo/Common/ethernet/lwIP/core/memp.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/netif.c' to `../../../../Demo/Common/ethernet/lwIP/core/netif.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/pbuf.c' to `../../../../Demo/Common/ethernet/lwIP/core/pbuf.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/raw.c' to `../../../../Demo/Common/ethernet/lwIP/core/raw.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/stats.c' to `../../../../Demo/Common/ethernet/lwIP/core/stats.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/sys.c' to `../../../../Demo/Common/ethernet/lwIP/core/sys.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/tcp.c' to `../../../../Demo/Common/ethernet/lwIP/core/tcp.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/tcp_in.c' to `../../../../Demo/Common/ethernet/lwIP/core/tcp_in.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/tcp_out.c' to `../../../../Demo/Common/ethernet/lwIP/core/tcp_out.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/ipv4/ip.c' to `../../../../Demo/Common/ethernet/lwIP/core/ipv4/ip.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/ipv4/ip_addr.c' to `../../../../Demo/Common/ethernet/lwIP/core/ipv4/ip_addr.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/ipv4/icmp.c' to `../../../../Demo/Common/ethernet/lwIP/core/ipv4/icmp.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/api/sockets.c' to `../../../../Demo/Common/ethernet/lwIP/api/sockets.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/api/tcpip.c' to `../../../../Demo/Common/ethernet/lwIP/api/tcpip.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/api/api_msg.c' to `../../../../Demo/Common/ethernet/lwIP/api/api_msg.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/api/err.c' to `../../../../Demo/Common/ethernet/lwIP/api/err.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/api/api_lib.c' to `../../../../Demo/Common/ethernet/lwIP/api/api_lib.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/netif/etharp.c' to `../../../../Demo/Common/ethernet/lwIP/netif/etharp.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/udp.c' to `../../../../Demo/Common/ethernet/lwIP/core/udp.o'.
Compiling `../../../../Demo/Common/ethernet/lwIP/core/ipv4/ip_frag.c' to `../../../../Demo/Common/ethernet/lwIP/core/ipv4/ip_frag.o'.
Compiling `../../NETWORK/lwip-port/AT32UC3A/sys_arch.c' to `../../NETWORK/lwip-port/AT32UC3A/sys_arch.o'.
Compiling `../../NETWORK/lwip-port/AT32UC3A/ethernetif.c' to `../../NETWORK/lwip-port/AT32UC3A/ethernetif.o'.
Compiling `../../NETWORK/BasicWEB/BasicWEB.c' to `../../NETWORK/BasicWEB/BasicWEB.o'.
Compiling `../../NETWORK/BasicTFTP/BasicTFTP.c' to `../../NETWORK/BasicTFTP/BasicTFTP.o'.
Compiling `../../NETWORK/BasicSMTP/BasicSMTP.c' to `../../NETWORK/BasicSMTP/BasicSMTP.o'.
Compiling `../../NETWORK/ethernet.c' to `../../NETWORK/ethernet.o'.
Compiling `../../printf-stdarg.c' to `../../printf-stdarg.o'.
Assembling `../../SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.S' to `../../SERVICES/USB/CLASS/DFU/EXAMPLES/ISP/BOOT/trampoline.o'.
Assembling `../../../../Source/portable/GCC/AVR32_UC3/exception.S' to `../../../../Source/portable/GCC/AVR32_UC3/exception.o'.
Linking to `uc3a0512-lwipdemo.elf'.
/usr/local/lib/gcc/avr32/4.1.2/../../../../avr32/bin/ld: uc3a0512-lwipdemo.elf: warning: allocated section `.dalign' not in segment
/usr/local/lib/gcc/avr32/4.1.2/../../../../avr32/bin/ld: uc3a0512-lwipdemo.elf: warning: allocated section `.bss' not in segment
/usr/local/lib/gcc/avr32/4.1.2/../../../../avr32/bin/ld: uc3a0512-lwipdemo.elf: warning: allocated section `.heap' not in segment
/usr/local/lib/gcc/avr32/4.1.2/../../../../avr32/bin/ld: uc3a0512-lwipdemo.elf: warning: allocated section `.stack' not in segment
Creating extended listing to `uc3a0512-lwipdemo.lss'.
Creating symbol table to `uc3a0512-lwipdemo.sym'.
Creating Intel HEX image to `uc3a0512-lwipdemo.hex'.
Creating binary image to `uc3a0512-lwipdemo.bin'.


uc3a0512-lwipdemo.elf :
section size addr
.reset 0x2008 0x80000000
.got 0xc 0x20
.init 0x1c 0x80002008
.text 0x1acb0 0x80002024
.exception 0x200 0x8001ce00
.fini 0x18 0x8001d000
.rodata 0x2d8 0x8001d018
.dalign 0x4 0x4
.eh_frame 0x4 0x8
.ctors 0x8 0xc
.dtors 0x8 0x14
.jcr 0x4 0x1c
.data 0x8c8 0x2c
.balign 0x4 0x8f4
.bss 0x75c8 0x8f8
.heap 0x7140 0x7ec0
.comment 0xb7c 0x0
.debug_aranges 0x1c18 0x0
.debug_pubnames 0x3454 0x0
.debug_info 0x4c2ba 0x0
.debug_abbrev 0x8b75 0x0
.debug_line 0xb522 0x0
.debug_frame 0x4e1c 0x0
.debug_str 0x3b2c 0x0
.debug_loc 0xdb9b 0x0
.stack 0x1000 0xf000
.debug_ranges 0x410 0x0
Total 0xa99ec


text data bss dec hex filename
0x1d1c4 0x8ec 0xf710 184768 2d1c0 uc3a0512-lwipdemo.elf

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 8, 2008
Damn!

If I walk through the 4 or 5 links, starting at almel.com for AVR32 to get to the download page
I get offered toolchain 2.0.3, which is the oe OI tried to run make with and failed (above).
Where do I get the older toolchain that the lwIP demo will build with, for the EVK1100?
(and which version is it?)

Link sequence:-

http://support.atmel.no/bin/customer

http://support.atmel.no/bin/customer?=&inc=help32

http://support.atmel.no/knowledgebase/avr32studiohelp/com.atmel.avr32.tool.ngw100/html/documentation_avr32_gnu_toolchain.html

http://support.atmel.no/knowledgebase/avr32studiohelp/com.atmel.avr32.tool.ngw100/html/download.html

http://www.atmel.com/products/avr32/

http://www.atmel.com/dyn/products/tools.asp?family_id=682

http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4118

http://www.atmel.com/dyn/resources/prod_documents/avr32-gnu-toolchain-2.0.3.exe

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 8, 2008
I can't find a version of the GNU tool kit with GCC avr32-gcc (GCC) 4.1.2-atmel.1.1.0


RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 8, 2008
I dumped ThreadX (for AVR32) because FileX and NetX are another $12,500 each!

I am now considering dumping FreeRTOS as well because it doesn't match the version of the toolset that Atmel are pushing (at least the demos don't).

Let's ignore IAR workbench compatibility issues for the moment!

I have spent close to 2 weeks, so far, and I was hoping to have a decent RTOS, with a file system, and, with a bit of luck, a working basic TCP/IP stack (at least TFTP, FTP, UDP, HTTP) running - so I could get on with building an application.

So far, it has proved to be a total headache - literally, on a few notable days! :-)

I know it is very time-consuming to maintain software. Richard is a very busy fellow.

IAR seem to be causing a lot of unnecessary hardship by changing symbol names.

I'm just trying to get started - and I'm wishing I hadn't! :-)))

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 8, 2008
I can only imagine what a headache it is going to be to get colleagues 'up and running' with twe same environment!

I'm not sure I could set it all up the same way twice - even when I do figure out which versions of which packages, with with patches, are needed.

What a mess!

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 8, 2008
So where do I get the toolchain that includes the version of the GCC compiler and a BSP that will build and run the lwIP demo on an EVK1100?

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Steven C. Potter on December 8, 2008
OK It was a header file compatibility issue, and putting the right header files in the right path.

Basic problem is that BOTH Atmel and IAR have 'moved on' since FreeRTOS was running for AVR32.

Website downloads will not work 'out of the box'.

With help from Steve Egeter (IAR) and Richard Barry (FreeRTOS)
I have been able to get the basic FreeRTOS demo running in KickStar Workbench 4.0
and I have now successfully built the lwIP demo with cygwin and gnu tools (v2.0.3)
(later compiler is OK).

Next - build lwIP with AVR studio, and get the debuger going.

Thanks to gents mentioned.



RE: FreeRTOS for AVR32 example does not build :-(

Posted by Olivier Bordes on December 14, 2008
Hello,
I have a similar problem to AVR32 demo and can't get the compilation to succeed.
Can you details which header files you put in which path ?
Thanks

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Richard on December 14, 2008
Send an email to me at r [dot] barry (at) freertos.org and I can send you the files. Don't use a SourceForge email address. Also let me know which compiler you are using.

Regards.

RE: FreeRTOS for AVR32 example does not build :-(

Posted by nicola horsburgh on February 25, 2009
After downloading FreeRTOS v5.1.2 I am attempting to build the AT32UC3A example with GCC. I get a similar error:


avr32-gcc (GCC) 4.2.2-atmel.1.0.8 (mingw32 special)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Compiling `../../BOARDS/EVK1100/led.c' to `../../BOARDS/EVK1100/led.o'.
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_0_FUNCTION' undeclared here
(not in a function)
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_1_FUNCTION' undeclared here
(not in a function)
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_2_FUNCTION' undeclared here
(not in a function)
../../BOARDS/EVK1100/led.c:77: error: 'AVR32_PWM_PWM_3_FUNCTION' undeclared here
(not in a function)
make: *** [../../BOARDS/EVK1100/led.o] Error 1

Do you have the updated header files to make this work?

RE: FreeRTOS for AVR32 example does not build :-(

Posted by Simon on September 8, 2009
I am having the same problem with the latest of everything.
FreeRTOS 5.4.2 + gnu gcc toolchain 2.2.1
How do I fix it?


[ Back to the top ]    [ About FreeRTOS ]    [ Privacy ]    [ Sitemap ]    [ ]


Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

NXP tweet showing LPC5500 (ARMv8-M Cortex-M33) running FreeRTOS.

Meet Richard Barry and learn about running FreeRTOS on RISC-V at FOSDEM 2019

Version 10.1.1 of the FreeRTOS kernel is available for immediate download. MIT licensed.

View a recording of the "OTA Update Security and Reliability" webinar, presented by TI and AWS.


Careers

FreeRTOS and other embedded software careers at AWS.



FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Espressif ESP32

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Renesas

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS

Xilinx Microblaze and Zynq partner