I have some questions regarding SYS/BIOS for F28335. hopefully someone can help me answer these questions here.
- For other applications, we use a custom asm routine for codestart. Sys/Bios has its own init (ti_catalog_c2800_init_Boot_init ) function here, but I have not yet been able to figure out exactly what this does. Could you explain this? What would be the appropriate place for us to place the functionality we have in our startup routine (copying ramfuncs, zeroing out ebbs section)?
In the SYS/BIOS startup configuration, the ti_catalog_c2800_init_Boot_init is listed in “functions called before c runtime initialization”, but I am not able to specify a “reset function 1”. The user reset function, when is this called? Is this the right place to put the startup routine? - Initialization of system (GPIO, peripherals, etc). Where and when should this be done? In a separate task after the BIOS is started, or before the BIOS is started?
- Critical sections in application code. Should interrupts be disabled by Hwi_disable()? What happens if __disable_interrupts()is used instead?
- Is there any limitations to what SYS/BIOS API can be called before BIOS_Start? Can Hwi_disable be used for instance?
And what about configuration of application parameters that uses semaphores. If we have an EEPROM using a shared SPI bus via a semaphore, can this be initialized before BIOS_Start is called? - Mailboxes. Is is possible to prioritize messages sent to a mailbox? And is it possible for a task to overwrite replace a message in the mailbox with a new one?
If we for instance have a HWI taking ADC measurements which should be sent on the CANbus via a dedicated CAN task using a mailbox to share the data to be sent. The ADC sampling time is faster than the frequency of the CAN task. Is it possible for the CANtask to only get the newest message posted by the ADC sampling HWI? - Dynamic vs static creations of tasks/hwi etc. Is there any recommendations to best practice here? Dynamically created tasks, are the stack for these allocated from the heap, so this needs to be scaled based on the application?