Latest Atmel Studio broke my build (?)

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

Hi all,

 

I have a project made with Atmel Studio 7 and Atmel Software Framework, which built perfectly (0 errors and 0 warnings) and generated proper output files. However, this machine had to be replaced, and the same project doesn't build on a new machine with the latest Atmel Studio, to my desmay.

 

The problem seems to stem from the fact that avr32/io.h cannot be found. This, of course, cascades into lots of other errors. The project is a specific SVN revision tagged as a release version, so there is no way that the build could have been broken by mistakenly editing some random file in the project.

 

I don't know the exact version of Atmel Studio 7 and ASF under which the project was made; however, I have this (useful?) version information for comparison of a correct and a wrong build:

 

  • The project does not build under the latest Atmel Studio 7.0.790 and ASF 3.30.1.368, as is installed in the new machine.
  • The same project builds correctly on an older (unused since a while) machine which has Atmel Studio 7.0.594 and ASF 3.27.3.201.

 

 

This is a project that was done initially with ASF 3.27.0, and later was updated to ASF 3.30.1. I have checked out from my SVN server the revision before and after that update... and the result is the same. Both revisions fail to build in the new machine, but they build perfectly on the old one.

 

Error log:

Severity    Code    Description    Project    File    Line
Warning        type defaults to 'int' in declaration of 'avr32_usart_t'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\usart\usart.h    232
Warning        type defaults to 'int' in declaration of 'avr32_usart_t'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\utils\debug\print_funcs.h    340
Error        recipe for target 'common/app/log.o' failed    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\Debug\Makefile    397
Error        recipe for target 'common/app/comms_pcb.o' failed    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\Debug\Makefile    397
Error        recipe for target 'common/app/cellrequest_local_master.o' failed    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\Debug\Makefile    397
Error        implicit declaration of function 'usart_write_line'    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\log.c    34
Error        implicit declaration of function 'usart_test_hit'    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\comms_pcb.c    351
Error        implicit declaration of function 'usart_reset_status'    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\comms_pcb.c    358
Error        implicit declaration of function 'usart_read_char'    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\comms_pcb.c    353
Error        implicit declaration of function 'usart_putchar'    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\log.c    40
Error        implicit declaration of function 'UNUSED'    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\comms_pcb.c    51
Error        implicit declaration of function 'mcu_usart_module'    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\comms_pcb.c    351
Error        expected specifier-qualifier-list before 'uint32_t'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    97
Error        expected declaration specifiers or '...' before 'uint32_t'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    119
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'static'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    153
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'static'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\usart\usart.h    414
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'gpio_get_pin_value'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    144
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'gpio_get_pin_interrupt_flag'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    206
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'gpio_get_gpio_pin_output_value'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    170
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'gpio_get_gpio_open_drain_pin_output_value'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    172
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'gpio_enable_pin_interrupt'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    202
Error        expected '=', ',', ';', 'asm' or '__attribute__' before 'gpio_enable_module'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    115
Error        expected '=', ',', ';', 'asm' or '__attribute__' before '*' token    reference_comms    D:\home\dev\project\tags\0.2.0\common\mcu\mcu_usart.h    22
Error        expected ';', ',' or ')' before '*' token    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\usart\usart.h    232
Error        expected ';', ',' or ')' before '*' token    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\utils\debug\print_funcs.h    340
Error        expected ':', ',', ';', '}' or '__attribute__' before '*' token    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\config\conf_board.h    137
Error        expected ')' before 'port'    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    142
Message        each undeclared identifier is reported only once for each function it appears in    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\log.c    34
Error        avr32/io.h: No such file or directory    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\drivers\gpio\gpio.h    59
Error        avr32/io.h: No such file or directory    reference_comms    D:\home\dev\project\tags\0.2.0\reference_comms\src\ASF\avr32\utils\debug\print_funcs.h    61
Error        'AVR32_USART3' undeclared (first use in this function)    reference_comms    D:\home\dev\project\tags\0.2.0\common\app\log.c    34

 

 

I'm worried because this could mean that any update in the IDE could potentially render all my tagged revisions unusable... is there any kind of "project configuration" which I should be doing when loading this "old" (just a couple months old) solutions into a cleanly installed Atmel Studio?

 

By the way, if I create a new project in the new machine, then add all the required ASF modules and the source files from my project, then yes, it builds fine. I'm just worried that this could happen again whenever a new machine is installed and some newer Atmel Studio / ASF version refuses to build the previous solutions... sad

