I'm learning the Cortex and START/ASF4 at the same time so I don't expect things to "just work" but START/ASF4 seem fragile.
To sum up my initial attempts, START seems to reconfigure in surprising ways with little documentation. Starting a project with a complete configuration seems very important as reconfigs don't work the same as a "fresh start".
I love the START approach but when something "breaks" it's not clear on how to proceed. Deleting and reselecting "broken" section with START reconfig doesn't appear to work.
On a related note: why does the ASF page (asf.atmel.com) refer to ASF3 as the latest with no mention of ASF4?
I realize this post is more of a "rant" but is START/ASF4 considered beta or are most people using it for their projects with ASF3 for existing code?
1.New project using START, added I2C sync
2.compiled fine, I2C working without much fuss
3.Project->reconfigure -- added Delay driver
project now fails to compile. Needed to add #include "hal_delay.h"
Tried to recreate with a new project but this time it worked with no mods needed.
1.New project with STDIO added (wanted to use printf). compiles OK.
2.Reconfigured Target_IO to UART1 --compiles OK
3.reconfigured Target_IO to USART0 (default driver is USART_RTOS_beta, changed to sync mode)
compiles with multiple errors and warnings:
|Message||in definition of macro 'US_MR_USCLKS'||...usart.h||200|
|Message||in definition of macro 'US_BRGR_CD'||...usart.h||702|
|Message||this is the location of the previous definition||...endian.h||17|
|Error||'CONF_USART0_FREQUENCY' undeclared here (not in a function)||...hpl_usart_config.h||197|
|Error||recipe for target 'hpl/usart/hpl_usart.o' failed||...Makefile||403|
|Warning||implicit declaration of function '_uart_get_usart_sync' [-Wimplicit-function-declaration]||...driver_init.c||33|
|Warning||passing argument 3 of 'usart_sync_init' makes pointer from integer without a cast [-Wint-conversion]||...driver_init.c||33|
|Message||expected 'void * const' but argument is of type 'int'||...hal_usart_sync.h||82|
|Warning||'_uart_interrupt_handler' defined but not used [-Wunused-function]||...hpl_uart.c||635|
|Error||'CONF_USART0_CK_SRC' undeclared here (not in a function)||...hpl_usart.c||115|
|Message||in expansion of macro 'CONF_USART_0_BAUD_CD'||...hpl_usart.c||125|
|Message||in expansion of macro 'USART_CONFIGURATION'||...hpl_usart.c||145|
|Message||in expansion of macro 'USART_CONFIGURATION'||…hpl_usart.c||145|
|Warning||'_usart_interrupt_handler' defined but not used [-Wunused-function]||...hpl_usart.c||638|
Found that driver_init.c in stdio_redirect function TARGET_IO_init() still showed UART1 --not USART0
4.Reconfigured back to UART1 and pressed "Generate Project"
SMART error: Could not download contents from server. Exception thrown: The remote server returned an error: (500) Internal Server Error
5.Changed back to USART0 and START works but compile errors remain.
6.Removed STD_io and dependencies from START
7.Add STD_io and selected USART0
8.Changed USART0 from default rtos_beta to sync
Same errors and warnings from before.
At this point I'm wondering if the redirect works with the USART ports so I try a setting up a new project.
1.new project with START, set target_io to use usart0
2.change rtos_bets driver to sync
3.select Rx and Tx pins
4.compiles and tests OK