nxp-mcuxpresso / mcux-sdk-examples

MCUXpresso SDK Examples
Other
48 stars 24 forks source link

frdmk64/frdmk66 /usb_examples/*/freertos missing fsl_os_abstraction_free_rtos.c #23

Open karlp opened 5 months ago

karlp commented 5 months ago

At present, the CMakeLists.txt file selects the component_osa component, see: https://github.com/nxp-mcuxpresso/mcux-sdk-examples/blob/main/frdmk66f/usb_examples/usb_device_audio_generator/freertos/armgcc/CMakeLists.txt#L120

This means they all[1] fail to compile with a missing implementation of OSA_ExitCritical

Now, another freertos example for the K66, https://github.com/nxp-mcuxpresso/mcux-sdk-examples/blob/main/frdmk66f/component_examples/log/freertos/armgcc/CMakeLists.txt#L79 instead selects thecomponent_osa_free_rtos

That example builds, and indeed, using that component in the usb examples fixes them all.

however the https://github.com/nxp-mcuxpresso/mcux-sdk/blob/main/components/osa/component_osa.cmake file over in core, attempts to handle lots of different CPUs directly, but does not have any IF blocks for K66, so that fails.

Either please, at your desire, add the IF blocks to the component_osa.cmake in core, or, in this repo, switch all the examples that use component_osa to use component_osa_free_rtos

Using the script below, this apparently only affects frmdk64, frdmk66, and rdrw612bga

[1] $ ack --type=cmake 'include(component_osa)' /usb_examples//freertos | cut -d'/' -f1-3

At least under K66, the following examples use free_rtos explicit form

frdmk66f/usb_examples/usb_device_composite_cdc_msc_disk
frdmk66f/usb_examples/usb_device_msc_disk
frdmk66f/usb_examples/usb_device_mtp
frdmk66f/usb_examples/usb_host_audio_recorder

And the remainder all use the broken form, and fail to compile

frdmk66f/usb_examples/usb_device_audio_speaker
frdmk66f/usb_examples/usb_device_cdc_vcom
frdmk66f/usb_examples/usb_device_cdc_vnic
frdmk66f/usb_examples/usb_device_composite_cdc_msc_disk
frdmk66f/usb_examples/usb_device_composite_cdc_msc
frdmk66f/usb_examples/usb_device_composite_cdc_vcom_cdc_vcom
frdmk66f/usb_examples/usb_device_composite_hid_audio_unified
frdmk66f/usb_examples/usb_device_composite_hid_mouse_hid_keyboard
frdmk66f/usb_examples/usb_device_hid_generic
frdmk66f/usb_examples/usb_device_hid_mouse
frdmk66f/usb_examples/usb_device_msc_disk
frdmk66f/usb_examples/usb_device_msc_ramdisk
frdmk66f/usb_examples/usb_device_mtp
frdmk66f/usb_examples/usb_device_phdc_weighscale
frdmk66f/usb_examples/usb_device_printer_virtual_plain_text
frdmk66f/usb_examples/usb_device_video_virtual_camera
frdmk66f/usb_examples/usb_host_audio_recorder
frdmk66f/usb_examples/usb_host_audio_speaker
frdmk66f/usb_examples/usb_host_cdc
frdmk66f/usb_examples/usb_host_hid_generic
frdmk66f/usb_examples/usb_host_hid_mouse
frdmk66f/usb_examples/usb_host_hid_mouse_keyboard
frdmk66f/usb_examples/usb_host_msd_command
frdmk66f/usb_examples/usb_host_msd_fatfs
frdmk66f/usb_examples/usb_host_phdc_manager
frdmk66f/usb_examples/usb_host_printer_plain_text
frdmk66f/usb_examples/usb_pin_detect_hid_mouse
frdmk66f/usb_examples/usb_pin_detect_hid_msd
frdmk66f/usb_examples/usb_suspend_resume_device_hid_mouse
frdmk66f/usb_examples/usb_suspend_resume_host_hid_mouse