This topic has a solution.
Last Edited: Wed. Mar 9, 2016 - 09:33 PM
This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

AS 7.0.790 contains a newer version of the part pack than AS 7.0.594. Unfortunately if you copy a project from 7.0.594 to 7.0.790 there is no mechanism to automatically validate all components and use the only installed part pack for that device (improvement AVRSV-6806). One solution is to install the 7.0.594 version of the part pack in in the 7.0.790 installation. You can have several versions of a part pack installed in parallel. Since you don't specify which UC3 you are using I can only point you to the general packs page, but you should be able to find the old version here http://packs.download.atmel.com

The other solution, which I haven't really tried myself, is to go into project properties -> Components, and click on the "Change version"-button and select "Use the latest version". This should make you project use the part pack that came with 7.0.790.

 

-Jan Egil

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

je_ruud wrote:

AS 7.0.790 contains a newer version of the part pack than AS 7.0.594. Unfortunately if you copy a project from 7.0.594 to 7.0.790 there is no mechanism to automatically validate all components and use the only installed part pack for that device (improvement AVRSV-6806). One solution is to install the 7.0.594 version of the part pack in in the 7.0.790 installation. You can have several versions of a part pack installed in parallel. Since you don't specify which UC3 you are using I can only point you to the general packs page, but you should be able to find the old version here http://packs.download.atmel.com

The other solution, which I haven't really tried myself, is to go into project properties -> Components, and click on the "Change version"-button and select "Use the latest version". This should make you project use the part pack that came with 7.0.790.

 

-Jan Egil

 

Well, this is just great.  I just updated and had the same exact problem.  This is going to take a full day to correct.

Arrgh!

 

 

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

Why would it take a full day to correct? If you can do with the older version of the part pack, then just install that one and you're done.

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

je_ruud wrote:

AS 7.0.790 contains a newer version of the part pack than AS 7.0.594. Unfortunately if you copy a project from 7.0.594 to 7.0.790 there is no mechanism to automatically validate all components and use the only installed part pack for that device (improvement AVRSV-6806).

 

That's... unfortunate.

In any case, thank you for the proposed solution. I can confirm to you that the alternative way -updating the Components to the latest version- does not work to solve this issue.

 

I hope that seamless backwards compatibility is added soon, or else lots of projects will start failing to build everywhere... for now, I have opted to downgrade my installation of Atmel Studio, as I need to ensure full compatibility between several machines and cannot ensure that all of them will have been updated with the corresponding Component pack.

 

Regards

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

je_ruud wrote:

One solution is to install the 7.0.594 version of the part pack in in the 7.0.790 installation. You can have several versions of a part pack installed in parallel. Since you don't specify which UC3 you are using I can only point you to the general packs page, but you should be able to find the old version here http://packs.download.atmel.com

 

Hi Jan,

I am using UC3C series devices, for which it seems that there is the initial release of the Atmel Pack (version 1.0.42) and the newer release (version 1.0.49). I have installed the old one into the latest Atmel Studio, and it fixed the compilation issues that old projects have. Now, is it possible to somehow "update" the project, so it will compile without problems in a clean installation of the latest Atmel Studio (ie. an installation which only contains the version 1.0.49 of the Atmel Pack) ?

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

juannm wrote:

Hi Jan,

I am using UC3C series devices, for which it seems that there is the initial release of the Atmel Pack (version 1.0.42) and the newer release (version 1.0.49). I have installed the old one into the latest Atmel Studio, and it fixed the compilation issues that old projects have. Now, is it possible to somehow "update" the project, so it will compile without problems in a clean installation of the latest Atmel Studio (ie. an installation which only contains the version 1.0.49 of the Atmel Pack) ?

 

I am also using a UC3C (AT32UC3C1512C) device. I compared the include paths of the old project with a newly created project that is using the same UC3C device. 

 

I added the "$(PackRepoDir)\atmel\UC3C_DFP\1.0.49\include\AT32UC3C1512C" to the include folders of the C compiler and (Preprocessing) Assemblers. Modify the path to point to the respective folder of your device.

 

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

'motion' answer should be marked as correct one !!!

there is no point to download old package from atmel site.

 

all you have to do -> change relative path to new packages

 

in Project Properties

1) Compiler > Directories

2) Preprocesing > General

 

Last Edited: Sun. Jul 3, 2016 - 04:40 PM