4ec7af779d
When I try to set priorities in certain programs, such as init_priority(HIGH_PRIORITY), I've noticed that during linking, there's no guarantee that the programs will be compiled in the sequence I've specified based on priority. This has led to some runtime errors in my program. I realized that in the ld file, when initializing dynamic arrays, there's no assurance of initializing init_array.* before init_array. This has resulted in runtime errors in the program. Consequently, I've rearranged the init_array.* in the ld file of NuttX to be placed before init_array and added a SORT operation to init_array.* to ensure accurate initialization based on priorities during linking. |
||
---|---|---|
.. | ||
configs/nsh | ||
include | ||
scripts | ||
src | ||
Kconfig | ||
README.txt |
README ====== This directory holds the port to the NXP S32K344EVB-Q257 development board. Contents ======== o Status o Serial Console o LEDs and Buttons o OpenSDA Notes o Configurations Status ====== 2021-07-05: Configuration created. TODO: Need to calibrate the delay loop. The current value of CONFIG_BOARD_LOOPSPERMSEC is a bogus value retained from a copy-paste (see apps/examples/calib_udelay). Serial Console ============== By default, the serial console will be provided on the OpenSDA VCOM port: OpenSDA UART RX PTA15 (LPUART6_RX) OpenSDA UART TX PTA16 (LPUART6_TX) USB drivers for the PEmicro CDC Serial Port are available here: http://www.pemicro.com/opensda/ LEDs and Buttons ================ LEDs ---- The S32K344EVB has two RGB LEDs: RedLED0 PTA29 (EMIOS1 CH12 / EMIOS2 CH12) GreenLED0 PTA30 (EMIOS1 CH13 / EMIOS2 CH13) BlueLED0 PTA31 (EMIOS1 CH14 / FXIO D0) RedLED1 PTB18 (EMIOS1 CH15 / EMIOS2 CH14 / FXIO D1) GreenLED1 PTB25 (EMIOS1 CH21 / EMIOS2 CH21 / FXIO D6) BlueLED1 PTE12 (EMIOS1 CH5 / FXIO D8) An output of '1' illuminates the LED. If CONFIG_ARCH_LEDS is not defined, then the user can control the LEDs in any way. The following definitions are used to access individual RGB components (see s32k344evb.h): GPIO_LED0_R GPIO_LED0_G GPIO_LED0_B GPIO_LED1_R GPIO_LED1_G GPIO_LED1_B The RGB components could, alternatively, be controlled through PWM using the common RGB LED driver. If CONFIG_ARCH_LEDs is defined, then NuttX will control the LEDs on board the S32K344EVB. The following definitions describe how NuttX controls the LEDs: ==========================================+========+========+========= RED GREEN BLUE ==========================================+========+========+========= LED_STARTED NuttX has been started OFF OFF OFF LED_HEAPALLOCATE Heap has been allocated OFF OFF ON LED_IRQSENABLED Interrupts enabled OFF OFF ON LED_STACKCREATED Idle stack created OFF ON OFF LED_INIRQ In an interrupt (no change) LED_SIGNAL In a signal handler (no change) LED_ASSERTION An assertion failed (no change) LED_PANIC The system has crashed FLASH OFF OFF LED_IDLE S32K344 in sleep mode (no change) ==========================================+========+========+========= Buttons ------- The S32K344EVB supports two buttons: SW0 PTB26 (EIRQ13 / WKPU41) SW1 PTB19 (WKPU38) OpenSDA Notes ============= - USB drivers for the PEmicro CDC Serial Port are available here: http://www.pemicro.com/opensda/ - The drag'n'drog interface expects files in .srec format. Configurations ============== Common Information ------------------ Each S32K344EVB configuration is maintained in a sub-directory and can be selected as follows: tools/configure.sh s32k344evb:<subdir> Where <subdir> is one of the sub-directories listed in the next paragraph. NOTES (common for all configurations): 1. This configuration uses the mconf-based configuration tool. To change this configuration using that tool, you should: a. Build and install the kconfig-mconf tool. See nuttx/README.txt. Also see additional README.txt files in the NuttX tools repository. b. Execute 'make menuconfig' in nuttx/ in order to start the reconfiguration process. 2. Unless otherwise stated, the serial console used is LPUART1 at 115,200 8N1. This corresponds to the OpenSDA VCOM port. Configuration Sub-directories ----------------------------- nsh: --- Configures the NuttShell (nsh) located at apps/examples/nsh. Support for builtin applications is enabled, but in the base configuration the only application selected is the "Hello, World!" example.