From 21d6d84123de8e6e2ebdf5543b530403951b3059 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Mon, 2 May 2016 19:13:19 -0700 Subject: resync with FreeRTOS_BSP_1.0.1_iMX7D --- LA_OPT_Base_License.htm | 1074 + LA_OPT_FSL_OPEN_3RD_PARTY_IP.htm | 1738 - SW-Content-Register-FreeRTOS-BSP-1.0.0-i.MX7D.txt | 63 - SW-Content-Register-FreeRTOS-BSP-1.0.1-i.MX7D.txt | 53 + ...reeRTOS BSP i.MX 7Dual API Reference Manual.pdf | Bin 1227471 -> 0 bytes ...SP i.MX 7Dual Demo Application User's Guide.pdf | Bin 2587355 -> 0 bytes ...FreeRTOS_BSP_1.0.0_i.MX7_Dual_Release_Notes.pdf | Bin 514825 -> 0 bytes ...FreeRTOS_BSP_1.0.1_i.MX_7Dual_Release_Notes.pdf | Bin 0 -> 568345 bytes ...or_i.MX_7Dual_Demo_User\342\200\231s_Guide.pdf" | Bin 0 -> 2593428 bytes ...reeRTOS_BSP_i.MX_7Dual_API_Reference_Manual.pdf | Bin 0 -> 916715 bytes ...ng_Started_with_FreeRTOS_BSP_for_i.MX_7Dual.pdf | Bin 0 -> 1391414 bytes ...ing_Started_with_FreeRTOS_BSP_for_iMX_7Dual.pdf | Bin 1406717 -> 0 bytes doc/RPMSG_RTOS_Layer_User's_Guide.pdf | Bin 0 -> 371857 bytes examples/imx7_colibri_m4/FreeRTOSConfig.h | 163 - examples/imx7_colibri_m4/board.c | 17 +- examples/imx7_colibri_m4/board.h | 19 +- .../demo_apps/blinking_imx_demo/FreeRTOSConfig.h | 163 + .../blinking_imx_demo/armgcc/CMakeLists.txt | 50 +- .../blinking_imx_demo/armgcc/build_all.bat | 0 .../blinking_imx_demo/armgcc/build_debug.bat | 0 .../blinking_imx_demo/armgcc/build_release.bat | 0 .../demo_apps/blinking_imx_demo/armgcc/clean.bat | 0 .../demo_apps/blinking_imx_demo/ds5/.cproject | 36 +- .../demo_apps/blinking_imx_demo/ds5/.project | 4 +- .../blinking_imx_demo/ds5/blinking_imx_demo.wsd | 9 - .../demo_apps/blinking_imx_demo/ds5/makedir.bat | 1 - .../demo_apps/blinking_imx_demo/gpio_ctrl.c | 61 +- .../demo_apps/blinking_imx_demo/gpt_timer.c | 26 +- .../demo_apps/blinking_imx_demo/gpt_timer.h | 58 - .../demo_apps/blinking_imx_demo/hardware_init.c | 2 +- .../demo_apps/blinking_imx_demo/hw_timer.h | 58 + .../blinking_imx_demo/iar/blinking_imx_demo.ewd | 9419 --- .../blinking_imx_demo/iar/blinking_imx_demo.ewp | 1891 - .../blinking_imx_demo/iar/blinking_imx_demo.eww | 4 - .../demo_apps/blinking_imx_demo/main.c | 14 +- .../demo_apps/hello_world/FreeRTOSConfig.h | 163 + .../demo_apps/hello_world/armgcc/CMakeLists.txt | 24 +- .../demo_apps/hello_world/armgcc/build_all.bat | 0 .../demo_apps/hello_world/armgcc/build_debug.bat | 0 .../demo_apps/hello_world/armgcc/build_release.bat | 0 .../demo_apps/hello_world/armgcc/clean.bat | 0 .../demo_apps/hello_world/ds5/.cproject | 36 +- .../demo_apps/hello_world/ds5/.project | 2 +- .../demo_apps/hello_world/ds5/hello_world.wsd | 9 - .../demo_apps/hello_world/ds5/makedir.bat | 1 - .../demo_apps/hello_world/iar/hello_world.ewd | 9419 --- .../demo_apps/hello_world/iar/hello_world.ewp | 1891 - .../demo_apps/hello_world/iar/hello_world.eww | 4 - .../demo_apps/hello_world_ddr/FreeRTOSConfig.h | 163 + .../hello_world_ddr/armgcc/CMakeLists.txt | 162 + .../demo_apps/hello_world_ddr/armgcc/build_all.bat | 5 + .../demo_apps/hello_world_ddr/armgcc/build_all.sh | 5 + .../hello_world_ddr/armgcc/build_debug.bat | 3 + .../hello_world_ddr/armgcc/build_debug.sh | 3 + .../hello_world_ddr/armgcc/build_release.bat | 3 + .../hello_world_ddr/armgcc/build_release.sh | 3 + .../demo_apps/hello_world_ddr/armgcc/clean.bat | 3 + .../demo_apps/hello_world_ddr/armgcc/clean.sh | 3 + .../demo_apps/hello_world_ddr/ds5/.cproject | 137 + .../demo_apps/hello_world_ddr/ds5/.project | 86 + .../demo_apps/hello_world_ddr/hardware_init.c | 74 + .../demo_apps/hello_world_ocram/FreeRTOSConfig.h | 163 + .../hello_world_ocram/armgcc/CMakeLists.txt | 162 + .../hello_world_ocram/armgcc/build_all.bat | 5 + .../hello_world_ocram/armgcc/build_all.sh | 5 + .../hello_world_ocram/armgcc/build_debug.bat | 3 + .../hello_world_ocram/armgcc/build_debug.sh | 3 + .../hello_world_ocram/armgcc/build_release.bat | 3 + .../hello_world_ocram/armgcc/build_release.sh | 3 + .../demo_apps/hello_world_ocram/armgcc/clean.bat | 3 + .../demo_apps/hello_world_ocram/armgcc/clean.sh | 3 + .../demo_apps/hello_world_ocram/ds5/.cproject | 137 + .../demo_apps/hello_world_ocram/ds5/.project | 86 + .../demo_apps/hello_world_ocram/hardware_init.c | 76 + .../demo_apps/low_power_imx7d/common/gpc.c | 102 + .../demo_apps/low_power_imx7d/common/gpc.h | 49 + .../demo_apps/low_power_imx7d/common/lpm_mcore.c | 699 + .../demo_apps/low_power_imx7d/common/lpm_mcore.h | 132 + .../low_power_imx7d/rand_wfi/FreeRTOSConfig.h | 163 + .../low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt | 178 + .../low_power_imx7d/rand_wfi/armgcc/build_all.bat | 5 + .../low_power_imx7d/rand_wfi/armgcc/build_all.sh | 5 + .../rand_wfi/armgcc/build_debug.bat | 3 + .../low_power_imx7d/rand_wfi/armgcc/build_debug.sh | 3 + .../rand_wfi/armgcc/build_release.bat | 3 + .../rand_wfi/armgcc/build_release.sh | 3 + .../low_power_imx7d/rand_wfi/armgcc/clean.bat | 3 + .../low_power_imx7d/rand_wfi/armgcc/clean.sh | 3 + .../low_power_imx7d/rand_wfi/ds5/.cproject | 137 + .../low_power_imx7d/rand_wfi/ds5/.project | 86 + .../demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c | 132 + .../demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h | 60 + .../low_power_imx7d/rand_wfi/hardware_init.c | 88 + .../demo_apps/low_power_imx7d/rand_wfi/main.c | 229 + .../common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf | 90 + .../demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt | 185 - .../demo_apps/rpmsg/pingpong/armgcc/build_all.bat | 5 - .../demo_apps/rpmsg/pingpong/armgcc/build_all.sh | 5 - .../rpmsg/pingpong/armgcc/build_debug.bat | 3 - .../demo_apps/rpmsg/pingpong/armgcc/build_debug.sh | 3 - .../rpmsg/pingpong/armgcc/build_release.bat | 3 - .../rpmsg/pingpong/armgcc/build_release.sh | 3 - .../demo_apps/rpmsg/pingpong/armgcc/clean.bat | 3 - .../demo_apps/rpmsg/pingpong/armgcc/clean.sh | 3 - .../demo_apps/rpmsg/pingpong/ds5/.cproject | 137 - .../demo_apps/rpmsg/pingpong/ds5/.project | 86 - .../demo_apps/rpmsg/pingpong/ds5/makedir.bat | 1 - .../rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd | 9 - .../demo_apps/rpmsg/pingpong/hardware_init.c | 54 - .../rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd | 9419 --- .../rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp | 1891 - .../rpmsg/pingpong/iar/rpmsg_pingpong_example.eww | 4 - .../demo_apps/rpmsg/pingpong/pingpong.c | 155 - .../rpmsg/pingpong_bm/armgcc/CMakeLists.txt | 172 + .../rpmsg/pingpong_bm/armgcc/build_all.bat | 5 + .../rpmsg/pingpong_bm/armgcc/build_all.sh | 5 + .../rpmsg/pingpong_bm/armgcc/build_debug.bat | 3 + .../rpmsg/pingpong_bm/armgcc/build_debug.sh | 3 + .../rpmsg/pingpong_bm/armgcc/build_release.bat | 3 + .../rpmsg/pingpong_bm/armgcc/build_release.sh | 3 + .../demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat | 3 + .../demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh | 3 + .../demo_apps/rpmsg/pingpong_bm/ds5/.cproject | 137 + .../demo_apps/rpmsg/pingpong_bm/ds5/.project | 86 + .../demo_apps/rpmsg/pingpong_bm/hardware_init.c | 54 + .../demo_apps/rpmsg/pingpong_bm/pingpong_bm.c | 148 + .../rpmsg/pingpong_freertos/FreeRTOSConfig.h | 163 + .../rpmsg/pingpong_freertos/armgcc/CMakeLists.txt | 199 + .../rpmsg/pingpong_freertos/armgcc/build_all.bat | 5 + .../rpmsg/pingpong_freertos/armgcc/build_all.sh | 5 + .../rpmsg/pingpong_freertos/armgcc/build_debug.bat | 3 + .../rpmsg/pingpong_freertos/armgcc/build_debug.sh | 3 + .../pingpong_freertos/armgcc/build_release.bat | 3 + .../pingpong_freertos/armgcc/build_release.sh | 3 + .../rpmsg/pingpong_freertos/armgcc/clean.bat | 3 + .../rpmsg/pingpong_freertos/armgcc/clean.sh | 3 + .../rpmsg/pingpong_freertos/ds5/.cproject | 137 + .../demo_apps/rpmsg/pingpong_freertos/ds5/.project | 86 + .../rpmsg/pingpong_freertos/hardware_init.c | 54 + .../rpmsg/pingpong_freertos/pingpong_freertos.c | 136 + .../demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt | 185 - .../demo_apps/rpmsg/str_echo/armgcc/build_all.bat | 5 - .../demo_apps/rpmsg/str_echo/armgcc/build_all.sh | 5 - .../rpmsg/str_echo/armgcc/build_debug.bat | 3 - .../demo_apps/rpmsg/str_echo/armgcc/build_debug.sh | 3 - .../rpmsg/str_echo/armgcc/build_release.bat | 3 - .../rpmsg/str_echo/armgcc/build_release.sh | 3 - .../demo_apps/rpmsg/str_echo/armgcc/clean.bat | 3 - .../demo_apps/rpmsg/str_echo/armgcc/clean.sh | 3 - .../demo_apps/rpmsg/str_echo/ds5/.cproject | 137 - .../demo_apps/rpmsg/str_echo/ds5/.project | 86 - .../demo_apps/rpmsg/str_echo/ds5/makedir.bat | 1 - .../rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd | 9 - .../demo_apps/rpmsg/str_echo/hardware_init.c | 54 - .../rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd | 9419 --- .../rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp | 1891 - .../rpmsg/str_echo/iar/rpmsg_str_echo_example.eww | 4 - .../demo_apps/rpmsg/str_echo/str_echo.c | 209 - .../rpmsg/str_echo_bm/armgcc/CMakeLists.txt | 172 + .../rpmsg/str_echo_bm/armgcc/build_all.bat | 5 + .../rpmsg/str_echo_bm/armgcc/build_all.sh | 5 + .../rpmsg/str_echo_bm/armgcc/build_debug.bat | 3 + .../rpmsg/str_echo_bm/armgcc/build_debug.sh | 3 + .../rpmsg/str_echo_bm/armgcc/build_release.bat | 3 + .../rpmsg/str_echo_bm/armgcc/build_release.sh | 3 + .../demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat | 3 + .../demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh | 3 + .../demo_apps/rpmsg/str_echo_bm/ds5/.cproject | 137 + .../demo_apps/rpmsg/str_echo_bm/ds5/.project | 86 + .../demo_apps/rpmsg/str_echo_bm/hardware_init.c | 54 + .../demo_apps/rpmsg/str_echo_bm/str_echo_bm.c | 205 + .../rpmsg/str_echo_freertos/FreeRTOSConfig.h | 163 + .../rpmsg/str_echo_freertos/armgcc/CMakeLists.txt | 199 + .../rpmsg/str_echo_freertos/armgcc/build_all.bat | 5 + .../rpmsg/str_echo_freertos/armgcc/build_all.sh | 5 + .../rpmsg/str_echo_freertos/armgcc/build_debug.bat | 3 + .../rpmsg/str_echo_freertos/armgcc/build_debug.sh | 3 + .../str_echo_freertos/armgcc/build_release.bat | 3 + .../str_echo_freertos/armgcc/build_release.sh | 3 + .../rpmsg/str_echo_freertos/armgcc/clean.bat | 3 + .../rpmsg/str_echo_freertos/armgcc/clean.sh | 3 + .../rpmsg/str_echo_freertos/ds5/.cproject | 137 + .../demo_apps/rpmsg/str_echo_freertos/ds5/.project | 86 + .../rpmsg/str_echo_freertos/hardware_init.c | 54 + .../rpmsg/str_echo_freertos/str_echo_freertos.c | 146 + .../demo_apps/sema4_demo/FreeRTOSConfig.h | 163 + .../demo_apps/sema4_demo/armgcc/CMakeLists.txt | 24 +- .../demo_apps/sema4_demo/armgcc/build_all.bat | 0 .../demo_apps/sema4_demo/armgcc/build_debug.bat | 0 .../demo_apps/sema4_demo/armgcc/build_release.bat | 0 .../demo_apps/sema4_demo/armgcc/clean.bat | 0 .../demo_apps/sema4_demo/ds5/.cproject | 36 +- .../demo_apps/sema4_demo/ds5/.project | 2 +- .../demo_apps/sema4_demo/ds5/makedir.bat | 1 - .../demo_apps/sema4_demo/ds5/sema4_demo.wsd | 9 - .../demo_apps/sema4_demo/iar/sema4_demo.ewd | 9419 --- .../demo_apps/sema4_demo/iar/sema4_demo.ewp | 1891 - .../demo_apps/sema4_demo/iar/sema4_demo.eww | 4 - .../imx7_colibri_m4/demo_apps/sema4_demo/main.c | 2 +- .../demo_apps/sema4_demo/sema4_mutex.c | 7 +- .../demo_apps/sensor_demo/armgcc/CMakeLists.txt | 170 - .../demo_apps/sensor_demo/armgcc/build_all.bat | 5 - .../demo_apps/sensor_demo/armgcc/build_all.sh | 5 - .../demo_apps/sensor_demo/armgcc/build_debug.bat | 3 - .../demo_apps/sensor_demo/armgcc/build_debug.sh | 3 - .../demo_apps/sensor_demo/armgcc/build_release.bat | 3 - .../demo_apps/sensor_demo/armgcc/build_release.sh | 3 - .../demo_apps/sensor_demo/armgcc/clean.bat | 3 - .../demo_apps/sensor_demo/armgcc/clean.sh | 3 - .../demo_apps/sensor_demo/common/fxas21002.c | 118 - .../demo_apps/sensor_demo/common/fxas21002.h | 98 - .../demo_apps/sensor_demo/common/fxos8700.c | 158 - .../demo_apps/sensor_demo/common/fxos8700.h | 72 - .../demo_apps/sensor_demo/common/i2c_xfer.c | 326 - .../demo_apps/sensor_demo/common/i2c_xfer.h | 55 - .../demo_apps/sensor_demo/common/mma8451q.c | 185 - .../demo_apps/sensor_demo/common/mma8451q.h | 113 - .../demo_apps/sensor_demo/common/mpl3115.c | 112 - .../demo_apps/sensor_demo/common/mpl3115.h | 118 - .../demo_apps/sensor_demo/ds5/.cproject | 137 - .../demo_apps/sensor_demo/ds5/.project | 86 - .../demo_apps/sensor_demo/ds5/makedir.bat | 1 - .../demo_apps/sensor_demo/ds5/sensor_demo.wsd | 9 - .../demo_apps/sensor_demo/hardware_init.c | 60 - .../demo_apps/sensor_demo/iar/sensor_demo.ewd | 9419 --- .../demo_apps/sensor_demo/iar/sensor_demo.ewp | 1891 - .../demo_apps/sensor_demo/iar/sensor_demo.eww | 4 - .../demo_apps/sensor_demo/sensor_demo_imx7d/main.c | 237 - .../adc_imx7d/armgcc/CMakeLists.txt | 18 +- .../driver_examples/adc_imx7d/armgcc/build_all.bat | 0 .../adc_imx7d/armgcc/build_debug.bat | 0 .../adc_imx7d/armgcc/build_release.bat | 0 .../driver_examples/adc_imx7d/armgcc/clean.bat | 0 .../driver_examples/adc_imx7d/ds5/.cproject | 28 +- .../driver_examples/adc_imx7d/ds5/.project | 2 +- .../adc_imx7d/ds5/adc_imx7d_example.wsd | 9 - .../driver_examples/adc_imx7d/ds5/makedir.bat | 1 - .../adc_imx7d/iar/adc_imx7d_example.ewd | 9419 --- .../adc_imx7d/iar/adc_imx7d_example.ewp | 1891 - .../adc_imx7d/iar/adc_imx7d_example.eww | 4 - .../flexcan/flexcan_loopback/armgcc/CMakeLists.txt | 18 +- .../flexcan/flexcan_loopback/armgcc/build_all.bat | 0 .../flexcan_loopback/armgcc/build_debug.bat | 0 .../flexcan_loopback/armgcc/build_release.bat | 0 .../flexcan/flexcan_loopback/armgcc/clean.bat | 0 .../flexcan/flexcan_loopback/ds5/.cproject | 28 +- .../flexcan/flexcan_loopback/ds5/.project | 2 +- .../ds5/flexcan_loopback_example.wsd | 9 - .../flexcan/flexcan_loopback/ds5/makedir.bat | 1 - .../iar/flexcan_loopback_example.ewd | 9419 --- .../iar/flexcan_loopback_example.ewp | 1891 - .../iar/flexcan_loopback_example.eww | 4 - .../flexcan/flexcan_loopback/main.c | 2 +- .../flexcan/flexcan_network/armgcc/CMakeLists.txt | 18 +- .../flexcan/flexcan_network/armgcc/build_all.bat | 0 .../flexcan/flexcan_network/armgcc/build_debug.bat | 0 .../flexcan_network/armgcc/build_release.bat | 0 .../flexcan/flexcan_network/armgcc/clean.bat | 0 .../flexcan/flexcan_network/ds5/.cproject | 28 +- .../flexcan/flexcan_network/ds5/.project | 2 +- .../ds5/flexcan_network_example.wsd | 9 - .../flexcan/flexcan_network/ds5/makedir.bat | 1 - .../iar/flexcan_network_example.ewd | 9419 --- .../iar/flexcan_network_example.ewp | 1891 - .../iar/flexcan_network_example.eww | 4 - .../driver_examples/flexcan/flexcan_network/main.c | 2 +- .../driver_examples/gpio_imx/armgcc/CMakeLists.txt | 18 +- .../driver_examples/gpio_imx/armgcc/build_all.bat | 0 .../gpio_imx/armgcc/build_debug.bat | 0 .../gpio_imx/armgcc/build_release.bat | 0 .../driver_examples/gpio_imx/armgcc/clean.bat | 0 .../driver_examples/gpio_imx/ds5/.cproject | 28 +- .../driver_examples/gpio_imx/ds5/.project | 2 +- .../gpio_imx/ds5/gpio_imx_example.wsd | 9 - .../driver_examples/gpio_imx/ds5/makedir.bat | 1 - .../driver_examples/gpio_imx/hardware_init.c | 2 +- .../gpio_imx/iar/gpio_imx_example.ewd | 9419 --- .../gpio_imx/iar/gpio_imx_example.ewp | 1891 - .../gpio_imx/iar/gpio_imx_example.eww | 4 - .../driver_examples/gpio_imx/main.c | 280 +- .../driver_examples/gpt/armgcc/CMakeLists.txt | 18 +- .../driver_examples/gpt/armgcc/build_all.bat | 0 .../driver_examples/gpt/armgcc/build_debug.bat | 0 .../driver_examples/gpt/armgcc/build_release.bat | 0 .../driver_examples/gpt/armgcc/clean.bat | 0 .../driver_examples/gpt/ds5/.cproject | 28 +- .../driver_examples/gpt/ds5/.project | 2 +- .../driver_examples/gpt/ds5/gpt_example.wsd | 9 - .../driver_examples/gpt/ds5/makedir.bat | 1 - .../driver_examples/gpt/iar/gpt_example.ewd | 9419 --- .../driver_examples/gpt/iar/gpt_example.ewp | 1891 - .../driver_examples/gpt/iar/gpt_example.eww | 4 - .../imx7_colibri_m4/driver_examples/gpt/main.c | 2 +- .../armgcc/CMakeLists.txt | 136 + .../armgcc/build_all.bat | 5 + .../i2c_interrupt_sensor_imx7d/armgcc/build_all.sh | 5 + .../armgcc/build_debug.bat | 3 + .../armgcc/build_debug.sh | 3 + .../armgcc/build_release.bat | 3 + .../armgcc/build_release.sh | 3 + .../i2c_interrupt_sensor_imx7d/armgcc/clean.bat | 3 + .../i2c_interrupt_sensor_imx7d/armgcc/clean.sh | 3 + .../i2c_interrupt_sensor_imx7d/ds5/.cproject | 137 + .../i2c_interrupt_sensor_imx7d/ds5/.project | 86 + .../i2c_interrupt_sensor_imx7d/hardware_init.c | 60 + .../i2c_imx/i2c_interrupt_sensor_imx7d/main.c | 431 + .../i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt | 136 + .../i2c_polling_sensor_imx7d/armgcc/build_all.bat | 5 + .../i2c_polling_sensor_imx7d/armgcc/build_all.sh | 5 + .../armgcc/build_debug.bat | 3 + .../i2c_polling_sensor_imx7d/armgcc/build_debug.sh | 3 + .../armgcc/build_release.bat | 3 + .../armgcc/build_release.sh | 3 + .../i2c_polling_sensor_imx7d/armgcc/clean.bat | 3 + .../i2c_polling_sensor_imx7d/armgcc/clean.sh | 3 + .../i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject | 137 + .../i2c_imx/i2c_polling_sensor_imx7d/ds5/.project | 86 + .../i2c_polling_sensor_imx7d/hardware_init.c | 60 + .../i2c_imx/i2c_polling_sensor_imx7d/main.c | 343 + .../uart_imx/uart_interrupt/armgcc/CMakeLists.txt | 18 +- .../uart_imx/uart_interrupt/armgcc/build_all.bat | 0 .../uart_imx/uart_interrupt/armgcc/build_debug.bat | 0 .../uart_interrupt/armgcc/build_release.bat | 0 .../uart_imx/uart_interrupt/armgcc/clean.bat | 0 .../uart_imx/uart_interrupt/ds5/.cproject | 28 +- .../uart_imx/uart_interrupt/ds5/.project | 2 +- .../uart_imx/uart_interrupt/ds5/makedir.bat | 1 - .../ds5/uart_imx_interrupt_example.wsd | 9 - .../iar/uart_imx_interrupt_example.ewd | 9419 --- .../iar/uart_imx_interrupt_example.ewp | 1891 - .../iar/uart_imx_interrupt_example.eww | 4 - .../driver_examples/uart_imx/uart_interrupt/main.c | 12 +- .../uart_imx/uart_polling/armgcc/CMakeLists.txt | 132 + .../uart_imx/uart_polling/armgcc/build_all.bat | 5 + .../uart_imx/uart_polling/armgcc/build_all.sh | 5 + .../uart_imx/uart_polling/armgcc/build_debug.bat | 3 + .../uart_imx/uart_polling/armgcc/build_debug.sh | 3 + .../uart_imx/uart_polling/armgcc/build_release.bat | 3 + .../uart_imx/uart_polling/armgcc/build_release.sh | 3 + .../uart_imx/uart_polling/armgcc/clean.bat | 3 + .../uart_imx/uart_polling/armgcc/clean.sh | 3 + .../uart_imx/uart_polling/ds5/.cproject | 137 + .../uart_imx/uart_polling/ds5/.project | 86 + .../uart_imx/uart_polling/hardware_init.c | 57 + .../driver_examples/uart_imx/uart_polling/main.c | 117 + .../driver_examples/wdog_imx/armgcc/CMakeLists.txt | 18 +- .../driver_examples/wdog_imx/armgcc/build_all.bat | 0 .../wdog_imx/armgcc/build_debug.bat | 0 .../wdog_imx/armgcc/build_release.bat | 0 .../driver_examples/wdog_imx/armgcc/clean.bat | 0 .../driver_examples/wdog_imx/ds5/.cproject | 28 +- .../driver_examples/wdog_imx/ds5/.project | 2 +- .../driver_examples/wdog_imx/ds5/makedir.bat | 1 - .../wdog_imx/ds5/wdog_imx_example.wsd | 9 - .../wdog_imx/iar/wdog_imx_example.ewd | 9419 --- .../wdog_imx/iar/wdog_imx_example.ewp | 1891 - .../wdog_imx/iar/wdog_imx_example.eww | 4 - .../driver_examples/wdog_imx/main.c | 8 +- examples/imx7_colibri_m4/pin_mux.h | 6 +- examples/imx7d_sdb_m4/FreeRTOSConfig.h | 163 - examples/imx7d_sdb_m4/board.c | 17 +- examples/imx7d_sdb_m4/board.h | 20 +- .../demo_apps/blinking_imx_demo/FreeRTOSConfig.h | 163 + .../blinking_imx_demo/armgcc/CMakeLists.txt | 50 +- .../blinking_imx_demo/armgcc/build_all.bat | 0 .../blinking_imx_demo/armgcc/build_debug.bat | 0 .../blinking_imx_demo/armgcc/build_release.bat | 0 .../demo_apps/blinking_imx_demo/armgcc/clean.bat | 0 .../demo_apps/blinking_imx_demo/ds5/.cproject | 36 +- .../demo_apps/blinking_imx_demo/ds5/.project | 4 +- .../blinking_imx_demo/ds5/blinking_imx_demo.wsd | 9 - .../demo_apps/blinking_imx_demo/ds5/makedir.bat | 1 - .../demo_apps/blinking_imx_demo/gpio_ctrl.c | 61 +- .../demo_apps/blinking_imx_demo/gpt_timer.c | 26 +- .../demo_apps/blinking_imx_demo/gpt_timer.h | 58 - .../demo_apps/blinking_imx_demo/hardware_init.c | 2 +- .../demo_apps/blinking_imx_demo/hw_timer.h | 58 + .../blinking_imx_demo/iar/blinking_imx_demo.ewd | 9419 --- .../blinking_imx_demo/iar/blinking_imx_demo.ewp | 1891 - .../blinking_imx_demo/iar/blinking_imx_demo.eww | 4 - .../demo_apps/blinking_imx_demo/main.c | 14 +- .../demo_apps/hello_world/FreeRTOSConfig.h | 163 + .../demo_apps/hello_world/armgcc/CMakeLists.txt | 24 +- .../demo_apps/hello_world/armgcc/build_all.bat | 0 .../demo_apps/hello_world/armgcc/build_debug.bat | 0 .../demo_apps/hello_world/armgcc/build_release.bat | 0 .../demo_apps/hello_world/armgcc/clean.bat | 0 .../demo_apps/hello_world/ds5/.cproject | 36 +- .../demo_apps/hello_world/ds5/.project | 2 +- .../demo_apps/hello_world/ds5/hello_world.wsd | 9 - .../demo_apps/hello_world/ds5/makedir.bat | 1 - .../demo_apps/hello_world/iar/hello_world.ewd | 9419 --- .../demo_apps/hello_world/iar/hello_world.ewp | 1891 - .../demo_apps/hello_world/iar/hello_world.eww | 4 - .../demo_apps/hello_world_ddr/FreeRTOSConfig.h | 163 + .../hello_world_ddr/armgcc/CMakeLists.txt | 162 + .../demo_apps/hello_world_ddr/armgcc/build_all.bat | 5 + .../demo_apps/hello_world_ddr/armgcc/build_all.sh | 5 + .../hello_world_ddr/armgcc/build_debug.bat | 3 + .../hello_world_ddr/armgcc/build_debug.sh | 3 + .../hello_world_ddr/armgcc/build_release.bat | 3 + .../hello_world_ddr/armgcc/build_release.sh | 3 + .../demo_apps/hello_world_ddr/armgcc/clean.bat | 3 + .../demo_apps/hello_world_ddr/armgcc/clean.sh | 3 + .../demo_apps/hello_world_ddr/ds5/.cproject | 137 + .../demo_apps/hello_world_ddr/ds5/.project | 86 + .../demo_apps/hello_world_ddr/hardware_init.c | 74 + .../demo_apps/hello_world_ocram/FreeRTOSConfig.h | 163 + .../hello_world_ocram/armgcc/CMakeLists.txt | 162 + .../hello_world_ocram/armgcc/build_all.bat | 5 + .../hello_world_ocram/armgcc/build_all.sh | 5 + .../hello_world_ocram/armgcc/build_debug.bat | 3 + .../hello_world_ocram/armgcc/build_debug.sh | 3 + .../hello_world_ocram/armgcc/build_release.bat | 3 + .../hello_world_ocram/armgcc/build_release.sh | 3 + .../demo_apps/hello_world_ocram/armgcc/clean.bat | 3 + .../demo_apps/hello_world_ocram/armgcc/clean.sh | 3 + .../demo_apps/hello_world_ocram/ds5/.cproject | 137 + .../demo_apps/hello_world_ocram/ds5/.project | 86 + .../demo_apps/hello_world_ocram/hardware_init.c | 76 + .../demo_apps/hello_world_qspi/FreeRTOSConfig.h | 163 + .../hello_world_qspi/armgcc/CMakeLists.txt | 30 +- .../hello_world_qspi/armgcc/build_all.bat | 0 .../hello_world_qspi/armgcc/build_debug.bat | 0 .../hello_world_qspi/armgcc/build_release.bat | 0 .../demo_apps/hello_world_qspi/armgcc/clean.bat | 0 .../demo_apps/hello_world_qspi/ds5/.cproject | 40 +- .../demo_apps/hello_world_qspi/ds5/.project | 2 +- .../hello_world_qspi/ds5/hello_world_qspi.wsd | 9 - .../demo_apps/hello_world_qspi/ds5/makedir.bat | 1 - .../demo_apps/hello_world_qspi/hardware_init.c | 74 + .../hello_world_qspi/iar/hello_world_qspi.ewd | 9419 --- .../hello_world_qspi/iar/hello_world_qspi.ewp | 1891 - .../hello_world_qspi/iar/hello_world_qspi.eww | 4 - .../demo_apps/low_power_imx7d/common/gpc.c | 102 + .../demo_apps/low_power_imx7d/common/gpc.h | 49 + .../demo_apps/low_power_imx7d/common/lpm_mcore.c | 699 + .../demo_apps/low_power_imx7d/common/lpm_mcore.h | 132 + .../low_power_imx7d/rand_wfi/FreeRTOSConfig.h | 163 + .../low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt | 178 + .../low_power_imx7d/rand_wfi/armgcc/build_all.bat | 5 + .../low_power_imx7d/rand_wfi/armgcc/build_all.sh | 5 + .../rand_wfi/armgcc/build_debug.bat | 3 + .../low_power_imx7d/rand_wfi/armgcc/build_debug.sh | 3 + .../rand_wfi/armgcc/build_release.bat | 3 + .../rand_wfi/armgcc/build_release.sh | 3 + .../low_power_imx7d/rand_wfi/armgcc/clean.bat | 3 + .../low_power_imx7d/rand_wfi/armgcc/clean.sh | 3 + .../low_power_imx7d/rand_wfi/ds5/.cproject | 137 + .../low_power_imx7d/rand_wfi/ds5/.project | 86 + .../demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c | 132 + .../demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h | 60 + .../low_power_imx7d/rand_wfi/hardware_init.c | 88 + .../demo_apps/low_power_imx7d/rand_wfi/main.c | 229 + .../common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf | 90 + .../demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt | 185 - .../demo_apps/rpmsg/pingpong/armgcc/build_all.bat | 5 - .../demo_apps/rpmsg/pingpong/armgcc/build_all.sh | 5 - .../rpmsg/pingpong/armgcc/build_debug.bat | 3 - .../demo_apps/rpmsg/pingpong/armgcc/build_debug.sh | 3 - .../rpmsg/pingpong/armgcc/build_release.bat | 3 - .../rpmsg/pingpong/armgcc/build_release.sh | 3 - .../demo_apps/rpmsg/pingpong/armgcc/clean.bat | 3 - .../demo_apps/rpmsg/pingpong/armgcc/clean.sh | 3 - .../demo_apps/rpmsg/pingpong/ds5/.cproject | 137 - .../demo_apps/rpmsg/pingpong/ds5/.project | 86 - .../demo_apps/rpmsg/pingpong/ds5/makedir.bat | 1 - .../rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd | 9 - .../demo_apps/rpmsg/pingpong/hardware_init.c | 54 - .../rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd | 9419 --- .../rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp | 1891 - .../rpmsg/pingpong/iar/rpmsg_pingpong_example.eww | 4 - .../demo_apps/rpmsg/pingpong/pingpong.c | 155 - .../rpmsg/pingpong_bm/armgcc/CMakeLists.txt | 172 + .../rpmsg/pingpong_bm/armgcc/build_all.bat | 5 + .../rpmsg/pingpong_bm/armgcc/build_all.sh | 5 + .../rpmsg/pingpong_bm/armgcc/build_debug.bat | 3 + .../rpmsg/pingpong_bm/armgcc/build_debug.sh | 3 + .../rpmsg/pingpong_bm/armgcc/build_release.bat | 3 + .../rpmsg/pingpong_bm/armgcc/build_release.sh | 3 + .../demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat | 3 + .../demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh | 3 + .../demo_apps/rpmsg/pingpong_bm/ds5/.cproject | 137 + .../demo_apps/rpmsg/pingpong_bm/ds5/.project | 86 + .../demo_apps/rpmsg/pingpong_bm/hardware_init.c | 54 + .../demo_apps/rpmsg/pingpong_bm/pingpong_bm.c | 148 + .../rpmsg/pingpong_freertos/FreeRTOSConfig.h | 163 + .../rpmsg/pingpong_freertos/armgcc/CMakeLists.txt | 199 + .../rpmsg/pingpong_freertos/armgcc/build_all.bat | 5 + .../rpmsg/pingpong_freertos/armgcc/build_all.sh | 5 + .../rpmsg/pingpong_freertos/armgcc/build_debug.bat | 3 + .../rpmsg/pingpong_freertos/armgcc/build_debug.sh | 3 + .../pingpong_freertos/armgcc/build_release.bat | 3 + .../pingpong_freertos/armgcc/build_release.sh | 3 + .../rpmsg/pingpong_freertos/armgcc/clean.bat | 3 + .../rpmsg/pingpong_freertos/armgcc/clean.sh | 3 + .../rpmsg/pingpong_freertos/ds5/.cproject | 137 + .../demo_apps/rpmsg/pingpong_freertos/ds5/.project | 86 + .../rpmsg/pingpong_freertos/hardware_init.c | 54 + .../rpmsg/pingpong_freertos/pingpong_freertos.c | 136 + .../demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt | 185 - .../demo_apps/rpmsg/str_echo/armgcc/build_all.bat | 5 - .../demo_apps/rpmsg/str_echo/armgcc/build_all.sh | 5 - .../rpmsg/str_echo/armgcc/build_debug.bat | 3 - .../demo_apps/rpmsg/str_echo/armgcc/build_debug.sh | 3 - .../rpmsg/str_echo/armgcc/build_release.bat | 3 - .../rpmsg/str_echo/armgcc/build_release.sh | 3 - .../demo_apps/rpmsg/str_echo/armgcc/clean.bat | 3 - .../demo_apps/rpmsg/str_echo/armgcc/clean.sh | 3 - .../demo_apps/rpmsg/str_echo/ds5/.cproject | 137 - .../demo_apps/rpmsg/str_echo/ds5/.project | 86 - .../demo_apps/rpmsg/str_echo/ds5/makedir.bat | 1 - .../rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd | 9 - .../demo_apps/rpmsg/str_echo/hardware_init.c | 54 - .../rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd | 9419 --- .../rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp | 1891 - .../rpmsg/str_echo/iar/rpmsg_str_echo_example.eww | 4 - .../demo_apps/rpmsg/str_echo/str_echo.c | 209 - .../rpmsg/str_echo_bm/armgcc/CMakeLists.txt | 172 + .../rpmsg/str_echo_bm/armgcc/build_all.bat | 5 + .../rpmsg/str_echo_bm/armgcc/build_all.sh | 5 + .../rpmsg/str_echo_bm/armgcc/build_debug.bat | 3 + .../rpmsg/str_echo_bm/armgcc/build_debug.sh | 3 + .../rpmsg/str_echo_bm/armgcc/build_release.bat | 3 + .../rpmsg/str_echo_bm/armgcc/build_release.sh | 3 + .../demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat | 3 + .../demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh | 3 + .../demo_apps/rpmsg/str_echo_bm/ds5/.cproject | 137 + .../demo_apps/rpmsg/str_echo_bm/ds5/.project | 86 + .../demo_apps/rpmsg/str_echo_bm/hardware_init.c | 54 + .../demo_apps/rpmsg/str_echo_bm/str_echo_bm.c | 205 + .../rpmsg/str_echo_freertos/FreeRTOSConfig.h | 163 + .../rpmsg/str_echo_freertos/armgcc/CMakeLists.txt | 199 + .../rpmsg/str_echo_freertos/armgcc/build_all.bat | 5 + .../rpmsg/str_echo_freertos/armgcc/build_all.sh | 5 + .../rpmsg/str_echo_freertos/armgcc/build_debug.bat | 3 + .../rpmsg/str_echo_freertos/armgcc/build_debug.sh | 3 + .../str_echo_freertos/armgcc/build_release.bat | 3 + .../str_echo_freertos/armgcc/build_release.sh | 3 + .../rpmsg/str_echo_freertos/armgcc/clean.bat | 3 + .../rpmsg/str_echo_freertos/armgcc/clean.sh | 3 + .../rpmsg/str_echo_freertos/ds5/.cproject | 137 + .../demo_apps/rpmsg/str_echo_freertos/ds5/.project | 86 + .../rpmsg/str_echo_freertos/hardware_init.c | 54 + .../rpmsg/str_echo_freertos/str_echo_freertos.c | 146 + .../demo_apps/sema4_demo/FreeRTOSConfig.h | 163 + .../demo_apps/sema4_demo/armgcc/CMakeLists.txt | 24 +- .../demo_apps/sema4_demo/armgcc/build_all.bat | 0 .../demo_apps/sema4_demo/armgcc/build_debug.bat | 0 .../demo_apps/sema4_demo/armgcc/build_release.bat | 0 .../demo_apps/sema4_demo/armgcc/clean.bat | 0 .../demo_apps/sema4_demo/ds5/.cproject | 36 +- .../imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.project | 2 +- .../demo_apps/sema4_demo/ds5/makedir.bat | 1 - .../demo_apps/sema4_demo/ds5/sema4_demo.wsd | 9 - .../demo_apps/sema4_demo/iar/sema4_demo.ewd | 9419 --- .../demo_apps/sema4_demo/iar/sema4_demo.ewp | 1891 - .../demo_apps/sema4_demo/iar/sema4_demo.eww | 4 - examples/imx7d_sdb_m4/demo_apps/sema4_demo/main.c | 2 +- .../demo_apps/sema4_demo/sema4_mutex.c | 7 +- .../demo_apps/sensor_demo/FreeRTOSConfig.h | 163 + .../demo_apps/sensor_demo/armgcc/CMakeLists.txt | 32 +- .../demo_apps/sensor_demo/armgcc/build_all.bat | 0 .../demo_apps/sensor_demo/armgcc/build_debug.bat | 0 .../demo_apps/sensor_demo/armgcc/build_release.bat | 0 .../demo_apps/sensor_demo/armgcc/clean.bat | 0 .../demo_apps/sensor_demo/common/fxas21002.c | 153 +- .../demo_apps/sensor_demo/common/fxas21002.h | 129 +- .../demo_apps/sensor_demo/common/fxos8700.c | 198 +- .../demo_apps/sensor_demo/common/fxos8700.h | 194 +- .../demo_apps/sensor_demo/common/i2c_xfer.c | 303 +- .../demo_apps/sensor_demo/common/i2c_xfer.h | 40 +- .../demo_apps/sensor_demo/common/mma8451q.c | 185 - .../demo_apps/sensor_demo/common/mma8451q.h | 113 - .../demo_apps/sensor_demo/common/mpl3115.c | 151 +- .../demo_apps/sensor_demo/common/mpl3115.h | 134 +- .../demo_apps/sensor_demo/ds5/.cproject | 36 +- .../demo_apps/sensor_demo/ds5/.project | 2 +- .../demo_apps/sensor_demo/ds5/makedir.bat | 1 - .../demo_apps/sensor_demo/ds5/sensor_demo.wsd | 9 - .../demo_apps/sensor_demo/hardware_init.c | 21 +- .../demo_apps/sensor_demo/iar/sensor_demo.ewd | 9419 --- .../demo_apps/sensor_demo/iar/sensor_demo.ewp | 1891 - .../demo_apps/sensor_demo/iar/sensor_demo.eww | 4 - .../demo_apps/sensor_demo/sensor_demo_imx7d/main.c | 573 +- .../adc_imx7d/armgcc/CMakeLists.txt | 18 +- .../driver_examples/adc_imx7d/armgcc/build_all.bat | 0 .../adc_imx7d/armgcc/build_debug.bat | 0 .../adc_imx7d/armgcc/build_release.bat | 0 .../driver_examples/adc_imx7d/armgcc/clean.bat | 0 .../driver_examples/adc_imx7d/ds5/.cproject | 28 +- .../driver_examples/adc_imx7d/ds5/.project | 2 +- .../adc_imx7d/ds5/adc_imx7d_example.wsd | 9 - .../driver_examples/adc_imx7d/ds5/makedir.bat | 1 - .../adc_imx7d/iar/adc_imx7d_example.ewd | 9419 --- .../adc_imx7d/iar/adc_imx7d_example.ewp | 1891 - .../adc_imx7d/iar/adc_imx7d_example.eww | 4 - .../flexcan/flexcan_loopback/armgcc/CMakeLists.txt | 18 +- .../flexcan/flexcan_loopback/armgcc/build_all.bat | 0 .../flexcan_loopback/armgcc/build_debug.bat | 0 .../flexcan_loopback/armgcc/build_release.bat | 0 .../flexcan/flexcan_loopback/armgcc/clean.bat | 0 .../flexcan/flexcan_loopback/ds5/.cproject | 28 +- .../flexcan/flexcan_loopback/ds5/.project | 2 +- .../ds5/flexcan_loopback_example.wsd | 9 - .../flexcan/flexcan_loopback/ds5/makedir.bat | 1 - .../iar/flexcan_loopback_example.ewd | 9419 --- .../iar/flexcan_loopback_example.ewp | 1891 - .../iar/flexcan_loopback_example.eww | 4 - .../flexcan/flexcan_loopback/main.c | 2 +- .../flexcan/flexcan_network/armgcc/CMakeLists.txt | 18 +- .../flexcan/flexcan_network/armgcc/build_all.bat | 0 .../flexcan/flexcan_network/armgcc/build_debug.bat | 0 .../flexcan_network/armgcc/build_release.bat | 0 .../flexcan/flexcan_network/armgcc/clean.bat | 0 .../flexcan/flexcan_network/ds5/.cproject | 28 +- .../flexcan/flexcan_network/ds5/.project | 2 +- .../ds5/flexcan_network_example.wsd | 9 - .../flexcan/flexcan_network/ds5/makedir.bat | 1 - .../iar/flexcan_network_example.ewd | 9419 --- .../iar/flexcan_network_example.ewp | 1891 - .../iar/flexcan_network_example.eww | 4 - .../driver_examples/flexcan/flexcan_network/main.c | 2 +- .../driver_examples/gpio_imx/armgcc/CMakeLists.txt | 18 +- .../driver_examples/gpio_imx/armgcc/build_all.bat | 0 .../gpio_imx/armgcc/build_debug.bat | 0 .../gpio_imx/armgcc/build_release.bat | 0 .../driver_examples/gpio_imx/armgcc/clean.bat | 0 .../driver_examples/gpio_imx/ds5/.cproject | 28 +- .../driver_examples/gpio_imx/ds5/.project | 2 +- .../gpio_imx/ds5/gpio_imx_example.wsd | 9 - .../driver_examples/gpio_imx/ds5/makedir.bat | 1 - .../driver_examples/gpio_imx/hardware_init.c | 2 +- .../gpio_imx/iar/gpio_imx_example.ewd | 9419 --- .../gpio_imx/iar/gpio_imx_example.ewp | 1891 - .../gpio_imx/iar/gpio_imx_example.eww | 4 - .../imx7d_sdb_m4/driver_examples/gpio_imx/main.c | 280 +- .../driver_examples/gpt/armgcc/CMakeLists.txt | 18 +- .../driver_examples/gpt/armgcc/build_all.bat | 0 .../driver_examples/gpt/armgcc/build_debug.bat | 0 .../driver_examples/gpt/armgcc/build_release.bat | 0 .../driver_examples/gpt/armgcc/clean.bat | 0 .../imx7d_sdb_m4/driver_examples/gpt/ds5/.cproject | 28 +- .../imx7d_sdb_m4/driver_examples/gpt/ds5/.project | 2 +- .../driver_examples/gpt/ds5/gpt_example.wsd | 9 - .../driver_examples/gpt/ds5/makedir.bat | 1 - .../driver_examples/gpt/iar/gpt_example.ewd | 9419 --- .../driver_examples/gpt/iar/gpt_example.ewp | 1891 - .../driver_examples/gpt/iar/gpt_example.eww | 4 - examples/imx7d_sdb_m4/driver_examples/gpt/main.c | 2 +- .../armgcc/CMakeLists.txt | 136 + .../armgcc/build_all.bat | 5 + .../i2c_interrupt_sensor_imx7d/armgcc/build_all.sh | 5 + .../armgcc/build_debug.bat | 3 + .../armgcc/build_debug.sh | 3 + .../armgcc/build_release.bat | 3 + .../armgcc/build_release.sh | 3 + .../i2c_interrupt_sensor_imx7d/armgcc/clean.bat | 3 + .../i2c_interrupt_sensor_imx7d/armgcc/clean.sh | 3 + .../i2c_interrupt_sensor_imx7d/ds5/.cproject | 137 + .../i2c_interrupt_sensor_imx7d/ds5/.project | 86 + .../i2c_interrupt_sensor_imx7d/hardware_init.c | 60 + .../i2c_imx/i2c_interrupt_sensor_imx7d/main.c | 431 + .../i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt | 136 + .../i2c_polling_sensor_imx7d/armgcc/build_all.bat | 5 + .../i2c_polling_sensor_imx7d/armgcc/build_all.sh | 5 + .../armgcc/build_debug.bat | 3 + .../i2c_polling_sensor_imx7d/armgcc/build_debug.sh | 3 + .../armgcc/build_release.bat | 3 + .../armgcc/build_release.sh | 3 + .../i2c_polling_sensor_imx7d/armgcc/clean.bat | 3 + .../i2c_polling_sensor_imx7d/armgcc/clean.sh | 3 + .../i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject | 137 + .../i2c_imx/i2c_polling_sensor_imx7d/ds5/.project | 86 + .../i2c_polling_sensor_imx7d/hardware_init.c | 60 + .../i2c_imx/i2c_polling_sensor_imx7d/main.c | 343 + .../uart_imx/uart_interrupt/armgcc/CMakeLists.txt | 18 +- .../uart_imx/uart_interrupt/armgcc/build_all.bat | 0 .../uart_imx/uart_interrupt/armgcc/build_debug.bat | 0 .../uart_interrupt/armgcc/build_release.bat | 0 .../uart_imx/uart_interrupt/armgcc/clean.bat | 0 .../uart_imx/uart_interrupt/ds5/.cproject | 28 +- .../uart_imx/uart_interrupt/ds5/.project | 2 +- .../uart_imx/uart_interrupt/ds5/makedir.bat | 1 - .../ds5/uart_imx_interrupt_example.wsd | 9 - .../iar/uart_imx_interrupt_example.ewd | 9419 --- .../iar/uart_imx_interrupt_example.ewp | 1891 - .../iar/uart_imx_interrupt_example.eww | 4 - .../driver_examples/uart_imx/uart_interrupt/main.c | 12 +- .../uart_imx/uart_polling/armgcc/CMakeLists.txt | 132 + .../uart_imx/uart_polling/armgcc/build_all.bat | 5 + .../uart_imx/uart_polling/armgcc/build_all.sh | 5 + .../uart_imx/uart_polling/armgcc/build_debug.bat | 3 + .../uart_imx/uart_polling/armgcc/build_debug.sh | 3 + .../uart_imx/uart_polling/armgcc/build_release.bat | 3 + .../uart_imx/uart_polling/armgcc/build_release.sh | 3 + .../uart_imx/uart_polling/armgcc/clean.bat | 3 + .../uart_imx/uart_polling/armgcc/clean.sh | 3 + .../uart_imx/uart_polling/ds5/.cproject | 137 + .../uart_imx/uart_polling/ds5/.project | 86 + .../uart_imx/uart_polling/hardware_init.c | 57 + .../driver_examples/uart_imx/uart_polling/main.c | 117 + .../driver_examples/wdog_imx/armgcc/CMakeLists.txt | 18 +- .../driver_examples/wdog_imx/armgcc/build_all.bat | 0 .../wdog_imx/armgcc/build_debug.bat | 0 .../wdog_imx/armgcc/build_release.bat | 0 .../driver_examples/wdog_imx/armgcc/clean.bat | 0 .../driver_examples/wdog_imx/ds5/.cproject | 28 +- .../driver_examples/wdog_imx/ds5/.project | 2 +- .../driver_examples/wdog_imx/ds5/makedir.bat | 1 - .../wdog_imx/ds5/wdog_imx_example.wsd | 9 - .../wdog_imx/iar/wdog_imx_example.ewd | 9419 --- .../wdog_imx/iar/wdog_imx_example.ewp | 1891 - .../wdog_imx/iar/wdog_imx_example.eww | 4 - .../imx7d_sdb_m4/driver_examples/wdog_imx/main.c | 8 +- examples/imx7d_sdb_m4/gpio_pins.c | 20 +- examples/imx7d_sdb_m4/gpio_pins.h | 1 + examples/imx7d_sdb_m4/pin_mux.h | 6 +- examples/imx7d_val_m4/FreeRTOSConfig.h | 163 - examples/imx7d_val_m4/board.c | 4 +- examples/imx7d_val_m4/board.h | 13 +- .../demo_apps/blinking_imx_demo/FreeRTOSConfig.h | 163 + .../blinking_imx_demo/armgcc/CMakeLists.txt | 50 +- .../blinking_imx_demo/armgcc/build_all.bat | 0 .../blinking_imx_demo/armgcc/build_debug.bat | 0 .../blinking_imx_demo/armgcc/build_release.bat | 0 .../demo_apps/blinking_imx_demo/armgcc/clean.bat | 0 .../demo_apps/blinking_imx_demo/ds5/.cproject | 36 +- .../demo_apps/blinking_imx_demo/ds5/.project | 4 +- .../blinking_imx_demo/ds5/blinking_imx_demo.wsd | 9 - .../demo_apps/blinking_imx_demo/ds5/makedir.bat | 1 - .../demo_apps/blinking_imx_demo/gpio_ctrl.c | 61 +- .../demo_apps/blinking_imx_demo/gpt_timer.c | 26 +- .../demo_apps/blinking_imx_demo/gpt_timer.h | 58 - .../demo_apps/blinking_imx_demo/hardware_init.c | 2 +- .../demo_apps/blinking_imx_demo/hw_timer.h | 58 + .../blinking_imx_demo/iar/blinking_imx_demo.ewd | 9419 --- .../blinking_imx_demo/iar/blinking_imx_demo.ewp | 1891 - .../blinking_imx_demo/iar/blinking_imx_demo.eww | 4 - .../demo_apps/blinking_imx_demo/main.c | 14 +- .../demo_apps/ecspi_flash_demo/FreeRTOSConfig.h | 163 + .../ecspi_flash_demo/armgcc/CMakeLists.txt | 24 +- .../ecspi_flash_demo/armgcc/build_all.bat | 0 .../ecspi_flash_demo/armgcc/build_debug.bat | 0 .../ecspi_flash_demo/armgcc/build_release.bat | 0 .../demo_apps/ecspi_flash_demo/armgcc/clean.bat | 0 .../demo_apps/ecspi_flash_demo/ds5/.cproject | 36 +- .../demo_apps/ecspi_flash_demo/ds5/.project | 2 +- .../ecspi_flash_demo/ds5/ecspi_flash_demo.wsd | 9 - .../demo_apps/ecspi_flash_demo/ds5/makedir.bat | 1 - .../demo_apps/ecspi_flash_demo/ecspi_xfer.c | 10 +- .../demo_apps/ecspi_flash_demo/ecspi_xfer.h | 2 +- .../ecspi_flash_demo/iar/ecspi_flash_demo.ewd | 9419 --- .../ecspi_flash_demo/iar/ecspi_flash_demo.ewp | 1891 - .../ecspi_flash_demo/iar/ecspi_flash_demo.eww | 4 - .../imx7d_val_m4/demo_apps/ecspi_flash_demo/main.c | 2 +- .../demo_apps/hello_world/FreeRTOSConfig.h | 163 + .../demo_apps/hello_world/armgcc/CMakeLists.txt | 24 +- .../demo_apps/hello_world/armgcc/build_all.bat | 0 .../demo_apps/hello_world/armgcc/build_debug.bat | 0 .../demo_apps/hello_world/armgcc/build_release.bat | 0 .../demo_apps/hello_world/armgcc/clean.bat | 0 .../demo_apps/hello_world/ds5/.cproject | 36 +- .../demo_apps/hello_world/ds5/.project | 2 +- .../demo_apps/hello_world/ds5/hello_world.wsd | 9 - .../demo_apps/hello_world/ds5/makedir.bat | 1 - .../demo_apps/hello_world/iar/hello_world.ewd | 9419 --- .../demo_apps/hello_world/iar/hello_world.ewp | 1891 - .../demo_apps/hello_world/iar/hello_world.eww | 4 - .../demo_apps/hello_world_ddr/FreeRTOSConfig.h | 163 + .../hello_world_ddr/armgcc/CMakeLists.txt | 162 + .../demo_apps/hello_world_ddr/armgcc/build_all.bat | 5 + .../demo_apps/hello_world_ddr/armgcc/build_all.sh | 5 + .../hello_world_ddr/armgcc/build_debug.bat | 3 + .../hello_world_ddr/armgcc/build_debug.sh | 3 + .../hello_world_ddr/armgcc/build_release.bat | 3 + .../hello_world_ddr/armgcc/build_release.sh | 3 + .../demo_apps/hello_world_ddr/armgcc/clean.bat | 3 + .../demo_apps/hello_world_ddr/armgcc/clean.sh | 3 + .../demo_apps/hello_world_ddr/ds5/.cproject | 137 + .../demo_apps/hello_world_ddr/ds5/.project | 86 + .../demo_apps/hello_world_ddr/hardware_init.c | 74 + .../demo_apps/hello_world_ocram/FreeRTOSConfig.h | 163 + .../hello_world_ocram/armgcc/CMakeLists.txt | 162 + .../hello_world_ocram/armgcc/build_all.bat | 5 + .../hello_world_ocram/armgcc/build_all.sh | 5 + .../hello_world_ocram/armgcc/build_debug.bat | 3 + .../hello_world_ocram/armgcc/build_debug.sh | 3 + .../hello_world_ocram/armgcc/build_release.bat | 3 + .../hello_world_ocram/armgcc/build_release.sh | 3 + .../demo_apps/hello_world_ocram/armgcc/clean.bat | 3 + .../demo_apps/hello_world_ocram/armgcc/clean.sh | 3 + .../demo_apps/hello_world_ocram/ds5/.cproject | 137 + .../demo_apps/hello_world_ocram/ds5/.project | 86 + .../demo_apps/hello_world_ocram/hardware_init.c | 76 + .../demo_apps/hello_world_qspi/FreeRTOSConfig.h | 163 + .../hello_world_qspi/armgcc/CMakeLists.txt | 30 +- .../hello_world_qspi/armgcc/build_all.bat | 0 .../hello_world_qspi/armgcc/build_debug.bat | 0 .../hello_world_qspi/armgcc/build_release.bat | 0 .../demo_apps/hello_world_qspi/armgcc/clean.bat | 0 .../demo_apps/hello_world_qspi/ds5/.cproject | 40 +- .../demo_apps/hello_world_qspi/ds5/.project | 2 +- .../hello_world_qspi/ds5/hello_world_qspi.wsd | 9 - .../demo_apps/hello_world_qspi/ds5/makedir.bat | 1 - .../demo_apps/hello_world_qspi/hardware_init.c | 74 + .../hello_world_qspi/iar/hello_world_qspi.ewd | 9419 --- .../hello_world_qspi/iar/hello_world_qspi.ewp | 1891 - .../hello_world_qspi/iar/hello_world_qspi.eww | 4 - .../common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf | 90 + .../demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt | 185 - .../demo_apps/rpmsg/pingpong/armgcc/build_all.bat | 5 - .../demo_apps/rpmsg/pingpong/armgcc/build_all.sh | 5 - .../rpmsg/pingpong/armgcc/build_debug.bat | 3 - .../demo_apps/rpmsg/pingpong/armgcc/build_debug.sh | 3 - .../rpmsg/pingpong/armgcc/build_release.bat | 3 - .../rpmsg/pingpong/armgcc/build_release.sh | 3 - .../demo_apps/rpmsg/pingpong/armgcc/clean.bat | 3 - .../demo_apps/rpmsg/pingpong/armgcc/clean.sh | 3 - .../demo_apps/rpmsg/pingpong/ds5/.cproject | 137 - .../demo_apps/rpmsg/pingpong/ds5/.project | 86 - .../demo_apps/rpmsg/pingpong/ds5/makedir.bat | 1 - .../rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd | 9 - .../demo_apps/rpmsg/pingpong/hardware_init.c | 54 - .../rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd | 9419 --- .../rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp | 1891 - .../rpmsg/pingpong/iar/rpmsg_pingpong_example.eww | 4 - .../demo_apps/rpmsg/pingpong/pingpong.c | 155 - .../rpmsg/pingpong_bm/armgcc/CMakeLists.txt | 172 + .../rpmsg/pingpong_bm/armgcc/build_all.bat | 5 + .../rpmsg/pingpong_bm/armgcc/build_all.sh | 5 + .../rpmsg/pingpong_bm/armgcc/build_debug.bat | 3 + .../rpmsg/pingpong_bm/armgcc/build_debug.sh | 3 + .../rpmsg/pingpong_bm/armgcc/build_release.bat | 3 + .../rpmsg/pingpong_bm/armgcc/build_release.sh | 3 + .../demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat | 3 + .../demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh | 3 + .../demo_apps/rpmsg/pingpong_bm/ds5/.cproject | 137 + .../demo_apps/rpmsg/pingpong_bm/ds5/.project | 86 + .../demo_apps/rpmsg/pingpong_bm/hardware_init.c | 54 + .../demo_apps/rpmsg/pingpong_bm/pingpong_bm.c | 148 + .../rpmsg/pingpong_freertos/FreeRTOSConfig.h | 163 + .../rpmsg/pingpong_freertos/armgcc/CMakeLists.txt | 199 + .../rpmsg/pingpong_freertos/armgcc/build_all.bat | 5 + .../rpmsg/pingpong_freertos/armgcc/build_all.sh | 5 + .../rpmsg/pingpong_freertos/armgcc/build_debug.bat | 3 + .../rpmsg/pingpong_freertos/armgcc/build_debug.sh | 3 + .../pingpong_freertos/armgcc/build_release.bat | 3 + .../pingpong_freertos/armgcc/build_release.sh | 3 + .../rpmsg/pingpong_freertos/armgcc/clean.bat | 3 + .../rpmsg/pingpong_freertos/armgcc/clean.sh | 3 + .../rpmsg/pingpong_freertos/ds5/.cproject | 137 + .../demo_apps/rpmsg/pingpong_freertos/ds5/.project | 86 + .../rpmsg/pingpong_freertos/hardware_init.c | 54 + .../rpmsg/pingpong_freertos/pingpong_freertos.c | 136 + .../demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt | 185 - .../demo_apps/rpmsg/str_echo/armgcc/build_all.bat | 5 - .../demo_apps/rpmsg/str_echo/armgcc/build_all.sh | 5 - .../rpmsg/str_echo/armgcc/build_debug.bat | 3 - .../demo_apps/rpmsg/str_echo/armgcc/build_debug.sh | 3 - .../rpmsg/str_echo/armgcc/build_release.bat | 3 - .../rpmsg/str_echo/armgcc/build_release.sh | 3 - .../demo_apps/rpmsg/str_echo/armgcc/clean.bat | 3 - .../demo_apps/rpmsg/str_echo/armgcc/clean.sh | 3 - .../demo_apps/rpmsg/str_echo/ds5/.cproject | 137 - .../demo_apps/rpmsg/str_echo/ds5/.project | 86 - .../demo_apps/rpmsg/str_echo/ds5/makedir.bat | 1 - .../rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd | 9 - .../demo_apps/rpmsg/str_echo/hardware_init.c | 54 - .../rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd | 9419 --- .../rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp | 1891 - .../rpmsg/str_echo/iar/rpmsg_str_echo_example.eww | 4 - .../demo_apps/rpmsg/str_echo/str_echo.c | 209 - .../rpmsg/str_echo_bm/armgcc/CMakeLists.txt | 172 + .../rpmsg/str_echo_bm/armgcc/build_all.bat | 5 + .../rpmsg/str_echo_bm/armgcc/build_all.sh | 5 + .../rpmsg/str_echo_bm/armgcc/build_debug.bat | 3 + .../rpmsg/str_echo_bm/armgcc/build_debug.sh | 3 + .../rpmsg/str_echo_bm/armgcc/build_release.bat | 3 + .../rpmsg/str_echo_bm/armgcc/build_release.sh | 3 + .../demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat | 3 + .../demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh | 3 + .../demo_apps/rpmsg/str_echo_bm/ds5/.cproject | 137 + .../demo_apps/rpmsg/str_echo_bm/ds5/.project | 86 + .../demo_apps/rpmsg/str_echo_bm/hardware_init.c | 54 + .../demo_apps/rpmsg/str_echo_bm/str_echo_bm.c | 205 + .../rpmsg/str_echo_freertos/FreeRTOSConfig.h | 163 + .../rpmsg/str_echo_freertos/armgcc/CMakeLists.txt | 199 + .../rpmsg/str_echo_freertos/armgcc/build_all.bat | 5 + .../rpmsg/str_echo_freertos/armgcc/build_all.sh | 5 + .../rpmsg/str_echo_freertos/armgcc/build_debug.bat | 3 + .../rpmsg/str_echo_freertos/armgcc/build_debug.sh | 3 + .../str_echo_freertos/armgcc/build_release.bat | 3 + .../str_echo_freertos/armgcc/build_release.sh | 3 + .../rpmsg/str_echo_freertos/armgcc/clean.bat | 3 + .../rpmsg/str_echo_freertos/armgcc/clean.sh | 3 + .../rpmsg/str_echo_freertos/ds5/.cproject | 137 + .../demo_apps/rpmsg/str_echo_freertos/ds5/.project | 86 + .../rpmsg/str_echo_freertos/hardware_init.c | 54 + .../rpmsg/str_echo_freertos/str_echo_freertos.c | 146 + .../demo_apps/sema4_demo/FreeRTOSConfig.h | 163 + .../demo_apps/sema4_demo/armgcc/CMakeLists.txt | 24 +- .../demo_apps/sema4_demo/armgcc/build_all.bat | 0 .../demo_apps/sema4_demo/armgcc/build_debug.bat | 0 .../demo_apps/sema4_demo/armgcc/build_release.bat | 0 .../demo_apps/sema4_demo/armgcc/clean.bat | 0 .../demo_apps/sema4_demo/ds5/.cproject | 36 +- .../imx7d_val_m4/demo_apps/sema4_demo/ds5/.project | 2 +- .../demo_apps/sema4_demo/ds5/makedir.bat | 1 - .../demo_apps/sema4_demo/ds5/sema4_demo.wsd | 9 - .../demo_apps/sema4_demo/iar/sema4_demo.ewd | 9419 --- .../demo_apps/sema4_demo/iar/sema4_demo.ewp | 1891 - .../demo_apps/sema4_demo/iar/sema4_demo.eww | 4 - examples/imx7d_val_m4/demo_apps/sema4_demo/main.c | 2 +- .../demo_apps/sema4_demo/sema4_mutex.c | 7 +- .../adc_imx7d/armgcc/CMakeLists.txt | 18 +- .../driver_examples/adc_imx7d/armgcc/build_all.bat | 0 .../adc_imx7d/armgcc/build_debug.bat | 0 .../adc_imx7d/armgcc/build_release.bat | 0 .../driver_examples/adc_imx7d/armgcc/clean.bat | 0 .../driver_examples/adc_imx7d/ds5/.cproject | 28 +- .../driver_examples/adc_imx7d/ds5/.project | 2 +- .../adc_imx7d/ds5/adc_imx7d_example.wsd | 9 - .../driver_examples/adc_imx7d/ds5/makedir.bat | 1 - .../adc_imx7d/iar/adc_imx7d_example.ewd | 9419 --- .../adc_imx7d/iar/adc_imx7d_example.ewp | 1891 - .../adc_imx7d/iar/adc_imx7d_example.eww | 4 - .../ecspi_interrupt/master/armgcc/CMakeLists.txt | 18 +- .../ecspi_interrupt/master/armgcc/build_all.bat | 0 .../ecspi_interrupt/master/armgcc/build_debug.bat | 0 .../master/armgcc/build_release.bat | 0 .../ecspi/ecspi_interrupt/master/armgcc/clean.bat | 0 .../ecspi/ecspi_interrupt/master/ds5/.cproject | 28 +- .../ecspi/ecspi_interrupt/master/ds5/.project | 2 +- .../master/ds5/ecspi_interrupt_master_example.wsd | 9 - .../ecspi/ecspi_interrupt/master/ds5/makedir.bat | 1 - .../master/iar/ecspi_interrupt_master_example.ewd | 9419 --- .../master/iar/ecspi_interrupt_master_example.ewp | 1891 - .../master/iar/ecspi_interrupt_master_example.eww | 4 - .../ecspi/ecspi_interrupt/master/main.c | 36 +- .../ecspi_interrupt/slave/armgcc/CMakeLists.txt | 18 +- .../ecspi_interrupt/slave/armgcc/build_all.bat | 0 .../ecspi_interrupt/slave/armgcc/build_debug.bat | 0 .../ecspi_interrupt/slave/armgcc/build_release.bat | 0 .../ecspi/ecspi_interrupt/slave/armgcc/clean.bat | 0 .../ecspi/ecspi_interrupt/slave/ds5/.cproject | 28 +- .../ecspi/ecspi_interrupt/slave/ds5/.project | 2 +- .../slave/ds5/ecspi_interrupt_slave_example.wsd | 9 - .../ecspi/ecspi_interrupt/slave/ds5/makedir.bat | 1 - .../slave/iar/ecspi_interrupt_slave_example.ewd | 9419 --- .../slave/iar/ecspi_interrupt_slave_example.ewp | 1891 - .../slave/iar/ecspi_interrupt_slave_example.eww | 4 - .../ecspi/ecspi_interrupt/slave/main.c | 6 +- .../ecspi_polling/master/armgcc/CMakeLists.txt | 134 + .../ecspi_polling/master/armgcc/build_all.bat | 5 + .../ecspi/ecspi_polling/master/armgcc/build_all.sh | 5 + .../ecspi_polling/master/armgcc/build_debug.bat | 3 + .../ecspi_polling/master/armgcc/build_debug.sh | 3 + .../ecspi_polling/master/armgcc/build_release.bat | 3 + .../ecspi_polling/master/armgcc/build_release.sh | 3 + .../ecspi/ecspi_polling/master/armgcc/clean.bat | 3 + .../ecspi/ecspi_polling/master/armgcc/clean.sh | 3 + .../ecspi/ecspi_polling/master/ds5/.cproject | 137 + .../ecspi/ecspi_polling/master/ds5/.project | 86 + .../ecspi/ecspi_polling/master/hardware_init.c | 56 + .../ecspi/ecspi_polling/master/main.c | 135 + .../ecspi_polling/slave/armgcc/CMakeLists.txt | 134 + .../ecspi/ecspi_polling/slave/armgcc/build_all.bat | 5 + .../ecspi/ecspi_polling/slave/armgcc/build_all.sh | 5 + .../ecspi_polling/slave/armgcc/build_debug.bat | 3 + .../ecspi_polling/slave/armgcc/build_debug.sh | 3 + .../ecspi_polling/slave/armgcc/build_release.bat | 3 + .../ecspi_polling/slave/armgcc/build_release.sh | 3 + .../ecspi/ecspi_polling/slave/armgcc/clean.bat | 3 + .../ecspi/ecspi_polling/slave/armgcc/clean.sh | 3 + .../ecspi/ecspi_polling/slave/ds5/.cproject | 137 + .../ecspi/ecspi_polling/slave/ds5/.project | 86 + .../ecspi/ecspi_polling/slave/hardware_init.c | 56 + .../ecspi/ecspi_polling/slave/main.c | 99 + .../flexcan/flexcan_loopback/armgcc/CMakeLists.txt | 18 +- .../flexcan/flexcan_loopback/armgcc/build_all.bat | 0 .../flexcan_loopback/armgcc/build_debug.bat | 0 .../flexcan_loopback/armgcc/build_release.bat | 0 .../flexcan/flexcan_loopback/armgcc/clean.bat | 0 .../flexcan/flexcan_loopback/ds5/.cproject | 28 +- .../flexcan/flexcan_loopback/ds5/.project | 2 +- .../ds5/flexcan_loopback_example.wsd | 9 - .../flexcan/flexcan_loopback/ds5/makedir.bat | 1 - .../iar/flexcan_loopback_example.ewd | 9419 --- .../iar/flexcan_loopback_example.ewp | 1891 - .../iar/flexcan_loopback_example.eww | 4 - .../flexcan/flexcan_loopback/main.c | 2 +- .../flexcan/flexcan_network/armgcc/CMakeLists.txt | 18 +- .../flexcan/flexcan_network/armgcc/build_all.bat | 0 .../flexcan/flexcan_network/armgcc/build_debug.bat | 0 .../flexcan_network/armgcc/build_release.bat | 0 .../flexcan/flexcan_network/armgcc/clean.bat | 0 .../flexcan/flexcan_network/ds5/.cproject | 28 +- .../flexcan/flexcan_network/ds5/.project | 2 +- .../ds5/flexcan_network_example.wsd | 9 - .../flexcan/flexcan_network/ds5/makedir.bat | 1 - .../iar/flexcan_network_example.ewd | 9419 --- .../iar/flexcan_network_example.ewp | 1891 - .../iar/flexcan_network_example.eww | 4 - .../driver_examples/flexcan/flexcan_network/main.c | 2 +- .../driver_examples/gpio_imx/armgcc/CMakeLists.txt | 18 +- .../driver_examples/gpio_imx/armgcc/build_all.bat | 0 .../gpio_imx/armgcc/build_debug.bat | 0 .../gpio_imx/armgcc/build_release.bat | 0 .../driver_examples/gpio_imx/armgcc/clean.bat | 0 .../driver_examples/gpio_imx/ds5/.cproject | 28 +- .../driver_examples/gpio_imx/ds5/.project | 2 +- .../gpio_imx/ds5/gpio_imx_example.wsd | 9 - .../driver_examples/gpio_imx/ds5/makedir.bat | 1 - .../driver_examples/gpio_imx/hardware_init.c | 4 +- .../gpio_imx/iar/gpio_imx_example.ewd | 9419 --- .../gpio_imx/iar/gpio_imx_example.ewp | 1891 - .../gpio_imx/iar/gpio_imx_example.eww | 4 - .../imx7d_val_m4/driver_examples/gpio_imx/main.c | 280 +- .../driver_examples/gpt/armgcc/CMakeLists.txt | 18 +- .../driver_examples/gpt/armgcc/build_all.bat | 0 .../driver_examples/gpt/armgcc/build_debug.bat | 0 .../driver_examples/gpt/armgcc/build_release.bat | 0 .../driver_examples/gpt/armgcc/clean.bat | 0 .../imx7d_val_m4/driver_examples/gpt/ds5/.cproject | 28 +- .../imx7d_val_m4/driver_examples/gpt/ds5/.project | 2 +- .../driver_examples/gpt/ds5/gpt_example.wsd | 9 - .../driver_examples/gpt/ds5/makedir.bat | 1 - .../driver_examples/gpt/iar/gpt_example.ewd | 9419 --- .../driver_examples/gpt/iar/gpt_example.ewp | 1891 - .../driver_examples/gpt/iar/gpt_example.eww | 4 - examples/imx7d_val_m4/driver_examples/gpt/main.c | 2 +- .../i2c_imx/i2c_interrupt/armgcc/CMakeLists.txt | 132 - .../i2c_imx/i2c_interrupt/armgcc/build_all.bat | 5 - .../i2c_imx/i2c_interrupt/armgcc/build_all.sh | 5 - .../i2c_imx/i2c_interrupt/armgcc/build_debug.bat | 3 - .../i2c_imx/i2c_interrupt/armgcc/build_debug.sh | 3 - .../i2c_imx/i2c_interrupt/armgcc/build_release.bat | 3 - .../i2c_imx/i2c_interrupt/armgcc/build_release.sh | 3 - .../i2c_imx/i2c_interrupt/armgcc/clean.bat | 3 - .../i2c_imx/i2c_interrupt/armgcc/clean.sh | 3 - .../i2c_imx/i2c_interrupt/ds5/.cproject | 137 - .../i2c_imx/i2c_interrupt/ds5/.project | 86 - .../ds5/i2c_imx_interrupt_example.wsd | 9 - .../i2c_imx/i2c_interrupt/ds5/makedir.bat | 1 - .../i2c_imx/i2c_interrupt/hardware_init.c | 60 - .../iar/i2c_imx_interrupt_example.ewd | 9419 --- .../iar/i2c_imx_interrupt_example.ewp | 1891 - .../iar/i2c_imx_interrupt_example.eww | 4 - .../driver_examples/i2c_imx/i2c_interrupt/main.c | 388 - .../i2c_interrupt_eeprom/armgcc/CMakeLists.txt | 134 + .../i2c_interrupt_eeprom/armgcc/build_all.bat | 5 + .../i2c_interrupt_eeprom/armgcc/build_all.sh | 5 + .../i2c_interrupt_eeprom/armgcc/build_debug.bat | 3 + .../i2c_interrupt_eeprom/armgcc/build_debug.sh | 3 + .../i2c_interrupt_eeprom/armgcc/build_release.bat | 3 + .../i2c_interrupt_eeprom/armgcc/build_release.sh | 3 + .../i2c_imx/i2c_interrupt_eeprom/armgcc/clean.bat | 3 + .../i2c_imx/i2c_interrupt_eeprom/armgcc/clean.sh | 3 + .../i2c_imx/i2c_interrupt_eeprom/ds5/.cproject | 137 + .../i2c_imx/i2c_interrupt_eeprom/ds5/.project | 86 + .../i2c_imx/i2c_interrupt_eeprom/hardware_init.c | 60 + .../i2c_imx/i2c_interrupt_eeprom/main.c | 390 + .../i2c_polling_eeprom/armgcc/CMakeLists.txt | 134 + .../i2c_polling_eeprom/armgcc/build_all.bat | 5 + .../i2c_imx/i2c_polling_eeprom/armgcc/build_all.sh | 5 + .../i2c_polling_eeprom/armgcc/build_debug.bat | 3 + .../i2c_polling_eeprom/armgcc/build_debug.sh | 3 + .../i2c_polling_eeprom/armgcc/build_release.bat | 3 + .../i2c_polling_eeprom/armgcc/build_release.sh | 3 + .../i2c_imx/i2c_polling_eeprom/armgcc/clean.bat | 3 + .../i2c_imx/i2c_polling_eeprom/armgcc/clean.sh | 3 + .../i2c_imx/i2c_polling_eeprom/ds5/.cproject | 137 + .../i2c_imx/i2c_polling_eeprom/ds5/.project | 86 + .../i2c_imx/i2c_polling_eeprom/hardware_init.c | 60 + .../i2c_imx/i2c_polling_eeprom/main.c | 310 + .../uart_imx/uart_interrupt/armgcc/CMakeLists.txt | 18 +- .../uart_imx/uart_interrupt/armgcc/build_all.bat | 0 .../uart_imx/uart_interrupt/armgcc/build_debug.bat | 0 .../uart_interrupt/armgcc/build_release.bat | 0 .../uart_imx/uart_interrupt/armgcc/clean.bat | 0 .../uart_imx/uart_interrupt/ds5/.cproject | 28 +- .../uart_imx/uart_interrupt/ds5/.project | 2 +- .../uart_imx/uart_interrupt/ds5/makedir.bat | 1 - .../ds5/uart_imx_interrupt_example.wsd | 9 - .../iar/uart_imx_interrupt_example.ewd | 9419 --- .../iar/uart_imx_interrupt_example.ewp | 1891 - .../iar/uart_imx_interrupt_example.eww | 4 - .../driver_examples/uart_imx/uart_interrupt/main.c | 12 +- .../uart_imx/uart_polling/armgcc/CMakeLists.txt | 132 + .../uart_imx/uart_polling/armgcc/build_all.bat | 5 + .../uart_imx/uart_polling/armgcc/build_all.sh | 5 + .../uart_imx/uart_polling/armgcc/build_debug.bat | 3 + .../uart_imx/uart_polling/armgcc/build_debug.sh | 3 + .../uart_imx/uart_polling/armgcc/build_release.bat | 3 + .../uart_imx/uart_polling/armgcc/build_release.sh | 3 + .../uart_imx/uart_polling/armgcc/clean.bat | 3 + .../uart_imx/uart_polling/armgcc/clean.sh | 3 + .../uart_imx/uart_polling/ds5/.cproject | 137 + .../uart_imx/uart_polling/ds5/.project | 86 + .../uart_imx/uart_polling/hardware_init.c | 57 + .../driver_examples/uart_imx/uart_polling/main.c | 117 + .../driver_examples/wdog_imx/armgcc/CMakeLists.txt | 18 +- .../driver_examples/wdog_imx/armgcc/build_all.bat | 0 .../wdog_imx/armgcc/build_debug.bat | 0 .../wdog_imx/armgcc/build_release.bat | 0 .../driver_examples/wdog_imx/armgcc/clean.bat | 0 .../driver_examples/wdog_imx/ds5/.cproject | 28 +- .../driver_examples/wdog_imx/ds5/.project | 2 +- .../driver_examples/wdog_imx/ds5/makedir.bat | 1 - .../wdog_imx/ds5/wdog_imx_example.wsd | 9 - .../wdog_imx/iar/wdog_imx_example.ewd | 9419 --- .../wdog_imx/iar/wdog_imx_example.ewp | 1891 - .../wdog_imx/iar/wdog_imx_example.eww | 4 - .../imx7d_val_m4/driver_examples/wdog_imx/main.c | 8 +- middleware/multicore/open-amp/common/hil/hil.c | 4 +- middleware/multicore/open-amp/common/shm/sh_mem.h | 3 +- .../open-amp/docs/openamp_perf_meas_gd.pdf | Bin 0 -> 103751 bytes .../multicore/open-amp/porting/config/config.c | 14 + .../multicore/open-amp/porting/config/config.h | 10 +- .../open-amp/porting/env/bm/rpmsg_porting.c | 489 + .../open-amp/porting/env/bm/rpmsg_porting.h | 44 + middleware/multicore/open-amp/porting/env/env.h | 76 +- .../open-amp/porting/env/freertos/rpmsg_porting.c | 640 + .../open-amp/porting/env/freertos/rpmsg_porting.h | 44 + .../multicore/open-amp/porting/env/freertos_env.c | 461 - .../open-amp/porting/imx7d_m4/plat_porting.h | 50 - .../multicore/open-amp/porting/imx7d_m4/platform.c | 273 +- .../multicore/open-amp/porting/imx7d_m4/platform.h | 45 +- .../open-amp/porting/imx7d_m4/platform_info.c | 50 +- .../porting/imx7d_m4/rpmsg_platform_porting.h | 48 + .../multicore/open-amp/rpmsg/remote_device.c | 46 +- middleware/multicore/open-amp/rpmsg/rpmsg.c | 32 +- middleware/multicore/open-amp/rpmsg/rpmsg.h | 52 +- middleware/multicore/open-amp/rpmsg/rpmsg_core.c | 125 +- middleware/multicore/open-amp/rpmsg/rpmsg_core.h | 5 + middleware/multicore/open-amp/rpmsg/rpmsg_ext.c | 236 + middleware/multicore/open-amp/rpmsg/rpmsg_ext.h | 229 + middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c | 615 + middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h | 254 + middleware/multicore/open-amp/virtio/virtio_ring.h | 8 +- middleware/multicore/open-amp/virtio/virtqueue.c | 19 +- middleware/multicore/open-amp/virtio/virtqueue.h | 4 +- platform/devices/MCIMX7D/include/MCIMX7D_M4.h | 72141 +++---------------- .../MCIMX7D/linker/arm/MCIMX7D_M4_QSPIA.scf | 36 - .../MCIMX7D/linker/arm/MCIMX7D_M4_QSPIB.scf | 36 - .../devices/MCIMX7D/linker/arm/MCIMX7D_M4_ddr.scf | 90 + .../MCIMX7D/linker/arm/MCIMX7D_M4_ocram.scf | 90 + .../MCIMX7D/linker/arm/MCIMX7D_M4_qspia.scf | 90 + .../MCIMX7D/linker/arm/MCIMX7D_M4_qspib.scf | 90 + .../devices/MCIMX7D/linker/arm/MCIMX7D_M4_tcm.scf | 100 +- .../devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIA.ld | 167 - .../devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIB.ld | 167 - .../devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld | 222 + .../devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld | 82 +- .../devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspia.ld | 222 + .../devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspib.ld | 222 + .../devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld | 80 +- .../MCIMX7D/linker/iar/MCIMX7D_M4_QSPIA.icf | 93 - .../MCIMX7D/linker/iar/MCIMX7D_M4_QSPIB.icf | 93 - .../devices/MCIMX7D/linker/iar/MCIMX7D_M4_tcm.icf | 93 - .../MCIMX7D/startup/arm/startup_MCIMX7D_M4.s | 681 +- .../MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S | 427 +- .../MCIMX7D/startup/iar/startup_MCIMX7D_M4.s | 520 - .../devices/MCIMX7D/startup/system_MCIMX7D_M4.c | 332 +- platform/devices/device_imx.h | 8 +- platform/drivers/inc/adc_imx7d.h | 256 +- platform/drivers/inc/ccm_analog_imx7d.h | 228 +- platform/drivers/inc/ccm_imx7d.h | 568 +- platform/drivers/inc/ecspi.h | 343 +- platform/drivers/inc/flexcan.h | 507 +- platform/drivers/inc/gpio_imx.h | 130 +- platform/drivers/inc/gpt.h | 266 +- platform/drivers/inc/i2c_imx.h | 74 +- platform/drivers/inc/lmem.h | 174 + platform/drivers/inc/mu_imx.h | 121 +- platform/drivers/inc/rdc.h | 43 +- platform/drivers/inc/rdc_defs_imx7d.h | 343 +- platform/drivers/inc/rdc_semaphore.h | 24 +- platform/drivers/inc/sema4.h | 122 +- platform/drivers/inc/uart_imx.h | 363 +- platform/drivers/inc/wdog_imx.h | 62 +- platform/drivers/src/adc_imx7d.c | 73 +- platform/drivers/src/ccm_analog_imx7d.c | 201 +- platform/drivers/src/ccm_imx7d.c | 12 +- platform/drivers/src/ecspi.c | 38 +- platform/drivers/src/flexcan.c | 55 +- platform/drivers/src/gpio_imx.c | 16 +- platform/drivers/src/gpt.c | 24 +- platform/drivers/src/i2c_imx.c | 2 +- platform/drivers/src/lmem.c | 348 + platform/drivers/src/uart_imx.c | 44 +- platform/utilities/inc/debug_console_imx.h | 6 +- platform/utilities/src/debug_console_imx.c | 1 + platform/utilities/src/print_scan.c | 32 +- rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c | 639 - .../Source/portable/IAR/ARM_CM4F/portasm.s | 194 - .../Source/portable/IAR/ARM_CM4F/portmacro.h | 189 - 1198 files changed, 49864 insertions(+), 577297 deletions(-) create mode 100644 LA_OPT_Base_License.htm delete mode 100644 LA_OPT_FSL_OPEN_3RD_PARTY_IP.htm delete mode 100644 SW-Content-Register-FreeRTOS-BSP-1.0.0-i.MX7D.txt create mode 100644 SW-Content-Register-FreeRTOS-BSP-1.0.1-i.MX7D.txt delete mode 100644 doc/FreeRTOS BSP i.MX 7Dual API Reference Manual.pdf delete mode 100644 doc/FreeRTOS BSP i.MX 7Dual Demo Application User's Guide.pdf delete mode 100644 doc/FreeRTOS_BSP_1.0.0_i.MX7_Dual_Release_Notes.pdf create mode 100644 doc/FreeRTOS_BSP_1.0.1_i.MX_7Dual_Release_Notes.pdf create mode 100644 "doc/FreeRTOS_BSP_for_i.MX_7Dual_Demo_User\342\200\231s_Guide.pdf" create mode 100644 doc/FreeRTOS_BSP_i.MX_7Dual_API_Reference_Manual.pdf create mode 100644 doc/Getting_Started_with_FreeRTOS_BSP_for_i.MX_7Dual.pdf delete mode 100644 doc/Getting_Started_with_FreeRTOS_BSP_for_iMX_7Dual.pdf create mode 100644 doc/RPMSG_RTOS_Layer_User's_Guide.pdf delete mode 100644 examples/imx7_colibri_m4/FreeRTOSConfig.h create mode 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd delete mode 100755 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.h create mode 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hw_timer.h delete mode 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd delete mode 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp delete mode 100644 examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/clean.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world/ds5/hello_world.wsd delete mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewd delete mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewp delete mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.eww create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.project create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ddr/hardware_init.c create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.project create mode 100644 examples/imx7_colibri_m4/demo_apps/hello_world_ocram/hardware_init.c create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.c create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.h create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c create mode 100644 examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/main.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.cproject delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.project delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/hardware_init.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/pingpong.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.cproject delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.project delete mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/hardware_init.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww delete mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/str_echo.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c create mode 100644 examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c create mode 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/clean.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd delete mode 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd delete mode 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp delete mode 100644 examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.eww delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.sh delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.bat delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.sh delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.h delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.h delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.h delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.h delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.h delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.cproject delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.project delete mode 100755 examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/hardware_init.c delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.eww delete mode 100644 examples/imx7_colibri_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/clean.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd delete mode 100755 examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd delete mode 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp delete mode 100644 examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd delete mode 100755 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd delete mode 100755 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp delete mode 100644 examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/clean.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd delete mode 100755 examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/gpt/armgcc/clean.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpt/ds5/gpt_example.wsd delete mode 100755 examples/imx7_colibri_m4/driver_examples/gpt/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewd delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewp delete mode 100644 examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.eww create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c create mode 100644 examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat delete mode 100755 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd delete mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd delete mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp delete mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.project create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/hardware_init.c create mode 100644 examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/main.c mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/clean.bat delete mode 100755 examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/makedir.bat delete mode 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd delete mode 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd delete mode 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp delete mode 100644 examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww delete mode 100644 examples/imx7d_sdb_m4/FreeRTOSConfig.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd delete mode 100755 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hw_timer.h delete mode 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp delete mode 100644 examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/hello_world.wsd delete mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewp delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.eww create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.project create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.project create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd delete mode 100755 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/makedir.bat create mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/hardware_init.c delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp delete mode 100644 examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/main.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.cproject delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.project delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/hardware_init.c delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/pingpong.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.cproject delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.project delete mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/hardware_init.c delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww delete mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/str_echo.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c create mode 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/clean.bat delete mode 100755 examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.eww create mode 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.c delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.h delete mode 100755 examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp delete mode 100644 examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.eww mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd delete mode 100755 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp delete mode 100644 examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd delete mode 100755 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd delete mode 100755 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp delete mode 100644 examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd delete mode 100755 examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/clean.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpt/ds5/gpt_example.wsd delete mode 100755 examples/imx7d_sdb_m4/driver_examples/gpt/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewp delete mode 100644 examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.eww create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat delete mode 100755 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp delete mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat create mode 100755 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.project create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/hardware_init.c create mode 100644 examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/main.c mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/clean.bat delete mode 100755 examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/makedir.bat delete mode 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd delete mode 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp delete mode 100644 examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww delete mode 100644 examples/imx7d_val_m4/FreeRTOSConfig.h create mode 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd delete mode 100755 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.h create mode 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hw_timer.h delete mode 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd delete mode 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp delete mode 100644 examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww create mode 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/ecspi_flash_demo.wsd delete mode 100755 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewd delete mode 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewp delete mode 100644 examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.eww create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world/ds5/hello_world.wsd delete mode 100755 examples/imx7d_val_m4/demo_apps/hello_world/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewd delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewp delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.eww create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.cproject create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.project create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ddr/hardware_init.c create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.cproject create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.project create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_ocram/hardware_init.c create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd delete mode 100755 examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/makedir.bat create mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/hardware_init.c delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp delete mode 100644 examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.cproject delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.project delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/hardware_init.c delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/pingpong.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.cproject delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.project delete mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/hardware_init.c delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww delete mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/str_echo.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c create mode 100644 examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c create mode 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/FreeRTOSConfig.h mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/clean.bat delete mode 100755 examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd delete mode 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd delete mode 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp delete mode 100644 examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.eww mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/ecspi_interrupt_master_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.eww mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/ecspi_interrupt_slave_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.eww create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.cproject create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.project create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/hardware_init.c create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/main.c create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.cproject create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.project create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/hardware_init.c create mode 100644 examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/main.c mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/gpt/armgcc/clean.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/gpt/ds5/gpt_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/gpt/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.eww delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/CMakeLists.txt delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.bat delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.sh delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.bat delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.sh delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.bat delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.sh delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.bat delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.sh delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.cproject delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.project delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/i2c_imx_interrupt_example.wsd delete mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/hardware_init.c delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.eww delete mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/main.c create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.cproject create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.project create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/hardware_init.c create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/main.c create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.cproject create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.project create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/hardware_init.c create mode 100644 examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/main.c mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat delete mode 100755 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd delete mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat create mode 100755 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat create mode 100755 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat create mode 100755 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat create mode 100755 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.project create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/hardware_init.c create mode 100644 examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/main.c mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_all.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_debug.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_release.bat mode change 100755 => 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/clean.bat delete mode 100755 examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/makedir.bat delete mode 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd delete mode 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd delete mode 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp delete mode 100644 examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww create mode 100644 middleware/multicore/open-amp/docs/openamp_perf_meas_gd.pdf create mode 100644 middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c create mode 100644 middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h create mode 100644 middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c create mode 100644 middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h delete mode 100644 middleware/multicore/open-amp/porting/env/freertos_env.c delete mode 100644 middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h create mode 100644 middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h create mode 100644 middleware/multicore/open-amp/rpmsg/rpmsg_ext.c create mode 100644 middleware/multicore/open-amp/rpmsg/rpmsg_ext.h create mode 100644 middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c create mode 100644 middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h delete mode 100755 platform/devices/MCIMX7D/linker/arm/MCIMX7D_M4_QSPIA.scf delete mode 100755 platform/devices/MCIMX7D/linker/arm/MCIMX7D_M4_QSPIB.scf create mode 100644 platform/devices/MCIMX7D/linker/arm/MCIMX7D_M4_ddr.scf create mode 100644 platform/devices/MCIMX7D/linker/arm/MCIMX7D_M4_ocram.scf create mode 100644 platform/devices/MCIMX7D/linker/arm/MCIMX7D_M4_qspia.scf create mode 100644 platform/devices/MCIMX7D/linker/arm/MCIMX7D_M4_qspib.scf mode change 100755 => 100644 platform/devices/MCIMX7D/linker/arm/MCIMX7D_M4_tcm.scf delete mode 100644 platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIA.ld delete mode 100644 platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIB.ld create mode 100644 platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld create mode 100644 platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspia.ld create mode 100644 platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspib.ld delete mode 100644 platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIA.icf delete mode 100644 platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIB.icf delete mode 100644 platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_tcm.icf delete mode 100644 platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s create mode 100644 platform/drivers/inc/lmem.h create mode 100644 platform/drivers/src/lmem.c delete mode 100644 rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c delete mode 100644 rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s delete mode 100644 rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h diff --git a/LA_OPT_Base_License.htm b/LA_OPT_Base_License.htm new file mode 100644 index 0000000..af0b978 --- /dev/null +++ b/LA_OPT_Base_License.htm @@ -0,0 +1,1074 @@ + + + + + + + + + + + +
+ +

LA_OPT_BASE_LICENSE v10 November +2015

+ +

 

+ +

IMPORTANT.  Read the following Freescale Semiconductor Software +License Agreement (“Agreement”) completely.    By selecting the +“I Accept” button at the end of this page, you indicate that you accept the +terms of the Agreement and you acknowledge that you have the authority, for +yourself or on behalf of your company, to bind your company to these +terms.  You may then download or install the file.

+ +

 

+ +

FREESCALE +SEMICONDUCTOR SOFTWARE LICENSE AGREEMENT

+ +

 

+ +

This is a +legal agreement between you, as an authorized representative of your employer, +or if you have no employer, as an individual (together “you”), and Freescale +Semiconductor, Inc. (“Freescale”) and its Affiliates.  It concerns your +rights to use the software identified in the Software Content Register and +provided to you in binary or source code form and any accompanying written +materials (the “Licensed Software”). The Licensed Software may include any +updates or error corrections or documentation relating to the Licensed Software +provided to you by Freescale under this License. In consideration for Freescale +allowing you to access the Licensed Software, you are agreeing to be bound by +the terms of this Agreement. If you do not agree to all of the terms of this +Agreement, do not download or install the Licensed Software. If you change your +mind later, stop using the Licensed Software and delete all copies of the +Licensed Software in your possession or control. Any copies of the Licensed +Software that you have already distributed, where permitted, and do not destroy +will continue to be governed by this Agreement. Your prior use will also +continue to be governed by this Agreement.

+ +

1.       +DEFINITIONS

+ +

1.1.             +“Affiliates” means, any corporation, or entity directly or indirectly +controlled by, controlling, or under common control with Freescale.

+ +

1.2.             +“Essential Patent” means a patent to the limited extent that +infringement of such patent cannot be avoided in remaining compliant with the +technology standards implicated by the usage of any of the Licensed +Software, including optional implementation of the standards, on technical but +not commercial grounds, taking into account normal technical practice and the +state of the art generally available at the time of standardization.

+ +

1.3.             +“Intellectual Property Rights” means any and all rights under statute, +common law or equity in and under copyrights, trade secrets, and patents +(including utility models), and analogous rights throughout the world, including +any applications for and the right to apply for, any of the foregoing.

+ +

1.4.             +“Software Content Register” means the documentation accompanying the +Licensed Software which identifies the contents of the Licensed Software, +including but not limited to identification of any Third Party Software. 

+ +

1.5.             +“Third Party Software” means, any software included in the Licensed +Software that is not Freescale Proprietary software, and is not open source +software, and to which different license terms may apply.

+ +

2.       +LICENSE GRANT. 

+ +

2.1.             +Separate license grants to Third Party Software, or other terms +applicable to the Licensed Software if different from those granted in this +Section 2, are contained in Appendix A.  The Licensed Software is +accompanied by a Software Content Register which will identify that portion of +the Licensed Software, if any, that is subject to the different terms in +Appendix A.

+ +

2.2.             +Exclusively in connection with your development and distribution of +product containing a programmable processing unit (e.g. a microprocessor, +microcontroller, sensor or digital signal processor) supplied directly or +indirectly from Freescale (“Authorized System”) Freescale grants you a +world-wide, personal, non-transferable, non-exclusive, non-sublicensable, license, +under Freescale’s Intellectual Property Rights:

+ +

(a)    +to use and reproduce the Licensed Software only as part of, or +integrated within, Authorized Systems and not on a standalone basis;

+ +

(b)   +to directly or indirectly manufacture, demonstrate, copy, distribute, +market and sell the Licensed Software in object code (machine readable) only as +part of, or embedded within, Authorized Systems in object code form and not on +a standalone basis.  Notwithstanding the foregoing, those files marked as +.h files (“Header files”) may be distributed in source or object code form, but +only as part of, or embedded within Authorized Systems.

+ +

(c)     +to copy, use and distribute as needed, solely in connection with an +Authorized System, proprietary Freescale information associated with the +Licensed Software for the purpose of developing, maintaining and supporting +Authorized Systems with which the Licensed Software is integrated or +associated.

+ +

2.3.             +For Freescale Licensed Software provided to you in source code form +(human readable), Freescale further grants to you a worldwide, personal, +non-transferable, non-exclusive, non-sublicensable, license, under Freescale’s +Intellectual Property Rights:

+ +

(a)    +to prepare derivative works of the Licensed Software, only as part of, +or integrated within, Authorized Systems and not on a standalone basis;

+ +

(b)     +to use, demonstrate, copy, distribute, market and sell the derivative +works of the Licensed Software in object code (machine readable) only as part +of, or integrated within, Authorized Systems and not on a standalone basis. + Notwithstanding the foregoing, those files marked as .h files (“Header +files”) may be distributed in source or object code form, but only as part of, or +embedded within Authorized Systems.

+ +

2.4.             +You may use subcontractors on your premises to exercise your rights +under Section 2.2 and 2.3 so long as you have an agreement in place with the +subcontractor containing confidentiality restrictions no less stringent than +those contained in this Agreement.  You will remain liable for your +subcontractors’ adherence to the terms of this Agreement and for any and all +acts and omissions of such subcontractors with respect to this Agreement and +the Licensed Software.

+ +

3.       +LICENSE LIMITATIONS AND RESTRICTIONS. 

+ +

3.1.             +The licenses granted above in Section 2.3 only extend to Freescale +intellectual property rights that would be infringed by the Licensed Software +prior to your preparation of any derivative work.  

+ +

3.2.             +The Licensed Software is licensed to you, not sold.  Title to +Licensed Software delivered hereunder remains vested in Freescale or +Freescale's licensor and cannot be assigned or transferred.  You are +expressly forbidden from selling or otherwise distributing the Licensed +Software, or any portion thereof, except as expressly permitted herein.  +This Agreement does not grant to you any implied rights under any Freescale or +third party intellectual property.

+ +

3.3.             +You may not translate, reverse engineer, decompile, or disassemble the +Licensed Software except to the extent applicable law specifically prohibits +such restriction.  You must prohibit your sub-licensees from translating, +reverse engineering, decompiling, or disassembling the Licensed Software except +to the extent applicable law specifically prohibits such restriction.

+ +

3.4.             +You must reproduce any and all of Freescale's (or its third party +licensor’s) copyright notices and other proprietary legends on copies of +Licensed Software. 

+ +

3.5.             +If you distribute the Licensed Software to the United States Government, +then the Licensed Software is “restricted computer software” and is subject to +FAR 52.227-19 (c)(1) and (c)(2).  

+ +

3.6.             +You grant to Freescale a non-exclusive, non-transferable, irrevocable, +perpetual, worldwide, royalty-free, sub-licensable license under your +Intellectual Property Rights to use without restriction and for any purpose any +suggestion, comment or other feedback related to the Licensed Software +(including, but not limited to, error corrections and bug fixes).

+ +

3.7.             +You will not take or fail to take any action that could subject the +Licensed Software to an Excluded License. An Excluded License means any license +that requires, as a condition of use, modification or distribution of software +subject to the Excluded License, that such software or other software combined +and/or distributed with the software be (i) disclosed or distributed in source +code form; (ii) licensed for the purpose of making derivative works; or (iii) +redistributable at no charge. 

+ +

3.8.             +You may not publish or +distribute information, results or data associated with the use of the Licensed +Software to anyone other than Freescale; however, you must advise Freescale of +any results obtained including any problems or suggested improvements +thereof.  Freescale retains the right to use such results and related +information in any manner it deems appropriate.

+ +

4.       +OPEN SOURCE.         Open +source software included in the Licensed Software is not licensed under the +terms of this Agreement, but is instead licensed under the terms of the +applicable open source license(s), such as the BSD License, Apache License or +the GNU Lesser General Public License.  Your use of the open source +software is subject to the terms of each applicable license.  You must +agree to the terms of each applicable license, or you cannot use the open +source software. 

+ +

5.       +INTELLECTUAL PROPERTY RIGHTS.    Subject to Freescale’s +ownership interest in the underlying Licensed Software, all intellectual +property rights associated with, and title to, your Authorized System will be +retained by or will vest in you. Your modifications to the Licensed Software, and +all intellectual property rights associated with, and title thereto, will be +the property of Freescale.  Upon request, you must provide Freescale the +source code of any derivative of the Licensed Software.  You agree to +assign all, and hereby do assign all rights, title, and interest to any such +modifications to the Licensed Software to Freescale and agree to provide all +assistance reasonably requested by Freescale to establish, preserve or enforce +such right.  Further, you agree to waive all moral rights relating to your +modifications to the Licensed Software, including, without limitation, all +rights of identification of authorship and all rights of approval, restriction, +or limitation on use or subsequent modification.  Notwithstanding the +foregoing, you will have the license rights granted in Section 2 hereto to any +such modifications made by you or your licensees.

+ +

6.       +PATENT COVENANT NOT TO SUE. As partial, material consideration +for the rights granted to you under this Agreement, you covenant not to sue or +otherwise assert your patents against Freescale, a Freescale Affiliate or +subsidiary, or a Freescale licensee of the Licensed Software for infringement +of your Intellectual Property Rights by the manufacture, use, sale, offer for +sale, importation or other disposition or promotion of the Licensed Software +and/or any redistributed portions of the Licensed Software.

+ +

7.       +ESSENTIAL PATENTS.  You are solely responsible for obtaining +licenses for any relevant Essential Patents for your use in connection with +technology that you incorporate into the your product (whether as part of the +Licensed Software or not). 

+ +

8.       +TERM AND TERMINATION.   This Agreement will remain in +effect unless terminated as provided in this Section 8.

+ +

8.1.             +You may terminate this Agreement immediately upon written notice to +Freescale at the address provided below.

+ +

8.2.             +Either party may terminate this Agreement if the other party is in +default of any of the terms and conditions of this Agreement, and termination +is effective if the defaulting party fails to correct such default within 30 +days after written notice thereof by the non-defaulting party to the defaulting +party at the address below.

+ +

8.3.             +Notwithstanding the +foregoing, Freescale may terminate this Agreement immediately upon written +notice if you: breach any of your confidentiality obligations or the license +restrictions under this Agreement;  become bankrupt, insolvent, or file a +petition for bankruptcy or insolvency, make an assignment for the benefit of +its creditors; enter proceedings for winding up or dissolution ;are dissolved; +or are nationalized or become subject to the expropriation of all or +substantially all of its business or assets.

+ +

8.4.             +Upon termination of this Agreement, all licenses granted under Section 2 +will expire, except that any licenses extended to end-users pursuant to +Sections 2.2(b), 2.2(c), and 2.3(b), which have been granted prior to such +termination will survive.

+ +

8.5.             +After termination of this Agreement by either party and upon Freescale’s +written request, you will, at your discretion, return to the Freescale any +confidential information including all copies thereof or furnish to Freescale +at the address below, a statement certifying, with respect to the Licensed +Software delivered hereunder that the original and all copies, except for +archival copies to be used solely for dispute resolution purposes, in whole or +in part, in any form, of the Licensed Software have been destroyed.

+ +

8.6.             +Notwithstanding the termination of this Agreement for any reason, the +terms of Sections 1, 3, 5 through 25 will survive. 

+ +

9.                   +SUPPORT.  Freescale is not obligated to provide any support, +upgrades or new releases of the Licensed Software under this Agreement. If you +wish, you may contact Freescale and report problems and provide suggestions +regarding the Licensed Software. Freescale has no obligation to respond to such +a problem report or suggestion. Freescale may make changes to the Licensed +Software at any time, without any obligation to notify or provide updated +versions of the Licensed Software to you.

+ +

10.               +NO WARRANTY.  To the maximum extent permitted by law, +Freescale expressly disclaims any warranty for the Licensed Software.  The +Licensed Software is provided “AS IS”, without warranty of any kind, either +express or implied, including without limitation the implied warranties of +merchantability, fitness for a particular purpose, or non-infringement.  +You assume the entire risk arising out of the use or performance of the +licensed software, or any systems you design using the licensed software (if +any).

+ +

11.               +INDEMNITY. You agree to fully defend and indemnify Freescale from +all claims, liabilities, and costs (including reasonable attorney’s fees) +related to (1) your use (including your contractors or distributee’s use, if +permitted) of the Licensed Software or (2) your violation of the terms and +conditions of this Agreement.

+ +

12.               +LIMITATION OF LIABILITY.  EXCLUDING LIABILITY FOR A BREACH +OF SECTION 2 (LICENSE GRANTS), SECTION 3 (LICENSE LIMITATIONS AND +RESTRICTIONS), SECTION 17 (CONFIDENTIAL INFORMATION), OR CLAIMS UNDER SECTION +11(INDEMNITY), IN NO EVENT WILL EITHER PARTY BE LIABLE, WHETHER IN CONTRACT, +TORT, OR OTHERWISE, FOR ANY INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR +PUNITIVE DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, +LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR +REVENUES, TO THE FULL EXTENT SUCH MAY BE DISCLAIMED BY LAW.  FREESCALE’S +TOTAL LIABILITY FOR ALL COSTS, DAMAGES, CLAIMS, OR LOSSES WHATSOEVER ARISING +OUT OF OR IN CONNECTION WITH THIS AGREEMENT OR PRODUCT(S) SUPPLIED UNDER THIS +AGREEMENT IS LIMITED TO THE AGGREGATE AMOUNT PAID BY YOU TO FREESCALE IN +CONNECTION WITH THE LICENSED SOFTWARE TO WHICH LOSSES OR DAMAGES ARE CLAIMED.

+ +

13.               +EXPORT RESTRICTIONS.

+ +

13.1.          +Licensed Software (collectively referred to as “items”) is subject +to the export control laws of the United States and other countries that may +lawfully control the export of the Licensed Software. Furnishing support +services with respect to Licensed Software that is controlled as defense or +military items may also be subject to such laws.  Accordingly, you agree +you will not transfer the Licensed Software or furnish such services except in +compliance with the export laws of the United States and any other country that +may lawfully control the export of the Licensed Software or the provision of +such services.  You will indemnify and hold Freescale harmless from any +claims, liabilities, damages, penalties, forfeitures, and associated costs and +expenses (including attorneys’ fees) that Freescale may incur due to your +non-compliance with applicable export laws, rules, and regulations.  You +will immediately notify Freescale of any violation of any export law, rule, or +regulation, which may affect Freescale or relate to the activities covered +under this Agreement.

+ +

13.2.          +If an export/import license, permit, or other government required +authority (collectively referred to as “government authorization”) is required +for Freescale to transfer the Licensed Software or any other Freescale property +under this Agreement and such government authorization to non- Freescale +party(ies) is not approved, then Freescale is not obligated to proceed with the +transfer until the required government authorization is granted.

+ +

14.   +GOVERNMENT CONTRACT COMPLIANCE.

+ +

14.1.          +If you sell Authorized Systems directly to any government or public +entity, including U.S., state, local, foreign or international governments or +public entities, or indirectly via a prime contractor or subcontractor of such +governments or entities, Freescale makes no representations, certifications, or +warranties whatsoever about compliance with government or public entity +acquisition statutes or regulations, including, without limitation, statutes or +regulations that may relate to pricing, quality, origin or content.

+ +

14.2.          +The Licensed Software has been developed at private expense and is a +“Commercial Item” as defined in 48 C.F.R. §2.101, consisting of “Commercial +Computer Software”, and/or “Commercial Computer Software Documentation,” as +such terms are used in 48 C.F.R. §12.212 (or 48 C.F.R. §227.7202, as +applicable) and may only be licensed to or shared with U.S. Government end +users in object code form as part of, or embedded within, Authorized +Systems.  Any agreement pursuant to which you share the Licensed Software +will include a provision that reiterates the limitations of this document and +requires all sub-agreements to similarly contain such limitations.

+ +

15.               +SAFETY CRITICAL +APPLICATIONS

+ +

15.1.          +In some cases, Freescale may promote certain Licensed Software for use +in safety-related applications. Freescale’s goal is to educate licensees so +that they can design their own end-product solutions to meet applicable +functional safety standards and requirements.  You make the ultimate +design decisions regarding your products and are solely responsible for +compliance with all legal, regulatory, safety, and security related +requirements concerning your products, regardless of any information or support +that may be provided by Freescale.  Accordingly, you will indemnify and +hold Freescale harmless from any claims, liabilities, damages and associated +costs and expenses (including attorneys’ fees) that Freescale may incur related +to your incorporation of any Product in a safety-critical application or +system. 

+ +

15.2.          +Only Licensed Software that Freescale has specifically designated as +“Automotive Qualified” is intended for use in automotive, military, or +aerospace applications or environments.  If you use Licensed Software that +has not been designated as “Automotive Qualified” in an automotive, military, +or aerospace application or environment, you do so at your own risk.

+ +

15.3.          +Licensed Software is not intended or authorized for any use in +anti-personnel landmines.

+ +

16.              +CHOICE OF LAW; VENUE.  This Agreement will be governed by, +construed, and enforced in accordance with the laws of the State of Texas, USA, +without regard to conflicts of laws principles, will apply to all matters +relating to this Agreement or the Licensed Software, and you agree that any +litigation will be subject to the exclusive jurisdiction of the state or +federal courts Texas, USA.  The United Nations Convention on Contracts for the International Sale of +Goods will not apply to this document.

+ +

17.               +CONFIDENTIAL INFORMATION.  Subject to the license grants and +restrictions contained herein, you must treat the Licensed Software as +confidential information and you agree to retain the Licensed Software in +confidence perpetually, with respect to Licensed Software in source code form +(human readable), or for a period of five (5) years from the date of +termination of this Agreement, with respect to all other parts of the Licensed +Software.  During this period you may not disclose any part of the +Licensed Software to anyone other than employees who have a need to know of the +Licensed Software and who have executed written agreements obligating them to +protect such Licensed Software to at least the same degree of care as in this +Agreement.  You agree to use the same degree of care, but no less than a +reasonable degree of care, with the Licensed Software as you do with your own +confidential information. You may disclose Licensed Software to the extent +required by a court or under operation of law or order provided that you notify +Freescale of such requirement prior to disclosure, which you only disclose +information required, and that you allow Freescale the opportunity to object to +such court or other legal body requiring such disclosure.

+ +

18.               +TRADEMARKS.  You are not authorized to use any Freescale +trademarks, brand names, or logos.

+ +

19.               +ENTIRE AGREEMENT.  This Agreement constitutes the entire +agreement between you and Freescale regarding the subject matter of this +Agreement, and supersedes all prior communications, negotiations, +understandings, agreements or representations, either written or oral, if +any.  This Agreement may only be amended in written form, signed by you +and Freescale.

+ +

20.               +SEVERABILITY.  If any provision of this Agreement is held +for any reason to be invalid or unenforceable, then the remaining provisions of +this Agreement will be unimpaired and, unless a modification or replacement of +the invalid or unenforceable provision is further held to deprive you or +Freescale of a material benefit, in which case the Agreement will immediately +terminate, the invalid or unenforceable provision will be replaced with a +provision that is valid and enforceable and that comes closest to the intention +underlying the invalid or unenforceable provision.

+ +

21.               +NO WAIVER.  The waiver by Freescale of any breach of any +provision of this Agreement will not operate or be construed as a waiver of any +other or a subsequent breach of the same or a different provision.

+ +

22.               +AUDIT.  You will keep full, clear and +accurate records with respect to your compliance with the limited license +rights granted under this Agreement for three years following expiration or +termination of this Agreement. Freescale will have the right, either itself or +through an independent certified public accountant to examine and audit, at +Freescale’s expense, not more than once a year, and during normal business +hours, all such records that may bear upon your compliance with the limited +license rights granted above. You must make prompt adjustment to +compensate for any errors and/or omissions disclosed by such examination or +audit.

+ +

23.               +NOTICES.             +All notices and communications under this Agreement will be made in +writing, and will be effective when received at the following addresses:

+ +

Freescale:                   +Freescale Semiconductor, Inc.

+ +

                                    +6501 William Cannon West    OE62

+ +

                                    +Austin, Texas 78735

+ +

                                    +ATTN: General Counsel

+ +

 

+ +

                +You:                              The +address provided at registration will be used.

+ +

24.               +RELATIONSHIP OF THE PARTIES.     The parties +are independent contractors.  Nothing in this Agreement will be construed +to create any partnership, joint venture, or similar relationship.  +Neither party is authorized to bind the other to any obligations with third +parties.

+ +

25.               +SUCCESSION AND ASSIGNMENT.   This Agreement will be +binding upon and inure to the benefit of the parties and their permitted +successors and assigns.  Neither party may assign this Agreement, or any +part of this Agreement, without the prior written approval of the other party, +which approval will not be unreasonably withheld or delayed.

+ +
+
+ +

 

+ +

 

+ +

APPENDIX A

+ +

Other License Grants and Restrictions:

+ +

The Licensed Software may include some or all of the following +software, which is either 1) not Freescale proprietary software or 2) Freescale +proprietary software subject to different terms than those in the +Agreement.  If the Software Content Register that accompanies the Licensed +Software identifies any of the following Third Party Software or specific +components of the Freescale Proprietary Software, the following terms apply to +the extent they deviate from the terms in the Agreement:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Third Party Software

+
+

Use Restrictions

+
+

Atheros

+
+

Use of Atheros software is limited to + evaluation and demonstration only.  Permitted + distributions must be similarly limited. Further rights must be obtained directly from + Atheros.   

+
+

ATI (AMD)

+
+

Distribution of ATI software must be a + part of, or embedded within, Authorized Systems that include a ATI graphics + processor core. 

+
+

Broadcom Corporation

+
+

Your use of Broadcom Corporation software is + restricted to Authorized Systems that incorporate a compatible integrated + circuit device manufactured or sold by Broadcom. 

+
+

Cirque Corporation

+
+

Use of Cirque Corporation technology is limited to + evaluation, demonstration, or certification testing only. Permitted distributions + must be similarly limited. Further rights, including but not limited to ANY + commercial distribution rights, must be obtained directly from Cirque + Corporation.

+
+

Coding Technologies (Dolby Labs)

+
+

Use of CTS software is limited to evaluation + and demonstration only.  Permitted + distributions must be similarly limited. Further rights must be obtained from + Dolby Laboratories.

+
+

CSR

+
+

Use of Cambridge Silicon Radio, Inc. (“CSR”) software is limited + to evaluation and demonstration only.  Permitted distributions must be + similarly limited.  Further rights must be obtained directly from CSR.

+
+

Freescale + Wireless Charging Library

+
+

License to + the Software is limited to use in inductive coupling or wireless charging + applications

+
+

Global Locate (Broadcom Corporation)

+
+

Use of Global Locate, Inc. software is limited to evaluation and + demonstration only.  Permitted distributions must be similarly + limited.  Further rights must be obtained from Global + Locate.  

+
+

Imagination Technologies Limited (IMG)

+
+

If the + Licensed Software includes proprietary software developed by IMG, your rights + are limited to a non-exclusive, world-wide right and non-transferrable and + non-sub-licensable license (i) to use and modify the Licensed Software and + documentation and (ii) to copy and distribute the Licensed Software only in + object code form solely for use on Freescale Rayleigh products.  If you + are provided with the Licensed Software in source code format, you are + restricted to accessing only those deliverables in source code format which + are necessary for you to carry out either specific customization or porting + work in association with Freescale’s Rayleigh products or your Authorized + System.

+

The + confidentiality restrictions shall continue in force without limit in time + notwithstanding the termination or expiration of this Agreement.

+
+

Micrium

+
+

uC/OS-II and + uC/OS-III is provided in source form for FREE short-term evaluation, for + educational use or for peaceful research.  If you plan or intend to use + uC/OS-II or uC/OS-III in a commercial application/product then, you need to + contact Micrium to properly license uC/OS-II or uC/OS-III for its use in your + application/product.   We provide ALL the source code for your + convenience and to help you experience uC/OS-II or uC/OS-III.  The fact + that the source is provided does NOT mean that you can use it commercially + without paying a licensing fee.

+
+

Microsoft

+
+

If the + Licensed Software includes software owned by Microsoft Corporation + (“Microsoft”), it is subject to the terms of your license with Microsoft (the + “Microsoft Underlying Licensed Software”) and as such, Freescale grants no + license to you, beyond evaluation and demonstration in connection with + Freescale processors, in the Microsoft Underlying Licensed Software.  + You must separately obtain rights beyond evaluation and demonstration in + connection with the Microsoft Underlying Licensed Software from Microsoft.

+

Microsoft + does not provide support services for the components provided to you through + this Agreement.  If you have any questions or require technical assistance, + please contact Freescale.  Microsoft Corporation is a third party + beneficiary to this Agreement with the right to enforce the terms of this + Agreement.  TO THE MAXIMUM EXTENT PERMITTED BY LAW, MICROSOFT AND ITS + AFFILIATES DISCLAIM ANY WARRANTIES FOR THE MICROSOFT UNDERLYING LICENSED + SOFTWARE.  TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER MICROSOFT NOR + ITS AFFILIATES WILL BE LIABLE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, FOR + ANY DIRECT, INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR PUNITIVE DAMAGES, + INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, LOSS OF TIME, + INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES, + ARISING FROM THE FROM THE USE OF THE MICROSOFT UNDERLYING LICENSED + SOFTWARE. 

+
+

MindTree

+
+

Notwithstanding the terms contained in Section + 2.3 (a), if the Licensed Software includes proprietary software of MindTree + in source code format, Licensee may make modifications and create derivative + works only to the extent necessary for debugging of the Licensed Software.

+
+

MPEG LA

+
+

Use of MPEG LA audio or video codec technology + is limited to evaluation and demonstration only . Permitted distributions must be similarly limited. Further rights must be obtained directly from + MPEG LA.

+
+

MQX RTOS Code

+
+

MQX RTOS source code + may not be re-distributed by any FSL Licensee under any circumstance, even by + a signed written amendment to this Agreement.

+
+

Opus

+
+

Use of Opus software + must be consistent with the terms of the Opus license which can be found at: http://www.opus-codec.org/license/

+
+

Real Networks - its GStreamer Optimized Real Format + Client Code implementation or OpenMax Optimized Real Format Client Code

+
+

Use of the + GStreamer Optimized Real Format Client Code, or OpenMax Optimized Real Format + Client code is restricted to applications in the automotive market.  + Licensee must be a final manufacturer in good standing with a current license + with Real Networks for the commercial use and distribution of products + containing the GStreamer Optimized Real Format Client Code implementation or + OpenMax Optimized Real Format Client Code

+
+

SanDisk Corporation

+
+

If the Licensed Software includes software developed by SanDisk + Corporation (“SanDisk”), you must separately obtain the rights to reproduce + and distribute this software in source code form from SanDisk.  Please + follow these easy steps to obtain the license and software: 

+

1.       + Contact your local SanDisk sales representative to + obtain the SanDisk License Agreement.

+

2.       Sign the license agreement.  Fax the signed agreement to + SanDisk USA marketing department at 408-542-0403.  The license will be + valid when fully executed by SanDisk.

+

3.       + If you have specific questions, please send an email + to sales@sandisk.com

+

You may only + use the SanDisk Corporation Licensed Software on products compatible with a + SanDisk Secure Digital Card.  You may not use + the SanDisk Corporation Licensed Software on any memory device product.  + SanDisk retains all rights to any modifications or derivative works to the + SanDisk Corporation Licensed Software that you may create.

+
+

Texas Instruments

+
+

Your use of Texas Instruments Inc. WiLink8 Licensed Software is + restricted to Freescale SoC based systems that include a compatible + connectivity device manufactured by TI. 

+
+

Vivante

+
+

Distribution of Vivante software must be a + part of, or embedded within, Authorized Systems that include a Vivante + Graphics Processing Unit. 

+
+ +

 

+ +

 

+ +

 

+ +
+ + + + diff --git a/LA_OPT_FSL_OPEN_3RD_PARTY_IP.htm b/LA_OPT_FSL_OPEN_3RD_PARTY_IP.htm deleted file mode 100644 index 19cc97d..0000000 --- a/LA_OPT_FSL_OPEN_3RD_PARTY_IP.htm +++ /dev/null @@ -1,1738 +0,0 @@ - - - - - - - - - - - - - - - - - - - -
- -

LA_OPT_FSL_OPEN_3RD_PARTY_IP -v8 June 2015

- -

 

- -

IMPORTANT.  Read the following Freescale Semiconductor Software -License Agreement (ÒAgreementÓ) completely.    By selecting the -ÒI AcceptÓ button at the end of this page, you indicate that you accept the -terms of the Agreement and you acknowledge that you have the authority, for -yourself or on behalf of your company, to bind your company to these -terms.  You may then download or install the file.

- -

 

- -

FREESCALE -SEMICONDUCTOR SOFTWARE LICENSE AGREEMENT

- -

 

- -

This -is a legal agreement between you, as an authorized representative of your -employer, or if you have no employer, as an individual (together ÒyouÓ), and -Freescale Semiconductor, Inc. (ÒFreescaleÓ) and its Affiliates.  It -concerns your rights to use the software identified in the Software Content -Register and provided to you in binary or source code form and any accompanying -written materials (the ÒLicensed SoftwareÓ). The Licensed Software may include -any updates or error corrections or documentation relating to the Licensed -Software provided to you by Freescale under this License. In consideration for -Freescale allowing you to access the Licensed Software, you are agreeing to be -bound by the terms of this Agreement. If you do not agree to all of the terms -of this Agreement, do not download or install the Licensed Software. If you -change your mind later, stop using the Licensed Software and delete all copies -of the Licensed Software in your possession or control. Any copies of the -Licensed Software that you have already distributed, where permitted, and do -not destroy will continue to be governed by this Agreement. Your prior use will -also continue to be governed by this Agreement.

- -

1.       -DEFINITIONS

- -

1.1.             -ÒAffiliatesÓ means, any corporation, or entity directly or indirectly -controlled by, controlling, or under common control with Freescale.

- -

1.2.             -ÒEssential PatentÓ means a patent to the limited extent that -infringement of such patent cannot be avoided in remaining compliant with the -technology standards implicated by the usage of any of the Licensed -Software, including optional implementation of the standards, on technical but -not commercial grounds, taking into account normal technical practice and the -state of the art generally available at the time of standardization.

- -

1.3.             -ÒIntellectual Property RightsÓ means any and all rights under statute, -common law or equity in and under copyrights, -trade secrets, and patents (including utility models), and analogous rights -throughout the world, including any applications for and the right to -apply for, any of the foregoing.

- -

1.4.             -ÒSoftware Content RegisterÓ means the documentation accompanying the -Licensed Software which identifies the contents of the -Licensed Software, including but not limited to identification of any Third -Party Software. 

- -

1.5.             -ÒThird Party SoftwareÓ means, any software included in the Licensed -Software that is not Freescale Proprietary software, and is not open source -software, and to which different license terms may apply.

- -

2.       -LICENSE GRANT. 

- -

2.1.             -Separate license grants to Third Party Software, or other terms -applicable to the Licensed Software if different from those granted in this -Section 2, are contained in Appendix A.  The Licensed Software is -accompanied by a Software Content Register which will identify that portion of -the Licensed Software, if any, that is subject to the different terms in -Appendix A.

- -

2.2.             -Exclusively in connection with your development and distribution of -product containing a programmable processing unit (e.g. a microprocessor, -microcontroller, sensor or digital signal processor) supplied directly or -indirectly from Freescale (ÒAuthorized SystemÓ) Freescale grants you a -world-wide, personal, non-transferable, non-exclusive, non-sublicensable, -license, under FreescaleÕs Intellectual Property Rights:

- -

(a)    -to use and reproduce  the Licensed Software only as part of, -or integrated within, Authorized Systems and not on a standalone basis;

- -

(b)   -to directly or indirectly manufacture, demonstrate, copy, -distribute, market and sell the Licensed Software in object code (machine -readable) only as part of, or embedded within, Authorized Systems in object -code form and not on a standalone basis.  Notwithstanding the foregoing, -those files marked as .h files (ÒHeader filesÓ) may be distributed in source or -object code form, but only as part of, or embedded within Authorized Systems.

- -

(c)     to -copy, use and distribute as needed, solely in connection with an Authorized -System, proprietary Freescale information associated with the Licensed Software -for the purpose of developing, maintaining and supporting Authorized Systems -with which the Licensed Software is integrated or associated.

- -

2.3.             -For Freescale Licensed Software provided to you in source code form -(human readable), Freescale further grants to you a worldwide, personal, -non-transferable, non-exclusive, non-sublicensable, license, -under FreescaleÕs Intellectual Property Rights:

- -

(a)    -to prepare derivative works of the Licensed Software, only as -part of, or integrated within, Authorized Systems and not on a standalone -basis,;

- -

(b)     to -use, demonstrate, copy, distribute, market and sell the derivative works of the -Licensed Software in object code (machine readable) only as part of, or -integrated within, Authorized Systems and not on a standalone basis. - Notwithstanding the foregoing, those files marked as .h files (ÒHeader -filesÓ) may be distributed in source or object code form, but only as part of, -or embedded within Authorized Systems.

- -

2.4.             -You may use subcontractors on your premises to exercise your rights -under Section 2.2 and 2.3 so long as you have an agreement in place with the -subcontractor containing confidentiality restrictions no less stringent than -those contained in this Agreement.  You will remain liable for your -subcontractorsÕ adherence to the terms of this Agreement and for any and all -acts and omissions of such subcontractors with respect to this Agreement and -the Licensed Software.

- -

3.       -LICENSE LIMITATIONS AND RESTRICTIONS. 

- -

3.1.             -The licenses granted above in -Section 2.3 only extend to Freescale intellectual property rights that would be -infringed by the Licensed Software prior to your preparation of any derivative -work.  

- -

3.2.             -The Licensed Software is licensed to you, not sold.  Title to -Licensed Software delivered hereunder remains vested in Freescale or -Freescale's licensor and cannot be assigned or transferred.  You are -expressly forbidden from selling or otherwise distributing the Licensed -Software, or any portion thereof, except as expressly permitted herein.  -This Agreement does not grant to you any implied rights under any Freescale or -third party intellectual property.

- -

3.3.             -You may not translate, reverse -engineer, decompile, or disassemble the Licensed Software except to the extent -applicable law specifically prohibits such restriction.  You must prohibit -your sub-licensees from translating, reverse engineering, decompiling, or -disassembling the Licensed Software except to the extent applicable law -specifically prohibits such restriction.

- -

3.4.             -You must reproduce any and all of Freescale's (or its third party -licensorÕs) copyright notices and other proprietary legends on copies of -Licensed Software. 

- -

3.5.             -If you distribute the Licensed -Software to the United States Government, then the Licensed Software is -Òrestricted computer softwareÓ and is subject to FAR 52.227-19 (c)(1) and -(c)(2).  

- -

3.6.             -You grant to Freescale a non-exclusive, non-transferable, irrevocable, -perpetual, worldwide, royalty-free, sub-licensable license under your -Intellectual Property Rights to use without restriction and for any purpose any -suggestion, comment or other feedback related to the Licensed Software -(including, but not limited to, error corrections and bug fixes).

- -

3.7.             -You will not take or fail to take -any action that could subject the Licensed Software to an Excluded License. An -Excluded License means any license that requires, as a condition of use, -modification or distribution of software subject to the Excluded License, that -such software or other software combined and/or distributed with the software -be (i) disclosed or distributed in source code form; -(ii) licensed for the purpose of making derivative works; or (iii) -redistributable at no charge. 

- -

3.8.             -You may not publish or distribute information, -results or data associated with the use of the Licensed Software to anyone -other than Freescale; however you must advise Freescale of any results obtained -including any problems or suggested improvements thereof.  Freescale -retains the right to use such results and related information in any manner it -deems appropriate.

- -

4.       -OPEN SOURCE.         -Open source software included in the Licensed Software is not licensed under -the terms of this Agreement, but is instead licensed under the terms of the -applicable open source license(s), such as the BSD License, Apache License or -the GNU Lesser General Public License.  Your use of the open source -software is subject to the terms of each applicable license.  You must -agree to the terms of each applicable license, or you cannot use the open -source software. 

- -

5.       -INTELLECTUAL PROPERTY RIGHTS.    Subject to -FreescaleÕs ownership interest in the underlying Licensed Software, all -intellectual property rights associated with, and title to, your Authorized -System will be retained by or will vest in you. Your modifications to the -Licensed Software, and all intellectual property rights associated with, and -title thereto, will be the property of Freescale.  Upon request, you must -provide Freescale the source code of any derivative of the Licensed -Software.  You agree to assign all, and hereby do assign all rights, -title, and interest to any such modifications to the Licensed Software to -Freescale and agree to provide all assistance reasonably requested by Freescale -to establish, preserve or enforce such right.  Further, you agree to waive -all moral rights relating to your modifications to the Licensed Software, -including, without limitation, all rights of identification of authorship and -all rights of approval, restriction, or limitation on use or subsequent -modification.  Notwithstanding the foregoing, you will have the license -rights granted in Section 2 hereto to any such modifications made by you or -your licensees.

- -

6.       -PATENT COVENANT NOT TO SUE. As partial, material -consideration for the rights granted to you under this Agreement, you covenant -not to sue or otherwise assert your patents against Freescale, a Freescale -Affiliate or subsidiary, or a Freescale licensee of the Licensed Software for -infringement of your Intellectual Property Rights by the manufacture, use, -sale, offer for sale, importation or other disposition or promotion of the -Licensed Software and/or any redistributed portions of the Licensed Software.

- -

7.       -ESSENTIAL PATENTS.  You are solely responsible for obtaining -licenses for any relevant Essential Patents for your use in connection with -technology that you incorporate into the your product (whether as part of the -Licensed Software or not). 

- -

8.       -TERM AND TERMINATION.   -This Agreement will remain in effect unless terminated as provided in this -Section 8.

- -

8.1.             -You may terminate this Agreement -immediately upon written notice to Freescale at the address provided below.

- -

8.2.             -Either party may terminate this Agreement if the other party is in -default of any of the terms and conditions of this Agreement, and termination -is effective if the defaulting party fails to correct such default within 30 -days after written notice thereof by the non-defaulting party to the defaulting -party at the address below.

- -

8.3.             -Notwithstanding the foregoing, -Freescale may terminate this Agreement immediately upon written notice if you: -breach any of your confidentiality obligations or the license restrictions -under this Agreement;  become bankrupt, -insolvent, or file a petition for bankruptcy or insolvency, make an assignment -for the benefit of its creditors; enter proceedings for winding up or -dissolution ;are dissolved; or are nationalized or become subject to the -expropriation of all or substantially all of its business or assets.

- -

8.4.             -Upon termination of this Agreement, -all licenses granted under Section 2 will expire, except that any licenses -extended to end-users pursuant to Sections 2.2(b), 2.2(c), and 2.3(b), which -have been granted prior to such termination will survive.

- -

8.5.             -After termination of this Agreement by either party and upon -FreescaleÕs written request, you will, at your discretion, return to the -Freescale any confidential information including all copies thereof or furnish -to Freescale at the address below, a statement certifying, with respect to the -Licensed Software delivered hereunder that the original and all copies, except -for archival copies to be used solely for dispute resolution purposes, in whole -or in part, in any form, of the Licensed Software have been destroyed.

- -

8.6.             -Notwithstanding -the termination of this Agreement for any reason, the terms of Sections 1, 3, 5 -through 25 will survive. 

- -

9.                   -SUPPORT.  Freescale is not obligated to provide any -support, upgrades or new releases of the Licensed Software under this -Agreement. If you wish, you may contact Freescale and report problems and -provide suggestions regarding the Licensed Software. Freescale has no -obligation to respond to such a problem report or suggestion. Freescale may make -changes to the Licensed Software at any time, without any obligation to notify -or provide updated versions of the Licensed Software to you.

- -

10.               -NO WARRANTY.  To the maximum extent permitted by law, -Freescale expressly disclaims any warranty for the Licensed Software.  The -Licensed Software is provided ÒAS ISÓ, without warranty of any kind, either -express or implied, including without limitation the implied warranties of -merchantability, fitness for a particular purpose, or non-infringement.  You -assume the entire risk arising out of the use or performance of the licensed -software, or any systems you design using the licensed software (if any).

- -

11.               -INDEMNITY. You agree to fully defend and indemnify -Freescale from all claims, liabilities, and costs (including reasonable -attorneyÕs fees) related to (1) your use (including your contractors or distributeeÕs use, if permitted) of the Licensed Software -or (2) your violation of the terms and conditions of this Agreement.

- -

12.               -LIMITATION OF LIABILITY.  EXCLUDING LIABILITY FOR -A BREACH OF SECTION 2 (LICENSE GRANTS), SECTION 3 (LICENSE LIMITATIONS AND -RESTRICTIONS), SECTION 17 (CONFIDENTIAL INFORMATION), OR CLAIMS UNDER SECTION -11(INDEMNITY), IN NO EVENT WILL EITHER PARTY BE LIABLE, WHETHER IN CONTRACT, -TORT, OR OTHERWISE, FOR ANY INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR -PUNITIVE DAMAGES, INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, -LOSS OF TIME, INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES, -TO THE FULL EXTENT SUCH MAY BE DISCLAIMED BY LAW.  FREESCALEÕS TOTAL -LIABILITY FOR ALL COSTS, DAMAGES, CLAIMS, OR LOSSES WHATSOEVER ARISING OUT OF -OR IN CONNECTION WITH THIS AGREEMENT OR PRODUCT(S) -SUPPLIED UNDER THIS AGREEMENT IS LIMITED TO THE AGGREGATE AMOUNT PAID BY YOU TO -FREESCALE IN CONNECTION WITH THE LICENSED SOFTWARE TO WHICH LOSSES OR DAMAGES -ARE CLAIMED.

- -

13.               -EXPORT RESTRICTIONS.

- -

13.1.          -Licensed Software (collectively referred to as ÒitemsÓ) -is subject to the export control laws of the -United States and other countries that may lawfully control the export of the -Licensed Software. Furnishing support services with respect to Licensed -Software that is controlled as defense or military items may also be subject to -such laws.  Accordingly, you agree you will not transfer the Licensed -Software or furnish such services except in compliance with the export laws of -the United States and any other country that may lawfully control the export of -the Licensed Software or the provision of such services.  You will -indemnify and hold Freescale harmless from any claims, liabilities, damages, -penalties, forfeitures, and associated costs and expenses (including attorneysÕ -fees) that Freescale may incur due to your non-compliance with applicable -export laws, rules, and regulations.  You will immediately notify -Freescale of any violation of any export law, rule, or regulation, which may -affect Freescale or relate to the activities covered under this Agreement.

- -

13.2.          -If an export/import license, permit, or other government required -authority (collectively referred to as Ògovernment authorizationÓ) is required -for Freescale to transfer the Licensed Software or any other Freescale property -under this Agreement and such government authorization to non- Freescale party(ies) is not approved, then -Freescale is not obligated to proceed with the transfer until the required -government authorization is granted.

- -

14.   GOVERNMENT -CONTRACT COMPLIANCE.

- -

14.1.          -If you sell Authorized Systems directly to any government or public -entity, including U.S., state, local, foreign or international governments or -public entities, or indirectly via a prime contractor or subcontractor of such -governments or entities, Freescale makes no representations, certifications, or -warranties whatsoever about compliance with government or public entity -acquisition statutes or regulations, including, without limitation, statutes or -regulations that may relate to pricing, quality, origin or content.

- -

14.2.          -The Licensed Software has been developed at private expense and is a -ÒCommercial ItemÓ as defined in 48 C.F.R. ¤2.101, consisting of ÒCommercial -Computer SoftwareÓ, and/or ÒCommercial Computer Software Documentation,Ó as -such terms are used in 48 C.F.R. ¤12.212 (or 48 C.F.R. ¤227.7202, as -applicable) and may only be licensed to or shared with U.S. Government end -users in object code form as part of, or embedded within, Authorized -Systems.  Any agreement pursuant to which you share the Licensed Software will -include a provision that reiterates the limitations of this document and -requires all sub-agreements to similarly contain such limitations.

- -

15.               -SAFETY CRITICAL APPLICATIONS

- -

15.1.          -In some cases, Freescale may -promote certain Licensed Software for use in safety-related applications. -FreescaleÕs goal is to educate licensees so that they can design their own -end-product solutions to meet applicable functional safety standards and -requirements.  You make the ultimate design decisions regarding your -products and are solely responsible for compliance with all legal, regulatory, -safety, and security related requirements concerning your products, regardless -of any information or support that may be provided by Freescale.  -Accordingly, you will indemnify and hold Freescale harmless from any claims, -liabilities, damages and associated costs and expenses (including attorneysÕ -fees) that Freescale may incur related to your incorporation of any Product in -a safety-critical application or system. 

- -

15.2.          -Only Licensed Software that Freescale has specifically designated as -ÒAutomotive QualifiedÓ is intended for use in automotive, military, or -aerospace applications or environments.  If you use Licensed Software that -has not been designated as ÒAutomotive QualifiedÓ in an automotive, military, -or aerospace application or environment, you do so at your own risk.

- -

15.3.          -Licensed Software is not intended or authorized for any use in -anti-personnel landmines.

- -

16.              -CHOICE OF LAW; VENUE.  This Agreement will be -governed by, construed, and enforced in accordance with the laws of the State -of Texas, USA, without regard to conflicts of laws principles, will apply to -all matters relating to this Agreement or the Licensed Software, and you agree -that any litigation will be subject to the exclusive jurisdiction of the state -or federal courts Texas, USA.  The United Nations Convention on Contracts for the International Sale -of Goods will not apply to this document.

- -

17.               -CONFIDENTIAL INFORMATIONSubject to the -license grants and restrictions contained herein, you must treat the Licensed -Software as confidential information and you agree to retain the Licensed -Software in confidence perpetually, with respect to Licensed Software in source -code form (human readable), or for a period of five (5) years from the date of -termination of this Agreement, with respect to all other parts of the Licensed -Software.  During this period you may not disclose any part of the -Licensed Software to anyone other than employees who have a need to know of the -Licensed Software and who have executed written agreements obligating them to -protect such Licensed Software to at least the same degree of care as in this -Agreement.  You agree to use the same degree of care, but no less than a -reasonable degree of care, with the Licensed Software as you do with your own -confidential information. You may disclose Licensed Software to the extent -required by a court or under operation of law or order provided that you notify -Freescale of such requirement prior to disclosure, which you only disclose -information required, and that you allow Freescale the opportunity to object to -such court or other legal body requiring such disclosure.

- -

18.               -TRADEMARKS.  You are not authorized to use any -Freescale trademarks, brand names, or logos.

- -

19.               -ENTIRE AGREEMENT.  This Agreement constitutes the entire -agreement between you and Freescale regarding the subject matter of this -Agreement, and supersedes all prior communications, negotiations, -understandings, agreements or representations, either written or oral, if -any.  This Agreement may only be amended in written form, signed by you -and Freescale.

- -

20.               -SEVERABILITY.  If any provision of this Agreement is -held for any reason to be invalid or unenforceable, then the remaining -provisions of this Agreement will be unimpaired and, unless a modification or -replacement of the invalid or unenforceable provision is further held to -deprive you or Freescale of a material benefit, in which case the Agreement -will immediately terminate, the invalid or unenforceable provision will be -replaced with a provision that is valid and enforceable and that comes closest -to the intention underlying the invalid or unenforceable provision.

- -

21.               -NO WAIVER.  The waiver by Freescale of any breach of -any provision of this Agreement will not operate or be construed as a waiver of -any other or a subsequent breach of the same or a different provision.

- -

22.               -AUDIT.  You will keep full, clear and accurate -records with respect to your compliance with the limited license rights granted -under this Agreement for three years following expiration or termination of -this Agreement. Freescale will have the right, either itself or through an -independent certified public accountant to examine and audit, at FreescaleÕs -expense, not more than once a year, and during normal business hours, all such -records that may bear upon your compliance with the limited license rights granted -above. You must make prompt adjustment to compensate for -any errors and/or omissions disclosed by such examination or audit.

- -

23.               -NOTICES.             -All notices and communications under this Agreement will be made in -writing, and will be effective when received at the following addresses:

- -

Freescale:                   -Freescale Semiconductor, Inc.

- -

                                    -6501 William Cannon West    OE62

- -

                                    -Austin, Texas 78735

- -

                                    -ATTN: General Counsel

- -

 

- -

                -You:                              The -address provided at registration will be used.

- -

24.               -RELATIONSHIP OF THE PARTIES.     The -parties are independent contractors.  Nothing in this Agreement will be -construed to create any partnership, joint venture, or similar -relationship.  Neither party is authorized to bind the other to any -obligations with third parties.

- -

25.               -SUCCESSION AND ASSIGNMENT.   This -Agreement will be binding upon and inure to the benefit of the parties and -their permitted successors and assigns.  Neither party may assign this -Agreement, or any part of this Agreement, without the prior written approval of -the other party, which approval will not be unreasonably withheld or delayed.

- -
-
- -

 

- -

 

- -

APPENDIX A

- -

Other License Grants and Restrictions:

- -

The Licensed Software may include some or all -of the following software, which is either 1) not Freescale proprietary -software or 2) Freescale proprietary software subject to different terms than -those in the Agreement.  If the Software Content Register that accompanies -the Licensed Software identifies any of the following Third Party Software or -specific components of the Freescale Proprietary Software, the following terms -apply to the extent they deviate from the terms in the Agreement:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Third Party - Software

-
-

Use - Restrictions

-
-

Atheros

-
-

Use of Atheros software is - limited to evaluation and demonstration only.  Permitted distributions must be similarly limited. Further rights must be obtained - directly from Atheros.   

-
-

ATI (AMD)

-
-

Distribution of ATI software - must be a part of, or embedded within, Authorized - Systems that include a ATI graphics processor - core. 

-
-

Broadcom Corporation

-
-

Your use of Broadcom Corporation - software is restricted to Authorized Systems that incorporate a compatible - integrated circuit device manufactured or sold by Broadcom. 

-
-

Coding Technologies (Dolby Labs) -

-
-

Use of CTS software is limited - to evaluation and demonstration only.  Permitted - distributions must be similarly limited. Further rights must be obtained from Dolby Laboratories.

-
-

CSR

-
-

Use of Cambridge Silicon Radio, Inc. (ÒCSRÓ) - software is limited to evaluation and demonstration only.  Permitted - distributions must be similarly limited.  Further rights must be obtained - directly from CSR.

-
-

Freescale - Wireless Charging Library

-
-

License - to the Software is limited to use in inductive coupling or wireless charging - applications

-
-

Global Locate (Broadcom Corporation)

-
-

Use of Global Locate, Inc. software is - limited to evaluation and demonstration only.  Permitted distributions - must be similarly limited.  Further rights must be obtained from Global - Locate.  

-
-

Imagination Technologies Limited (IMG)

-
-

If - the Licensed Software includes proprietary software developed by IMG, your rights - are limited to a non-exclusive, world-wide right and - non-transferrable and non-sub-licensable license (i) - to use and modify the Licensed Software and documentation and (ii) to copy - and distribute the Licensed Software only in object code form solely for use - on Freescale Rayleigh products.  If you are provided with the Licensed - Software in source code format, you are restricted to accessing only those - deliverables in source code format which are necessary for - you to carry out either specific customization or porting work in - association with FreescaleÕs Rayleigh products or your Authorized System.

-

The - confidentiality restrictions shall continue in force without limit in time - notwithstanding the termination or expiration of this Agreement.

-
-

Micrium

-
-

uC/OS-II and uC/OS-III is provided in source form for FREE short-term - evaluation, for educational use or for peaceful research.  If you plan - or intend to use uC/OS-II or uC/OS-III - in a commercial application/product then, you need to contact Micrium to properly license uC/OS-II - or uC/OS-III for its use in your - application/product.   We provide ALL the source code for your - convenience and to help you experience uC/OS-II or uC/OS-III.  The fact that the source is provided - does NOT mean that you can use it commercially without paying a licensing - fee.

-
-

Microsoft

-
-

If - the Licensed Software includes software owned by Microsoft Corporation - (ÒMicrosoftÓ), it is subject to the terms of your license with Microsoft (the - ÒMicrosoft Underlying Licensed SoftwareÓ) and as such, Freescale grants no - license to you, beyond evaluation and demonstration in connection with - Freescale processors, in the Microsoft Underlying Licensed Software.  - You must separately obtain rights beyond evaluation and demonstration in - connection with the Microsoft Underlying Licensed Software from Microsoft.

-

Microsoft - does not provide support services for the components provided to you through - this Agreement.  If you have any questions or require technical - assistance, please contact Freescale.  Microsoft Corporation is a third - party beneficiary to this Agreement with the right to enforce the terms of - this Agreement.  TO THE MAXIMUM EXTENT PERMITTED BY LAW, MICROSOFT AND - ITS AFFILIATES DISCLAIM ANY WARRANTIES FOR THE MICROSOFT UNDERLYING LICENSED - SOFTWARE.  TO THE MAXIMUM EXTENT PERMITTED BY LAW, NEITHER MICROSOFT NOR - ITS AFFILIATES WILL BE LIABLE, WHETHER IN CONTRACT, TORT, OR OTHERWISE, FOR - ANY DIRECT, INCIDENTAL, SPECIAL, INDIRECT, CONSEQUENTIAL OR PUNITIVE DAMAGES, - INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR ANY LOSS OF USE, LOSS OF TIME, - INCONVENIENCE, COMMERCIAL LOSS, OR LOST PROFITS, SAVINGS, OR REVENUES, - ARISING FROM THE FROM THE USE OF THE MICROSOFT UNDERLYING LICENSED - SOFTWARE. 

-
-

MindTree

-
-

Notwithstanding the terms - contained in Section 2.3 (a), if the Licensed Software includes proprietary - software of MindTree in source code format, Licensee may make modifications - and create derivative works only to the extent necessary for debugging of the - Licensed Software.

-
-

MPEG LA

-
-

Use of MPEG LA audio or video - codec technology is limited to evaluation and demonstration only . Permitted distributions must be - similarly limited. Further rights must be obtained directly from MPEG LA.

-
-

MQX RTOS - Code

-
-

MQX RTOS source code may not be - re-distributed by any FSL Licensee under any circumstance, even by a signed - written amendment to this Agreement.

-
-

Opus

-
-

Use of Opus software must be - consistent with the terms of the Opus license which can be found at: http://www.opus-codec.org/license/

-
-

Real Networks - its GStreamer - Optimized Real Format Client Code implementation or OpenMax - Optimized Real Format Client Code

-
-

Use - of the GStreamer Optimized Real Format Client Code, - or OpenMax Optimized Real Format Client code is - restricted to applications in the automotive market.  Licensee must be a - final manufacturer in good standing with a current license with Real Networks - for the commercial use and distribution of products containing the GStreamer Optimized Real Format Client Code - implementation or OpenMax Optimized Real Format - Client Code

-
-

SanDisk Corporation

-
-

If the Licensed Software includes software - developed by SanDisk Corporation (ÒSanDiskÓ), you must separately obtain the - rights to reproduce and distribute this software in source code form from - SanDisk.  Please follow these easy steps to obtain the license and - software: 

-

1.       - Contact your local - SanDisk sales representative to obtain the SanDisk License Agreement.

-

2.       - Sign the license - agreement.  Fax the signed agreement to SanDisk USA marketing department - at 408-542-0403.  The license will be valid when fully executed by - SanDisk.

-

3.       If you have specific questions, please send - an email to sales@sandisk.com

-

You may only use the SanDisk Corporation - Licensed Software on products compatible with a SanDisk Secure Digital - Card.  You - may not use the SanDisk Corporation Licensed Software on any memory device - product.  SanDisk retains all rights to any modifications or derivative - works to the SanDisk Corporation Licensed Software that you may create.

-
-

Texas - Instruments

-
-

Your use of Texas Instruments Inc. WiLink8 - Licensed Software is restricted to Freescale SoC - based systems that include a compatible connectivity device manufactured by - TI. 

-
-

Vivante

-
-

Distribution of Vivante software must be a part of, or embedded - within, Authorized Systems that include a Vivante - Graphics Processing Unit. 

-
- -

 

- -
-
- -

 

- - - - - - -
-

 

-
-

 

-
- -

 

- -

 

- -
- - - - - \ No newline at end of file diff --git a/SW-Content-Register-FreeRTOS-BSP-1.0.0-i.MX7D.txt b/SW-Content-Register-FreeRTOS-BSP-1.0.0-i.MX7D.txt deleted file mode 100644 index b538d31..0000000 --- a/SW-Content-Register-FreeRTOS-BSP-1.0.0-i.MX7D.txt +++ /dev/null @@ -1,63 +0,0 @@ -Release Name: Version: 1.0.0 -FreeRTOS BSP for -i.MX 7Dual -Package - FreeRTOS BSP - -CMSIS DSP Library Description: A digital signal processing - library for Cortex-M cores from ARM - Version: 1.4.4 (CMSIS download 4.2) - Author: ARM - License: Open Source - BSD-3-Clause - Format: source code - URL: http://silver.arm.com - Location: - FreeRTOS_BSP_1.0.0_iMX7D/platform/CMSIS/DSP_lib - -CMSIS Core header files Description: Industry-standard header files - distributed by ARM for Cortex-M cores - Version: 4.20 - Author: ARM - License: Open Source - BSD-3-Clause - Format: source code - URL: http://silver.arm.com - Location: - FreeRTOS_BSP_1.0.0_iMX7D/platform/CMSIS/Include - -FreeRTOS BSP Description: The peripheral driver wrap the H/W -Peripheral Driver register access into a set of stateless functional - primitives which provide the building blocks for - applications. - Version: 1.0.0 - Author: Freescale - License: Open Source - BSD-3-Clause - Format: source code - Location: FreeRTOS_BSP_1.0.0_iMX7D/platform/drivers - -Package - FreeRTOS(tm) Description: A real-time operating system - (RTOS) from Real Time Engineers, Ltd. - Version: 8.0.0 - Author: Real Time Engineers, Ltd. - License: Modified GPLv2. See - FreeRTOS_BSP_1.0.0_iMX7D/rtos/FreeRTOS/License/license.txt - Format: source code - URL: http://www.freertos.org - Location: FreeRTOS_BSP_1.0.0_iMX7D/rtos/FreeRTOS - -Package - OpenAMP Description: Open Asymmetric Multi Processing (OpenAMP) - provides software components that enable development of software - applications for Asymmetric Multiprocessing (AMP) systems. - Author: Mentor Graphics, Ltd. - License: Open Source - BSD-3-Clause - Format: source code - URL: https://github.com/OpenAMP/open-amp - Location: FreeRTOS_BSP_1.0.0_iMX7D/middleware/multicore/open-amp - -printk Description: The standard C library routine - printf(), but without all the baggage. - Version: n/a - Author: Motorola - License: Open Source - a Motorola permissive open source license - Format: source code - URL: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=M5407C3 - Location: FreeRTOS_BSP_1.0.0_iMX7D/platform/utilities/src/print_scan.c - diff --git a/SW-Content-Register-FreeRTOS-BSP-1.0.1-i.MX7D.txt b/SW-Content-Register-FreeRTOS-BSP-1.0.1-i.MX7D.txt new file mode 100644 index 0000000..b4bd6a7 --- /dev/null +++ b/SW-Content-Register-FreeRTOS-BSP-1.0.1-i.MX7D.txt @@ -0,0 +1,53 @@ +Release Name: Version: 1.0.1 +FreeRTOS BSP for +i.MX 7Dual +Package - FreeRTOS BSP + +CMSIS DSP Library Description: A digital signal processing + library for Cortex-M cores from ARM + Version: 1.4.4 (CMSIS download 4.2) + Author: ARM + License: Open Source - BSD-3-Clause + Format: source code + URL: http://silver.arm.com + Location: + FreeRTOS_BSP_1.0.1_iMX7D/platform/CMSIS/DSP_lib + +CMSIS Core header files Description: Industry-standard header files + distributed by ARM for Cortex-M cores + Version: 4.20 + Author: ARM + License: Open Source - BSD-3-Clause + Format: source code + URL: http://silver.arm.com + Location: + FreeRTOS_BSP_1.0.1_iMX7D/platform/CMSIS/Include + +FreeRTOS BSP Description: The peripheral driver wrap the H/W +Peripheral Driver register access into a set of stateless functional + primitives which provide the building blocks for + applications. + Version: 1.0.1 + Author: Freescale + License: Open Source - BSD-3-Clause + Format: source code + Location: FreeRTOS_BSP_1.0.1_iMX7D/platform/drivers + +Package - FreeRTOS(tm) Description: A real-time operating system + (RTOS) from Real Time Engineers, Ltd. + Version: 8.0.0 + Author: Real Time Engineers, Ltd. + License: Modified GPLv2. See + FreeRTOS_BSP_1.0.1_iMX7D/rtos/FreeRTOS/License/license.txt + Format: source code + URL: http://www.freertos.org + Location: FreeRTOS_BSP_1.0.1_iMX7D/rtos/FreeRTOS + +Package - OpenAMP Description: Open Asymmetric Multi Processing (OpenAMP) + provides software components that enable development of software + applications for Asymmetric Multiprocessing (AMP) systems. + Author: Mentor Graphics, Ltd. + License: Open Source - BSD-3-Clause + Format: source code + URL: https://github.com/OpenAMP/open-amp + Location: FreeRTOS_BSP_1.0.1_iMX7D/middleware/multicore/open-amp diff --git a/doc/FreeRTOS BSP i.MX 7Dual API Reference Manual.pdf b/doc/FreeRTOS BSP i.MX 7Dual API Reference Manual.pdf deleted file mode 100644 index 3e213c6..0000000 Binary files a/doc/FreeRTOS BSP i.MX 7Dual API Reference Manual.pdf and /dev/null differ diff --git a/doc/FreeRTOS BSP i.MX 7Dual Demo Application User's Guide.pdf b/doc/FreeRTOS BSP i.MX 7Dual Demo Application User's Guide.pdf deleted file mode 100644 index 703ec0a..0000000 Binary files a/doc/FreeRTOS BSP i.MX 7Dual Demo Application User's Guide.pdf and /dev/null differ diff --git a/doc/FreeRTOS_BSP_1.0.0_i.MX7_Dual_Release_Notes.pdf b/doc/FreeRTOS_BSP_1.0.0_i.MX7_Dual_Release_Notes.pdf deleted file mode 100644 index 5a71437..0000000 Binary files a/doc/FreeRTOS_BSP_1.0.0_i.MX7_Dual_Release_Notes.pdf and /dev/null differ diff --git a/doc/FreeRTOS_BSP_1.0.1_i.MX_7Dual_Release_Notes.pdf b/doc/FreeRTOS_BSP_1.0.1_i.MX_7Dual_Release_Notes.pdf new file mode 100644 index 0000000..925e188 Binary files /dev/null and b/doc/FreeRTOS_BSP_1.0.1_i.MX_7Dual_Release_Notes.pdf differ diff --git "a/doc/FreeRTOS_BSP_for_i.MX_7Dual_Demo_User\342\200\231s_Guide.pdf" "b/doc/FreeRTOS_BSP_for_i.MX_7Dual_Demo_User\342\200\231s_Guide.pdf" new file mode 100644 index 0000000..4e0b20e Binary files /dev/null and "b/doc/FreeRTOS_BSP_for_i.MX_7Dual_Demo_User\342\200\231s_Guide.pdf" differ diff --git a/doc/FreeRTOS_BSP_i.MX_7Dual_API_Reference_Manual.pdf b/doc/FreeRTOS_BSP_i.MX_7Dual_API_Reference_Manual.pdf new file mode 100644 index 0000000..2cf56d4 Binary files /dev/null and b/doc/FreeRTOS_BSP_i.MX_7Dual_API_Reference_Manual.pdf differ diff --git a/doc/Getting_Started_with_FreeRTOS_BSP_for_i.MX_7Dual.pdf b/doc/Getting_Started_with_FreeRTOS_BSP_for_i.MX_7Dual.pdf new file mode 100644 index 0000000..516f106 Binary files /dev/null and b/doc/Getting_Started_with_FreeRTOS_BSP_for_i.MX_7Dual.pdf differ diff --git a/doc/Getting_Started_with_FreeRTOS_BSP_for_iMX_7Dual.pdf b/doc/Getting_Started_with_FreeRTOS_BSP_for_iMX_7Dual.pdf deleted file mode 100644 index ca49a37..0000000 Binary files a/doc/Getting_Started_with_FreeRTOS_BSP_for_iMX_7Dual.pdf and /dev/null differ diff --git a/doc/RPMSG_RTOS_Layer_User's_Guide.pdf b/doc/RPMSG_RTOS_Layer_User's_Guide.pdf new file mode 100644 index 0000000..92fb42f Binary files /dev/null and b/doc/RPMSG_RTOS_Layer_User's_Guide.pdf differ diff --git a/examples/imx7_colibri_m4/FreeRTOSConfig.h b/examples/imx7_colibri_m4/FreeRTOSConfig.h deleted file mode 100644 index 39dcb8e..0000000 --- a/examples/imx7_colibri_m4/FreeRTOSConfig.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* Ensure stdint is only used by the compiler, and not the assembler. */ -#ifdef __ICCARM__ - #include -#endif - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ (240000000ul) -#define configTICK_RATE_HZ ((TickType_t)1000) -#define configMAX_PRIORITIES (5) -#define configMINIMAL_STACK_SIZE ((unsigned short)130) -#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) -#define configMAX_TASK_NAME_LEN (10) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 8 -#define configCHECK_FOR_STACK_OVERFLOW 0 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 0 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configGENERATE_RUN_TIME_STATS 0 - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES (2) - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (2) -#define configTIMER_QUEUE_LENGTH 10 -#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 - -/* Cortex-M specific definitions. */ -#ifdef __NVIC_PRIO_BITS - /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 4 /* 15 priority levels */ -#endif - -/* The lowest interrupt priority that can be used in a call to a "set priority" -function. */ -#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf - -/* The highest interrupt priority that can be used by any interrupt service -routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL -INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER -PRIORITY THAN THIS! (higher priorities are lower numeric values. */ -#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 - -/* Interrupt priorities used by the kernel port layer itself. These are generic -to all Cortex-M ports, and do not rely on any particular library functions. */ -#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) -/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! -See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) - -/* Normal assert() semantics without relying on the provision of an assert.h -header file. */ -#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} - -/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS -standard names. */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/board.c b/examples/imx7_colibri_m4/board.c index 37ea77b..4c48c00 100644 --- a/examples/imx7_colibri_m4/board.c +++ b/examples/imx7_colibri_m4/board.c @@ -42,13 +42,19 @@ void BOARD_ClockInit(void) { /* OSC/PLL is already initialized by Cortex-A7 (u-boot) */ - /* Disable WDOG3 */ + /* + * Disable WDOG3 + * Note : The WDOG clock Root is shared by all the 4 WDOGs, so FreeROTS + * code should avoid closing it + */ CCM_UpdateRoot(CCM, ccmRootWdog, ccmRootmuxWdogOsc24m, 0, 0); CCM_EnableRoot(CCM, ccmRootWdog); CCM_ControlGate(CCM, ccmCcgrGateWdog3, ccmClockNeededRun); + + RDC_SetPdapAccess(RDC, BOARD_WDOG_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); WDOG_DisablePowerdown(BOARD_WDOG_BASEADDR); + CCM_ControlGate(CCM, ccmCcgrGateWdog3, ccmClockNotNeeded); - CCM_DisableRoot(CCM, ccmRootWdog); /* We need system PLL Div2 to run M4 core */ CCM_ControlGate(CCM, ccmPllGateSys, ccmClockNeededRun); @@ -75,7 +81,12 @@ void dbg_uart_init(void) CCM_UpdateRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT, ccmRootmuxUartOsc24m, 0, 0); /* Enable debug uart clock */ CCM_EnableRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT); - CCM_ControlGate(CCM, BOARD_DEBUG_UART_CCM_CCGR, ccmClockNeededRunWait); + /* + * IC Limitation + * M4 stop will cause A7 UART lose functionality + * So we need UART clock all the time + */ + CCM_ControlGate(CCM, BOARD_DEBUG_UART_CCM_CCGR, ccmClockNeededAll); /* Config debug uart pins */ configure_uart_pins(BOARD_DEBUG_UART_BASEADDR); diff --git a/examples/imx7_colibri_m4/board.h b/examples/imx7_colibri_m4/board.h index e00c0a5..f1c7bc9 100644 --- a/examples/imx7_colibri_m4/board.h +++ b/examples/imx7_colibri_m4/board.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2015, Freescale Semiconductor, Inc. + * Copyright (c) 2016, Toradex AG * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, @@ -61,8 +62,8 @@ #define BOARD_SEMA4_RDC_PDAP rdcPdapSemaphoreHs #define BOARD_SEMA4_CCM_CCGR ccmCcgrGateSemaHs #define BOARD_SEMA4_BASEADDR SEMA4 -#define BOARD_SEMA4_IRQ_NUM HS1_IRQn -#define BOARD_SEMA4_HANDLER SEMA4_Handler +#define BOARD_SEMA4_IRQ_NUM SEMA4_HS_M4_IRQn +#define BOARD_SEMA4_HANDLER SEMA4_HS_M4_Handler /* GPT instance A information for this board */ #define BOARD_GPTA_RDC_PDAP rdcPdapGpt3 @@ -80,7 +81,7 @@ #define BOARD_GPTB_HANDLER GPT4_Handler /* GPIO information for this board */ -#define BOARD_GPIO_CCM_CCGR ccmCcgrGateGpio2 +#define BOARD_GPIO_KEY_CCM_CCGR ccmCcgrGateGpio2 #define BOARD_GPIO_LED_RDC_PDAP rdcPdapGpio1 #define BOARD_GPIO_LED_CONFIG (&gpioLed) #define BOARD_GPIO_KEY_RDC_PDAP rdcPdapGpio2 @@ -97,21 +98,21 @@ #define BOARD_DEBUG_UART_HANDLER UART2_Handler /* MU information for this board*/ -#define BOARD_MU_HANDLER MU_Handler -#define BOARD_MU_IRQ_NUM MU_INT_M4_IRQn -#define BOARD_MU_BASE_ADDR MU0_B +#define BOARD_MU_HANDLER MU_M4_Handler +#define BOARD_MU_IRQ_NUM MU_M4_IRQn +#define BOARD_MU_BASE_ADDR MUB #define BOARD_MU_CCM_CCGR ccmCcgrGateMu #define BOARD_MU_RDC_PDAP rdcPdapMuB /* I2C information for this board */ -#define BOARD_I2C_FXAS21002_ADDR (0x20) -#define BOARD_I2C_FXOS8700_ADDR (0x1E) #define BOARD_I2C_RDC_PDAP rdcPdapI2c4 #define BOARD_I2C_CCM_ROOT ccmRootI2c4 #define BOARD_I2C_CCM_CCGR ccmCcgrGateI2c4 #define BOARD_I2C_BASEADDR I2C4 #define BOARD_I2C_IRQ_NUM I2C4_IRQn #define BOARD_I2C_HANDLER I2C4_Handler +#define BOARD_I2C_FXAS21002_ADDR (0x20) +#define BOARD_I2C_FXOS8700_ADDR (0x1E) /* FlexCAN information for this board */ #define BOARD_FLEXCAN_RDC_PDAP rdcPdapFlexCan2 @@ -121,6 +122,8 @@ #define BOARD_FLEXCAN_IRQ_NUM FLEXCAN2_IRQn #define BOARD_FLEXCAN_HANDLER FLEXCAN2_Handler +/* GPC information for this board*/ +#define BOARD_GPC_BASEADDR GPC #if defined(__cplusplus) extern "C" { diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..6d8eb19 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt index 87ec30e..281bc12 100644 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,18 +82,19 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE -ADD_EXECUTABLE(blinking_imx_demo +ADD_EXECUTABLE(blinking_imx_demo_gpt "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../gpt_timer.c" - "${ProjDirPath}/../gpt_timer.h" + "${ProjDirPath}/../hw_timer.h" "${ProjDirPath}/../gpio_ctrl.c" "${ProjDirPath}/../gpio_ctrl.h" "${ProjDirPath}/../../../../../platform/drivers/src/gpio_imx.c" @@ -115,6 +119,7 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -126,6 +131,7 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" @@ -144,25 +150,25 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../gpio_pins.c" "${ProjDirPath}/../../../gpio_pins.h" ) -SET_TARGET_PROPERTIES(blinking_imx_demo PROPERTIES OUTPUT_NAME "blinking_imx_demo.elf") +SET_TARGET_PROPERTIES(blinking_imx_demo_gpt PROPERTIES OUTPUT_NAME "blinking_imx_demo_gpt.elf") -TARGET_LINK_LIBRARIES(blinking_imx_demo -Wl,--start-group) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt -Wl,--start-group) # LIBRARIES IF(CMAKE_BUILD_TYPE MATCHES Debug) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) ENDIF() # SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(blinking_imx_demo m) -TARGET_LINK_LIBRARIES(blinking_imx_demo c) -TARGET_LINK_LIBRARIES(blinking_imx_demo gcc) -TARGET_LINK_LIBRARIES(blinking_imx_demo nosys) -TARGET_LINK_LIBRARIES(blinking_imx_demo -Wl,--end-group) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt m) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt c) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt gcc) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt nosys) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt -Wl,--end-group) # MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/blinking_imx_demo.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/blinking_imx_demo.map") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/blinking_imx_demo_gpt.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/blinking_imx_demo_gpt.map") # BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.hex) -ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.bin) +ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo_gpt POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.hex) +ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo_gpt POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.cproject index e68e7d6..1571803 100644 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.cproject +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.project b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.project index a9ffbd2..193a4fc 100644 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.project +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/.project @@ -1,6 +1,6 @@ - blinking_imx_demo_imx7_colibri_m4 + blinking_imx_demo_gpt_imx7_colibri_m4 @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.csource2virtual:/virtualsource/gpt_timer.h1PARENT-1-PROJECT_LOC/gpt_timer.hsource2virtual:/virtualsource/gpio_ctrl.c1PARENT-1-PROJECT_LOC/gpio_ctrl.csource2virtual:/virtualsource/gpio_ctrl.h1PARENT-1-PROJECT_LOC/gpio_ctrl.hdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.h + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.csource2virtual:/virtualsource/hw_timer.h1PARENT-1-PROJECT_LOC/hw_timer.hsource2virtual:/virtualsource/gpio_ctrl.c1PARENT-1-PROJECT_LOC/gpio_ctrl.csource2virtual:/virtualsource/gpio_ctrl.h1PARENT-1-PROJECT_LOC/gpio_ctrl.hdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.h diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd deleted file mode 100644 index 1f1cc6e..0000000 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - blinking_imx_demo_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c index 4cd0b7f..45aece0 100644 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c @@ -37,6 +37,7 @@ #include #include "FreeRTOS.h" +#include "task.h" #include "semphr.h" #include "gpio_pins.h" #include "board.h" @@ -50,7 +51,7 @@ static SemaphoreHandle_t xSemaphore; static void GPIO_Ctrl_InitLedPin() { #ifdef BOARD_GPIO_LED_CONFIG - gpio_init_t ledInit = { + gpio_init_config_t ledInit = { .pin = BOARD_GPIO_LED_CONFIG->pin, .direction = gpioDigitalOutput, .interruptMode = gpioNoIntmode @@ -69,7 +70,7 @@ static void GPIO_Ctrl_InitLedPin() static void GPIO_Ctrl_InitKeyPin() { #ifdef BOARD_GPIO_KEY_CONFIG - gpio_init_t keyInit = { + gpio_init_config_t keyInit = { .pin = BOARD_GPIO_KEY_CONFIG->pin, .direction = gpioDigitalInput, .interruptMode = gpioIntFallingEdge @@ -116,37 +117,57 @@ void GPIO_Ctrl_ToggleLed() void GPIO_Ctrl_WaitKeyPressed() { - TickType_t ticks; - #ifdef BOARD_GPIO_KEY_CONFIG - RDC_SEMAPHORE_Lock(BOARD_GPIO_KEY_RDC_PDAP); + uint32_t i, debounce; - /* Clear the interrupt state */ - GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - /* Enable GPIO pin interrupt */ - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); + do + { + debounce = 0; - RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); + RDC_SEMAPHORE_Lock(BOARD_GPIO_KEY_RDC_PDAP); - /* Enable the IRQ. */ - NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + /* Clear the interrupt state */ + GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + /* Enable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); - /* We need wait user input for ever */ - ticks = portMAX_DELAY; + RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); - PRINTF("\n\rPress the (%s) key to switch the blinking frequency:\n\r", BOARD_GPIO_KEY_CONFIG->name); + /* Enable the IRQ. */ + NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + + PRINTF("\n\rPress the (%s) key to switch the blinking frequency:\n\r", BOARD_GPIO_KEY_CONFIG->name); + xSemaphoreTake(xSemaphore, portMAX_DELAY); + + for (i = 0; i < 3; i++) + { + /* Susupend Task to wait Key stable. */ + vTaskDelay(5); + + /* Check key value. */ + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + /* Increase debounce counter. */ + debounce ++; + } + } + + if (debounce >= 2) + { + break; + } + } while (1); #else /* Without key on board, we return every 5 seconds */ - ticks = configTICK_RATE_HZ * 5; PRINTF("\n\rWait 5 seconds to switch blinking frequency:\n\r"); + xSemaphoreTake(xSemaphore, configTICK_RATE_HZ * 5); #endif - xSemaphoreTake(xSemaphore, ticks); } #ifdef BOARD_GPIO_KEY_CONFIG void BOARD_GPIO_KEY_HANDLER() { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; /* When user input captured, we disable GPIO interrupt */ NVIC_DisableIRQ(BOARD_GPIO_KEY_IRQ_NUM); @@ -160,7 +181,11 @@ void BOARD_GPIO_KEY_HANDLER() RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } #endif diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.c b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.c index 4b035cb..d092c45 100644 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.c +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.c @@ -37,15 +37,15 @@ #include "FreeRTOS.h" #include "semphr.h" -#include "gpt.h" -#include "gpt_timer.h" #include "board.h" +#include "gpt.h" +#include "hw_timer.h" static SemaphoreHandle_t xSemaphore; -void GPT_Timer_Init() +void Hw_Timer_Init(void) { - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, @@ -54,8 +54,6 @@ void GPT_Timer_Init() .enableMode = true }; - xSemaphore = xSemaphoreCreateBinary(); - /* Initialize GPT module */ GPT_Init(BOARD_GPTA_BASEADDR, &config); @@ -67,11 +65,13 @@ void GPT_Timer_Init() /* Enable NVIC interrupt */ NVIC_EnableIRQ(BOARD_GPTA_IRQ_NUM); + + xSemaphore = xSemaphoreCreateBinary(); } -void GPT_Timer_Delay(uint32_t ms) +void Hw_Timer_Delay(uint32_t ms) { - uint64_t counter = 24000 * ms; /* First get the counter needed by delay time */ + uint64_t counter = 24000ULL * ms; /* First get the counter needed by delay time */ uint32_t high; uint32_t div24m, div; @@ -100,16 +100,20 @@ void GPT_Timer_Delay(uint32_t ms) xSemaphoreTake(xSemaphore, portMAX_DELAY); } -void BOARD_GPTA_HANDLER() +void BOARD_GPTA_HANDLER(void) { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; - /* When GPT timeout, we disable GPT to make sure this is a oneshot event */ + /* When GPT time-out, we disable GPT to make sure this is a one-shot event. */ GPT_Disable(BOARD_GPTA_BASEADDR); GPT_SetIntCmd(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1, false); GPT_ClearStatusFlag(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1); + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } /******************************************************************************* diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.h b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.h deleted file mode 100644 index db19ab6..0000000 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/gpt_timer.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __GPT_TIMER_H__ -#define __GPT_TIMER_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/*! - * @brief Initialize GPT timer, must be called before GPT_Timer_Delay(). - */ -void GPT_Timer_Init(void); - -/*! - * @brief Block task for some time with GPT, this timer is not multi-thread - * safe and could only called in one task. - * - * @param ms milliseconds to delay - */ -void GPT_Timer_Delay(uint32_t ms); - -#ifdef __cplusplus -} -#endif - -#endif /* __GPT_TIMER_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hardware_init.c index df4fbdb..6d46d4a 100644 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hardware_init.c +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hardware_init.c @@ -65,7 +65,7 @@ void hardware_init(void) CCM_ControlGate(CCM, ccmCcgrGateSema1, ccmClockNeededRunWait); /* Enable gpio clock gate, led and key share same CCGR on this board */ - CCM_ControlGate(CCM, BOARD_GPIO_CCM_CCGR, ccmClockNeededRunWait); + CCM_ControlGate(CCM, BOARD_GPIO_KEY_CCM_CCGR, ccmClockNeededRunWait); /* Configure gpio pin IOMUX */ configure_gpio_pin(BOARD_GPIO_KEY_CONFIG); diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hw_timer.h b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hw_timer.h new file mode 100644 index 0000000..5a87819 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/hw_timer.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __HW_TIMER_H__ +#define __HW_TIMER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Initialize hardware timer, must be called before Hardware_Timer_Delay(). + */ +void Hw_Timer_Init(void); + +/*! + * @brief Block task for some time with hardware timer, this timer is not multi-thread + * safe and could only called in one task. + * + * @param ms milliseconds to delay + */ +void Hw_Timer_Delay(uint32_t ms); + +#ifdef __cplusplus +} +#endif + +#endif /* __HW_TIMER_H__ */ +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp deleted file mode 100644 index a792984..0000000 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../gpio_pins.c$PROJ_DIR$/../../../gpio_pins.hsource$PROJ_DIR$/../main.c$PROJ_DIR$/../gpt_timer.c$PROJ_DIR$/../gpt_timer.h$PROJ_DIR$/../gpio_ctrl.c$PROJ_DIR$/../gpio_ctrl.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpio_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpio_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../platform/drivers/src/rdc_semaphore.c$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_semaphore.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww deleted file mode 100644 index fbc2405..0000000 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allblinking_imx_demoReleaseblinking_imx_demoDebugReleaseblinking_imx_demoReleaseDebugblinking_imx_demoDebug -$WS_DIR$/blinking_imx_demo.ewp diff --git a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/main.c b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/main.c index 6547ada..e280647 100644 --- a/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/main.c +++ b/examples/imx7_colibri_m4/demo_apps/blinking_imx_demo/main.c @@ -33,11 +33,11 @@ #include "board.h" #include "debug_console_imx.h" #include "gpio_ctrl.h" -#include "gpt_timer.h" +#include "hw_timer.h" -#define BLINKING_FREQ_MIN (100) +#define BLINKING_INTERVAL_MIN (100) -static volatile uint32_t blinkingInterval = BLINKING_FREQ_MIN; +static volatile uint32_t blinkingInterval = BLINKING_INTERVAL_MIN; /****************************************************************************** * @@ -50,8 +50,8 @@ void ToggleTask(void *pvParameters) while (true) { GPIO_Ctrl_ToggleLed(); - /* Use GPT timer to get accurate delay */ - GPT_Timer_Delay(blinkingInterval); + /* Use Hardware timer to get accurate delay */ + Hw_Timer_Delay(blinkingInterval); } } @@ -69,7 +69,7 @@ void SwitchTask(void *pvParameters) GPIO_Ctrl_WaitKeyPressed(); blinkingInterval += 100; if (blinkingInterval > 1000) - blinkingInterval = BLINKING_FREQ_MIN; + blinkingInterval = BLINKING_INTERVAL_MIN; /* Delay for 1 second to avoid glitch */ vTaskDelay(configTICK_RATE_HZ); } @@ -86,7 +86,7 @@ int main(void) /* Initialize board specified hardware. */ hardware_init(); - GPT_Timer_Init(); + Hw_Timer_Init(); GPIO_Ctrl_Init(); PRINTF("\n\r================= Blinking Demo ==================\n\r"); diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/hello_world/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/CMakeLists.txt index 6066a4b..7b23972 100644 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" @@ -105,6 +109,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -116,6 +121,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/hello_world/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.cproject index fa71f12..5e6c26b 100644 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.cproject +++ b/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.project b/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.project index 4ea4db6..b909aeb 100644 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.project +++ b/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/hello_world.wsd b/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/hello_world.wsd deleted file mode 100644 index fc5d547..0000000 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/hello_world.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - hello_world_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/makedir.bat b/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewd b/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewp b/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewp deleted file mode 100644 index 4eaffcf..0000000 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.eww b/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.eww deleted file mode 100644 index 18d140a..0000000 --- a/examples/imx7_colibri_m4/demo_apps/hello_world/iar/hello_world.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allhello_worldReleasehello_worldDebugReleasehello_worldReleaseDebughello_worldDebug -$WS_DIR$/hello_world.ewp diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt new file mode 100644 index 0000000..488604b --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt @@ -0,0 +1,162 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(hello_world_ddr + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../../hello_world/main.c" + "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../pin_mux.c" + "${ProjDirPath}/../../../pin_mux.h" + "${ProjDirPath}/../../../board.c" + "${ProjDirPath}/../../../board.h" + "${ProjDirPath}/../../../clock_freq.c" + "${ProjDirPath}/../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" +) +SET_TARGET_PROPERTIES(hello_world_ddr PROPERTIES OUTPUT_NAME "hello_world_ddr.elf") + +TARGET_LINK_LIBRARIES(hello_world_ddr -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(hello_world_ddr m) +TARGET_LINK_LIBRARIES(hello_world_ddr c) +TARGET_LINK_LIBRARIES(hello_world_ddr gcc) +TARGET_LINK_LIBRARIES(hello_world_ddr nosys) +TARGET_LINK_LIBRARIES(hello_world_ddr -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/hello_world_ddr.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/hello_world_ddr.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET hello_world_ddr POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.hex) +ADD_CUSTOM_COMMAND(TARGET hello_world_ddr POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat new file mode 100644 index 0000000..6d41d86 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh new file mode 100755 index 0000000..ebb0c25 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat new file mode 100644 index 0000000..bf3b902 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh new file mode 100755 index 0000000..571868b --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat new file mode 100644 index 0000000..e229a83 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh new file mode 100755 index 0000000..035ce4e --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.cproject new file mode 100644 index 0000000..ed19334 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.project b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.project new file mode 100644 index 0000000..0ed1fcb --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/ds5/.project @@ -0,0 +1,86 @@ + + + hello_world_ddr_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + + + diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/hardware_init.c new file mode 100644 index 0000000..6ce266a --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ddr/hardware_init.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFF000; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0xFFF) & 0xFFFFF000; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFF000; + end = ((uint32_t)__FLASH_END + 0xFFF) & 0xFFFFF000; +#endif + + RDC_SetMrAccess(RDC, rdcMrMmdc, start, end, (3 << (BOARD_DOMAIN_ID * 2)), true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the DDR Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt new file mode 100644 index 0000000..469ae23 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt @@ -0,0 +1,162 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(hello_world_ocram + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../../hello_world/main.c" + "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../pin_mux.c" + "${ProjDirPath}/../../../pin_mux.h" + "${ProjDirPath}/../../../board.c" + "${ProjDirPath}/../../../board.h" + "${ProjDirPath}/../../../clock_freq.c" + "${ProjDirPath}/../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" +) +SET_TARGET_PROPERTIES(hello_world_ocram PROPERTIES OUTPUT_NAME "hello_world_ocram.elf") + +TARGET_LINK_LIBRARIES(hello_world_ocram -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(hello_world_ocram m) +TARGET_LINK_LIBRARIES(hello_world_ocram c) +TARGET_LINK_LIBRARIES(hello_world_ocram gcc) +TARGET_LINK_LIBRARIES(hello_world_ocram nosys) +TARGET_LINK_LIBRARIES(hello_world_ocram -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/hello_world_ocram.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/hello_world_ocram.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET hello_world_ocram POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.hex) +ADD_CUSTOM_COMMAND(TARGET hello_world_ocram POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat new file mode 100644 index 0000000..6d41d86 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh new file mode 100755 index 0000000..ebb0c25 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat new file mode 100644 index 0000000..bf3b902 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh new file mode 100755 index 0000000..571868b --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat new file mode 100644 index 0000000..e229a83 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh new file mode 100755 index 0000000..035ce4e --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.cproject new file mode 100644 index 0000000..9210247 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.project b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.project new file mode 100644 index 0000000..597509c --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/ds5/.project @@ -0,0 +1,86 @@ + + + hello_world_ocram_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + + + diff --git a/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/hardware_init.c new file mode 100644 index 0000000..598d2de --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/hello_world_ocram/hardware_init.c @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFFF80; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0x7F) & 0xFFFFFF80; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFFF80; + end = ((uint32_t)__FLASH_END + 0x7F) & 0xFFFFFF80; +#endif + + /* Grant all domains read/write access because in DSM mode Linux need to + * save/restore OCRAM content */ + RDC_SetMrAccess(RDC, rdcMrOcram, start, end, 0xFF, true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the OCRAM Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.c b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.c new file mode 100644 index 0000000..d21b5cd --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.c @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "gpc.h" + +/* + * Initialize GPC settings for dual core low power management + */ +void GPC_Init(GPC_Type * base) +{ + /* + * Disable all M4 interrupt as GPC wakeup source + */ + base->IMR1_M4 = GPC_IMR1_M4_IMR1_M4_MASK; + base->IMR2_M4 = GPC_IMR2_M4_IMR2_M4_MASK; + base->IMR3_M4 = GPC_IMR3_M4_IMR3_M4_MASK; + base->IMR4_M4 = GPC_IMR4_M4_IMR4_M4_MASK; + + /* + * Initialize the GPC settings for M4 + */ + base->LPCR_M4 |= GPC_LPCR_M4_EN_M4_PUP_MASK | + GPC_LPCR_M4_EN_M4_PDN_MASK; /* EN_M4_PUP, EN_M4_PDN*/ + base->PGC_ACK_SEL_M4 = GPC_PGC_ACK_SEL_M4_M4_VIRTUAL_PGC_PUP_ACK_MASK | + GPC_PGC_ACK_SEL_M4_M4_VIRTUAL_PGC_PDN_ACK_MASK; /* change dummy to virtual*/ + base->MISC |= GPC_MISC_M4_PDN_REQ_MASK_MASK; /* not mask M4 power down*/ + + /* + * M4 Virtual domain and Fast Mega domain must use the same PUP/PDN slot + * Align to A7, SLT 1 and SLT 5 are used for Fast Mega and M4 Virtual domain + */ + base->SLT_CFG[1] = GPC_SLT_CFG_M4_VIRTUAL_PDN_SLOT_CONTROL_MASK | GPC_SLT_CFG_FASTMEGA_PDN_SLOT_CONTROL_MASK; + base->SLT_CFG[5] = GPC_SLT_CFG_M4_VIRTUAL_PUP_SLOT_CONTROL_MASK | GPC_SLT_CFG_FASTMEGA_PUP_SLOT_CONTROL_MASK; + + /* + * Fast map to both A7 and M4 + * - M4 only have access to byte 1, A7 only have access to byte 0 + * - set to 1 for "map" + */ + base->PGC_CPU_MAPPING = GPC_PGC_CPU_MAPPING_FASTMEGA_M4_DOMAIN_MASK; +} + +/* + * Enable an interrupt source as GPC wakeup source for M4 core + */ +void GPC_EnableM4WakeupIRQ(GPC_Type* base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode) +{ + uint32_t reg_index, reg_offset; + volatile uint32_t* target_reg; + + if (irq_no < TOTAL_IRQ_NUM) { + reg_index = irq_no / IRQ_PER_REGISTER; + reg_offset = irq_no % IRQ_PER_REGISTER; + target_reg = &base->IMR1_M4 + reg_index; + if (wakeup_mode == GPC_IRQ_WAKEUP_ENABLE) { + /*enable the IRQ as wakeup source*/ + *target_reg &= ~(1 << reg_offset); + } + else { + /*disable the IRQ as wakeup source*/ + *target_reg |= 1 << reg_offset; + } + } +} + +/* + * Configure LPCR_M4_LPM, the configured LPM state will be entered + * the next time WFI is executed + */ +void GPC_SetM4NextLPM(GPC_Type* base, uint32_t lpm_val) +{ + if (lpm_val < 4) { + base->LPCR_M4 = (base->LPCR_M4 & ~GPC_LPCR_M4_LPM0_MASK) | lpm_val; + } +} diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.h b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.h new file mode 100644 index 0000000..8c61adf --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/gpc.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __GPC_H__ +#define __GPC_H__ +#include "device_imx.h" + +#define TOTAL_IRQ_NUM 128 +#define IRQ_PER_REGISTER 32 + +typedef enum gpc_irq_wakeup_mode { + GPC_IRQ_WAKEUP_ENABLE, + GPC_IRQ_WAKEUP_DISABLE, +} GPC_IRQ_WAKEUP_MODE; + +void GPC_Init(GPC_Type* base); + +void GPC_EnableM4WakeupIRQ(GPC_Type* base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode); + +void GPC_SetM4NextLPM(GPC_Type* base, uint32_t lpm_val); + +#endif diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c new file mode 100644 index 0000000..c9a5084 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c @@ -0,0 +1,699 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include "board.h" +#include "lpm_mcore.h" +#include "debug_console_imx.h" +#include "ccm_imx7d.h" +#include "mu_imx.h" +#include "FreeRTOS.h" +#include "gpt.h" + +#define MAXIMUM_24M_DIV 15 + +static LPM_POWER_STATUS_M4 m4_lpm_state = LPM_M4_STATE_RUN; + +static P_WAKEUP_INT_ELE g_wakeup_int_list; + +#if defined(__GNUC__) || defined(__CC_ARM) +static void RAM_Wfi(void) __attribute__((section(".ram_function"))); +static void RAM_Wfi_End(void) __attribute__((section(".ram_function_end"))); +#elif defined(__ICCARM__) +#pragma default_function_attributes = @ ".ram_function" +static void RAM_Wfi(void); +static void RAM_Wfi_End(void); +#pragma default_function_attributes = +#endif + +static void GPT_Patch_Prepare(void); + +static void (*runInRAM)(void) = NULL; + +/* + * Send Message to A7 + */ +static void LPM_MCORE_SendMessage(uint32_t msg) +{ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = msg; + while ((MUB_SR & MU_SR_EP_MASK) != 0); +} + +#if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) +/* + * Provide a spinning delay, the actual delay time is dependent on the CPU freq + */ +static void my_delay(void) +{ + uint32_t i, j, k; + for (i=0; i!=DELAY_CNT; i++) + for (j=0; j!=DELAY_CNT; j++) + for (k=0; k!=DELAY_CNT; k++) + __NOP(); + return; +} + +/* + * Use the delay function to demostrate current CPU running freq + */ +static void verify_clock_speed(void) +{ + uint32_t i; + for (i=0; i!=DELAY_LOOP_CNT_LOW_SPEED; i++) { + my_delay(); + PRINTF("\rVerify M4 Speed : %2d of %d ... ", i+1, DELAY_LOOP_CNT_LOW_SPEED); + } + PRINTF("Done.\r\n"); +} +#endif + +/* + * Tool function to copy function area [func_start, func_end] to M4 data area + * which is TCM in 7Dual Project + */ +static uint8_t* RAM_Function_Copy(uint8_t* func_start, uint8_t* func_end) +{ + uint8_t* ram_code_ptr; + uint32_t ram_function_start; + + ram_function_start = (uint32_t)func_start & ~0x3; + ram_code_ptr = pvPortMalloc((uint8_t*)func_end - (uint8_t*)ram_function_start); + memcpy(ram_code_ptr, (uint8_t*)ram_function_start, (uint32_t)func_end - + (uint32_t)ram_function_start); + ram_code_ptr = (uint8_t *)((uint32_t)ram_code_ptr | ((uint32_t)func_start & 0x3)); + + return ram_code_ptr; +} + +/* + * This is the critical section of code which should run in TCM and don't + * have any other dependency. It will be runtime copied from linked address + * to TCM address + * Entering it will allow A7 to shutdown highbus. After M4 get wakeup, it + * will request A7 to resume highbus. When exiting, the highbus resouces + * have been live again + */ +static void RAM_Wfi(void) { + + /* + * Use MU to tell A7 high bus can be released + * Note : Function call is not working in this RAM migrated function + */ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = MSG_LPM_M4_RELEASE_HIGHBUS; + while ((MUB_SR & MU_SR_EP_MASK) != 0); + + /* + * this WFI will only be wakeup by wakeup interrupt registered + * by "LPM_MCORE_RegisterWakeupInterrupt" + */ + __WFI(); + + /* + * Tell A7 that M4 has return from LPM mode + */ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = MSG_LPM_M4_RUN; + while ((MUB_SR & MU_SR_EP_MASK) != 0); + /* + * After wakeup, req A7 to resume clock, wait until getting ACK + */ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = MSG_LPM_M4_REQUEST_HIGHBUS; + while ((MUB_SR & MU_SR_EP_MASK) != 0); + + while (1) + { + if ((MUB_SR & (MU_SR_RFn(0x8 >> LPM_MCORE_MU_CHANNEL))) != 0) + if (MUB->RR[LPM_MCORE_MU_CHANNEL] == MSG_LPM_A7_HIGHBUS_READY) + break; + } + + /* + * manual clear MU pending interrupt + */ + NVIC->ICPR[((uint32_t)(MU_M4_IRQn) >> 5)] = (1 << ((uint32_t)(MU_M4_IRQn) & 0x1F)); +} + +/* + * Stub function which only serves as the end address of function "RAM_Wfi" + */ +static void RAM_Wfi_End(void) +{ + return; +} + +/*! + * @brief Check if "RAM_Wfi" is located inside TCM, if not so, copy it to TCM + */ +void prepare_ram_wfi() +{ + if (((uint32_t)RAM_Wfi < 0x1FFF8000) || ((uint32_t)RAM_Wfi > 0x20007FFF)) + // If no, copy the RAM_Wfi function to TCM. + runInRAM = (void(*)(void))RAM_Function_Copy((uint8_t *)RAM_Wfi, + (uint8_t *)RAM_Wfi_End); + else + // If yes, just assign RAM_Wfi to runInRAM pointer. + runInRAM = RAM_Wfi; +} + +/* + * initialize the wakeup interrupt list + */ +static void lpm_init_wakeup_interrupt_list() { + g_wakeup_int_list = NULL; +} + +/* + * add a new irq to wakeup interrupt link list + */ +static void lpm_add_wakeup_interrupt_list(uint32_t irq_no) +{ + P_WAKEUP_INT_ELE cur_ele = g_wakeup_int_list; + P_WAKEUP_INT_ELE p; + + if (cur_ele == NULL) { + /* + * first element to add + */ + p = pvPortMalloc(sizeof(WAKEUP_INT_ELE)); + p->irq_no = irq_no; + p->next = NULL; + g_wakeup_int_list = p; + } else { + for (;;) { + if (cur_ele->irq_no == irq_no) { + /* + * already in the link list + * - return directly + */ + break; + } + else if (cur_ele->next == NULL) { + /* + * can't find the element + * - insert into the end + */ + p = pvPortMalloc(sizeof(WAKEUP_INT_ELE)); + p->irq_no = irq_no; + p->next = NULL; + cur_ele->next = p; + } else { + cur_ele = cur_ele->next; + } + } + } +} + +/* + * remove an exsiting irq to wakeup interrupt link list + */ +static void lpm_del_wakeup_interrupt_list(uint32_t irq_no) +{ + P_WAKEUP_INT_ELE cur_ele = g_wakeup_int_list; + P_WAKEUP_INT_ELE p; + + if (cur_ele != NULL) { + if (cur_ele->irq_no == irq_no) { + /*first element is the target*/ + p = g_wakeup_int_list; + g_wakeup_int_list = p->next; + vPortFree(p); + } else { + for (;;) { + p = cur_ele->next; + if (p == NULL) { + /* + * can't find the element + * - return directly + */ + break; + } else { + if (p->irq_no == irq_no) { + /* + * Find the target "p" + */ + cur_ele->next = p->next; + vPortFree(p); + break; + } else { + cur_ele = cur_ele->next; + } + } + } + } + } +} + + +/* + * register a IRQ source as M4 wakeup source + */ +void LPM_MCORE_RegisterWakeupInterrupt(GPC_Type * base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode) +{ + /*register wakeup interrupt for M4 in GPC*/ + GPC_EnableM4WakeupIRQ(base, irq_no, wakeup_mode); + + if (wakeup_mode == GPC_IRQ_WAKEUP_ENABLE) { + /*add an element to link list*/ + lpm_add_wakeup_interrupt_list(irq_no); + } else { + /*delete an element to link list*/ + lpm_del_wakeup_interrupt_list(irq_no); + } +} + + +/* + * Low Power Management initialization + */ +void LPM_MCORE_Init(GPC_Type * base) +{ + // Init GPC + GPC_Init(base); + + // Copy critical function to TCM Space + prepare_ram_wfi(); + + // Init the wakeup interrupt link list + lpm_init_wakeup_interrupt_list(); + + // GPT4 Patch, see function implementation for details + GPT_Patch_Prepare(); +} + + +/* + * get the current m4 LPM state + */ +LPM_POWER_STATUS_M4 LPM_MCORE_GetPowerStatus(GPC_Type * base) +{ + return m4_lpm_state; +} + +/* + * on-the-fly change m4 parent clock between 24MHz and 240MHz + */ +void LPM_MCORE_ChangeM4Clock(LPM_M4_CLOCK_SPEED target) +{ + // change CCM Root to change M4 clock + switch (target) { + case LPM_M4_LOW_FREQ: + if (CCM_GetRootMux(CCM, ccmRootM4) != ccmRootmuxM4Osc24m) { + #if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) + PRINTF("Change M4 clock freq to 24M\r\n"); + #endif + CCM_SetRootMux(CCM, ccmRootM4, ccmRootmuxM4Osc24m); + } + break; + case LPM_M4_HIGH_FREQ: + if (CCM_GetRootMux(CCM, ccmRootM4) != ccmRootmuxM4SysPllDiv2) { + #if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) + PRINTF("Change M4 clock freq to SysPLL Div2 (240M)\r\n"); + #endif + CCM_SetRootMux(CCM, ccmRootM4, ccmRootmuxM4SysPllDiv2); + } + break; + default: + break; + } +#if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) + verify_clock_speed(); +#endif +} + +/* + * cycle M4 low power mode to next state, the state machine is + * + * +---> "RUN" ---> "WAIT" ---> "STOP" ---+ + * | | + * +--------------------------------------+ + */ +void LPM_MCORE_SetPowerStatus(GPC_Type * base, LPM_POWER_STATUS_M4 m4_next_lpm) +{ + uint32_t next_lpm = GPC_LPCR_M4_LPM0(0); + switch (m4_next_lpm) { + case LPM_M4_STATE_RUN: + next_lpm = GPC_LPCR_M4_LPM0(0); + break; + case LPM_M4_STATE_WAIT: + next_lpm = GPC_LPCR_M4_LPM0(1); + break; + case LPM_M4_STATE_STOP: + next_lpm = GPC_LPCR_M4_LPM0(2); + break; + default: + break; + } + + /* + * Patch, let GPC-M4 observe the GPR0 interrupt for a period as long + * as 5 32KHz clock cycle before set it to a Low power status + */ + if (m4_next_lpm != LPM_M4_STATE_RUN) + { + uint32_t i; + LPM_MCORE_RegisterWakeupInterrupt(GPC, GPT4_IRQn, GPC_IRQ_WAKEUP_ENABLE); + for (i=0; i!=GPC_SYNC_DELAY_CNT; i++) + __NOP(); + LPM_MCORE_RegisterWakeupInterrupt(GPC, GPT4_IRQn, GPC_IRQ_WAKEUP_DISABLE); + } + + GPC_SetM4NextLPM(base, next_lpm); + + /*change lpm state variable*/ + m4_lpm_state = m4_next_lpm; +} + + + +/* + * Give readable string of current M4 lpm state + */ +const char* LPM_MCORE_GetPowerStatusString(void) +{ + switch (m4_lpm_state) { + case LPM_M4_STATE_RUN: + return "RUN"; + case LPM_M4_STATE_WAIT: + return "WAIT"; + case LPM_M4_STATE_STOP: + return "STOP"; + default: + return "UNKNOWN"; + } +} + +/* + * Check if A7 LPM Driver is ready + */ +uint32_t LPM_MCORE_CheckPeerReady(void) +{ + return (MU_GetFlags(MUB) & MU_SR_Fn(1)); +} + +/* + * Use MU Flag to indicate to A7 that low power management in M4 is ready + */ +void LPM_MCORE_SetSelfReady(void) +{ + MU_SetFlags(MUB, MU_CR_Fn(1)); +} + +/* + * This function modify BASEPRI to configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY and + * wakeup interrupt's NVIC->Priority to configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY - 1 + * The effect is all non-wakeup interrupt gets mute + * The original basepri settings are stored into pBasepriBackup + * The original wakeup interrupt nvic->priority settings are stored into linklist + */ +void lpm_disable_non_wakeup_interrupt(uint32_t* pBasepriBackup) +{ + P_WAKEUP_INT_ELE ele; + uint32_t irq_no; +#if defined(__CC_ARM) + register uint32_t __regBasePri __ASM("basepri"); + *pBasepriBackup = __regBasePri; + __regBasePri = (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - __NVIC_PRIO_BITS)); +#else + *pBasepriBackup = __get_BASEPRI(); + __set_BASEPRI(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - __NVIC_PRIO_BITS)); +#endif + /* + * Make exceptions to wakeup interrupts, they are stored in "g_wakeup_int_list" + */ + ele = g_wakeup_int_list; + for (;;) { + if (ele == NULL) + break; + + /* + * Store the current Priority into ele backup field + * Change the Priority to "configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY - 1" + */ + irq_no = ele->irq_no; + ele->irq_priority_backup = NVIC->IP[irq_no]; + NVIC->IP[irq_no] = (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY - 1) << (8 - __NVIC_PRIO_BITS); + + /* + * Move to next + */ + ele = ele->next; + } + __DSB(); + __ISB(); +} + +/* + * This function restores BASEPRI and wakeup interrupt nvic priority settings + * It recover interrupt settings made by lpm_disable_non_wakeup_interrupt + */ +void lpm_enable_non_wakeup_interrupt(uint32_t basePriBackup) +{ + P_WAKEUP_INT_ELE ele; + uint32_t irq_no; +#if defined(__CC_ARM) + register uint32_t __regBasePri __ASM("basepri"); +#endif + /* + * first restore wakeup interrupt priority + */ + ele = g_wakeup_int_list; + for (;;) { + if (ele == NULL) + break; + + /* + * Restore the original priority + */ + irq_no = ele->irq_no; + NVIC->IP[irq_no] = ele->irq_priority_backup; + + /* + * Move to next + */ + ele = ele->next; + } +#if defined(__CC_ARM) + __regBasePri = basePriBackup & 0xFF; +#else + __set_BASEPRI(basePriBackup); +#endif + // infinite_loop(); + // Are these necessary? + __DSB(); + __ISB(); +} + + +/* + * The sleep function inserted into FreeRTOS idle task hook + */ +void LPM_MCORE_WaitForInt(void) +{ + uint32_t priMaskBackup; + + /* + * Only when + * 1. A7 peer is ready + * 2. safe sleep function has been put into TCM + * 3. m4 true sleep mode has been allowed + * 4. m4 current lpm mode is wait / stop + * The "power save wfi" routine will be executed + * Otherwise "normal wfi" will be executed + * + * In Power Save WFI + * - PRIMASK is set, so all interrupt handler won't be executed + * - BASEPRI and NVIC->Priority is modified so that only wakeup interrupt can + * wake up M4 from WFI + * - After M4 wake up, NVIC->Priority, BASEPRI and PRIMASK are restored so that + * the system return to normal mode + * + * There is a critical section code which is in "runInRAM", inside it M4 will + * inform A7 it release the high bus. A7 can then shutdown the high bus which + * will make all highbus related peripherals losing functionality, including + * DDR, so code in "runInRAM" should run in TCM and don't have any access to + * other part of memory + */ + if (LPM_MCORE_CheckPeerReady() && (runInRAM != NULL)) + { + volatile uint32_t* reg_lpcr_m4 = &GPC->LPCR_M4; + + uint32_t next_lpm_mode = *reg_lpcr_m4 & GPC_LPCR_M4_LPM0_MASK; + uint32_t basePriBackup; + + /* Save current PRIMASK value. */ + priMaskBackup = __get_PRIMASK(); + + /* + * Set PRIMASK to avoid execution of any enabled ISR. + * Note : PRIMASK will not prevent interrupt to wake up M4 from WFI + * but it will prevent interrupt handler from running + */ + __set_PRIMASK(1); + /* Barriers are normally not required but do ensure the code is completely + * within the specified behaviour for the architecture. + */ + __DSB(); + __ISB(); + /* + * Some of the code should be moved out of "runInRAM" + */ + switch (next_lpm_mode) { + case LPCR_M4_RUN: + /* + * STOP -> RUN + */ + /* + * tell A7 the next LPM mode is RUN + */ + /* + * the WFI will be wakeup by any enabled interrupt + */ + __WFI(); + break; + case LPCR_M4_WAIT: + case LPCR_M4_STOP: + /* + * RUN -> WAIT or WAIT -> STOP + */ + /* + * tell A7 the next LPM mode is WAIT/STOP + */ + if (next_lpm_mode == LPCR_M4_WAIT) + LPM_MCORE_SendMessage(MSG_LPM_M4_WAIT); + else if (next_lpm_mode == LPCR_M4_STOP) + LPM_MCORE_SendMessage(MSG_LPM_M4_STOP); + /* + * do modification to BASEPRI and NVIC->Priority settings so that + * all interrupt except wakeup interrupt are disabled + */ + lpm_disable_non_wakeup_interrupt(&basePriBackup); + + /* + * Inside "runInRAM", M4 will inform A7 that it release the highbus. Later + * when M4 is waken up, it will request A7 to resume highbus. This section + * of code must run in TCM to avoid accessing highbus dependent resouces + */ + runInRAM(); + + // Restore Basepri and NVIC->Priority settings + lpm_enable_non_wakeup_interrupt(basePriBackup); + break; + default: + break; + } + /* + * Recover PRIMASK register value. this will enable the wakeup interrupt + * handler and will activate the main task immediately + */ + __set_PRIMASK(priMaskBackup); + + /* Barriers are normally not required but do ensure the code is completely + * within the specified behaviour for the architecture. */ + __DSB(); + __ISB(); + } + else { + /* + * Normal WFI which will be wakeup by any enabled interrupt + */ + __WFI(); + } +} + +/* + * This function implement a patch for "TO1.1" chips + * - In "TO1.1" chips. Everytime a WFI is executed, IC set an internal + * "dsm-request" signal. The signal is NOT deasserted when WFI is + * executed, until a GPC wakeup interrupt happens. When this signal + * asserts, setting "LPM_M4" to "WAIT" or "STOP" will immediately + * cause the M4 core enter sleep mode, rather than the next time "WFI" + * is executed. Only a wakeup interrupt can clear the "dsm-request" signal + * + * - The issue is like IC Errata ticket "ERR007265" in i.MX6 + * + * - As suggested by IC, software should let GPC observe an interrupt long + * enough before setting "LPM_M4". Here we utilize an GPT to trigger this + * interrupt. + * + * An GPT will be configured to generate a interrupt at the very beginning, + * this interrupt is masked by M4 NVIC so M4 will not respond to it. But + * every time M4 is wake up, before the next time GPC.LPM_M4 is modified, + * GPC.M4_IMR will be set to unmask this pending interrupt to GPC module + * only, the IRQ will be unmasked for a interval long enough (longer than + * 5 32K clock cycle as suggested by IC) and then be masked again. + * + * - The function configures GPTB to generate a pending interrupt. + */ +static void GPT_Patch_Prepare(void) { + uint64_t counter = 24000 * 5; /* Requrie 5ms to generate the pending interrupt*/ + uint32_t high; + uint32_t div24m, div; + + gpt_init_config_t config = { + .freeRun = false, + .waitEnable = true, + .stopEnable = true, + .dozeEnable = true, + .dbgEnable = false, + .enableMode = true + }; + + GPT_Init(BOARD_GPTB_BASEADDR, &config); + + /* Set GPT clock source to 24M OSC */ + GPT_SetClockSource(BOARD_GPTB_BASEADDR, gptClockSourceOsc); + + /* Get the value that exceed maximum register counter */ + high = (uint32_t)(counter >> 32); + + div24m = MAXIMUM_24M_DIV; /*Since we use 24MHz as GPT peripheral clock, here we set the 24M divider to maximum value*/ + div = high / (div24m + 1); /* Get PRESCALER value */ + + /* Now set prescaler */ + GPT_SetOscPrescaler(BOARD_GPTB_BASEADDR, div24m); + GPT_SetPrescaler(BOARD_GPTB_BASEADDR, div); + + /* Set GPT compare value */ + GPT_SetOutputCompareValue(BOARD_GPTB_BASEADDR, gptOutputCompareChannel1, + (uint32_t)(counter / (div24m + 1) / (div + 1))); + + /* Enable GPT Output Compare1 interrupt */ + GPT_SetIntCmd(BOARD_GPTB_BASEADDR, gptStatusFlagOutputCompare1, true); + + /* GPT start */ + GPT_Enable(BOARD_GPTB_BASEADDR); + + /* Wait until timer reaches*/ + while ((BOARD_GPTB_BASEADDR->SR & gptStatusFlagOutputCompare1) == gptStatusFlagOutputCompare1) { + GPT_Disable(BOARD_GPTB_BASEADDR); + } +} diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h new file mode 100644 index 0000000..6a7a843 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LPM_MCORE_H__ +#define __LPM_MCORE_H__ + +#include "gpc.h" +#include "device_imx.h" + +#define DELAY_LOOP_CNT_LOW_SPEED 10 +#define DELAY_CNT 100 + +#define LPCR_M4_RUN 0 +#define LPCR_M4_WAIT 1 +#define LPCR_M4_STOP 2 + +#define LPM_MCORE_MU_CHANNEL 0 + +#define LPM_MCORE_PRINT_DEBUG_INFO 0 + +#define MSG_LPM_M4_RUN 0x5A5A0001 +#define MSG_LPM_M4_WAIT 0x5A5A0002 +#define MSG_LPM_M4_STOP 0x5A5A0003 + +#define MSG_LPM_M4_REQUEST_HIGHBUS 0x2222CCCC +#define MSG_LPM_M4_RELEASE_HIGHBUS 0x2222BBBB + +#define MSG_LPM_A7_HIGHBUS_READY 0xFFFF6666 + +#define GPC_SYNC_DELAY_CNT 65536 + +/* + * LPM state of M4 core + */ +typedef enum lpm_power_status_m4 { + LPM_M4_STATE_RUN, + LPM_M4_STATE_WAIT, + LPM_M4_STATE_STOP, +} LPM_POWER_STATUS_M4; + +/* + * Clock Speed of M4 core + */ +typedef enum lpm_m4_clock_speed { + LPM_M4_HIGH_FREQ, + LPM_M4_LOW_FREQ +} LPM_M4_CLOCK_SPEED; + +/* + * Linklist of wakeup interrupt + */ +typedef struct wakeup_int_ele WAKEUP_INT_ELE, *P_WAKEUP_INT_ELE; +struct wakeup_int_ele { + P_WAKEUP_INT_ELE next; + uint32_t irq_no; + uint32_t irq_priority_backup; +}; + +/* + * low power driver initialization + */ +void LPM_MCORE_Init(GPC_Type * base); + +/* + * get the current lpm state of M4 core + */ +LPM_POWER_STATUS_M4 LPM_MCORE_GetPowerStatus(GPC_Type * base); + +/* + * set the next lpm state of M4 core, the state will be entered + * next time WFI is executed + */ +void LPM_MCORE_SetPowerStatus(GPC_Type * base, LPM_POWER_STATUS_M4 m4_next_lpm); + +/* + * provide readable information of current m4 core lpm state + */ +const char* LPM_MCORE_GetPowerStatusString(void); + +/* + * register/unregister a peripherail interrupt to M4 core wakeup interrupt + */ +void LPM_MCORE_RegisterWakeupInterrupt(GPC_Type * base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode); + +/* + * change the m4 core clock between 24MHz(OSC) and 240MHz (SysPllDiv2) + */ +void LPM_MCORE_ChangeM4Clock(LPM_M4_CLOCK_SPEED target); + +/* + * Check if A7 LPM driver is ready + */ +uint32_t LPM_MCORE_CheckPeerReady(void); + +/* + * Set M4 LPM driver ready flag to A7 Peer + */ +void LPM_MCORE_SetSelfReady(void); + +/* + * Function to inserted into FreeRTOS idletask hook + */ +void LPM_MCORE_WaitForInt(void); + +#endif diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h new file mode 100644 index 0000000..416dbb2 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt new file mode 100644 index 0000000..f8bb577 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt @@ -0,0 +1,178 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../common) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../common) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rand_wfi_imx7d + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../common/gpc.c" + "${ProjDirPath}/../../common/gpc.h" + "${ProjDirPath}/../../common/lpm_mcore.c" + "${ProjDirPath}/../../common/lpm_mcore.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../gpio_pins.c" + "${ProjDirPath}/../../../../gpio_pins.h" + "${ProjDirPath}/../gpt_timer.c" + "${ProjDirPath}/../gpt_timer.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/gpt.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/gpt.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc_semaphore.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_semaphore.h" +) +SET_TARGET_PROPERTIES(rand_wfi_imx7d PROPERTIES OUTPUT_NAME "rand_wfi_imx7d.elf") + +TARGET_LINK_LIBRARIES(rand_wfi_imx7d -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rand_wfi_imx7d m) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d c) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d gcc) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d nosys) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rand_wfi_imx7d.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rand_wfi_imx7d.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rand_wfi_imx7d POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.elf ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.hex) +ADD_CUSTOM_COMMAND(TARGET rand_wfi_imx7d POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.elf ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject new file mode 100644 index 0000000..c18a05c --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project new file mode 100644 index 0000000..0edaad3 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project @@ -0,0 +1,86 @@ + + + rand_wfi_imx7d_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpc.c1PARENT-2-PROJECT_LOC/common/gpc.csource2virtual:/virtualsource/gpc.h1PARENT-2-PROJECT_LOC/common/gpc.hsource2virtual:/virtualsource/lpm_mcore.c1PARENT-2-PROJECT_LOC/common/lpm_mcore.csource2virtual:/virtualsource/lpm_mcore.h1PARENT-2-PROJECT_LOC/common/lpm_mcore.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.htimer2virtual:/virtualtimer/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.ctimer2virtual:/virtualtimer/gpt_timer.h1PARENT-1-PROJECT_LOC/gpt_timer.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.h + + + diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c new file mode 100644 index 0000000..e264072 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/**************************************************************************** +* +* Comments: +* This file contains the functions which write and read the SPI memories +* using the ECSPI driver in interrupt mode. +* +****************************************************************************/ + +#include "FreeRTOS.h" +#include "semphr.h" +#include "gpt.h" +#include "gpt_timer.h" +#include "board.h" + +#define MAXIMUM_24M_DIV 15 + +static SemaphoreHandle_t xSemaphore; + +void GPT_Timer_Init() +{ + gpt_init_config_t config = { + .freeRun = false, + .waitEnable = true, + .stopEnable = true, + .dozeEnable = true, + .dbgEnable = false, + .enableMode = true + }; + + xSemaphore = xSemaphoreCreateBinary(); + + /* Initialize GPT module */ + GPT_Init(BOARD_GPTA_BASEADDR, &config); + + /* Set GPT clock source to 24M OSC */ + GPT_SetClockSource(BOARD_GPTA_BASEADDR, gptClockSourceOsc); + + /* Set GPT interrupt priority 3 */ + NVIC_SetPriority(BOARD_GPTA_IRQ_NUM, 3); + + /* Enable NVIC interrupt */ + NVIC_EnableIRQ(BOARD_GPTA_IRQ_NUM); +} + +/* + * Set GPT to triggle interrupt in future time + */ +void GPT_Set_Timer_Delay(uint32_t ms) +{ + uint64_t counter = 24000ULL * ms; /* First get the counter needed by delay time */ + uint32_t high; + uint32_t div24m, div; + + /* Get the value that exceed maximum register counter */ + high = (uint32_t)(counter >> 32); + + div24m = MAXIMUM_24M_DIV; /*Since we use 24MHz as GPT peripheral clock, here we set the 24M divider to maximum value*/ + div = high / (div24m + 1); /* Get PRESCALER value */ + + /* Now set prescaler */ + GPT_SetOscPrescaler(BOARD_GPTA_BASEADDR, div24m); + GPT_SetPrescaler(BOARD_GPTA_BASEADDR, div); + + /* Set GPT compare value */ + GPT_SetOutputCompareValue(BOARD_GPTA_BASEADDR, gptOutputCompareChannel1, + (uint32_t)(counter / (div24m + 1) / (div + 1))); + + /* Enable GPT Output Compare1 interrupt */ + GPT_SetIntCmd(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1, true); + + /* GPT start */ + GPT_Enable(BOARD_GPTA_BASEADDR); +} + +/* + * Block the current task until GPT interrupt happens + */ +void GPT_Wait_Timer_Expire(void) +{ + /* Wait until next GPT event happens. */ + xSemaphoreTake(xSemaphore, portMAX_DELAY); +} + +/* + * GPT Interrupt Handler + */ +void BOARD_GPTA_HANDLER() +{ + BaseType_t xHigherPriorityTaskWoken; + + /* When GPT timeout, we disable GPT to make sure this is a oneshot event */ + GPT_Disable(BOARD_GPTA_BASEADDR); + GPT_SetIntCmd(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1, false); + GPT_ClearStatusFlag(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1); + + xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + /*portYIELD_FROM_ISR is necessary to activate task switch immediately*/ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h new file mode 100644 index 0000000..0bab0ff --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __GPT_TIMER_H__ +#define __GPT_TIMER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Initialize GPT timer, must be called before GPT_Timer_Delay(). + */ +void GPT_Timer_Init(void); + +/*! + * @brief Block task for some time with GPT, this timer is not multi-thread + * safe and could only called in one task. + * + * @param ms milliseconds to delay + */ +void GPT_Set_Timer_Delay(uint32_t ms); + +void GPT_Wait_Timer_Expire(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __GPT_TIMER_H__ */ +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c new file mode 100644 index 0000000..d36d4f8 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "gpio_pins.h" + +void hardware_init(void) +{ + uint32_t i; + /* + * Set GPC_LPCR_M4 to run. In Low Power Demo, when M4 enters STOP, the + * whole system may enter DSM. A7 will rekick A7 after exit DSM. GPC + * register status will not auto reset so a manual reset is performed + * here + * GPC RDC is default set by U-Boot to be shared by A7 and M4 + */ + GPC_LPCR_M4 = GPC_LPCR_M4 & (~GPC_LPCR_M4_LPM0_MASK); + + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* + * In order to wakeup M4 from LPM, all PLLCTRLs need to be set to "NeededRun" + */ + for (i=0; i!=33; i++) { + CCM_BASE_PTR->PLL_CTRL[i].PLL_CTRL = ccmClockNeededRun; + } + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this demo, we need to grasp board GPT exclusively */ + RDC_SetPdapAccess(RDC, BOARD_GPTA_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select GPTA clock derived from OSC24M */ + CCM_UpdateRoot(CCM, BOARD_GPTA_CCM_ROOT, ccmRootmuxGptOsc24m, 0, 0); + + /* Enable clock used by GPTA */ + CCM_EnableRoot(CCM, BOARD_GPTA_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_GPTA_CCM_CCGR, ccmClockNeededAll); + + /* In this demo, we need GPT4 to work as a patch to fix GPC sync issue */ + RDC_SetPdapAccess(RDC, BOARD_GPTB_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select GPTB clock derived from OSC24M */ + CCM_UpdateRoot(CCM, BOARD_GPTB_CCM_ROOT, ccmRootmuxGptOsc24m, 0, 0); + + /* Enable clock used by GPTB */ + CCM_EnableRoot(CCM, BOARD_GPTB_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_GPTB_CCM_CCGR, ccmClockNeededAll); + + /* Enable MU clock*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededAll); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/main.c b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/main.c new file mode 100644 index 0000000..3c75c46 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/low_power_imx7d/rand_wfi/main.c @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include "FreeRTOS.h" +#include "stdlib.h" +#include "task.h" +#include "board.h" +#include "debug_console_imx.h" +#include "gpt_timer.h" +#include "lpm_mcore.h" +#if defined(__GNUC__) +#include +#include +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Macros +/////////////////////////////////////////////////////////////////////////////// +#define PERIOD_MIN 5 +#define PERIOD_MAX 10 + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// + +/*! + * @brief Set random time gpt timer to wakeup the system + */ +static uint32_t gpt_set_ramdom_period(uint32_t min_s, uint32_t max_s) +{ + uint32_t delay_s, delta_s; + /*Generate the random number*/ + if (max_s <= min_s) + delay_s = min_s; + else { + delta_s = max_s - min_s; + delay_s = rand() % delta_s + min_s; + } + + /*Set the GPT with delay_s, Taks will blocks until GPT event happens*/ + GPT_Set_Timer_Delay(1000 * delay_s); + return delay_s; +} + +/*! + * @brief the main power mode cycling task + */ +void LowPowerTask(void *pvParameters) +{ + uint32_t elapsed_time, total_time; + char control_char; + + PRINTF("\r\nLow Power Demo\r\n"); + + /* + * Wait For A7 Side Become Ready + */ + PRINTF("********************************\r\n"); + PRINTF("Please wait :\r\n"); + PRINTF(" 1) A7 peer is ready\r\n"); + PRINTF("Then press \"S\" to start the demo\r\n"); + PRINTF("********************************\r\n"); + + for (;;) { + PRINTF("\r\nPress \"S\" to start the demo : "); + control_char = GETCHAR(); + PRINTF("%c", control_char); + if ((control_char == 's') || (control_char == 'S')) { + break; + } + } + PRINTF("\r\n"); + + while (!LPM_MCORE_CheckPeerReady()) { + /* + * Note, when vTaskDelay is called, idle task hook function + * get opportunity to run + */ + vTaskDelay(5); + } + + LPM_MCORE_RegisterWakeupInterrupt(BOARD_GPC_BASEADDR, BOARD_GPTA_IRQ_NUM, GPC_IRQ_WAKEUP_ENABLE); + + LPM_MCORE_SetSelfReady(); + + total_time = 0; + while(1) + { + switch (LPM_MCORE_GetPowerStatus(BOARD_GPC_BASEADDR)) { + case LPM_M4_STATE_RUN: + /*---> WAIT*/ + LPM_MCORE_ChangeM4Clock(LPM_M4_LOW_FREQ); + LPM_MCORE_SetPowerStatus(BOARD_GPC_BASEADDR, LPM_M4_STATE_WAIT); + break; + case LPM_M4_STATE_WAIT: + /*---> STOP*/ + LPM_MCORE_ChangeM4Clock(LPM_M4_LOW_FREQ); + LPM_MCORE_SetPowerStatus(BOARD_GPC_BASEADDR, LPM_M4_STATE_STOP); + break; + case LPM_M4_STATE_STOP: + /*---> RUN*/ + LPM_MCORE_ChangeM4Clock(LPM_M4_HIGH_FREQ); + LPM_MCORE_SetPowerStatus(BOARD_GPC_BASEADDR, LPM_M4_STATE_RUN); + break; + default: + break; + } + + elapsed_time = gpt_set_ramdom_period(PERIOD_MIN, PERIOD_MAX); + PRINTF("GPT will triggle interrupt in %ds\r\n", elapsed_time); + + PRINTF("go to mode %s\r\n", LPM_MCORE_GetPowerStatusString()); + + /*wait GPT interrupt handler getting executed*/ + GPT_Wait_Timer_Expire(); + total_time += elapsed_time; + PRINTF("GPT Event! Total time %ds\r\n", total_time); + } +} + +/*! + * @brief Custom function to be run in idletask + */ +void vApplicationIdleHook(void) +{ + /* Waiting for Wake up event. */ + LPM_MCORE_WaitForInt(); +} + +/*! + * @brief Main function + */ +int main(void) +{ + // Initialize demo application pins setting and clock setting. + hardware_init(); + + PRINTF(" ************************************************************************\r\n"); + PRINTF(" * i.MX 7Dual Dual Core Low Power Demo - M4 side *\r\n"); + PRINTF(" * *\r\n"); + PRINTF(" * A GPT will change the M4 Power Mode with random period *\r\n"); + PRINTF(" * *\r\n"); + PRINTF(" ************************************************************************\r\n"); + + // Init the GPT Timer + GPT_Timer_Init(); + + // Low Power Management Initialization + LPM_MCORE_Init(BOARD_GPC_BASEADDR); + + // Create a demo task which will demo M4 core cycling through different power modes. + xTaskCreate(LowPowerTask, "Low Power Task", configMINIMAL_STACK_SIZE, // xTaskGenericCreate + NULL, tskIDLE_PRIORITY+1, NULL); + + // Start FreeRTOS scheduler. + vTaskStartScheduler(); + + // Should never reach this point. + while (true); +} + +#if defined(__GNUC__) +/*! + * @brief Function to override ARMGCC default function _sbrk + * + * _sbrk is called by malloc. ARMGCC default _sbrk compares "SP" register and + * heap end, if heap end is larger than "SP", then _sbrk returns error and + * memory allocation failed. This function changes to compare __HeapLimit with + * heap end. + * + * Then rand() function used in this project will call malloc in GCC compiler, + * so the customized version of _sbrk is needed here + */ +caddr_t _sbrk(int incr) +{ + extern uint32_t end __asm("end"); + extern uint32_t heap_limit __asm("__HeapLimit"); + static uint32_t *heap_end; + char *prev_heap_end; + + if (heap_end == NULL) + heap_end = &end; + + prev_heap_end = (char*)heap_end; + + if (heap_end + incr > &heap_limit) + { + errno = ENOMEM; + return (caddr_t)-1; + } + + heap_end += incr; + + return (caddr_t)prev_heap_end; +} +#endif +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf b/examples/imx7_colibri_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf new file mode 100644 index 0000000..39ffe13 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf @@ -0,0 +1,90 @@ +#! armcc -E +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: ARM C/C++ Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-07-08 +** +** Abstract: +** Linker file for the ARM C/C++ Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + +#define m_interrupts_start 0x1FFF8000 +#define m_interrupts_size 0x00000240 + +#define m_text_start 0x1FFF8240 +#define m_text_size 0x00007DC0 + +#define m_data_start 0x20000000 +#define m_data_size 0x8000 + +/* Sizes */ +#if (defined(__stack_size__)) + #define Stack_Size __stack_size__ +#else + #define Stack_Size 0x0400 +#endif + +#if (defined(__heap_size__)) + #define Heap_Size __heap_size__ +#else + #define Heap_Size 0x4000 +#endif + +LR_m_text m_text_start m_text_size { ; load region size_region + ER_m_text m_text_start m_text_size { ; load address = execution address + * (InRoot$$Sections) + .ANY (+RO) + } + RW_m_data m_data_start m_data_size { ; RW data + .ANY (+RW +ZI) + } + ARM_LIB_HEAP m_data_start+m_data_size-Heap_Size-Stack_Size EMPTY Heap_Size { ; Heap region growing up + } + ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down + } +} + +LR_m_interrupts m_interrupts_start m_interrupts_size { + VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address + * (RESET,+FIRST) + } +} diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt deleted file mode 100644 index e057d9f..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt +++ /dev/null @@ -1,185 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(rpmsg_pingpong_example - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../../pin_mux.c" - "${ProjDirPath}/../../../../pin_mux.h" - "${ProjDirPath}/../../../../board.c" - "${ProjDirPath}/../../../../board.h" - "${ProjDirPath}/../../../../clock_freq.c" - "${ProjDirPath}/../../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" - "${ProjDirPath}/../pingpong.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" -) -SET_TARGET_PROPERTIES(rpmsg_pingpong_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_example.elf") - -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example m) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example c) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example gcc) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example nosys) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_example.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_example.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.hex) -ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat deleted file mode 100755 index 0cf721f..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh deleted file mode 100755 index 3827529..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat deleted file mode 100755 index e9ccfdd..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh deleted file mode 100755 index effd076..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat deleted file mode 100755 index 0759349..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh deleted file mode 100755 index a12067d..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.cproject deleted file mode 100644 index a8c9b7d..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.project b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.project deleted file mode 100644 index f579540..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - rpmsg_pingpong_example_imx7_colibri_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.crpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/plat_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/freertos_env.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos_env.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/pingpong.c1PARENT-1-PROJECT_LOC/pingpong.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd deleted file mode 100644 index 4ddcea6..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - rpmsg_pingpong_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/hardware_init.c deleted file mode 100644 index aa69475..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/hardware_init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* RDC MU*/ - RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Enable clock gate for MU*/ - CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp deleted file mode 100644 index f7017c4..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hrpmsg$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/env.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.csystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../pingpong.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/mu_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/mu_imx.h diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww deleted file mode 100644 index 748cbcf..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allrpmsg_pingpong_exampleReleaserpmsg_pingpong_exampleDebugReleaserpmsg_pingpong_exampleReleaseDebugrpmsg_pingpong_exampleDebug -$WS_DIR$/rpmsg_pingpong_example.ewp diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/pingpong.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/pingpong.c deleted file mode 100644 index 4b8b82e..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong/pingpong.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "board.h" -#include "rpmsg/rpmsg.h" -#include "debug_console_imx.h" -#include "mu_imx.h" -#include "plat_porting.h" - -/* - * APP decided interrupt priority - */ -#define APP_MU_IRQ_PRIORITY 3 - -/* Internal functions */ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl); -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl); -static void rpmsg_read_cb(struct rpmsg_channel *, void *, int, void *, unsigned long); - -/* Globals */ -static struct remote_device *rdev; -static struct rpmsg_channel *app_chnl; -static uint32_t msg_var; -static SemaphoreHandle_t app_sema; - -/*! - * @brief A basic RPMSG task - */ -void PingPongTask(void *pvParameters) -{ - PRINTF("RPMSG PingPong Demo...\r\n"); - - app_sema = xSemaphoreCreateCounting(2, 0); - - PRINTF("RPMSG Init as Remote\r\n"); - /* - * RPMSG Init as REMOTE - */ - rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); - - /* - * rpmsg_channel_created will post the first semaphore - */ - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); - - - /* - * pingpong demo loop - */ - for (;;) { - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Get Data From A7 : %d\r\n", msg_var); - msg_var++; - rpmsg_send(app_chnl, (void*)&msg_var, sizeof(uint32_t)); - } -} - - -/* - * MU Interrrupt ISR - */ -void BOARD_MU_HANDLER(void) -{ - /* - * calls into rpmsg_handler provided by middleware - */ - rpmsg_handler(); -} - - -int main(void) -{ - hardware_init(); - - /* - * Prepare for the MU Interrupt - * MU must be initialized before rpmsg init is called - */ - MU_Init(BOARD_MU_BASE_ADDR); - NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); - NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); - - // Create a demo task which will print Hello world and echo user's input. - xTaskCreate(PingPongTask, "Ping Pong Task", configMINIMAL_STACK_SIZE, - NULL, tskIDLE_PRIORITY+1, NULL); - - // Start FreeRTOS scheduler. - vTaskStartScheduler(); - - // Should never reach this point. - while (true); -} - -/* rpmsg_rx_callback will call into this for a channel creation event*/ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) -{ - /* - * we should give the created rp_chnl handler to app layer - */ - app_chnl = rp_chnl; - - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} - -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) -{ - rpmsg_destroy_ept(rp_chnl->rp_ept); -} - -static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, - void * priv, unsigned long src) -{ - msg_var = *(uint32_t*)data; - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt new file mode 100644 index 0000000..207d004 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt @@ -0,0 +1,172 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_pingpong_bm_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../pingpong_bm.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_pingpong_bm_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_bm_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example m) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example c) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_bm_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_bm_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject new file mode 100644 index 0000000..e32cbf3 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project new file mode 100644 index 0000000..0c95d40 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_pingpong_bm_example_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.srpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/pingpong_bm.c1PARENT-1-PROJECT_LOC/pingpong_bm.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c new file mode 100644 index 0000000..2051bc2 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include +#include "rpmsg/rpmsg.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +typedef struct the_message +{ + uint32_t DATA; +} THE_MESSAGE, * THE_MESSAGE_PTR; + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// +/* Globals */ +static volatile struct rpmsg_channel *app_chnl; +static volatile int pingpong_finished = 0; +static THE_MESSAGE msg; + +static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, + void * priv, unsigned long src) +{ + if(len > sizeof(THE_MESSAGE)) + { + PRINTF("Received size %d exceed pingpong buffer size\r\n", len); + return; + } + + /* Drop extra message received after pingpong finished */ + if (pingpong_finished) + return; + + /* Store received message to global buffer */ + memcpy(&msg, data, len); + + PRINTF("Get Data From Master Side : %d\r\n", msg.DATA); + + /* Send the message back to the remoteproc */ + msg.DATA++; + rpmsg_send((struct rpmsg_channel *)app_chnl, &msg, sizeof(THE_MESSAGE)); + + /* Set pingpong_finished to 1 per requirement */ +} + +/* rpmsg_rx_callback will call into this for a channel creation event*/ +static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) +{ + /* We should give the created rp_chnl handler to app layer */ + app_chnl = rp_chnl; + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); +} + +static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) +{ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main (void) +{ + struct remote_device *rdev; + + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Print the initial banner */ + PRINTF("\r\nRPMSG PingPong Bare Metal Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + rpmsg_init(0 /*REMOTE_CPU_ID*/, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); + + /* wait until the pingpong demo finished */ + while (!pingpong_finished) + { + } + + PRINTF("\r\nMessage pingpong finished\r\n"); + + rpmsg_deinit(rdev); + + return 0; +} + +/******************************************************************************* + * EOF + ******************************************************************************/ + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h new file mode 100644 index 0000000..c57902e --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt new file mode 100644 index 0000000..1b91236 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt @@ -0,0 +1,199 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_pingpong_freertos_example + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../pingpong_freertos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_pingpong_freertos_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_freertos_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example m) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example c) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_freertos_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_freertos_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject new file mode 100644 index 0000000..cdcd118 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project new file mode 100644 index 0000000..fab6c1d --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_pingpong_freertos_example_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/pingpong_freertos.c1PARENT-1-PROJECT_LOC/pingpong_freertos.crpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.crpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c new file mode 100644 index 0000000..6d0c03d --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include "rpmsg/rpmsg_rtos.h" +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +#define APP_TASK_STACK_SIZE 256 + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +typedef struct the_message +{ + uint32_t DATA; +} THE_MESSAGE, * THE_MESSAGE_PTR; + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// + +static void PingPongTask (void* param) +{ + int result; + struct remote_device *rdev = NULL; + struct rpmsg_channel *app_chnl = NULL; + THE_MESSAGE msg = {0}; + int len; + + /* Print the initial banner */ + PRINTF("\r\nRPMSG PingPong FreeRTOS RTOS API Demo...\r\n"); + + PRINTF("RPMSG Init as Remote\r\n"); + result = rpmsg_rtos_init(0 /*REMOTE_CPU_ID*/, &rdev, RPMSG_MASTER, &app_chnl); + assert(0 == result); + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); + + while (true) + { + /* receive/send data to channel default ept */ + result = rpmsg_rtos_recv(app_chnl->rp_ept, &msg, &len, sizeof(THE_MESSAGE), NULL, 0xFFFFFFFF); + assert(0 == result); + PRINTF("Get Data From Master Side : %d\r\n", msg.DATA); + msg.DATA++; + result = rpmsg_rtos_send(app_chnl->rp_ept, &msg, sizeof(THE_MESSAGE), app_chnl->dst); + assert(0 == result); + } + + /* If destruction required */ + /* + PRINTF("\r\nMessage pingpong finished\r\n"); + + rpmsg_rtos_deinit(rdev); + */ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main (void) +{ + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Create a demo task. */ + xTaskCreate(PingPongTask, "Ping Pong Task", APP_TASK_STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, NULL); + + /* Start FreeRTOS scheduler. */ + vTaskStartScheduler(); + + /* Should never reach this point. */ + while(true); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt deleted file mode 100644 index cfdf394..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt +++ /dev/null @@ -1,185 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(rpmsg_str_echo_example - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../../pin_mux.c" - "${ProjDirPath}/../../../../pin_mux.h" - "${ProjDirPath}/../../../../board.c" - "${ProjDirPath}/../../../../board.h" - "${ProjDirPath}/../../../../clock_freq.c" - "${ProjDirPath}/../../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" - "${ProjDirPath}/../str_echo.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" -) -SET_TARGET_PROPERTIES(rpmsg_str_echo_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_example.elf") - -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example m) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example c) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example gcc) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example nosys) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_example.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_example.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.hex) -ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat deleted file mode 100755 index 0cf721f..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh deleted file mode 100755 index 3827529..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat deleted file mode 100755 index e9ccfdd..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh deleted file mode 100755 index effd076..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat deleted file mode 100755 index 0759349..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh deleted file mode 100755 index a12067d..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.cproject deleted file mode 100644 index 97441ea..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.project b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.project deleted file mode 100644 index 666b22d..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - rpmsg_str_echo_example_imx7_colibri_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.crpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/plat_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/freertos_env.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos_env.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/str_echo.c1PARENT-1-PROJECT_LOC/str_echo.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd deleted file mode 100644 index 1d6a085..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - rpmsg_str_echo_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/hardware_init.c deleted file mode 100644 index aa69475..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/hardware_init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* RDC MU*/ - RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Enable clock gate for MU*/ - CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp deleted file mode 100644 index da4e5e6..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hrpmsg$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/env.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.csystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../str_echo.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/mu_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/mu_imx.h diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww deleted file mode 100644 index 16d90b2..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allrpmsg_str_echo_exampleReleaserpmsg_str_echo_exampleDebugReleaserpmsg_str_echo_exampleReleaseDebugrpmsg_str_echo_exampleDebug -$WS_DIR$/rpmsg_str_echo_example.ewp diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/str_echo.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/str_echo.c deleted file mode 100644 index 7a778fc..0000000 --- a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo/str_echo.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "string.h" -#include "assert.h" -#include "board.h" -#include "rpmsg/rpmsg.h" -#include "debug_console_imx.h" -#include "mu_imx.h" -#include "plat_porting.h" - -/* - * APP decided interrupt priority - */ -#define APP_MU_IRQ_PRIORITY 3 - -#define MAX_STRING_SIZE 496 /* Maximum size to hold the data A7 gives */ - -/* - * For the most worst case, master will send 3 consecutive messages which remote - * do not process. - * The synchronization between remote and master is that each time endpoint callback - * is called, the MU Receive interrupt is temperorily disabled. Until the next time - * remote consumes the message, the interrupt will not be enabled again. - * When the interrupt is not enabled, Master can not send the notify, it will blocks - * there and can not send further message. - * In the worst case, master send the first message, it triggles the ISR in remote - * side, remote ISR clear the MU status bit so master can send the second message - * and notify again, master can continue to send the 3rd message but will blocks - * when trying to notify. Meanwhile, remote side is still in the first ISR which - * has a loop to receive all the 3 messages. - * Master is blocked and can not send the 4th message, remote side ISR copies all - * this 3 message to app buffer and informs the app layer to consume them. After - * a message is consumed, the ISR is enabled again and the second notify is received. - * This unblocks the master to complete the 3rd notify and send the next message. - * The 4th notify will not complete until remote consumes the second message. - * The situation goes on and we can see application layer need a maximum size 3 - * buffer to hold the unconsumed messages. STRING_BUFFER_CNT is therefore set to 3 - */ -#define STRING_BUFFER_CNT 3 - -/* Internal functions */ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl); -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl); -static void rpmsg_read_cb(struct rpmsg_channel *, void *, int, void *, unsigned long); - -/* Globals */ -static struct remote_device *rdev; -static struct rpmsg_channel *app_chnl; -static char strVar[STRING_BUFFER_CNT][MAX_STRING_SIZE + 1]; -static uint8_t app_idx = 0; -static uint8_t handler_idx = 0; -static SemaphoreHandle_t app_sema; - -/*! - * @brief A basic RPMSG task - */ -void StrEchoTask(void *pvParameters) -{ - PRINTF("RPMSG String Echo Demo...\r\n"); - - app_sema = xSemaphoreCreateCounting(STRING_BUFFER_CNT + 1, 0); - - PRINTF("RPMSG Init as Remote\r\n"); - /* - * RPMSG Init as REMOTE - */ - rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); - - /* - * rpmsg_channel_created will post the first semaphore - */ - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); - - - /* - * pingpong demo loop - */ - for (;;) { - xSemaphoreTake(app_sema, portMAX_DELAY); - /* - * Take from next app string buffer - */ - if ((strlen(strVar[app_idx]) == 2) && (strVar[app_idx][0] == 0xd) && (strVar[app_idx][1] == 0xa)) - PRINTF("Get New Line From A7 From Slot %d\r\n", app_idx); - else - PRINTF("Get Message From A7 : \"%s\" [len : %d] from slot %d\r\n", strVar[app_idx], strlen(strVar[app_idx]), app_idx); - - /* - * echo back - */ - rpmsg_send(app_chnl, (void*)strVar[app_idx], strlen(strVar[app_idx])); - app_idx = (app_idx + 1) % STRING_BUFFER_CNT; - /* - * once a message is consumed, the MU receive interrupt can be enabled - * again - */ - MU_EnableRxFullInt(MU0_B, MU_RPMSG_CHANNEL); - } -} - -/* - * MU Interrrupt ISR - */ -void BOARD_MU_HANDLER(void) -{ - /* - * calls into rpmsg_handler provided by middleware - */ - rpmsg_handler(); -} - -int main(void) -{ - hardware_init(); - - /* - * Prepare for the MU Interrupt - * MU must be initialized before rpmsg init is called - */ - MU_Init(BOARD_MU_BASE_ADDR); - NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); - NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); - - // Create a demo task which will print Hello world and echo user's input. - xTaskCreate(StrEchoTask, "String Echo Task", configMINIMAL_STACK_SIZE, - NULL, tskIDLE_PRIORITY+1, NULL); - - // Start FreeRTOS scheduler. - vTaskStartScheduler(); - - // Should never reach this point. - while (true); -} - -/* rpmsg_rx_callback will call into this for a channel creation event*/ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) -{ - /* - * we should give the created rp_chnl handler to app layer - */ - app_chnl = rp_chnl; - - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} - -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) -{ - rpmsg_destroy_ept(rp_chnl->rp_ept); -} - -static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, - void * priv, unsigned long src) -{ - /* - * Temperorily Disable MU Receive Interrupt to avoid master - * sending too many messages and remote will fail to keep pace - * to consume - */ - MU_DisableRxFullInt(MU0_B, MU_RPMSG_CHANNEL); - /* - * Copy to next app string buffer - */ - assert(len <= MAX_STRING_SIZE); - memcpy((void*)strVar[handler_idx], data, len); - /* - * Add trailing '\0' - */ - strVar[handler_idx][len] = 0; - handler_idx = (handler_idx + 1) % STRING_BUFFER_CNT; - xSemaphoreGiveFromISR(app_sema, NULL); -} -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt new file mode 100644 index 0000000..eae2fa5 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt @@ -0,0 +1,172 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_str_echo_bm_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../str_echo_bm.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_str_echo_bm_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_bm_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example m) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example c) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_bm_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_bm_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject new file mode 100644 index 0000000..f2a7733 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project new file mode 100644 index 0000000..3006e99 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_str_echo_bm_example_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.srpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/str_echo_bm.c1PARENT-1-PROJECT_LOC/str_echo_bm.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c new file mode 100644 index 0000000..c96d505 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c @@ -0,0 +1,205 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "rpmsg/rpmsg_ext.h" +#include "string.h" +#include "assert.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +/* + * For the most worst case, master will send 3 consecutive messages which remote + * do not process. + * The synchronization between remote and master is that each time endpoint callback + * is called, the MU Receive interrupt is temperorily disabled. Until the next time + * remote consumes the message, the interrupt will not be enabled again. + * When the interrupt is not enabled, Master can not send the notify, it will blocks + * there and can not send further message. + * In the worst case, master send the first message, it triggles the ISR in remote + * side, remote ISR clear the MU status bit so master can send the second message + * and notify again, master can continue to send the 3rd message but will blocks + * when trying to notify. Meanwhile, remote side is still in the first ISR which + * has a loop to receive all the 3 messages. + * Master is blocked and can not send the 4th message, remote side ISR stores all + * this 3 messages to app buffer and informs the app layer to consume them. After + * 3 messages are consumed, the ISR is enabled again and the second notify is received. + * This unblocks the master to complete the 3rd notify and send the 4th message. + * The situation goes on and we can see application layer need a maximum size 3 + * buffer to hold the unconsumed messages. STRING_BUFFER_CNT is therefore set to 3 + */ +#define STRING_BUFFER_CNT 3 + +typedef struct +{ + unsigned long src; + void* data; + int len; +} app_message_t; + +/* Globals */ +static struct rpmsg_channel *app_chnl = NULL; +static app_message_t app_msg[STRING_BUFFER_CNT]; +static char app_buf[512]; /* Each RPMSG buffer can carry less than 512 payload */ +static uint8_t app_idx = 0; +static uint8_t handler_idx = 0; +static volatile int32_t msg_count = 0; + +static void rpmsg_enable_rx_int(bool enable) +{ + if (enable) + { + if ((--msg_count) == 0) + MU_EnableRxFullInt(MUB, RPMSG_MU_CHANNEL); + } + else + { + if ((msg_count++) == 0) + MU_DisableRxFullInt(MUB, RPMSG_MU_CHANNEL); + } +} + +static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, + void * priv, unsigned long src) +{ + /* + * Temperorily Disable MU Receive Interrupt to avoid master + * sending too many messages and remote will fail to keep pace + * to consume (flow control) + */ + rpmsg_enable_rx_int(false); + + /* Hold the RPMsg rx buffer to be used in main loop */ + rpmsg_hold_rx_buffer(rp_chnl, data); + app_msg[handler_idx].src = src; + app_msg[handler_idx].data = data; + app_msg[handler_idx].len = len; + + /* Move to next free message index */ + handler_idx = (handler_idx + 1) % STRING_BUFFER_CNT; +} + +/* rpmsg_rx_callback will call into this for a channel creation event*/ +static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) +{ + /* We should give the created rp_chnl handler to app layer */ + app_chnl = rp_chnl; + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); +} + +static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) +{ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main(void) +{ + struct remote_device *rdev; + int len; + void *tx_buf; + unsigned long size; + + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Print the initial banner */ + PRINTF("\r\nRPMSG String Echo Bare Metal Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); + + /* + * str_echo demo loop + */ + for (;;) + { + /* Wait message to be available */ + while (msg_count == 0) + { + } + + /* Copy string from RPMsg rx buffer */ + len = app_msg[app_idx].len; + assert(len < sizeof(app_buf)); + memcpy(app_buf, app_msg[app_idx].data, len); + app_buf[len] = 0; /* End string by '\0' */ + + if ((len == 2) && (app_buf[0] == 0xd) && (app_buf[1] == 0xa)) + PRINTF("Get New Line From Master Side From Slot %d\r\n", app_idx); + else + PRINTF("Get Message From Master Side : \"%s\" [len : %d] from slot %d\r\n", app_buf, len, app_idx); + + /* Get tx buffer from RPMsg */ + tx_buf = rpmsg_alloc_tx_buffer(app_chnl, &size, RPMSG_TRUE); + assert(tx_buf); + /* Copy string to RPMsg tx buffer */ + memcpy(tx_buf, app_buf, len); + /* Echo back received message with nocopy send */ + rpmsg_sendto_nocopy(app_chnl, tx_buf, len, app_msg[app_idx].src); + + /* Release held RPMsg rx buffer */ + rpmsg_release_rx_buffer(app_chnl, app_msg[app_idx].data); + app_idx = (app_idx + 1) % STRING_BUFFER_CNT; + + /* Once a message is consumed, minus the msg_count and might enable MU interrupt again */ + rpmsg_enable_rx_int(true); + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h new file mode 100644 index 0000000..c57902e --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt new file mode 100644 index 0000000..19eeddc --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt @@ -0,0 +1,199 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_str_echo_freertos_example + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../str_echo_freertos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_str_echo_freertos_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_freertos_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example m) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example c) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_freertos_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_freertos_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject new file mode 100644 index 0000000..4f01e6c --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project new file mode 100644 index 0000000..b3eb875 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_str_echo_freertos_example_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/str_echo_freertos.c1PARENT-1-PROJECT_LOC/str_echo_freertos.crpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.crpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c new file mode 100644 index 0000000..b34b3d7 --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "rpmsg/rpmsg_rtos.h" +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "string.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +#define APP_TASK_STACK_SIZE 256 + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +/* Globals */ +static char app_buf[512]; /* Each RPMSG buffer can carry less than 512 payload */ + +/*! + * @brief A basic RPMSG task + */ +static void StrEchoTask(void *pvParameters) +{ + int result; + struct remote_device *rdev = NULL; + struct rpmsg_channel *app_chnl = NULL; + void *rx_buf; + int len; + unsigned long src; + void *tx_buf; + unsigned long size; + + /* Print the initial banner */ + PRINTF("\r\nRPMSG String Echo FreeRTOS RTOS API Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + result = rpmsg_rtos_init(0 /*REMOTE_CPU_ID*/, &rdev, RPMSG_MASTER, &app_chnl); + assert(result == 0); + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); + + /* + * str_echo demo loop + */ + for (;;) + { + /* Get RPMsg rx buffer with message */ + result = rpmsg_rtos_recv_nocopy(app_chnl->rp_ept, &rx_buf, &len, &src, 0xFFFFFFFF); + assert(result == 0); + + /* Copy string from RPMsg rx buffer */ + assert(len < sizeof(app_buf)); + memcpy(app_buf, rx_buf, len); + app_buf[len] = 0; /* End string by '\0' */ + + if ((len == 2) && (app_buf[0] == 0xd) && (app_buf[1] == 0xa)) + PRINTF("Get New Line From Master Side\r\n"); + else + PRINTF("Get Message From Master Side : \"%s\" [len : %d]\r\n", app_buf, len); + + /* Get tx buffer from RPMsg */ + tx_buf = rpmsg_rtos_alloc_tx_buffer(app_chnl->rp_ept, &size); + assert(tx_buf); + /* Copy string to RPMsg tx buffer */ + memcpy(tx_buf, app_buf, len); + /* Echo back received message with nocopy send */ + result = rpmsg_rtos_send_nocopy(app_chnl->rp_ept, tx_buf, len, src); + assert(result == 0); + + /* Release held RPMsg rx buffer */ + result = rpmsg_rtos_recv_nocopy_free(app_chnl->rp_ept, rx_buf); + assert(result == 0); + } +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +int main(void) +{ + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Create a demo task. */ + xTaskCreate(StrEchoTask, "String Echo Task", APP_TASK_STACK_SIZE, + NULL, tskIDLE_PRIORITY+1, NULL); + + /* Start FreeRTOS scheduler. */ + vTaskStartScheduler(); + + /* Should never reach this point. */ + while (true); +} +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/FreeRTOSConfig.h b/examples/imx7_colibri_m4/demo_apps/sema4_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..bd4ca6f --- /dev/null +++ b/examples/imx7_colibri_m4/demo_apps/sema4_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt index eff480e..517dd77 100644 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../sema4_mutex.c" "${ProjDirPath}/../sema4_mutex.h" @@ -109,6 +113,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -120,6 +125,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/sema4_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.cproject index 27bd6d6..08da60b 100644 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.cproject +++ b/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.project b/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.project index 9ef3d8c..ec5ee2d 100644 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.project +++ b/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/sema4_mutex.c1PARENT-1-PROJECT_LOC/sema4_mutex.csource2virtual:/virtualsource/sema4_mutex.h1PARENT-1-PROJECT_LOC/sema4_mutex.hdriver2virtual:/virtualdriver/sema4.c1PARENT-5-PROJECT_LOC/platform/drivers/src/sema4.cdriver2virtual:/virtualdriver/sema4.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/sema4.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/sema4_mutex.c1PARENT-1-PROJECT_LOC/sema4_mutex.csource2virtual:/virtualsource/sema4_mutex.h1PARENT-1-PROJECT_LOC/sema4_mutex.hdriver2virtual:/virtualdriver/sema4.c1PARENT-5-PROJECT_LOC/platform/drivers/src/sema4.cdriver2virtual:/virtualdriver/sema4.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/sema4.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/makedir.bat b/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd b/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd deleted file mode 100644 index 0b9788f..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - sema4_demo_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd b/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp b/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp deleted file mode 100644 index 171c428..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.c$PROJ_DIR$/../sema4_mutex.c$PROJ_DIR$/../sema4_mutex.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/sema4.c$PROJ_DIR$/../../../../../platform/drivers/inc/sema4.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.eww b/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.eww deleted file mode 100644 index 4bebbae..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/iar/sema4_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allsema4_demoReleasesema4_demoDebugReleasesema4_demoReleaseDebugsema4_demoDebug -$WS_DIR$/sema4_demo.ewp diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/main.c b/examples/imx7_colibri_m4/demo_apps/sema4_demo/main.c index ccf070e..d24111f 100644 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/main.c +++ b/examples/imx7_colibri_m4/demo_apps/sema4_demo/main.c @@ -98,7 +98,7 @@ int main(void) // Initialize SEMA4 mutex gate and reset SEMA4_Mutex_Init(SEMA4_DEMO_GATE, true); - // Create a demo task which will print Hello world and echo user's input. + // Create a demo task. xTaskCreate(Sema4Task, "SEMA4 Task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY+1, NULL); diff --git a/examples/imx7_colibri_m4/demo_apps/sema4_demo/sema4_mutex.c b/examples/imx7_colibri_m4/demo_apps/sema4_demo/sema4_mutex.c index 366f481..a52cfba 100644 --- a/examples/imx7_colibri_m4/demo_apps/sema4_demo/sema4_mutex.c +++ b/examples/imx7_colibri_m4/demo_apps/sema4_demo/sema4_mutex.c @@ -122,7 +122,7 @@ void SEMA4_Mutex_Unlock(uint32_t gate) void BOARD_SEMA4_HANDLER() { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; uint32_t i; uint16_t flag; @@ -135,7 +135,12 @@ void BOARD_SEMA4_HANDLER() /* Because the status cannot be cleared manually, we have to disable the gate's * interrupt to avoid endlessly going into ISR */ SEMA4_SetIntCmd(BOARD_SEMA4_BASEADDR, flag, false); + + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore[i], &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } } } diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt deleted file mode 100644 index c2ab91e..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt +++ /dev/null @@ -1,170 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../common) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../common) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(sensor_demo - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" - "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" - "${ProjDirPath}/../sensor_demo_imx7d/main.c" - "${ProjDirPath}/../common/i2c_xfer.c" - "${ProjDirPath}/../common/i2c_xfer.h" - "${ProjDirPath}/../common/mpl3115.c" - "${ProjDirPath}/../common/mpl3115.h" - "${ProjDirPath}/../common/fxos8700.c" - "${ProjDirPath}/../common/fxos8700.h" - "${ProjDirPath}/../common/fxas21002.c" - "${ProjDirPath}/../common/fxas21002.h" - "${ProjDirPath}/../../../../../platform/drivers/src/i2c_imx.c" - "${ProjDirPath}/../../../../../platform/drivers/inc/i2c_imx.h" - "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/event_groups.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/list.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/portable.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/projdefs.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/queue.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/semphr.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/task.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" - "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/croutine.c" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/event_groups.c" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/list.c" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/queue.c" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/tasks.c" - "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" - "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../pin_mux.c" - "${ProjDirPath}/../../../pin_mux.h" - "${ProjDirPath}/../../../board.c" - "${ProjDirPath}/../../../board.h" - "${ProjDirPath}/../../../clock_freq.c" - "${ProjDirPath}/../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" -) -SET_TARGET_PROPERTIES(sensor_demo PROPERTIES OUTPUT_NAME "sensor_demo.elf") - -TARGET_LINK_LIBRARIES(sensor_demo -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(sensor_demo m) -TARGET_LINK_LIBRARIES(sensor_demo c) -TARGET_LINK_LIBRARIES(sensor_demo gcc) -TARGET_LINK_LIBRARIES(sensor_demo nosys) -TARGET_LINK_LIBRARIES(sensor_demo -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/sensor_demo.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/sensor_demo.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET sensor_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/sensor_demo.elf ${EXECUTABLE_OUTPUT_PATH}/sensor_demo.hex) -ADD_CUSTOM_COMMAND(TARGET sensor_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/sensor_demo.elf ${EXECUTABLE_OUTPUT_PATH}/sensor_demo.bin) diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.bat b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.bat deleted file mode 100755 index 6d41d86..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.sh b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.sh deleted file mode 100755 index ebb0c25..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.bat b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.bat deleted file mode 100755 index bf3b902..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.sh b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.sh deleted file mode 100755 index 571868b..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.bat b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.bat deleted file mode 100755 index e229a83..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.sh b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.sh deleted file mode 100755 index 035ce4e..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.bat b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.sh b/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.c b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.c deleted file mode 100644 index 4764390..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include "board.h" -#include "i2c_xfer.h" -#include "fxas21002.h" - -/*FUNCTION**************************************************************** -* -* Function Name : fxas21002_init -* Returned Value : result -* Comments : Initialize FXAS21002 Gyro sensor. -* -*END*********************************************************************/ -bool fxas21002_init(gyro_sensor_t* pThisGyro) -{ - uint8_t txBuffer; - uint8_t cmdBuffer[2]; - - pThisGyro->fDegPerSecPerCount = FXAS21002_DEGPERSECPERCOUNT; - - // Write 0000 0000 = 0x00 to CTRL_REG1 to place FXOS21002 in Standby - // [7]: ZR_cond=0 - // [6]: RST=0 - // [5]: ST=0 self test disabled - // [4-2]: DR[2-0]=000 for 800Hz - // [1-0]: Active=0, Ready=0 for Standby mode - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; - cmdBuffer[1] = FXAS21002_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 0000 0000 = 0x00 to CTRL_REG0 to configure range and filters - // [7-6]: BW[1-0]=00, LPF disabled - // [5]: SPIW=0 4 wire SPI (irrelevant) - // [4-3]: SEL[1-0]=00 for 10Hz HPF at 200Hz ODR - // [2]: HPF_EN=0 disable HPF - // [1-0]: FS[1-0]=00 for 1600dps (TBD CHANGE TO 2000dps when final trimmed parts available) - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; - cmdBuffer[1] = FXAS21002_CTRL_REG0; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 0000 0010 = 0x02 to CTRL_REG1 to configure 800Hz ODR and enter Active mode - // [7]: ZR_cond=0 - // [6]: RST=0 - // [5]: ST=0 self test disabled - // [4-2]: DR[2-0]=000 for 800Hz ODR - // [1-0]: Active=1, Ready=0 for Active mode - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; - cmdBuffer[1] = FXAS21002_CTRL_REG1; - txBuffer = 0x02; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - return true; -} - -/*FUNCTION**************************************************************** -* -* Function Name : fxas21002_read_data -* Returned Value : result -* Comments : Get current height and temperature from fxas21002. -* -*END*********************************************************************/ -bool fxas21002_read_data(gyro_sensor_t* pThisGyro) -{ - uint8_t rxBuffer[6]; - uint8_t cmdBuffer[3]; - - // store the gain terms in the GyroSensor structure - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; - cmdBuffer[1] = FXAS21002_OUT_X_MSB; - cmdBuffer[2] = (BOARD_I2C_FXAS21002_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 6)) - return false; - - pThisGyro->iYpFast[0] = (rxBuffer[0] << 8) | rxBuffer[1]; - pThisGyro->iYpFast[1] = (rxBuffer[2] << 8) | rxBuffer[3]; - pThisGyro->iYpFast[2] = (rxBuffer[4] << 8) | rxBuffer[5]; - - return true; -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.h b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.h deleted file mode 100644 index a3adbae..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxas21002.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __FXAS21002_H__ -#define __FXAS21002_H__ - -#define OVERSAMPLE_RATIO (64) // int32: 8x: 3DOF, 6DOF, 9DOF run at SENSORFS / OVERSAMPLE_RATIO Hz - -// place the gain in the gyro structure -#define FXAS21002_COUNTSPERDEGPERSEC (16.0F) // for production 2000dps range (2000dps=32000) -#define FXAS21002_DEGPERSECPERCOUNT (0.0625F) // must be reciprocal of FCOUNTSPERDEGPERSEC - -/* I2C Slave Address define */ -#define FXAS21002_ADDRESS_0 (0x20) -#define FXAS21002_ADDRESS_1 (0x21) -#define FXAS21002_ADDRESS_DEFAULT (FXAS21002_ADDRESS_0) - -/* FXAS21002 device ID number */ -#define FXAS21002_DEVICE_ID (0xD7) - -/* FXAS21002 Registers address definition */ -#define FXAS21002_STATUS (0x00) -#define FXAS21002_OUT_X_MSB (0x01) -#define FXAS21002_OUT_X_LSB (0x02) -#define FXAS21002_OUT_Y_MSB (0x03) -#define FXAS21002_OUT_Y_LSB (0x04) -#define FXAS21002_OUT_Z_MSB (0x05) -#define FXAS21002_OUT_Z_LSB (0x06) -#define FXAS21002_DR_STATUS (0x07) -#define FXAS21002_F_STATUS (0x08) -#define FXAS21002_F_SETUP (0x09) -#define FXAS21002_F_EVENT (0x0A) -#define FXAS21002_INT_SRC_FLAG (0x0B) -#define FXAS21002_WHO_AM_I (0x0C) -#define FXAS21002_CTRL_REG0 (0x0D) -#define FXAS21002_RT_CFG (0x0E) -#define FXAS21002_RT_SRC (0x0F) -#define FXAS21002_RT_THS (0x10) -#define FXAS21002_RT_COUNT (0x11) -#define FXAS21002_TEMP (0x12) -#define FXAS21002_CTRL_REG1 (0x13) -#define FXAS21002_CTRL_REG2 (0x14) -#define FXAS21002_CTRL_REG3 (0x15) - -// gyro sensor structure definition -typedef struct _gyro_sensor -{ - int32_t iSumYpFast[3]; // sum of fast measurements - float fYp[3]; // raw gyro sensor output (deg/s) - float fDegPerSecPerCount; // initialized to FDEGPERSECPERCOUNT - int16_t iYpFast[3]; // fast (typically 200Hz) readings - int16_t iYp[3]; // averaged gyro sensor output (counts) -} gyro_sensor_t; - -/* Function prototypes */ -#if defined(__cplusplus) -extern "C" { -#endif - -bool fxas21002_init(gyro_sensor_t*); -bool fxas21002_read_data(gyro_sensor_t*); - -#ifdef __cplusplus -} -#endif - - -#endif /* __FXAS21002_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.c b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.c deleted file mode 100644 index 207c594..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.c +++ /dev/null @@ -1,158 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include "board.h" -#include "i2c_xfer.h" -#include "fxos8700.h" - -/*FUNCTION**************************************************************** -* -* Function Name : fxos8700_init -* Returned Value : result -* Comments : Initialize FXOS8700 Acc and Mag sensor. -* -*END*********************************************************************/ -bool fxos8700_init(void) -{ - uint8_t txBuffer; - uint8_t cmdBuffer[2]; - - // write 0000 0000 = 0x00 to CTRL_REG1 to place FXOS8700 into standby - // [7-1] = 0000 000 - // [0]: active=0 - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 0001 1111 = 0x1F to M_CTRL_REG1 - // [7]: m_acal=0: auto calibration disabled - // [6]: m_rst=0: one-shot magnetic reset disabled - // [5]: m_ost=0: one-shot magnetic measurement disabled - // [4-2]: m_os=111=7: 8x oversampling (for 200Hz) to reduce magnetometer noise - // [1-0]: m_hms=11=3: select hybrid mode with accel and magnetometer active - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_M_CTRL_REG1; - txBuffer = 0x1F; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 0010 0000 = 0x20 to magnetometer control register 2 - // [7]: reserved - // [6]: reserved - // [5]: hyb_autoinc_mode=1 to map the magnetometer registers to follow the accelerometer registers - // [4]: m_maxmin_dis=0 to retain default min/max latching even though not used - // [3]: m_maxmin_dis_ths=0 - // [2]: m_maxmin_rst=0 - // [1-0]: m_rst_cnt=00 to enable magnetic reset each cycle - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_M_CTRL_REG2; - txBuffer = 0x20; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 0000 0001= 0x01 to XYZ_DATA_CFG register - // [7]: reserved - // [6]: reserved - // [5]: reserved - // [4]: hpf_out=0 - // [3]: reserved - // [2]: reserved - // [1-0]: fs=01 for 4g mode: 2048 counts / g = 8192 counts / g after 2 bit left shift - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_XYZ_DATA_CFG; - txBuffer = 0x01; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 0000 0010 = 0x02 to CTRL_REG2 to set MODS bits - // [7]: st=0: self test disabled - // [6]: rst=0: reset disabled - // [5]: unused - // [4-3]: smods=00 - // [2]: slpe=0: auto sleep disabled - // [1-0]: mods=10 for high resolution (maximum over sampling) - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_CTRL_REG2; - txBuffer = 0x02; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 0000 1101 = 0x0D to accelerometer control register 1 - // [7-6]: aslp_rate=00 - // [5-3]: dr=001=1 for 200Hz data rate (when in hybrid mode) - // [2]: lnoise=1 for low noise mode (since we're in 4g mode) - // [1]: f_read=0 for normal 16 bit reads - // [0]: active=1 to take the part out of standby and enable sampling - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_CTRL_REG1; - txBuffer = 0x0D; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - return true; -} - -/*FUNCTION**************************************************************** -* -* Function Name : fxos8700_read_data -* Returned Value : result -* Comments : Get current Acc and Mag from FXOS8700 6-axis sensor. -* -*END*********************************************************************/ -bool fxos8700_read_data(int16_t *Ax, int16_t *Ay, int16_t *Az, - int16_t *Mx, int16_t *My, int16_t *Mz) -{ - uint8_t rxBuffer[12]; - uint8_t cmdBuffer[3]; - - // Fetch Current Acc and Mag in all Axis - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_OUT_X_MSB; - cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 12)) - return false; - - *Ax = (rxBuffer[2] << 8) | rxBuffer[3]; - *Ay = (rxBuffer[0] << 8) | rxBuffer[1]; - *Az = (rxBuffer[4] << 8) | rxBuffer[5]; - *Mx = (rxBuffer[8] << 8) | rxBuffer[9]; - *My = (rxBuffer[6] << 8) | rxBuffer[7]; - *Mz = (rxBuffer[10] << 8) | rxBuffer[11]; - - return true; -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.h b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.h deleted file mode 100644 index 65e61cd..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/fxos8700.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __FXOS8700_H__ -#define __FXOS8700_H__ - -#include -#include - -/* I2C Slave Address define */ -#define FXOS8700_ADDRESS_0 (0x1C) -#define FXOS8700_ADDRESS_1 (0x1D) -#define FXOS8700_ADDRESS_2 (0x1E) -#define FXOS8700_ADDRESS_3 (0x1F) -#define FXOS8700_ADDRESS_DEFAULT (FXOS8700_ADDRESS_0) - -/* FXOS8700 device ID number */ -#define FXOS8700_DEVICE_ID (0xC7) - -/* FXOS8700 Registers address definition */ -#define FXOS8700_OUT_X_MSB (0x01) -#define FXOS8700_WHO_AM_I (0x0D) -#define FXOS8700_XYZ_DATA_CFG (0x0E) -#define FXOS8700_CTRL_REG1 (0x2A) -#define FXOS8700_CTRL_REG2 (0x2B) -#define FXOS8700_M_CTRL_REG1 (0x5B) -#define FXOS8700_M_CTRL_REG2 (0x5C) - -/* Function prototypes */ -#if defined(__cplusplus) -extern "C" { -#endif - -bool fxos8700_init(void); -bool fxos8700_read_data(int16_t *, int16_t *, int16_t *, int16_t *, int16_t *, int16_t *); - -#ifdef __cplusplus -} -#endif - - -#endif/* __FXOS8700_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.c b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.c deleted file mode 100644 index b8410d4..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.c +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#include "FreeRTOS.h" -#include "semphr.h" -#include "device_imx.h" -#include "i2c_imx.h" -#include "board.h" - -typedef struct _i2c_state { - const uint8_t* cmdBuff; /*!< The buffer of I2C command. */ - const uint8_t* txBuff; /*!< The buffer of data being sent.*/ - uint8_t* rxBuff; /*!< The buffer of received data. */ - uint32_t cmdSize; /*!< The remaining number of commands to be transmitted. */ - uint32_t txSize; /*!< The remaining number of bytes to be transmitted. */ - uint32_t rxSize; /*!< The remaining number of bytes to be received. */ - bool isBusy; /*!< True if there is an active transmission. */ - uint32_t operateDir; /*!< Overall I2C bus operating direction. */ - uint32_t currentDir; /*!< Current Data transfer direction. */ - uint32_t currentMode; /*!< Current I2C Bus role of this module. */ - SemaphoreHandle_t xSemaphore; /*!< I2C internal synchronize semaphore. */ -} i2c_state_t; - -/* I2C runtime state structure */ -static volatile i2c_state_t i2cState; - -void I2C_XFER_Config(i2c_init_config_t* initConfig) -{ - /* Initialize I2C state structure content. */ - i2cState.cmdBuff = 0; - i2cState.txBuff = 0; - i2cState.rxBuff = 0; - i2cState.cmdSize = 0; - i2cState.txSize = 0; - i2cState.rxSize = 0; - i2cState.isBusy = false; - i2cState.operateDir = i2cDirectionReceive; - i2cState.currentDir = i2cDirectionReceive; - i2cState.currentMode = i2cModeSlave; - i2cState.xSemaphore = xSemaphoreCreateBinary(); - - /* Initialize I2C baud rate, mode, transfer direction and slave address. */ - I2C_Init(BOARD_I2C_BASEADDR, initConfig); - - /* Set I2C Interrupt priority */ - NVIC_SetPriority(BOARD_I2C_IRQ_NUM, 3); - - /* Call core API to enable the IRQ. */ - NVIC_EnableIRQ(BOARD_I2C_IRQ_NUM); - - /* Finally, enable the I2C module */ - I2C_Enable(BOARD_I2C_BASEADDR); -} - -bool I2C_XFER_SendDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, - const uint8_t* txBuffer, uint32_t txSize) -{ - if ((i2cState.isBusy) || (0 == txSize)) - return false; - - /* Initialize i2c transfer struct */ - i2cState.cmdBuff = cmdBuff; - i2cState.cmdSize = cmdSize; - i2cState.txBuff = txBuffer; - i2cState.txSize = txSize; - i2cState.isBusy = true; - i2cState.operateDir = i2cDirectionTransmit; - - /* Clear I2C interrupt flag to avoid spurious interrupt */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); - - if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) - { - /* Reset i2c transfer state. */ - i2cState.operateDir = i2cDirectionReceive; - i2cState.isBusy = false; - return false; - } - - /* Set I2C work under Tx mode */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; - - /* Switch to Master Mode and Send Start Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); - i2cState.currentMode = i2cModeMaster; - - if (0 != cmdSize) - { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; - } - else - { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); - i2cState.txBuff++; - i2cState.txSize--; - } - - /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); - - /* Wait until send data finish. */ - xSemaphoreTake(i2cState.xSemaphore, portMAX_DELAY); - - return true; -} - -uint32_t I2C_XFER_GetSendStatus(void) -{ - return i2cState.txSize; -} - -bool I2C_XFER_ReceiveDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, - uint8_t* rxBuffer, uint32_t rxSize) -{ - if ((i2cState.isBusy) || (0 == rxSize)) - return false; - - /* Initialize i2c transfer struct */ - i2cState.cmdBuff = cmdBuff; - i2cState.cmdSize = cmdSize; - i2cState.rxBuff = rxBuffer; - i2cState.rxSize = rxSize; - i2cState.isBusy = true; - i2cState.operateDir = i2cDirectionReceive; - - /* Clear I2C interrupt flag to avoid spurious interrupt */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); - - if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) - { - /* Reset i2c transfer state. */ - i2cState.operateDir = i2cDirectionReceive; - i2cState.isBusy = false; - return false; - } - - /* Set I2C work under Tx mode */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; - - /* Switch to Master Mode and Send Start Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); - i2cState.currentMode = i2cModeMaster; - - /* Is there command to be sent before receive data? */ - if (0 != i2cState.cmdSize) - { - if (1 == i2cState.cmdSize) - I2C_SendRepeatStart(BOARD_I2C_BASEADDR); - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; - } - else - { - /* Change to receive state. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - if (1 == rxSize) - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); - else - /* Send Ack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); - /* dummy read to clock in 1st byte */ - I2C_ReadByte(BOARD_I2C_BASEADDR); - } - - /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); - - /* Wait until receive data finish. */ - xSemaphoreTake(i2cState.xSemaphore, portMAX_DELAY); - - return true; -} - -uint32_t I2C_XFER_GetReceiveStatus(void) -{ - return i2cState.rxSize; -} - -void BOARD_I2C_HANDLER(void) -{ - BaseType_t xHigherPriorityTaskWoken = pdFALSE; - - /* Clear interrupt flag. */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); - - /* Exit the ISR if no transfer is happening for this instance. */ - if (!i2cState.isBusy) - return; - - if (i2cModeMaster == i2cState.currentMode) - { - if (i2cDirectionTransmit == i2cState.currentDir) - { - if ((I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck)) || - ((0 == i2cState.txSize) && (0 == i2cState.cmdSize))) - { - if ((i2cDirectionTransmit == i2cState.operateDir) || - (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck))) - { - /* Switch to Slave mode and Generate a Stop Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); - i2cState.currentMode = i2cModeSlave; - - /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - /* Close I2C interrupt. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); - /* Release I2C Bus. */ - i2cState.isBusy = false; - xSemaphoreGiveFromISR(i2cState.xSemaphore, &xHigherPriorityTaskWoken); - } - else - { - /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - if (1 == i2cState.rxSize) - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); - else - /* Send Ack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); - /* dummy read to clock in 1st byte */ - *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); - } - } - else - { - if (0 != i2cState.cmdSize) - { - if ((1 == i2cState.cmdSize) && (i2cDirectionReceive == i2cState.operateDir)) - I2C_SendRepeatStart(BOARD_I2C_BASEADDR); - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; - } - else - { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); - i2cState.txBuff++; - i2cState.txSize--; - } - } - } - else - { - /* Normal read operation. */ - if (2 == i2cState.rxSize) - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); - else - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); - - if (1 == i2cState.rxSize) - { - /* Switch back to Tx direction to avoid additional I2C bus read. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; - } - *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); - i2cState.rxBuff++; - i2cState.rxSize--; - - /* receive finished. */ - if (0 == i2cState.rxSize) - { - /* Switch to Slave mode and Generate a Stop Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); - i2cState.currentMode = i2cModeSlave; - - /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - /* Close I2C interrupt. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); - /* Release I2C Bus. */ - i2cState.isBusy = false; - /* Release I2C Sem4 */ - xSemaphoreGiveFromISR(i2cState.xSemaphore, &xHigherPriorityTaskWoken); - } - } - } -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.h b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.h deleted file mode 100644 index 64b8f03..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/i2c_xfer.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -#ifndef __I2C_XFER_H__ -#define __I2C_XFER_H__ - -#include -#include -#include "i2c_imx.h" - -/* Function prototypes */ -#if defined(__cplusplus) -extern "C" { -#endif - -void I2C_XFER_Config(i2c_init_config_t* initConfig); -bool I2C_XFER_SendDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, const uint8_t* txBuffer, uint32_t txSize); -uint32_t I2C_XFER_GetSendStatus(void); -bool I2C_XFER_ReceiveDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, uint8_t* rxBuffer, uint32_t rxSize); -uint32_t I2C_XFER_GetReceiveStatus(void); - -#ifdef __cplusplus -} -#endif - -#endif /* __I2C_XFER_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.c b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.c deleted file mode 100644 index d44f63d..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include "board.h" -#include "debug_console_imx.h" -#include "i2c_xfer.h" -#include "mma8451q.h" - -static uint8_t mma8451qMode; - -/*FUNCTION**************************************************************** -* -* Function Name : MMA8451Q_Init -* Returned Value : true or false -* Comments : Initialize MMA8451Q 3-axis accelerometer sensor. -* -*END*********************************************************************/ -bool MMA8451Q_Init(void) -{ - uint8_t txBuffer; - uint8_t rxBuffer; - uint8_t cmdBuffer[3]; - - /* Place the MMA8451Q in Standby */ - PRINTF("Place the MMA8451Q in standby mode... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - PRINTF("OK\n\r"); - - // write 0000 0000= 0x00 to MMA8451Q_XYZ_DATA_CFG register - // [7]: reserved - // [6]: reserved - // [5]: reserved - // [4]: hpf_out=0 - // [3]: reserved - // [2]: reserved - // [1-0]: fs=00 for 2g mode. - PRINTF("Set the mode: 2G ... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_XYZ_DATA_CFG; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - mma8451qMode = 0U; - PRINTF("OK\n\r"); - - // write 0000 0001 = 0x01 to MMA8451Q_CTRL_REG1 - // [7-6]: aslp_rate=00 - // [5-3]: dr=000 - // [2]: lnoise=0 - // [1]: f_read=0 for normal read mode - // [0]: active=1 to take the part out of standby and enable sampling - PRINTF("Fast read clear and active mode ... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_CTRL_REG1; - txBuffer = 0x01; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - PRINTF("OK\n\r"); - - // read WHO_AM_I device register, 0x1A - PRINTF("Test WHO_AM_I check... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_WHO_AM_I; - cmdBuffer[2] = (BOARD_I2C_MMA8451Q_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, &rxBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - if(rxBuffer == MMA8451Q_DEVICE_ID) - PRINTF("OK\n\r"); - else - { - PRINTF("ERROR\n\r"); - return false; - } - return true; -} - -/*FUNCTION**************************************************************** -* -* Function Name : MMA8451Q_ReadData -* Returned Value : true or false -* Comments : Get current acceleration from MMA8451Q. -* -*END*********************************************************************/ -bool MMA8451Q_ReadData(int16_t *x, int16_t *y, int16_t *z) -{ - uint8_t rxBuffer[7]; - uint8_t cmdBuffer[3]; - - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_OUT_X_MSB; - cmdBuffer[2] = (BOARD_I2C_MMA8451Q_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 7)) - return false; - - *x = ((rxBuffer[0] << 8) & 0xff00) | rxBuffer[1]; - *y = ((rxBuffer[2] << 8) & 0xff00) | rxBuffer[3]; - *z = ((rxBuffer[4] << 8) & 0xff00) | rxBuffer[5]; - *x = (int16_t)(*x) >> 2; - *y = (int16_t)(*y) >> 2; - *z = (int16_t)(*z) >> 2; - - if(mma8451qMode == mma8451qMode_4G) - { - (*x) = (*x) << 1; - (*y) = (*y) << 1; - (*z) = (*z) << 1; - } - else if(mma8451qMode == mma8451qMode_8G) - { - (*x) = (*x) << 2; - (*y) = (*y) << 2; - (*z) = (*z) << 2; - } - - return true; -} - - /*FUNCTION**************************************************************** -* -* Function Name : MMA8451Q_ChangeMode -* Returned Value : true or false -* Comments : Change the current mode. -* -*END*********************************************************************/ -bool MMA8451Q_ChangeMode(uint8_t mode) -{ - uint8_t txBuffer; - uint8_t cmdBuffer[2]; - - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_XYZ_DATA_CFG; - txBuffer = mode; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - return true; -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.h b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.h deleted file mode 100644 index b371bbd..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mma8451q.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __MMA8451Q_H__ -#define __MMA8451Q_H__ - -#include -#include - -/* I2C Slave Address define */ -#define MMA8451Q_ADDRESS_0 (0x1C) /* SA0 = 0, low logic */ -#define MMA8451Q_ADDRESS_1 (0x1D) /* SA0 = 1, high logic */ - -/* MMA8451Q device ID number */ -#define MMA8451Q_DEVICE_ID (0x1A) - -/* MMA8451Q Registers address definition */ -#define MMA8451Q_STATUS (0x00) -#define MMA8451Q_OUT_X_MSB (0x01) -#define MMA8451Q_OUT_X_LSB (0x02) -#define MMA8451Q_OUT_Y_MSB (0x03) -#define MMA8451Q_OUT_Y_LSB (0x04) -#define MMA8451Q_OUT_Z_MSB (0x05) -#define MMA8451Q_OUT_Z_LSB (0x06) -#define MMA8451Q_F_SETUP (0x09) -#define MMA8451Q_TRIG_CFG (0x0A) -#define MMA8451Q_SYSMOD (0x0B) -#define MMA8451Q_INT_SOURCE (0x0C) -#define MMA8451Q_WHO_AM_I (0x0D) -#define MMA8451Q_XYZ_DATA_CFG (0x0E) -#define MMA8451Q_HP_FILTER_CUTOFF (0x0F) -#define MMA8451Q_PL_STATUS (0x10) -#define MMA8451Q_PL_CFG (0x11) -#define MMA8451Q_PL_COUNT (0x12) -#define MMA8451Q_PL_BF_ZCOMP (0x13) -#define MMA8451Q_PL_THS_REG (0x14) -#define MMA8451Q_FF_MT_CFG (0x15) -#define MMA8451Q_FF_MT_SRC (0x16) -#define MMA8451Q_FF_MT_THS (0x17) -#define MMA8451Q_FF_MT_COUNT (0x18) -#define MMA8451Q_TRANSIENT_CFG (0x1D) -#define MMA8451Q_TRANSIENT_SRC (0x1E) -#define MMA8451Q_TRANSIENT_THS (0x1F) -#define MMA8451Q_TRANSIENT_COUNT (0x20) -#define MMA8451Q_PULSE_CFG (0x21) -#define MMA8451Q_PULSE_SRC (0x22) -#define MMA8451Q_PULSE_THSX (0x23) -#define MMA8451Q_PULSE_THSY (0x24) -#define MMA8451Q_PULSE_THSZ (0x25) -#define MMA8451Q_PULSE_TMLT (0x26) -#define MMA8451Q_PULSE_LTCY (0x27) -#define MMA8451Q_PULSE_WIND (0x28) -#define MMA8451Q_ASLP_COUNT (0x29) -#define MMA8451Q_CTRL_REG1 (0x2A) -#define MMA8451Q_CTRL_REG2 (0x2B) -#define MMA8451Q_CTRL_REG3 (0x2C) -#define MMA8451Q_CTRL_REG4 (0x2D) -#define MMA8451Q_CTRL_REG5 (0x2E) -#define MMA8451Q_OFF_X (0x2F) -#define MMA8451Q_OFF_Y (0x30) -#define MMA8451Q_OFF_Z (0x31) - -enum _mma8451q_mode -{ - mma8451qMode_2G = 0U, - mma8451qMode_4G = 1U, - mma8451qMode_8G = 2U -}; - -/* Function prototypes */ -#if defined(__cplusplus) -extern "C" { -#endif - -bool MMA8451Q_Init(void); -bool MMA8451Q_ReadData(int16_t *x, int16_t *y, int16_t *z); -bool MMA8451Q_ChangeMode(uint8_t mode); - -#ifdef __cplusplus -} -#endif - -#endif /* __MMA8451Q_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.c b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.c deleted file mode 100644 index f5dcddb..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include "board.h" -#include "i2c_xfer.h" -#include "mpl3115.h" - -#define MPL3115_MPERCOUNT 0.0000152587890625F // 1/65536 fixed range for MPL3115 -#define MPL3115_CPERCPOUNT 0.00390625F // 1/256 fixed range for MPL3115 - -/*FUNCTION**************************************************************** -* -* Function Name : mpl3115_init -* Returned Value : result -* Comments : Initialize MPL3115 pressure and temperature sensor. -* -*END*********************************************************************/ -bool mpl3115_init(pressure_sensor_t* pThisPressure) -{ - uint8_t txBuffer; - uint8_t cmdBuffer[2]; - - pThisPressure->fmPerCount = MPL3115_MPERCOUNT; - pThisPressure->fCPerCount = MPL3115_CPERCPOUNT; - - /* Place the MPL3115 in Standby */ - cmdBuffer[0] = MPL3115_ADDRESS << 1; - cmdBuffer[1] = MPL3115_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - /* Enable Data Flags in PT_DATA_CFG */ - cmdBuffer[0] = MPL3115_ADDRESS << 1; - cmdBuffer[1] = MPL3115_PT_DATA_CFG; - txBuffer = 0x07; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - // write 1011 1001 = 0xB9 to configure MPL3115 and enter Active mode - // [7]: ALT=1 for altitude measurements - // [6]: RAW=0 to disable raw measurements - // [5-3]: OS=111 for OS ratio=128 for maximum internal averaging with 512ms output interval - // [2]: RST=0 do not enter reset - // [1]: OST=0 do not initiate a reading - // [0]: SBYB=1 to enter active mode - cmdBuffer[0] = MPL3115_ADDRESS << 1; - cmdBuffer[1] = MPL3115_CTRL_REG1; - txBuffer = 0xB9; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - - return true; -} - -/*FUNCTION**************************************************************** -* -* Function Name : mpl3115_read_data -* Returned Value : result -* Comments : Get current height and temperature from mpl3115. -* -*END*********************************************************************/ -bool mpl3115_read_data(pressure_sensor_t* pThisPressure) -{ - uint8_t rxBuffer[5]; - uint8_t cmdBuffer[3]; - - cmdBuffer[0] = MPL3115_ADDRESS << 1; - cmdBuffer[1] = MPL3115_OUT_P_MSB; - cmdBuffer[2] = (MPL3115_ADDRESS << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 5)) - return false; - - // place the read buffer into the 32 bit altitude and 16 bit temperature - pThisPressure->iHpFast = (rxBuffer[0] << 24) | (rxBuffer[1] << 16) | (rxBuffer[2] << 8); - pThisPressure->iTpFast = (rxBuffer[3] << 8) | rxBuffer[4]; - - return true; -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.h b/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.h deleted file mode 100644 index 7606e7b..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/common/mpl3115.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __MPL3115_H__ -#define __MPL3115_H__ - -#include -#include - -/* I2C Slave Address define */ -#define MPL3115_ADDRESS (0x60) - -/* MPL3115 device ID number */ -#define MPL3115_DEVICE_ID (0xC4) - -/* MPL3115 Registers address definition */ -#define MPL3115_STATUS (0x00) -#define MPL3115_OUT_P_MSB (0x01) -#define MPL3115_OUT_P_CSB (0x02) -#define MPL3115_OUT_P_LSB (0x03) -#define MPL3115_OUT_T_MSB (0x04) -#define MPL3115_OUT_T_LSB (0x05) -#define MPL3115_DR_STATUS (0x06) -#define MPL3115_OUT_P_DELTA_MSB (0x07) -#define MPL3115_OUT_P_DELTA_CSB (0x08) -#define MPL3115_OUT_P_DELTA_LSB (0x09) -#define MPL3115_OUT_T_DELTA_MSB (0x0A) -#define MPL3115_OUT_T_DELTA_LSB (0x0B) -#define MPL3115_WHO_AM_I (0x0C) -#define MPL3115_F_STATUS (0x0D) -#define MPL3115_F_DATA (0x0E) -#define MPL3115_F_SETUP (0x0F) -#define MPL3115_TIME_DLY (0x10) -#define MPL3115_SYSMOD (0x11) -#define MPL3115_INT_SOURCE (0x12) -#define MPL3115_PT_DATA_CFG (0x13) -#define MPL3115_BAR_IN_MSB (0x14) -#define MPL3115_BAR_IN_LSB (0x15) -#define MPL3115_P_TGT_MSB (0x16) -#define MPL3115_P_TGT_LSB (0x17) -#define MPL3115_T_TGT (0x18) -#define MPL3115_P_WND_MSB (0x19) -#define MPL3115_P_WND_LSB (0x1A) -#define MPL3115_T_WND (0x1B) -#define MPL3115_P_MIN_MSB (0x1C) -#define MPL3115_P_MIN_CSB (0x1D) -#define MPL3115_P_MIN_LSB (0x1E) -#define MPL3115_T_MIN_MSB (0x1F) -#define MPL3115_T_MIN_LSB (0x20) -#define MPL3115_P_MAX_MSB (0x21) -#define MPL3115_P_MAX_CSB (0x22) -#define MPL3115_P_MAX_LSB (0x23) -#define MPL3115_T_MAX_MSB (0x24) -#define MPL3115_T_MAX_LSB (0x25) -#define MPL3115_CTRL_REG1 (0x26) -#define MPL3115_CTRL_REG2 (0x27) -#define MPL3115_CTRL_REG3 (0x28) -#define MPL3115_CTRL_REG4 (0x29) -#define MPL3115_CTRL_REG5 (0x2A) -#define MPL3115_OFF_P (0x2B) -#define MPL3115_OFF_T (0x2C) -#define MPL3115_OFF_H (0x2D) - -typedef struct _pressure_sensor -{ - int32_t iHp; // slow (typically 25Hz) height (counts) - int32_t iHpFast; // fast (typically 200Hz) height (counts) - int16_t iTp; // slow (typically 25Hz) temperature (count) - int16_t iTpFast; // fast (typically 200Hz) temperature (counts) - float fHp; // slow (typically 25Hz) height (m) - float fTp; // slow (typically 25Hz) temperature (C) - float fmPerCount; // initialized to FMPERCOUNT - float fCPerCount; // initialized to FCPERCPOUNT -} pressure_sensor_t; - -/* Function prototypes */ -#if defined(__cplusplus) -extern "C" { -#endif - -bool mpl3115_init(pressure_sensor_t*); -bool mpl3115_read_data(pressure_sensor_t*); - -#ifdef __cplusplus -} -#endif - -#endif /* __MPL3115_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.cproject b/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.cproject deleted file mode 100644 index 24a8553..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.project b/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.project deleted file mode 100644 index ed1a3f6..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - sensor_demo_imx7_colibri_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/sensor_demo_imx7d/main.csource2virtual:/virtualsource/i2c_xfer.c1PARENT-1-PROJECT_LOC/common/i2c_xfer.csource2virtual:/virtualsource/i2c_xfer.h1PARENT-1-PROJECT_LOC/common/i2c_xfer.hsource2virtual:/virtualsource/mpl3115.c1PARENT-1-PROJECT_LOC/common/mpl3115.csource2virtual:/virtualsource/mpl3115.h1PARENT-1-PROJECT_LOC/common/mpl3115.hsource2virtual:/virtualsource/fxos8700.c1PARENT-1-PROJECT_LOC/common/fxos8700.csource2virtual:/virtualsource/fxos8700.h1PARENT-1-PROJECT_LOC/common/fxos8700.hsource2virtual:/virtualsource/fxas21002.c1PARENT-1-PROJECT_LOC/common/fxas21002.csource2virtual:/virtualsource/fxas21002.h1PARENT-1-PROJECT_LOC/common/fxas21002.hdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c - - - diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/makedir.bat b/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd b/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd deleted file mode 100644 index 9d23f74..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - sensor_demo_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/hardware_init.c b/examples/imx7_colibri_m4/demo_apps/sensor_demo/hardware_init.c deleted file mode 100644 index 3ffd205..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/hardware_init.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* In this example, we need to grasp board I2C exclusively */ - RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Select I2C clock derived from OSC clock(24M) */ - CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); - /* Enable I2C clock */ - CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); - CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); - - /* I2C Pin setting */ - configure_i2c_pins(BOARD_I2C_BASEADDR); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd b/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp b/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp deleted file mode 100644 index 8ef8f27..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../sensor_demo_imx7d/main.c$PROJ_DIR$/../common/i2c_xfer.c$PROJ_DIR$/../common/i2c_xfer.h$PROJ_DIR$/../common/mpl3115.c$PROJ_DIR$/../common/mpl3115.h$PROJ_DIR$/../common/fxos8700.c$PROJ_DIR$/../common/fxos8700.h$PROJ_DIR$/../common/fxas21002.c$PROJ_DIR$/../common/fxas21002.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/i2c_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/i2c_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.eww b/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.eww deleted file mode 100644 index f300b1c..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/iar/sensor_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allsensor_demoReleasesensor_demoDebugReleasesensor_demoReleaseDebugsensor_demoDebug -$WS_DIR$/sensor_demo.ewp diff --git a/examples/imx7_colibri_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c b/examples/imx7_colibri_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c deleted file mode 100644 index 6f87be1..0000000 --- a/examples/imx7_colibri_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/////////////////////////////////////////////////////////////////////////////// -// Includes -/////////////////////////////////////////////////////////////////////////////// -#include -#include -#include "FreeRTOS.h" -#include "task.h" -#include "board.h" -#include "debug_console_imx.h" -#include "i2c_xfer.h" -#include "fxas21002.h" -#include "fxos8700.h" -#include "mpl3115.h" - -//////////////////////////////////////////////////////////////////////////////// -// Definition -//////////////////////////////////////////////////////////////////////////////// -#define HEIGHT_UPDATE_THRESHOLD (0.5f) -#define TEMP_UPDATE_THRESHOLD (0.3f) -#define GYRO_UPDATE_THRESHOLD (5.0f) - -//////////////////////////////////////////////////////////////////////////////// -// Code -//////////////////////////////////////////////////////////////////////////////// -void fxas21002Demo(void) -{ - gyro_sensor_t thisGyroSensor; - uint32_t count = 0, printCount = 0; - - PRINTF("\n\r-------------- FXAS21002 Gyro data acquisition --------------\n\r\n\r"); - - PRINTF("FXAS21002 initialization ... "); - if (fxas21002_init(&thisGyroSensor)) - PRINTF("OK\n\r"); - else - PRINTF("ERROR\n\r"); - - /* delay 10ms to wait sensor init finish */ - vTaskDelay(10); - - while(1) - { - fxas21002_read_data(&thisGyroSensor); - thisGyroSensor.iSumYpFast[0] += thisGyroSensor.iYpFast[0]; - thisGyroSensor.iSumYpFast[1] += thisGyroSensor.iYpFast[1]; - thisGyroSensor.iSumYpFast[2] += thisGyroSensor.iYpFast[2]; - - count++; - if (count == OVERSAMPLE_RATIO) - { - count = 0; - thisGyroSensor.iYp[0] = thisGyroSensor.iSumYpFast[0] / OVERSAMPLE_RATIO; - thisGyroSensor.iYp[1] = thisGyroSensor.iSumYpFast[1] / OVERSAMPLE_RATIO; - thisGyroSensor.iYp[2] = thisGyroSensor.iSumYpFast[2] / OVERSAMPLE_RATIO; - thisGyroSensor.fYp[0] = thisGyroSensor.iYp[0] * thisGyroSensor.fDegPerSecPerCount; - thisGyroSensor.fYp[1] = thisGyroSensor.iYp[1] * thisGyroSensor.fDegPerSecPerCount; - thisGyroSensor.fYp[2] = thisGyroSensor.iYp[2] * thisGyroSensor.fDegPerSecPerCount; - thisGyroSensor.iSumYpFast[0] = 0; - thisGyroSensor.iSumYpFast[1] = 0; - thisGyroSensor.iSumYpFast[2] = 0; - } - - if ((thisGyroSensor.fYp[0] > GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[0] < -GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[1] > GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[1] < -GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[2] > GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[2] < -GYRO_UPDATE_THRESHOLD)) - { - printCount++; - if (40 == printCount) - { - printCount = 0; - PRINTF("[FXAS21002] Rotate detected: X:%5.1fdps, Y:%5.1fdps, Z:%5.1fdps\n\r",\ - thisGyroSensor.fYp[0], thisGyroSensor.fYp[1], thisGyroSensor.fYp[2]); - } - } - } -} - -void fxos8700Demo(void) -{ - int16_t Ax, Ay, Az, Mx, My, Mz; - float Axf, Ayf, Azf, Mxf, Myf, Mzf; - - PRINTF("\n\r-------------- FXOS8700 Acc+Mag data acquisition --------------\n\r\n\r"); - - PRINTF("FXOS8700 initialization ... "); - if (fxos8700_init()) - PRINTF("OK\n\r"); - else - PRINTF("ERROR\n\r"); - - while(1) - { - vTaskDelay(500); - fxos8700_read_data(&Ax, &Ay, &Az, &Mx, &My, &Mz); - Axf = Ax / 8192.0; - Ayf = Ay / 8192.0; - Azf = Az / 8192.0; - Mxf = Mx * 0.1; - Myf = My * 0.1; - Mzf = Mz * 0.1; - PRINTF("[FXOS8700]Current Acc:X=%7.1fg Y=%7.1fg Z=%7.1fg\n\r",Axf, Ayf, Azf); - PRINTF("[FXOS8700]Current Mag:X=%6.1fuT Y=%6.1fuT Z=%6.1fuT\n\r",Mxf, Myf, Mzf); - } -} - -void mpl3115Demo(void) -{ - pressure_sensor_t thisPressureSensor; - float lastHight = 0, lastTemp = 0; - - PRINTF("\n\r-------------- MPL3115 Pressure data acquisition --------------\n\r\n\r"); - - PRINTF("MPL3115 initialization ... "); - if (mpl3115_init(&thisPressureSensor)) - PRINTF("OK\n\r"); - else - PRINTF("ERROR\n\r"); - - while(1) - { - vTaskDelay(100); - mpl3115_read_data(&thisPressureSensor); - thisPressureSensor.iHp = thisPressureSensor.iHpFast;; - thisPressureSensor.iTp = thisPressureSensor.iTpFast; - thisPressureSensor.fHp = (float) thisPressureSensor.iHp *\ - thisPressureSensor.fmPerCount; - thisPressureSensor.fTp = (float) thisPressureSensor.iTp *\ - thisPressureSensor.fCPerCount; - if (((thisPressureSensor.fHp - lastHight) > HEIGHT_UPDATE_THRESHOLD) || - ((thisPressureSensor.fHp - lastHight) < -HEIGHT_UPDATE_THRESHOLD) || - ((thisPressureSensor.fTp - lastTemp) > TEMP_UPDATE_THRESHOLD) || - ((thisPressureSensor.fTp - lastTemp) < -TEMP_UPDATE_THRESHOLD)) - { - lastHight = thisPressureSensor.fHp; - lastTemp = thisPressureSensor.fTp; - PRINTF("[MPL3115]Current Height = %6.1fMeter, Current Temp = %5.1fCelsius\n\r", - thisPressureSensor.fHp, - thisPressureSensor.fTp); - } - } -} - -void MainTask(void *pvParameters) -{ - uint8_t demoSel; - - PRINTF("\n\r-------------- iMX7D SDB on board sensor example --------------\n\r\n\r"); - - /* Setup I2C init structure. */ - i2c_init_config_t i2cInitConfig = { - .clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR), - .baudRate = 400000u, - .slaveAddress = 0x00 - }; - - /* Initialize I2C module with I2C init structure. */ - I2C_XFER_Config(&i2cInitConfig); - - /* Print the initial banner. */ - PRINTF("\n\rPlease select the sensor demo you want to run:\n\r"); - PRINTF("[1].FXAS21002 3-axes Gyro sensor\n\r"); - PRINTF("[2].FXOS8700 6-axes Acc+Mag sensor\n\r"); - PRINTF("[3].MPL3115 Pressure sensor\n\r"); - - while(1) - { - demoSel = GETCHAR(); - if (('1' == demoSel) || ('2' == demoSel) || ('3' == demoSel)) - break; - } - - switch(demoSel) - { - case '1': - fxas21002Demo(); - break; - case '2': - fxos8700Demo(); - break; - case '3': - mpl3115Demo(); - break; - } -} - -int main(void) -{ - /* Initialize board specified hardware. */ - hardware_init(); - - /* Create a the APP main task. */ - xTaskCreate(MainTask, "Main Task", configMINIMAL_STACK_SIZE + 100, - NULL, tskIDLE_PRIORITY+1, NULL); - - /* Start FreeRTOS scheduler. */ - vTaskStartScheduler(); - - /* should never reach this point. */ - while (true); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt index c6d27e8..ea6ba4d 100644 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt @@ -28,32 +28,32 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") # CXX MACRO @@ -88,11 +88,13 @@ ADD_EXECUTABLE(adc_imx7d_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.cproject index d5a911c..1dafc0f 100644 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.cproject +++ b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.project b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.project index d015447..e75658a 100644 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.project +++ b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/adc_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/adc_imx7d.cdriver2virtual:/virtualdriver/adc_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/adc_imx7d.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/adc_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/adc_imx7d.cdriver2virtual:/virtualdriver/adc_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/adc_imx7d.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd deleted file mode 100644 index 2fd59c4..0000000 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - adc_imx7d_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/makedir.bat b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp deleted file mode 100644 index 3e84c94..0000000 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/adc_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/inc/adc_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww b/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww deleted file mode 100644 index b9ee8e1..0000000 --- a/examples/imx7_colibri_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -alladc_imx7d_exampleReleaseadc_imx7d_exampleDebugReleaseadc_imx7d_exampleReleaseDebugadc_imx7d_exampleDebug -$WS_DIR$/adc_imx7d_example.ewp diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt index 97f64f2..75c6836 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(flexcan_loopback_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject index 1f636d3..693d0cf 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project index e38420c..812a4f2 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd deleted file mode 100644 index 71eabb0..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - flexcan_loopback_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp deleted file mode 100644 index 1c34180..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../../gpio_pins.c$PROJ_DIR$/../../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/flexcan.c$PROJ_DIR$/../../../../../../platform/drivers/inc/flexcan.h$PROJ_DIR$/../../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww deleted file mode 100644 index dec459a..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allflexcan_loopback_exampleReleaseflexcan_loopback_exampleDebugReleaseflexcan_loopback_exampleReleaseDebugflexcan_loopback_exampleDebug -$WS_DIR$/flexcan_loopback_example.ewp diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/main.c b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/main.c index b269e92..980e8ea 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/main.c +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_loopback/main.c @@ -115,7 +115,7 @@ void init_flexcan(void) void init_gpt_timer(void) { uint32_t freq; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt index 365d270..a504059 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(flexcan_network_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject index a124a86..af65217 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.project b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.project index a74337f..f21397c 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.project +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd deleted file mode 100644 index 0fdb80d..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - flexcan_network_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp deleted file mode 100644 index 4359073..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../../gpio_pins.c$PROJ_DIR$/../../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/flexcan.c$PROJ_DIR$/../../../../../../platform/drivers/inc/flexcan.h$PROJ_DIR$/../../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww deleted file mode 100644 index e2faa39..0000000 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allflexcan_network_exampleReleaseflexcan_network_exampleDebugReleaseflexcan_network_exampleReleaseDebugflexcan_network_exampleDebug -$WS_DIR$/flexcan_network_example.ewp diff --git a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/main.c b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/main.c index 232b24a..6be1572 100644 --- a/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/main.c +++ b/examples/imx7_colibri_m4/driver_examples/flexcan/flexcan_network/main.c @@ -122,7 +122,7 @@ void init_flexcan(void) void init_gpt(void) { uint32_t freq; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt index 259676e..af034fb 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(gpio_imx_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/gpio_imx/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.cproject index b31cba4..2f143e3 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.cproject +++ b/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.project b/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.project index b55655b..9578529 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.project +++ b/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd b/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd deleted file mode 100644 index af9cb3a..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - gpio_imx_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/makedir.bat b/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/hardware_init.c b/examples/imx7_colibri_m4/driver_examples/gpio_imx/hardware_init.c index eacaaba..3c5b0e1 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/hardware_init.c +++ b/examples/imx7_colibri_m4/driver_examples/gpio_imx/hardware_init.c @@ -44,7 +44,7 @@ void hardware_init(void) RDC_SetPdapAccess(RDC, BOARD_GPIO_KEY_RDC_PDAP, 0xFF, false, false); /* Enable gpio clock gate */ - CCM_ControlGate(CCM, BOARD_GPIO_CCM_CCGR, ccmClockNeededRunWait); + CCM_ControlGate(CCM, BOARD_GPIO_KEY_CCM_CCGR, ccmClockNeededRunWait); /* Configure gpio pin IOMUX */ configure_gpio_pin(BOARD_GPIO_KEY_CONFIG); } diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd b/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp b/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp deleted file mode 100644 index 9873a22..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../gpio_pins.c$PROJ_DIR$/../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpio_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpio_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww b/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww deleted file mode 100644 index e6fbb01..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allgpio_imx_exampleReleasegpio_imx_exampleDebugReleasegpio_imx_exampleReleaseDebuggpio_imx_exampleDebug -$WS_DIR$/gpio_imx_example.ewp diff --git a/examples/imx7_colibri_m4/driver_examples/gpio_imx/main.c b/examples/imx7_colibri_m4/driver_examples/gpio_imx/main.c index 925bd38..f062aef 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpio_imx/main.c +++ b/examples/imx7_colibri_m4/driver_examples/gpio_imx/main.c @@ -34,99 +34,243 @@ #include "gpio_imx.h" #include "debug_console_imx.h" +#define GPIO_INTERRUPT (1) +#define GPIO_POLLING (0) +#define GPIO_DEBOUNCE_DELAY (100000) + /* button relevent variables */ -static volatile uint8_t keyPressCount; -static uint8_t keyLastState; -static uint8_t keyState; +static uint8_t keyPressCount; +static bool on = false; +#ifdef BOARD_GPIO_KEY_CONFIG +static volatile uint8_t button_pressed_flag; +#endif + +/*! + * @brief Initialize GPIO_LED controller. + */ +static void GPIO_Ctrl_InitLedPin(void) +{ +#ifdef BOARD_GPIO_LED_CONFIG + /* GPIO module initialize, configure "LED" as output and drive the output high level */ + gpio_init_config_t ledInitConfig = { + .pin = BOARD_GPIO_LED_CONFIG->pin, + .direction = gpioDigitalOutput, + .interruptMode = gpioNoIntmode + }; + GPIO_Init(BOARD_GPIO_LED_CONFIG->base, &ledInitConfig); +#endif +} + +/*! + * @brief Initialize GPIO INT\POLLING controller. + */ +static void GPIO_Ctrl_InitKeyPin(uint32_t gpioMode) +{ +#ifdef BOARD_GPIO_KEY_CONFIG + if (GPIO_INTERRUPT == gpioMode) + { + /* GPIO module initialize, configure button as interrupt mode. */ + gpio_init_config_t keyInitConfig = { + .pin = BOARD_GPIO_KEY_CONFIG->pin, + .direction = gpioDigitalInput, + .interruptMode = gpioIntFallingEdge, + }; + GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + /* Enable interrupt. */ + NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + } + else + { + /* GPIO module initialize, configure button as GPIO functionality. */ + gpio_init_config_t keyInitConfig = { + .pin = BOARD_GPIO_KEY_CONFIG->pin, + .direction = gpioDigitalInput, + .interruptMode = gpioNoIntmode, + }; + GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + } +#endif +} + +/*! + * @brief Wait user to press key in INT\NOINT mode. + */ +static void GPIO_WaitKeyPressed(uint32_t gpioMode) +{ +#ifdef BOARD_GPIO_KEY_CONFIG + uint32_t i, j, debounce; + + if (GPIO_INTERRUPT == gpioMode) + { + do + { + debounce = 0; + + /* Clear the interrupt state, this operation is necessary, because the GPIO module maybe confuse + the first rising edge as interrupt*/ + GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + /* Enable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); + + /* Waitting for Key pressed. */ + while(button_pressed_flag == 0); + button_pressed_flag = 0; + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } while (1); + } + else + { + /* Wait for Key Released. */ + do + { + debounce = 0; + while (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)); + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (1 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } + while (1); + + /* Wait for Key Pressed. */ + do + { + debounce = 0; + while (1 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)); + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } + while (1); + } +#else + GETCHAR(); +#endif +} + +/*! + * @brief Toggle the led + */ +static void GPIO_LED_Toggle(void) +{ +#ifdef BOARD_GPIO_LED_CONFIG + GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base,BOARD_GPIO_LED_CONFIG->pin, on ? gpioPinSet : gpioPinClear); + keyPressCount++; + PRINTF("Button pressed %d times\n\r", keyPressCount); +#else + PRINTF("%c ", on ? '+' : '-'); +#endif + on = !on; +} /****************************************************************************** * * Function Name: main * Comments: GPIO module initialize, interrupt and IO operation. * This example include 2 step: -* 1)Configure BUTTON1 as interrupt mode, falling edge, and test +* 1)Configure BUTTON1 as interrupt mode, falling edge, and test * by pressing the button 3 times to trigger interrupt. * 2)Configure BUTTON1 as GPIO functionality * and check the button's state(pressed or released) through switch LED * to on or off if this board has LED. * ******************************************************************************/ -int main( void ) +int main(void) { /* hardware initialiize, include RDC, IOMUX, Uart debug initialize */ - hardware_init(); - + hardware_init(); PRINTF("\n\r====================== GPIO Example ========================\n\r"); -#ifdef BOARD_GPIO_LED_CONFIG - /* GPIO module initialize, configure "LED" as output and drive the output high level */ - gpio_init_t ledInitConfig = { - .pin = BOARD_GPIO_LED_CONFIG->pin, - .direction = gpioDigitalOutput, - .interruptMode = gpioNoIntmode - }; - GPIO_Init(BOARD_GPIO_LED_CONFIG->base, &ledInitConfig); - - /* drive the LED output high level. */ - GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base, BOARD_GPIO_LED_CONFIG->pin, gpioPinSet); -#endif + /* GPIO module initialize, configure "LED" as output and button as interrupt mode. */ + GPIO_Ctrl_InitLedPin(); + GPIO_Ctrl_InitKeyPin(GPIO_INTERRUPT); + /* wait for user to press button */ #ifdef BOARD_GPIO_KEY_CONFIG - /* GPIO module initialize, configure button as interrupt mode. */ - gpio_init_t keyInitConfig = { - .pin = BOARD_GPIO_KEY_CONFIG->pin, - .direction = gpioDigitalInput, - .interruptMode = gpioIntFallingEdge - }; - GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); - - NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); - /* Clear the interrupt state, this operation is necessary, because the GPIO module maybe confuse - the first rising edge as interrupt*/ - GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - /* Enable GPIO pin interrupt */ - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); - /* press button trigger interrupt */ PRINTF("\n\r=================== GPIO Interrupt =====================\n\r"); - PRINTF("The (%s) button is configured to trigger GPIO interrupt.\n\r", BOARD_GPIO_KEY_CONFIG->name); + PRINTF("The (%s) button is configured to trigger GPIO interrupt\n\r", BOARD_GPIO_KEY_CONFIG->name); PRINTF("Press the (%s) button 3 times to continue.\n\n\r", BOARD_GPIO_KEY_CONFIG->name); +#else + PRINTF("\n\r============ Use key to simulate GPIO button ==============\n\r"); + PRINTF("Input any data from terminal 3 times to continues.\n\n\r"); +#endif + keyPressCount = 0; + while(keyPressCount < 3) + { + GPIO_WaitKeyPressed(GPIO_INTERRUPT); + keyPressCount++; + PRINTF("Button pressed %d time. \n\r", keyPressCount); + } - keyPressCount = 1; - while(keyPressCount < 4); - - /* Now disable the interrupt */ - NVIC_DisableIRQ(BOARD_GPIO_KEY_IRQ_NUM); - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, false); - - /* GPIO module initialize, configure button as GPIO functionality. */ - keyInitConfig.pin = BOARD_GPIO_KEY_CONFIG->pin; - keyInitConfig.direction = gpioDigitalInput; - keyInitConfig.interruptMode = gpioNoIntmode; - GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + GPIO_Ctrl_InitKeyPin(GPIO_POLLING); + keyPressCount = 0; /* Configure button as GPIO functionality and check the button's state(pressed or released) to switch LED on or off */ - /* Check the buttion's status(pressed or released) */ PRINTF("\n\r================= GPIO Functionality==================\n\r"); - PRINTF("The (%s) button state is now polled.\n\r", BOARD_GPIO_KEY_CONFIG->name); - PRINTF("Press the (%s) button to switch LED on or off\n\n\r", BOARD_GPIO_KEY_CONFIG->name); - - keyLastState = 1; //initial button released, logic 1 - - for(;;) + PRINTF("The button state is now polled.\n\r"); + PRINTF("Press the button to switch LED on or off\n\n\r"); + while(true) { - keyState = GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - if(keyState != keyLastState) - { - PRINTF("Button %s\n\r", keyState ? "pressed" : "released"); - keyLastState = keyState; -#ifdef BOARD_GPIO_LED_CONFIG - GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base, BOARD_GPIO_LED_CONFIG->pin, keyState ? gpioPinSet : gpioPinClear); -#endif - } + GPIO_WaitKeyPressed(GPIO_POLLING); + GPIO_LED_Toggle(); } -#endif } /****************************************************************************** @@ -134,13 +278,17 @@ int main( void ) * Comments: The interrupt service routine triggered by gpio * Note: Need to consider how to eliminate the button shake problem ******************************************************************************/ +#ifdef BOARD_GPIO_KEY_CONFIG void BOARD_GPIO_KEY_HANDLER(void) { - PRINTF("Button pressed %d time. \n\r", keyPressCount); - keyPressCount++; + button_pressed_flag = 1; /* clear the interrupt status */ GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + + /* Disable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, false); } +#endif /******************************************************************************* * EOF diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/CMakeLists.txt index 271de2f..eaa052e 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(gpt_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/gpt/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.cproject index 88a81ae..1a35343 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.cproject +++ b/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.project b/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.project index 0870a64..bb7c6fa 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.project +++ b/examples/imx7_colibri_m4/driver_examples/gpt/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/gpt_example.wsd b/examples/imx7_colibri_m4/driver_examples/gpt/ds5/gpt_example.wsd deleted file mode 100644 index ffe8a1d..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/gpt_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - gpt_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/makedir.bat b/examples/imx7_colibri_m4/driver_examples/gpt/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpt/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewd b/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewp b/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewp deleted file mode 100644 index 3a2b848..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.eww b/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.eww deleted file mode 100644 index 4e7ff2a..0000000 --- a/examples/imx7_colibri_m4/driver_examples/gpt/iar/gpt_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allgpt_exampleReleasegpt_exampleDebugReleasegpt_exampleReleaseDebuggpt_exampleDebug -$WS_DIR$/gpt_example.ewp diff --git a/examples/imx7_colibri_m4/driver_examples/gpt/main.c b/examples/imx7_colibri_m4/driver_examples/gpt/main.c index 8292b03..edf299c 100644 --- a/examples/imx7_colibri_m4/driver_examples/gpt/main.c +++ b/examples/imx7_colibri_m4/driver_examples/gpt/main.c @@ -40,7 +40,7 @@ static uint32_t counterA, counterB; int main(void) { uint32_t freqA, freqB; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt new file mode 100644 index 0000000..77065a3 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt @@ -0,0 +1,136 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(i2c_imx_interrupt_sensor_imx7d_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/i2c_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/i2c_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(i2c_imx_interrupt_sensor_imx7d_example PROPERTIES OUTPUT_NAME "i2c_imx_interrupt_sensor_imx7d_example.elf") + +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example m) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example c) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example gcc) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example nosys) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/i2c_imx_interrupt_sensor_imx7d_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/i2c_imx_interrupt_sensor_imx7d_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.hex) +ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.bin) diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject new file mode 100644 index 0000000..4920a1e --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project new file mode 100644 index 0000000..2837cdb --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project @@ -0,0 +1,86 @@ + + + i2c_imx_interrupt_sensor_imx7d_example_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c new file mode 100644 index 0000000..3ffd205 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this example, we need to grasp board I2C exclusively */ + RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select I2C clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); + /* Enable I2C clock */ + CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); + + /* I2C Pin setting */ + configure_i2c_pins(BOARD_I2C_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c new file mode 100644 index 0000000..bcb365e --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c @@ -0,0 +1,431 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "board.h" +#include "debug_console_imx.h" +#include "i2c_imx.h" + +typedef struct _i2c_state { + const uint8_t* cmdBuff; /*!< The buffer of I2C command. */ + const uint8_t* txBuff; /*!< The buffer of data being sent.*/ + uint8_t* rxBuff; /*!< The buffer of received data. */ + volatile uint32_t cmdSize; /*!< The remaining number of commands to be transmitted. */ + volatile uint32_t txSize; /*!< The remaining number of bytes to be transmitted. */ + volatile uint32_t rxSize; /*!< The remaining number of bytes to be received. */ + volatile bool isBusy; /*!< True if there is an active transmission. */ + volatile uint32_t operateDir; /*!< Overall I2C bus operating direction. */ + volatile uint32_t currentDir; /*!< Current Data transfer direction. */ + volatile uint32_t currentMode; /*!< Current I2C Bus role of this module. */ +} i2c_state_t; + +/* I2C runtime state structure */ +static i2c_state_t i2cState; + +static uint8_t txBuffer[5]; +static uint8_t rxBuffer[7]; +static uint8_t cmdBuffer[5]; + +static void report_abs(void); +static void I2C_XFER_Config(i2c_init_config_t* initConfig); +static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, const uint8_t* txBuffer, uint32_t txSize); +static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, uint8_t* rxBuffer, uint32_t rxSize); +static bool I2C_XFER_IsBusy(void); + +int main(void) +{ + uint8_t i; + + /* Setup I2C init structure. */ + i2c_init_config_t i2cInitConfig = { + .baudRate = 400000u, + .slaveAddress = 0x00 + }; + + /* Initialize board specified hardware. */ + hardware_init(); + + /* Get current module clock frequency. */ + i2cInitConfig.clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR); + + PRINTF("\n\r++++++++++++++++ I2C Send/Receive interrupt Example ++++++++++++++++\n\r"); + PRINTF("This example will configure on board accelerometer through I2C Bus\n\r"); + PRINTF("and read 10 samples back to see if the accelerometer is configured successfully. \n\r\n\r"); + + PRINTF("[1].Initialize the I2C module with initialize structure. \n\r"); + I2C_XFER_Config(&i2cInitConfig); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); + + PRINTF("[2].Set on-board Acc sensor range to 2G\n\r"); + // Place FXOS8700 into standby + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + // Disable FXOS8700's magnetometer only + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5B; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5C; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + // Set accelerometer range to 2G + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0E; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + // Set accelerometer for high resolution (maximum over sampling) + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2B; + txBuffer[0] = 0x02; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + PRINTF("[3].Set on-board Acc sensor working at fast read and active mode\n\r"); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x09; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + PRINTF("[4].Acc sensor WHO_AM_I check... "); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0D; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_XFER_Read(cmdBuffer, 3, rxBuffer, 1); + while (I2C_XFER_IsBusy()); + if (0xC7 == rxBuffer[0]) + PRINTF("OK\n\r"); + else + PRINTF("ERROR\n\r"); + + PRINTF("[5].Acquire 10 samples from Acc sensor\n\r"); + for (i = 0; i < 10; i++) + report_abs(); + + PRINTF("\n\rExample finished!!!\n\r"); + while (true) + __WFI(); +} + +static void report_abs(void) +{ + int16_t x, y, z; + float Ax, Ay, Az; + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x01; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_XFER_Read(cmdBuffer, 3, rxBuffer, 6); + while (I2C_XFER_IsBusy()); + + x = ((rxBuffer[0] << 8) & 0xff00) | rxBuffer[1]; + y = ((rxBuffer[2] << 8) & 0xff00) | rxBuffer[3]; + z = ((rxBuffer[4] << 8) & 0xff00) | rxBuffer[5]; + x = (int16_t)(x) >> 2; + y = (int16_t)(y) >> 2; + z = (int16_t)(z) >> 2; + + Ax = x / (4.0 * 1024); //For full scale range 2g mode. + Ay = y / (4.0 * 1024); + Az = z / (4.0 * 1024); + PRINTF("2G MODE: X=%6.3fg Y=%6.3fg Z=%6.3fg\n\r",Ax, Ay, Az); +} + +static void I2C_XFER_Config(i2c_init_config_t* initConfig) +{ + /* Initialize I2C state structure content. */ + i2cState.cmdBuff = 0; + i2cState.txBuff = 0; + i2cState.rxBuff = 0; + i2cState.cmdSize = 0; + i2cState.txSize = 0; + i2cState.rxSize = 0; + i2cState.isBusy = false; + i2cState.operateDir = i2cDirectionReceive; + i2cState.currentDir = i2cDirectionReceive; + i2cState.currentMode = i2cModeSlave; + + /* Initialize I2C baud rate, mode, transfer direction and slave address. */ + I2C_Init(BOARD_I2C_BASEADDR, initConfig); + + /* Set I2C Interrupt priority */ + NVIC_SetPriority(BOARD_I2C_IRQ_NUM, 3); + + /* Call core API to enable the IRQ. */ + NVIC_EnableIRQ(BOARD_I2C_IRQ_NUM); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); +} + +static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, + const uint8_t* txBuffer, uint32_t txSize) +{ + if ((i2cState.isBusy) || (0 == txSize)) + return false; + + /* Initialize i2c transfer struct */ + i2cState.cmdBuff = cmdBuff; + i2cState.cmdSize = cmdSize; + i2cState.txBuff = txBuffer; + i2cState.txSize = txSize; + i2cState.isBusy = true; + i2cState.operateDir = i2cDirectionTransmit; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + { + /* Reset i2c transfer state. */ + i2cState.operateDir = i2cDirectionReceive; + i2cState.isBusy = false; + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); + i2cState.currentMode = i2cModeMaster; + + if (0 != cmdSize) + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); + i2cState.txBuff++; + i2cState.txSize--; + } + + /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + + return true; +} + +static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, + uint8_t* rxBuffer, uint32_t rxSize) +{ + if ((i2cState.isBusy) || (0 == rxSize)) + return false; + + /* Initialize i2c transfer struct */ + i2cState.cmdBuff = cmdBuff; + i2cState.cmdSize = cmdSize; + i2cState.rxBuff = rxBuffer; + i2cState.rxSize = rxSize; + i2cState.isBusy = true; + i2cState.operateDir = i2cDirectionReceive; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + { + /* Reset i2c transfer state. */ + i2cState.operateDir = i2cDirectionReceive; + i2cState.isBusy = false; + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); + i2cState.currentMode = i2cModeMaster; + + /* Is there command to be sent before receive data? */ + if (0 != i2cState.cmdSize) + { + if (1 == i2cState.cmdSize) + I2C_SendRepeatStart(BOARD_I2C_BASEADDR); + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Ack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + /* dummy read to clock in 1st byte */ + I2C_ReadByte(BOARD_I2C_BASEADDR); + } + + /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + + return true; +} + +static bool I2C_XFER_IsBusy(void) +{ + return i2cState.isBusy; +} + +void BOARD_I2C_HANDLER(void) +{ + /* Clear interrupt flag. */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + /* Exit the ISR if no transfer is happening for this instance. */ + if (!i2cState.isBusy) + return; + + if (i2cModeMaster == i2cState.currentMode) + { + if (i2cDirectionTransmit == i2cState.currentDir) + { + if ((I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck)) || + ((0 == i2cState.txSize) && (0 == i2cState.cmdSize))) + { + if ((i2cDirectionTransmit == i2cState.operateDir) || + (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck))) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); + i2cState.currentMode = i2cModeSlave; + + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + /* Close I2C interrupt. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + /* Release I2C Bus. */ + i2cState.isBusy = false; + } + else + { + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + if (1 == i2cState.rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Ack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + /* dummy read to clock in 1st byte */ + *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); + } + } + else + { + if (0 != i2cState.cmdSize) + { + if ((1 == i2cState.cmdSize) && (i2cDirectionReceive == i2cState.operateDir)) + I2C_SendRepeatStart(BOARD_I2C_BASEADDR); + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); + i2cState.txBuff++; + i2cState.txSize--; + } + } + } + else + { + /* Normal read operation. */ + if (2 == i2cState.rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + + if (1 == i2cState.rxSize) + { + /* Switch back to Tx direction to avoid additional I2C bus read. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + } + *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); + i2cState.rxBuff++; + i2cState.rxSize--; + + /* receive finished. */ + if (0 == i2cState.rxSize) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); + i2cState.currentMode = i2cModeSlave; + + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + /* Close I2C interrupt. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + /* Release I2C Bus. */ + i2cState.isBusy = false; + } + } + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt new file mode 100644 index 0000000..da26472 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt @@ -0,0 +1,136 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(i2c_imx_polling_sensor_imx7d_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/i2c_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/i2c_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(i2c_imx_polling_sensor_imx7d_example PROPERTIES OUTPUT_NAME "i2c_imx_polling_sensor_imx7d_example.elf") + +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example m) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example c) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example gcc) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example nosys) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/i2c_imx_polling_sensor_imx7d_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/i2c_imx_polling_sensor_imx7d_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET i2c_imx_polling_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.hex) +ADD_CUSTOM_COMMAND(TARGET i2c_imx_polling_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.bin) diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject new file mode 100644 index 0000000..4fef3c2 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project new file mode 100644 index 0000000..321f500 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project @@ -0,0 +1,86 @@ + + + i2c_imx_polling_sensor_imx7d_example_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c new file mode 100644 index 0000000..3ffd205 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this example, we need to grasp board I2C exclusively */ + RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select I2C clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); + /* Enable I2C clock */ + CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); + + /* I2C Pin setting */ + configure_i2c_pins(BOARD_I2C_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c new file mode 100644 index 0000000..d2977a1 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "board.h" +#include "debug_console_imx.h" +#include "i2c_imx.h" + +static uint8_t txBuffer[5]; +static uint8_t rxBuffer[7]; +static uint8_t cmdBuffer[5]; + +static void report_abs(void); +static bool I2C_MasterSendDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + const uint8_t *txBuff, + uint32_t txSize); +static bool I2C_MasterReceiveDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + uint8_t *rxBuff, + uint32_t rxSize); + +int main(void) +{ + uint8_t i; + + /* Setup I2C init structure. */ + i2c_init_config_t i2cInitConfig = { + .baudRate = 400000u, + .slaveAddress = 0x00 + }; + + /* Initialize board specified hardware. */ + hardware_init(); + + /* Get current module clock frequency. */ + i2cInitConfig.clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR); + + PRINTF("\n\r++++++++++++++++ I2C Send/Receive polling Example ++++++++++++++++\n\r"); + PRINTF("This example will configure on board accelerometer through I2C Bus\n\r"); + PRINTF("and read 10 samples back to see if the accelerometer is configured successfully. \n\r"); + + PRINTF("[1].Initialize the I2C module with initialize structure. \n\r"); + I2C_Init(BOARD_I2C_BASEADDR, &i2cInitConfig); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); + + PRINTF("[2].Set on-board Acc sensor range to 2G\n\r"); + // Place FXOS8700 into standby + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + // Disable FXOS8700's magnetometer only + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5B; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5C; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + // Set accelerometer range to 2G + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0E; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + // Set accelerometer for high resolution (maximum over sampling) + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2B; + txBuffer[0] = 0x02; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + PRINTF("[3].Set on-board Acc sensor working at active mode\n\r"); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x09; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + PRINTF("[4].Acc sensor WHO_AM_I check... "); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0D; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_MasterReceiveDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 3, rxBuffer, 1); + if (0xC7 == rxBuffer[0]) + PRINTF("OK\n\r"); + else + PRINTF("ERROR\n\r"); + + PRINTF("[5].Acquire 10 samples from Acc sensor\n\r"); + for (i = 0; i < 10; i++) + report_abs(); + + PRINTF("\n\rExample finished!!!\n\r"); + while (true) + __WFI(); +} + +static void report_abs(void) +{ + int16_t x, y, z; + float Ax, Ay, Az; + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x01; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_MasterReceiveDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 3, rxBuffer, 6); + + x = ((rxBuffer[0] << 8) & 0xff00) | rxBuffer[1]; + y = ((rxBuffer[2] << 8) & 0xff00) | rxBuffer[3]; + z = ((rxBuffer[4] << 8) & 0xff00) | rxBuffer[5]; + x = (int16_t)(x) >> 2; + y = (int16_t)(y) >> 2; + z = (int16_t)(z) >> 2; + + Ax = x / (4.0 * 1024); //For full scale range 2g mode. + Ay = y / (4.0 * 1024); + Az = z / (4.0 * 1024); + PRINTF("2G MODE: X=%6.3fg Y=%6.3fg Z=%6.3fg\n\r",Ax, Ay, Az); +} + +static bool I2C_MasterSendDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + const uint8_t *txBuff, + uint32_t txSize) +{ + if (I2C_GetStatusFlag(base, i2cStatusBusBusy)) + return false; + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(base, i2cDirectionTransmit); + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(base, i2cModeMaster); + + /* Send first byte */ + if (0 != cmdSize) + { + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + I2C_WriteByte(base, *txBuff++); + txSize--; + } + + while (1) + { + /* Wait I2C transmission status flag assert. */ + while (!I2C_GetStatusFlag(base, i2cStatusInterrupt)); + + /* Clear I2C transmission status flag. */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + /* Transmit complete. */ + if ((I2C_GetStatusFlag(base, i2cStatusReceivedAck)) || + ((0 == txSize) && (0 == cmdSize))) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + return true; + } + else + { + if (0 != cmdSize) + { + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + I2C_WriteByte(base, *txBuff++); + txSize--; + } + } + } +} + +static bool I2C_MasterReceiveDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + uint8_t *rxBuff, + uint32_t rxSize) +{ + uint32_t currentDir = i2cDirectionReceive; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(base, i2cStatusBusBusy)) + { + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(base, i2cDirectionTransmit); + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(base, i2cModeMaster); + + if (0 != cmdSize) + { + currentDir = i2cDirectionTransmit; + if (1 == cmdSize) + I2C_SendRepeatStart(base); + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(base, i2cDirectionReceive); + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Ack */ + I2C_SetAckBit(base, true); + /* dummy read to clock in 1st byte */ + *rxBuff = I2C_ReadByte(base); + } + + while (1) + { + /* Wait I2C transmission status flag assert. */ + while (!I2C_GetStatusFlag(base, i2cStatusInterrupt)); + + /* Clear I2C transmission status flag. */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + if (i2cDirectionTransmit == currentDir) + { + if (0 < cmdSize) + { + if (I2C_GetStatusFlag(base, i2cStatusReceivedAck)) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + return false; + } + else + { + if (1 == cmdSize) + I2C_SendRepeatStart(base); + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(base, i2cDirectionReceive); + currentDir = i2cDirectionReceive; + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Ack */ + I2C_SetAckBit(base, true); + /* dummy read to clock in 1st byte */ + *rxBuff = I2C_ReadByte(base); + } + } + else + { + /* Normal read operation. */ + if (2 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Nack */ + I2C_SetAckBit(base, true); + + if (1 == rxSize) + /* Switch back to Tx direction to avoid additional I2C bus read. */ + I2C_SetDirMode(base, i2cDirectionTransmit); + *rxBuff = I2C_ReadByte(base); + rxBuff++; + rxSize--; + + /* receive finished. */ + if (0 == rxSize) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + + return true; + } + } + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt index 82ecfcc..a9a2980 100644 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(uart_imx_interrupt_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject index c30bba7..70fede1 100644 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project index dfc8f04..f74abb1 100644 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd deleted file mode 100644 index a3a2089..0000000 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - uart_imx_interrupt_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp deleted file mode 100644 index e481dee..0000000 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww deleted file mode 100644 index 479e121..0000000 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -alluart_imx_interrupt_exampleReleaseuart_imx_interrupt_exampleDebugReleaseuart_imx_interrupt_exampleReleaseDebuguart_imx_interrupt_exampleDebug -$WS_DIR$/uart_imx_interrupt_example.ewp diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/main.c b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/main.c index 5cef7aa..9b22f1f 100644 --- a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/main.c +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_interrupt/main.c @@ -56,22 +56,24 @@ static uint32_t UART_XFER_GetReadStatus(void); int main(void) { - uint8_t rxChar, txChar; - // Setup UART init structure. - uart_init_config_t uart_init_str = { - .clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR), + uart_init_config_t initConfig = { .baudRate = 115200u, .wordLength = uartWordLength8Bits, .stopBitNum = uartStopBitNumOne, .parity = uartParityDisable, .direction = uartDirectionTxRx }; + uint8_t rxChar, txChar; // Initialize board specified hardware. hardware_init(); + + // Get current module clock frequency. + initConfig.clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR); + // Initialize the uart module with initialize structure. - UART_XFER_Config(&uart_init_str); + UART_XFER_Config(&initConfig); // Inform to start non blocking example. UART_XFER_Write((uint8_t*)buffStart, sizeof(buffStart)); diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt new file mode 100644 index 0000000..97d1f98 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt @@ -0,0 +1,132 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(uart_imx_polling_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(uart_imx_polling_example PROPERTIES OUTPUT_NAME "uart_imx_polling_example.elf") + +TARGET_LINK_LIBRARIES(uart_imx_polling_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(uart_imx_polling_example m) +TARGET_LINK_LIBRARIES(uart_imx_polling_example c) +TARGET_LINK_LIBRARIES(uart_imx_polling_example gcc) +TARGET_LINK_LIBRARIES(uart_imx_polling_example nosys) +TARGET_LINK_LIBRARIES(uart_imx_polling_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/uart_imx_polling_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/uart_imx_polling_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET uart_imx_polling_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.elf ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.hex) +ADD_CUSTOM_COMMAND(TARGET uart_imx_polling_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.elf ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.bin) diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject new file mode 100644 index 0000000..301536c --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.project b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.project new file mode 100644 index 0000000..79700af --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/ds5/.project @@ -0,0 +1,86 @@ + + + uart_imx_polling_example_imx7_colibri_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/hardware_init.c b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/hardware_init.c new file mode 100644 index 0000000..b9efeaf --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/hardware_init.c @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* In this example, we need to grasp board debug uart exclusively */ + RDC_SetPdapAccess(RDC, BOARD_DEBUG_UART_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Select board debug clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT, ccmRootmuxUartOsc24m, 0, 0); + /* Enable debug uart clock */ + CCM_EnableRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_DEBUG_UART_CCM_CCGR, ccmClockNeededRunWait); + + /* UART Pin setting */ + configure_uart_pins(BOARD_DEBUG_UART_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/main.c b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/main.c new file mode 100644 index 0000000..5888f6f --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/uart_imx/uart_polling/main.c @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include +#include +#include "uart_imx.h" +#include "board.h" + +/////////////////////////////////////////////////////////////////////////////// +// Consts +/////////////////////////////////////////////////////////////////////////////// +const uint8_t bufferData1[] = "\n\r++++++++++++++++ UART Send/Receive Polling Example +++++++++++++++++\n\r"; +const uint8_t bufferData2[] = "\n\rType characters from keyboard, the board will receive and then echo them to terminal screen\n\r"; + +static void UART_SendDataPolling(UART_Type *base, const uint8_t *txBuff, uint32_t txSize); +static void UART_ReceiveDataPolling(UART_Type *base, uint8_t *rxBuff, uint32_t rxSize); + +int main(void) +{ + // Setup UART init structure. + uart_init_config_t initConfig = { + .baudRate = 115200u, + .wordLength = uartWordLength8Bits, + .stopBitNum = uartStopBitNumOne, + .parity = uartParityDisable, + .direction = uartDirectionTxRx + }; + uint8_t rxChar = 0; + uint32_t byteCount = 0; + + /* Initialize board specified hardware. */ + hardware_init(); + + // Get current module clock frequency. + initConfig.clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR); + + /* Initialize UART baud rate, bit count, parity, stop bit and direction. */ + UART_Init(BOARD_DEBUG_UART_BASEADDR, &initConfig); + + /* Set UART build-in hardware FIFO Watermark. */ + UART_SetTxFifoWatermark(BOARD_DEBUG_UART_BASEADDR, 16); + UART_SetRxFifoWatermark(BOARD_DEBUG_UART_BASEADDR, 1); + + /* Finally, enable the UART module */ + UART_Enable(BOARD_DEBUG_UART_BASEADDR); + + byteCount = sizeof(bufferData1); + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, bufferData1, byteCount); + + byteCount = sizeof(bufferData2); + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, bufferData2, byteCount); + + while (true) + { + /* Wait to receive input data */ + UART_ReceiveDataPolling(BOARD_DEBUG_UART_BASEADDR, &rxChar, 1u); + + /* Send any character that received */ + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, &rxChar, 1u); + } +} + +static void UART_SendDataPolling(UART_Type *base, const uint8_t *txBuff, uint32_t txSize) +{ + while (txSize--) + { + while (!UART_GetStatusFlag(base, uartStatusTxComplete)); + UART_Putchar(base, *txBuff++); + } +} + +static void UART_ReceiveDataPolling(UART_Type *base, uint8_t *rxBuff, uint32_t rxSize) +{ + while (rxSize--) + { + while (!UART_GetStatusFlag(base, uartStatusRxReady)); + *rxBuff = UART_Getchar(base); + rxBuff++; + + if (UART_GetStatusFlag(base, uartStatusRxOverrun)) + UART_ClearStatusFlag(base, uartStatusRxOverrun); + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt index 3e9f4f0..cda6351 100644 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(wdog_imx_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/wdog_imx/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.cproject b/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.cproject index 84b4a99..37167a2 100644 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.cproject +++ b/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.project b/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.project index 23996b5..36c3a02 100644 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.project +++ b/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/makedir.bat b/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd b/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd deleted file mode 100644 index 70e11ca..0000000 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - wdog_imx_example_imx7_colibri_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd b/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp b/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp deleted file mode 100644 index 27da58b..0000000 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww b/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww deleted file mode 100644 index d58e53d..0000000 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allwdog_imx_exampleReleasewdog_imx_exampleDebugReleasewdog_imx_exampleReleaseDebugwdog_imx_exampleDebug -$WS_DIR$/wdog_imx_example.ewp diff --git a/examples/imx7_colibri_m4/driver_examples/wdog_imx/main.c b/examples/imx7_colibri_m4/driver_examples/wdog_imx/main.c index 53c0756..af29975 100644 --- a/examples/imx7_colibri_m4/driver_examples/wdog_imx/main.c +++ b/examples/imx7_colibri_m4/driver_examples/wdog_imx/main.c @@ -37,11 +37,11 @@ static uint32_t num = 5; int main(void) { - wdog_mode_config_t config = { - .wdw = true, /*!< true: suspend in low power wait, false: not suspend */ + wdog_init_config_t config = { + .wdw = false, /*!< true: suspend in low power wait, false: not suspend */ .wdt = true, /*!< true: assert WDOG_B when timeout, false: not assert WDOG_B */ .wdbg = true, /*!< true: suspend in debug mode, false: not suspend */ - .wdzst = true /*!< true: suspend in doze and stop mode, false: not suspend */ + .wdzst = false /*!< true: suspend in doze and stop mode, false: not suspend */ }; hardware_init(); @@ -51,6 +51,8 @@ int main(void) /* Enable WDOG interrupt 0.5 second before WDOG timeout */ NVIC_SetPriority(BOARD_WDOG_IRQ_NUM, 3); NVIC_EnableIRQ(BOARD_WDOG_IRQ_NUM); + /* Refresh WDOG to reload counter */ + WDOG_Refresh(BOARD_WDOG_BASEADDR); WDOG_EnableInt(BOARD_WDOG_BASEADDR, 1); PRINTF("WDOG with timeout 1.5 seconds will now start\n\r"); diff --git a/examples/imx7_colibri_m4/pin_mux.h b/examples/imx7_colibri_m4/pin_mux.h index 42eba6b..adb5cc7 100644 --- a/examples/imx7_colibri_m4/pin_mux.h +++ b/examples/imx7_colibri_m4/pin_mux.h @@ -33,8 +33,8 @@ ** @{ */ -#ifndef __PIN_MUX__ -#define __PIN_MUX__ +#ifndef __PIN_MUX_H__ +#define __PIN_MUX_H__ /* MODULE pin_mux. */ @@ -88,7 +88,7 @@ void configure_i2c_pins(I2C_Type* base); /* ===================================================================*/ void configure_uart_pins(UART_Type* base); -#endif /* __PIN_MUX__ */ +#endif /* __PIN_MUX_H__ */ /******************************************************************************* * EOF ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/FreeRTOSConfig.h deleted file mode 100644 index 39dcb8e..0000000 --- a/examples/imx7d_sdb_m4/FreeRTOSConfig.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* Ensure stdint is only used by the compiler, and not the assembler. */ -#ifdef __ICCARM__ - #include -#endif - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ (240000000ul) -#define configTICK_RATE_HZ ((TickType_t)1000) -#define configMAX_PRIORITIES (5) -#define configMINIMAL_STACK_SIZE ((unsigned short)130) -#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) -#define configMAX_TASK_NAME_LEN (10) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 8 -#define configCHECK_FOR_STACK_OVERFLOW 0 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 0 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configGENERATE_RUN_TIME_STATS 0 - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES (2) - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (2) -#define configTIMER_QUEUE_LENGTH 10 -#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 - -/* Cortex-M specific definitions. */ -#ifdef __NVIC_PRIO_BITS - /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 4 /* 15 priority levels */ -#endif - -/* The lowest interrupt priority that can be used in a call to a "set priority" -function. */ -#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf - -/* The highest interrupt priority that can be used by any interrupt service -routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL -INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER -PRIORITY THAN THIS! (higher priorities are lower numeric values. */ -#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 - -/* Interrupt priorities used by the kernel port layer itself. These are generic -to all Cortex-M ports, and do not rely on any particular library functions. */ -#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) -/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! -See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) - -/* Normal assert() semantics without relying on the provision of an assert.h -header file. */ -#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} - -/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS -standard names. */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/board.c b/examples/imx7d_sdb_m4/board.c index 5ce8c78..152817c 100644 --- a/examples/imx7d_sdb_m4/board.c +++ b/examples/imx7d_sdb_m4/board.c @@ -42,13 +42,19 @@ void BOARD_ClockInit(void) { /* OSC/PLL is already initialized by Cortex-A7 (u-boot) */ - /* Disable WDOG3 */ + /* + * Disable WDOG3 + * Note : The WDOG clock Root is shared by all the 4 WDOGs, so FreeROTS + * code should avoid closing it + */ CCM_UpdateRoot(CCM, ccmRootWdog, ccmRootmuxWdogOsc24m, 0, 0); CCM_EnableRoot(CCM, ccmRootWdog); CCM_ControlGate(CCM, ccmCcgrGateWdog3, ccmClockNeededRun); + + RDC_SetPdapAccess(RDC, BOARD_WDOG_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); WDOG_DisablePowerdown(BOARD_WDOG_BASEADDR); + CCM_ControlGate(CCM, ccmCcgrGateWdog3, ccmClockNotNeeded); - CCM_DisableRoot(CCM, ccmRootWdog); /* We need system PLL Div2 to run M4 core */ CCM_ControlGate(CCM, ccmPllGateSys, ccmClockNeededRun); @@ -75,7 +81,12 @@ void dbg_uart_init(void) CCM_UpdateRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT, ccmRootmuxUartOsc24m, 0, 0); /* Enable debug uart clock */ CCM_EnableRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT); - CCM_ControlGate(CCM, BOARD_DEBUG_UART_CCM_CCGR, ccmClockNeededRunWait); + /* + * IC Limitation + * M4 stop will cause A7 UART lose functionality + * So we need UART clock all the time + */ + CCM_ControlGate(CCM, BOARD_DEBUG_UART_CCM_CCGR, ccmClockNeededAll); /* Config debug uart pins */ configure_uart_pins(BOARD_DEBUG_UART_BASEADDR); diff --git a/examples/imx7d_sdb_m4/board.h b/examples/imx7d_sdb_m4/board.h index 64e5920..e27840d 100644 --- a/examples/imx7d_sdb_m4/board.h +++ b/examples/imx7d_sdb_m4/board.h @@ -61,8 +61,8 @@ #define BOARD_SEMA4_RDC_PDAP rdcPdapSemaphoreHs #define BOARD_SEMA4_CCM_CCGR ccmCcgrGateSemaHs #define BOARD_SEMA4_BASEADDR SEMA4 -#define BOARD_SEMA4_IRQ_NUM HS1_IRQn -#define BOARD_SEMA4_HANDLER SEMA4_Handler +#define BOARD_SEMA4_IRQ_NUM SEMA4_HS_M4_IRQn +#define BOARD_SEMA4_HANDLER SEMA4_HS_M4_Handler /* GPT instance A information for this board */ #define BOARD_GPTA_RDC_PDAP rdcPdapGpt3 @@ -80,12 +80,18 @@ #define BOARD_GPTB_HANDLER GPT4_Handler /* GPIO information for this board */ -#define BOARD_GPIO_CCM_CCGR ccmCcgrGateGpio5 +#define BOARD_GPIO_KEY_CCM_CCGR ccmCcgrGateGpio5 #define BOARD_GPIO_KEY_RDC_PDAP rdcPdapGpio5 #define BOARD_GPIO_KEY_CONFIG (&gpioKeyFunc1) #define BOARD_GPIO_KEY_IRQ_NUM GPIO5_INT15_0_IRQn #define BOARD_GPIO_KEY_HANDLER GPIO5_INT15_0_Handler +#define BOARD_GPIO_SENSOR_CCM_CCGR ccmCcgrGateGpio6 +#define BOARD_GPIO_SENSOR_RDC_PDAP rdcPdapGpio6 +#define BOARD_GPIO_SENSOR_CONFIG (&gpioSensorInt) +#define BOARD_GPIO_SENSOR_IRQ_NUM GPIO6_INT15_0_IRQn +#define BOARD_GPIO_SENSOR_HANDLER GPIO6_INT15_0_Handler + /* Debug UART information for this board */ #define BOARD_DEBUG_UART_RDC_PDAP rdcPdapUart2 #define BOARD_DEBUG_UART_CCM_ROOT ccmRootUart2 @@ -95,9 +101,9 @@ #define BOARD_DEBUG_UART_HANDLER UART2_Handler /* MU information for this board*/ -#define BOARD_MU_HANDLER MU_Handler -#define BOARD_MU_IRQ_NUM MU_INT_M4_IRQn -#define BOARD_MU_BASE_ADDR MU0_B +#define BOARD_MU_HANDLER MU_M4_Handler +#define BOARD_MU_IRQ_NUM MU_M4_IRQn +#define BOARD_MU_BASE_ADDR MUB #define BOARD_MU_CCM_CCGR ccmCcgrGateMu #define BOARD_MU_RDC_PDAP rdcPdapMuB @@ -119,6 +125,8 @@ #define BOARD_FLEXCAN_IRQ_NUM FLEXCAN2_IRQn #define BOARD_FLEXCAN_HANDLER FLEXCAN2_Handler +/* GPC information for this board*/ +#define BOARD_GPC_BASEADDR GPC #if defined(__cplusplus) extern "C" { diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..6d8eb19 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt index 87ec30e..281bc12 100644 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,18 +82,19 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE -ADD_EXECUTABLE(blinking_imx_demo +ADD_EXECUTABLE(blinking_imx_demo_gpt "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../gpt_timer.c" - "${ProjDirPath}/../gpt_timer.h" + "${ProjDirPath}/../hw_timer.h" "${ProjDirPath}/../gpio_ctrl.c" "${ProjDirPath}/../gpio_ctrl.h" "${ProjDirPath}/../../../../../platform/drivers/src/gpio_imx.c" @@ -115,6 +119,7 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -126,6 +131,7 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" @@ -144,25 +150,25 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../gpio_pins.c" "${ProjDirPath}/../../../gpio_pins.h" ) -SET_TARGET_PROPERTIES(blinking_imx_demo PROPERTIES OUTPUT_NAME "blinking_imx_demo.elf") +SET_TARGET_PROPERTIES(blinking_imx_demo_gpt PROPERTIES OUTPUT_NAME "blinking_imx_demo_gpt.elf") -TARGET_LINK_LIBRARIES(blinking_imx_demo -Wl,--start-group) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt -Wl,--start-group) # LIBRARIES IF(CMAKE_BUILD_TYPE MATCHES Debug) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) ENDIF() # SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(blinking_imx_demo m) -TARGET_LINK_LIBRARIES(blinking_imx_demo c) -TARGET_LINK_LIBRARIES(blinking_imx_demo gcc) -TARGET_LINK_LIBRARIES(blinking_imx_demo nosys) -TARGET_LINK_LIBRARIES(blinking_imx_demo -Wl,--end-group) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt m) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt c) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt gcc) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt nosys) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt -Wl,--end-group) # MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/blinking_imx_demo.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/blinking_imx_demo.map") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/blinking_imx_demo_gpt.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/blinking_imx_demo_gpt.map") # BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.hex) -ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.bin) +ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo_gpt POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.hex) +ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo_gpt POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.cproject index e68e7d6..1571803 100644 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.cproject +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.project index 130f266..fed8bda 100644 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.project +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/.project @@ -1,6 +1,6 @@ - blinking_imx_demo_imx7d_sdb_m4 + blinking_imx_demo_gpt_imx7d_sdb_m4 @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.csource2virtual:/virtualsource/gpt_timer.h1PARENT-1-PROJECT_LOC/gpt_timer.hsource2virtual:/virtualsource/gpio_ctrl.c1PARENT-1-PROJECT_LOC/gpio_ctrl.csource2virtual:/virtualsource/gpio_ctrl.h1PARENT-1-PROJECT_LOC/gpio_ctrl.hdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.h + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.csource2virtual:/virtualsource/hw_timer.h1PARENT-1-PROJECT_LOC/hw_timer.hsource2virtual:/virtualsource/gpio_ctrl.c1PARENT-1-PROJECT_LOC/gpio_ctrl.csource2virtual:/virtualsource/gpio_ctrl.h1PARENT-1-PROJECT_LOC/gpio_ctrl.hdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.h diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd deleted file mode 100644 index 97463d6..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - blinking_imx_demo_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c index 4cd0b7f..45aece0 100644 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c @@ -37,6 +37,7 @@ #include #include "FreeRTOS.h" +#include "task.h" #include "semphr.h" #include "gpio_pins.h" #include "board.h" @@ -50,7 +51,7 @@ static SemaphoreHandle_t xSemaphore; static void GPIO_Ctrl_InitLedPin() { #ifdef BOARD_GPIO_LED_CONFIG - gpio_init_t ledInit = { + gpio_init_config_t ledInit = { .pin = BOARD_GPIO_LED_CONFIG->pin, .direction = gpioDigitalOutput, .interruptMode = gpioNoIntmode @@ -69,7 +70,7 @@ static void GPIO_Ctrl_InitLedPin() static void GPIO_Ctrl_InitKeyPin() { #ifdef BOARD_GPIO_KEY_CONFIG - gpio_init_t keyInit = { + gpio_init_config_t keyInit = { .pin = BOARD_GPIO_KEY_CONFIG->pin, .direction = gpioDigitalInput, .interruptMode = gpioIntFallingEdge @@ -116,37 +117,57 @@ void GPIO_Ctrl_ToggleLed() void GPIO_Ctrl_WaitKeyPressed() { - TickType_t ticks; - #ifdef BOARD_GPIO_KEY_CONFIG - RDC_SEMAPHORE_Lock(BOARD_GPIO_KEY_RDC_PDAP); + uint32_t i, debounce; - /* Clear the interrupt state */ - GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - /* Enable GPIO pin interrupt */ - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); + do + { + debounce = 0; - RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); + RDC_SEMAPHORE_Lock(BOARD_GPIO_KEY_RDC_PDAP); - /* Enable the IRQ. */ - NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + /* Clear the interrupt state */ + GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + /* Enable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); - /* We need wait user input for ever */ - ticks = portMAX_DELAY; + RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); - PRINTF("\n\rPress the (%s) key to switch the blinking frequency:\n\r", BOARD_GPIO_KEY_CONFIG->name); + /* Enable the IRQ. */ + NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + + PRINTF("\n\rPress the (%s) key to switch the blinking frequency:\n\r", BOARD_GPIO_KEY_CONFIG->name); + xSemaphoreTake(xSemaphore, portMAX_DELAY); + + for (i = 0; i < 3; i++) + { + /* Susupend Task to wait Key stable. */ + vTaskDelay(5); + + /* Check key value. */ + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + /* Increase debounce counter. */ + debounce ++; + } + } + + if (debounce >= 2) + { + break; + } + } while (1); #else /* Without key on board, we return every 5 seconds */ - ticks = configTICK_RATE_HZ * 5; PRINTF("\n\rWait 5 seconds to switch blinking frequency:\n\r"); + xSemaphoreTake(xSemaphore, configTICK_RATE_HZ * 5); #endif - xSemaphoreTake(xSemaphore, ticks); } #ifdef BOARD_GPIO_KEY_CONFIG void BOARD_GPIO_KEY_HANDLER() { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; /* When user input captured, we disable GPIO interrupt */ NVIC_DisableIRQ(BOARD_GPIO_KEY_IRQ_NUM); @@ -160,7 +181,11 @@ void BOARD_GPIO_KEY_HANDLER() RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } #endif diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.c b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.c index 4b035cb..d092c45 100644 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.c +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.c @@ -37,15 +37,15 @@ #include "FreeRTOS.h" #include "semphr.h" -#include "gpt.h" -#include "gpt_timer.h" #include "board.h" +#include "gpt.h" +#include "hw_timer.h" static SemaphoreHandle_t xSemaphore; -void GPT_Timer_Init() +void Hw_Timer_Init(void) { - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, @@ -54,8 +54,6 @@ void GPT_Timer_Init() .enableMode = true }; - xSemaphore = xSemaphoreCreateBinary(); - /* Initialize GPT module */ GPT_Init(BOARD_GPTA_BASEADDR, &config); @@ -67,11 +65,13 @@ void GPT_Timer_Init() /* Enable NVIC interrupt */ NVIC_EnableIRQ(BOARD_GPTA_IRQ_NUM); + + xSemaphore = xSemaphoreCreateBinary(); } -void GPT_Timer_Delay(uint32_t ms) +void Hw_Timer_Delay(uint32_t ms) { - uint64_t counter = 24000 * ms; /* First get the counter needed by delay time */ + uint64_t counter = 24000ULL * ms; /* First get the counter needed by delay time */ uint32_t high; uint32_t div24m, div; @@ -100,16 +100,20 @@ void GPT_Timer_Delay(uint32_t ms) xSemaphoreTake(xSemaphore, portMAX_DELAY); } -void BOARD_GPTA_HANDLER() +void BOARD_GPTA_HANDLER(void) { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; - /* When GPT timeout, we disable GPT to make sure this is a oneshot event */ + /* When GPT time-out, we disable GPT to make sure this is a one-shot event. */ GPT_Disable(BOARD_GPTA_BASEADDR); GPT_SetIntCmd(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1, false); GPT_ClearStatusFlag(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1); + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } /******************************************************************************* diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.h b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.h deleted file mode 100644 index db19ab6..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/gpt_timer.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __GPT_TIMER_H__ -#define __GPT_TIMER_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/*! - * @brief Initialize GPT timer, must be called before GPT_Timer_Delay(). - */ -void GPT_Timer_Init(void); - -/*! - * @brief Block task for some time with GPT, this timer is not multi-thread - * safe and could only called in one task. - * - * @param ms milliseconds to delay - */ -void GPT_Timer_Delay(uint32_t ms); - -#ifdef __cplusplus -} -#endif - -#endif /* __GPT_TIMER_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hardware_init.c index df4fbdb..6d46d4a 100644 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hardware_init.c +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hardware_init.c @@ -65,7 +65,7 @@ void hardware_init(void) CCM_ControlGate(CCM, ccmCcgrGateSema1, ccmClockNeededRunWait); /* Enable gpio clock gate, led and key share same CCGR on this board */ - CCM_ControlGate(CCM, BOARD_GPIO_CCM_CCGR, ccmClockNeededRunWait); + CCM_ControlGate(CCM, BOARD_GPIO_KEY_CCM_CCGR, ccmClockNeededRunWait); /* Configure gpio pin IOMUX */ configure_gpio_pin(BOARD_GPIO_KEY_CONFIG); diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hw_timer.h b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hw_timer.h new file mode 100644 index 0000000..5a87819 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/hw_timer.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __HW_TIMER_H__ +#define __HW_TIMER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Initialize hardware timer, must be called before Hardware_Timer_Delay(). + */ +void Hw_Timer_Init(void); + +/*! + * @brief Block task for some time with hardware timer, this timer is not multi-thread + * safe and could only called in one task. + * + * @param ms milliseconds to delay + */ +void Hw_Timer_Delay(uint32_t ms); + +#ifdef __cplusplus +} +#endif + +#endif /* __HW_TIMER_H__ */ +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp deleted file mode 100644 index a792984..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../gpio_pins.c$PROJ_DIR$/../../../gpio_pins.hsource$PROJ_DIR$/../main.c$PROJ_DIR$/../gpt_timer.c$PROJ_DIR$/../gpt_timer.h$PROJ_DIR$/../gpio_ctrl.c$PROJ_DIR$/../gpio_ctrl.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpio_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpio_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../platform/drivers/src/rdc_semaphore.c$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_semaphore.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww deleted file mode 100644 index fbc2405..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allblinking_imx_demoReleaseblinking_imx_demoDebugReleaseblinking_imx_demoReleaseDebugblinking_imx_demoDebug -$WS_DIR$/blinking_imx_demo.ewp diff --git a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/main.c b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/main.c index 6547ada..e280647 100644 --- a/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/main.c +++ b/examples/imx7d_sdb_m4/demo_apps/blinking_imx_demo/main.c @@ -33,11 +33,11 @@ #include "board.h" #include "debug_console_imx.h" #include "gpio_ctrl.h" -#include "gpt_timer.h" +#include "hw_timer.h" -#define BLINKING_FREQ_MIN (100) +#define BLINKING_INTERVAL_MIN (100) -static volatile uint32_t blinkingInterval = BLINKING_FREQ_MIN; +static volatile uint32_t blinkingInterval = BLINKING_INTERVAL_MIN; /****************************************************************************** * @@ -50,8 +50,8 @@ void ToggleTask(void *pvParameters) while (true) { GPIO_Ctrl_ToggleLed(); - /* Use GPT timer to get accurate delay */ - GPT_Timer_Delay(blinkingInterval); + /* Use Hardware timer to get accurate delay */ + Hw_Timer_Delay(blinkingInterval); } } @@ -69,7 +69,7 @@ void SwitchTask(void *pvParameters) GPIO_Ctrl_WaitKeyPressed(); blinkingInterval += 100; if (blinkingInterval > 1000) - blinkingInterval = BLINKING_FREQ_MIN; + blinkingInterval = BLINKING_INTERVAL_MIN; /* Delay for 1 second to avoid glitch */ vTaskDelay(configTICK_RATE_HZ); } @@ -86,7 +86,7 @@ int main(void) /* Initialize board specified hardware. */ hardware_init(); - GPT_Timer_Init(); + Hw_Timer_Init(); GPIO_Ctrl_Init(); PRINTF("\n\r================= Blinking Demo ==================\n\r"); diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/hello_world/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/CMakeLists.txt index 6066a4b..7b23972 100644 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" @@ -105,6 +109,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -116,6 +121,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.cproject index fa71f12..5e6c26b 100644 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.cproject +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.project index e92e518..fbf22f4 100644 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.project +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/hello_world.wsd b/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/hello_world.wsd deleted file mode 100644 index 018e52e..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/hello_world.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - hello_world_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/makedir.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewd b/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewp b/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewp deleted file mode 100644 index 4eaffcf..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.eww b/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.eww deleted file mode 100644 index 18d140a..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world/iar/hello_world.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allhello_worldReleasehello_worldDebugReleasehello_worldReleaseDebughello_worldDebug -$WS_DIR$/hello_world.ewp diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt new file mode 100644 index 0000000..488604b --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt @@ -0,0 +1,162 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(hello_world_ddr + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../../hello_world/main.c" + "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../pin_mux.c" + "${ProjDirPath}/../../../pin_mux.h" + "${ProjDirPath}/../../../board.c" + "${ProjDirPath}/../../../board.h" + "${ProjDirPath}/../../../clock_freq.c" + "${ProjDirPath}/../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" +) +SET_TARGET_PROPERTIES(hello_world_ddr PROPERTIES OUTPUT_NAME "hello_world_ddr.elf") + +TARGET_LINK_LIBRARIES(hello_world_ddr -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(hello_world_ddr m) +TARGET_LINK_LIBRARIES(hello_world_ddr c) +TARGET_LINK_LIBRARIES(hello_world_ddr gcc) +TARGET_LINK_LIBRARIES(hello_world_ddr nosys) +TARGET_LINK_LIBRARIES(hello_world_ddr -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/hello_world_ddr.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/hello_world_ddr.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET hello_world_ddr POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.hex) +ADD_CUSTOM_COMMAND(TARGET hello_world_ddr POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat new file mode 100644 index 0000000..6d41d86 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh new file mode 100755 index 0000000..ebb0c25 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat new file mode 100644 index 0000000..bf3b902 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh new file mode 100755 index 0000000..571868b --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat new file mode 100644 index 0000000..e229a83 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh new file mode 100755 index 0000000..035ce4e --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.cproject new file mode 100644 index 0000000..ed19334 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.project new file mode 100644 index 0000000..a62d984 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/ds5/.project @@ -0,0 +1,86 @@ + + + hello_world_ddr_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/hardware_init.c new file mode 100644 index 0000000..6ce266a --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ddr/hardware_init.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFF000; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0xFFF) & 0xFFFFF000; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFF000; + end = ((uint32_t)__FLASH_END + 0xFFF) & 0xFFFFF000; +#endif + + RDC_SetMrAccess(RDC, rdcMrMmdc, start, end, (3 << (BOARD_DOMAIN_ID * 2)), true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the DDR Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt new file mode 100644 index 0000000..469ae23 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt @@ -0,0 +1,162 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(hello_world_ocram + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../../hello_world/main.c" + "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../pin_mux.c" + "${ProjDirPath}/../../../pin_mux.h" + "${ProjDirPath}/../../../board.c" + "${ProjDirPath}/../../../board.h" + "${ProjDirPath}/../../../clock_freq.c" + "${ProjDirPath}/../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" +) +SET_TARGET_PROPERTIES(hello_world_ocram PROPERTIES OUTPUT_NAME "hello_world_ocram.elf") + +TARGET_LINK_LIBRARIES(hello_world_ocram -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(hello_world_ocram m) +TARGET_LINK_LIBRARIES(hello_world_ocram c) +TARGET_LINK_LIBRARIES(hello_world_ocram gcc) +TARGET_LINK_LIBRARIES(hello_world_ocram nosys) +TARGET_LINK_LIBRARIES(hello_world_ocram -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/hello_world_ocram.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/hello_world_ocram.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET hello_world_ocram POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.hex) +ADD_CUSTOM_COMMAND(TARGET hello_world_ocram POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat new file mode 100644 index 0000000..6d41d86 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh new file mode 100755 index 0000000..ebb0c25 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat new file mode 100644 index 0000000..bf3b902 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh new file mode 100755 index 0000000..571868b --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat new file mode 100644 index 0000000..e229a83 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh new file mode 100755 index 0000000..035ce4e --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.cproject new file mode 100644 index 0000000..9210247 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.project new file mode 100644 index 0000000..70a88c6 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/ds5/.project @@ -0,0 +1,86 @@ + + + hello_world_ocram_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/hardware_init.c new file mode 100644 index 0000000..598d2de --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_ocram/hardware_init.c @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFFF80; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0x7F) & 0xFFFFFF80; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFFF80; + end = ((uint32_t)__FLASH_END + 0x7F) & 0xFFFFFF80; +#endif + + /* Grant all domains read/write access because in DSM mode Linux need to + * save/restore OCRAM content */ + RDC_SetMrAccess(RDC, rdcMrOcram, start, end, 0xFF, true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the OCRAM Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt index a5b36f5..8c9ff2a 100644 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt @@ -22,43 +22,44 @@ SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) # DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIA.ld -static") +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspia.ld -static") # RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIA.ld -static") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspia.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../../hello_world/main.c" "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" @@ -105,6 +109,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -116,6 +121,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" @@ -130,7 +136,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../board.h" "${ProjDirPath}/../../../clock_freq.c" "${ProjDirPath}/../../../clock_freq.h" - "${ProjDirPath}/../../hello_world/hardware_init.c" + "${ProjDirPath}/../hardware_init.c" ) SET_TARGET_PROPERTIES(hello_world_qspi PROPERTIES OUTPUT_NAME "hello_world_qspi.elf") diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.cproject index 8573cd9..8d9a58d 100644 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.cproject +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.project index 0b83895..7bfcc0b 100644 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.project +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-2-PROJECT_LOC/hello_world/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd deleted file mode 100644 index 2876c83..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - hello_world_qspi_imx7d_sdb_m4.truedebugfalsereleasefalse - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/makedir.bat b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/hardware_init.c new file mode 100644 index 0000000..1a79b06 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/hardware_init.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFF000; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0xFFF) & 0xFFFFF000; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFF000; + end = ((uint32_t)__FLASH_END + 0xFFF) & 0xFFFFF000; +#endif + + RDC_SetMrAccess(RDC, rdcMrQspi, start, end, (3 << (BOARD_DOMAIN_ID * 2)), true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the QSPI Flash Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp deleted file mode 100644 index d1b06d4..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../../hello_world/hardware_init.csource$PROJ_DIR$/../../hello_world/main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww b/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww deleted file mode 100644 index aeec508..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allhello_world_qspiDebughello_world_qspiReleaseDebughello_world_qspiDebugReleasehello_world_qspiRelease -$WS_DIR$/hello_world_qspi.ewp diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.c b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.c new file mode 100644 index 0000000..d21b5cd --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.c @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "gpc.h" + +/* + * Initialize GPC settings for dual core low power management + */ +void GPC_Init(GPC_Type * base) +{ + /* + * Disable all M4 interrupt as GPC wakeup source + */ + base->IMR1_M4 = GPC_IMR1_M4_IMR1_M4_MASK; + base->IMR2_M4 = GPC_IMR2_M4_IMR2_M4_MASK; + base->IMR3_M4 = GPC_IMR3_M4_IMR3_M4_MASK; + base->IMR4_M4 = GPC_IMR4_M4_IMR4_M4_MASK; + + /* + * Initialize the GPC settings for M4 + */ + base->LPCR_M4 |= GPC_LPCR_M4_EN_M4_PUP_MASK | + GPC_LPCR_M4_EN_M4_PDN_MASK; /* EN_M4_PUP, EN_M4_PDN*/ + base->PGC_ACK_SEL_M4 = GPC_PGC_ACK_SEL_M4_M4_VIRTUAL_PGC_PUP_ACK_MASK | + GPC_PGC_ACK_SEL_M4_M4_VIRTUAL_PGC_PDN_ACK_MASK; /* change dummy to virtual*/ + base->MISC |= GPC_MISC_M4_PDN_REQ_MASK_MASK; /* not mask M4 power down*/ + + /* + * M4 Virtual domain and Fast Mega domain must use the same PUP/PDN slot + * Align to A7, SLT 1 and SLT 5 are used for Fast Mega and M4 Virtual domain + */ + base->SLT_CFG[1] = GPC_SLT_CFG_M4_VIRTUAL_PDN_SLOT_CONTROL_MASK | GPC_SLT_CFG_FASTMEGA_PDN_SLOT_CONTROL_MASK; + base->SLT_CFG[5] = GPC_SLT_CFG_M4_VIRTUAL_PUP_SLOT_CONTROL_MASK | GPC_SLT_CFG_FASTMEGA_PUP_SLOT_CONTROL_MASK; + + /* + * Fast map to both A7 and M4 + * - M4 only have access to byte 1, A7 only have access to byte 0 + * - set to 1 for "map" + */ + base->PGC_CPU_MAPPING = GPC_PGC_CPU_MAPPING_FASTMEGA_M4_DOMAIN_MASK; +} + +/* + * Enable an interrupt source as GPC wakeup source for M4 core + */ +void GPC_EnableM4WakeupIRQ(GPC_Type* base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode) +{ + uint32_t reg_index, reg_offset; + volatile uint32_t* target_reg; + + if (irq_no < TOTAL_IRQ_NUM) { + reg_index = irq_no / IRQ_PER_REGISTER; + reg_offset = irq_no % IRQ_PER_REGISTER; + target_reg = &base->IMR1_M4 + reg_index; + if (wakeup_mode == GPC_IRQ_WAKEUP_ENABLE) { + /*enable the IRQ as wakeup source*/ + *target_reg &= ~(1 << reg_offset); + } + else { + /*disable the IRQ as wakeup source*/ + *target_reg |= 1 << reg_offset; + } + } +} + +/* + * Configure LPCR_M4_LPM, the configured LPM state will be entered + * the next time WFI is executed + */ +void GPC_SetM4NextLPM(GPC_Type* base, uint32_t lpm_val) +{ + if (lpm_val < 4) { + base->LPCR_M4 = (base->LPCR_M4 & ~GPC_LPCR_M4_LPM0_MASK) | lpm_val; + } +} diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.h b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.h new file mode 100644 index 0000000..8c61adf --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/gpc.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __GPC_H__ +#define __GPC_H__ +#include "device_imx.h" + +#define TOTAL_IRQ_NUM 128 +#define IRQ_PER_REGISTER 32 + +typedef enum gpc_irq_wakeup_mode { + GPC_IRQ_WAKEUP_ENABLE, + GPC_IRQ_WAKEUP_DISABLE, +} GPC_IRQ_WAKEUP_MODE; + +void GPC_Init(GPC_Type* base); + +void GPC_EnableM4WakeupIRQ(GPC_Type* base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode); + +void GPC_SetM4NextLPM(GPC_Type* base, uint32_t lpm_val); + +#endif diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c new file mode 100644 index 0000000..c9a5084 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.c @@ -0,0 +1,699 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +#include +#include "board.h" +#include "lpm_mcore.h" +#include "debug_console_imx.h" +#include "ccm_imx7d.h" +#include "mu_imx.h" +#include "FreeRTOS.h" +#include "gpt.h" + +#define MAXIMUM_24M_DIV 15 + +static LPM_POWER_STATUS_M4 m4_lpm_state = LPM_M4_STATE_RUN; + +static P_WAKEUP_INT_ELE g_wakeup_int_list; + +#if defined(__GNUC__) || defined(__CC_ARM) +static void RAM_Wfi(void) __attribute__((section(".ram_function"))); +static void RAM_Wfi_End(void) __attribute__((section(".ram_function_end"))); +#elif defined(__ICCARM__) +#pragma default_function_attributes = @ ".ram_function" +static void RAM_Wfi(void); +static void RAM_Wfi_End(void); +#pragma default_function_attributes = +#endif + +static void GPT_Patch_Prepare(void); + +static void (*runInRAM)(void) = NULL; + +/* + * Send Message to A7 + */ +static void LPM_MCORE_SendMessage(uint32_t msg) +{ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = msg; + while ((MUB_SR & MU_SR_EP_MASK) != 0); +} + +#if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) +/* + * Provide a spinning delay, the actual delay time is dependent on the CPU freq + */ +static void my_delay(void) +{ + uint32_t i, j, k; + for (i=0; i!=DELAY_CNT; i++) + for (j=0; j!=DELAY_CNT; j++) + for (k=0; k!=DELAY_CNT; k++) + __NOP(); + return; +} + +/* + * Use the delay function to demostrate current CPU running freq + */ +static void verify_clock_speed(void) +{ + uint32_t i; + for (i=0; i!=DELAY_LOOP_CNT_LOW_SPEED; i++) { + my_delay(); + PRINTF("\rVerify M4 Speed : %2d of %d ... ", i+1, DELAY_LOOP_CNT_LOW_SPEED); + } + PRINTF("Done.\r\n"); +} +#endif + +/* + * Tool function to copy function area [func_start, func_end] to M4 data area + * which is TCM in 7Dual Project + */ +static uint8_t* RAM_Function_Copy(uint8_t* func_start, uint8_t* func_end) +{ + uint8_t* ram_code_ptr; + uint32_t ram_function_start; + + ram_function_start = (uint32_t)func_start & ~0x3; + ram_code_ptr = pvPortMalloc((uint8_t*)func_end - (uint8_t*)ram_function_start); + memcpy(ram_code_ptr, (uint8_t*)ram_function_start, (uint32_t)func_end - + (uint32_t)ram_function_start); + ram_code_ptr = (uint8_t *)((uint32_t)ram_code_ptr | ((uint32_t)func_start & 0x3)); + + return ram_code_ptr; +} + +/* + * This is the critical section of code which should run in TCM and don't + * have any other dependency. It will be runtime copied from linked address + * to TCM address + * Entering it will allow A7 to shutdown highbus. After M4 get wakeup, it + * will request A7 to resume highbus. When exiting, the highbus resouces + * have been live again + */ +static void RAM_Wfi(void) { + + /* + * Use MU to tell A7 high bus can be released + * Note : Function call is not working in this RAM migrated function + */ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = MSG_LPM_M4_RELEASE_HIGHBUS; + while ((MUB_SR & MU_SR_EP_MASK) != 0); + + /* + * this WFI will only be wakeup by wakeup interrupt registered + * by "LPM_MCORE_RegisterWakeupInterrupt" + */ + __WFI(); + + /* + * Tell A7 that M4 has return from LPM mode + */ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = MSG_LPM_M4_RUN; + while ((MUB_SR & MU_SR_EP_MASK) != 0); + /* + * After wakeup, req A7 to resume clock, wait until getting ACK + */ + while (0 == (MUB_SR & MU_SR_TEn(0x8 >> LPM_MCORE_MU_CHANNEL))); + MUB->TR[LPM_MCORE_MU_CHANNEL] = MSG_LPM_M4_REQUEST_HIGHBUS; + while ((MUB_SR & MU_SR_EP_MASK) != 0); + + while (1) + { + if ((MUB_SR & (MU_SR_RFn(0x8 >> LPM_MCORE_MU_CHANNEL))) != 0) + if (MUB->RR[LPM_MCORE_MU_CHANNEL] == MSG_LPM_A7_HIGHBUS_READY) + break; + } + + /* + * manual clear MU pending interrupt + */ + NVIC->ICPR[((uint32_t)(MU_M4_IRQn) >> 5)] = (1 << ((uint32_t)(MU_M4_IRQn) & 0x1F)); +} + +/* + * Stub function which only serves as the end address of function "RAM_Wfi" + */ +static void RAM_Wfi_End(void) +{ + return; +} + +/*! + * @brief Check if "RAM_Wfi" is located inside TCM, if not so, copy it to TCM + */ +void prepare_ram_wfi() +{ + if (((uint32_t)RAM_Wfi < 0x1FFF8000) || ((uint32_t)RAM_Wfi > 0x20007FFF)) + // If no, copy the RAM_Wfi function to TCM. + runInRAM = (void(*)(void))RAM_Function_Copy((uint8_t *)RAM_Wfi, + (uint8_t *)RAM_Wfi_End); + else + // If yes, just assign RAM_Wfi to runInRAM pointer. + runInRAM = RAM_Wfi; +} + +/* + * initialize the wakeup interrupt list + */ +static void lpm_init_wakeup_interrupt_list() { + g_wakeup_int_list = NULL; +} + +/* + * add a new irq to wakeup interrupt link list + */ +static void lpm_add_wakeup_interrupt_list(uint32_t irq_no) +{ + P_WAKEUP_INT_ELE cur_ele = g_wakeup_int_list; + P_WAKEUP_INT_ELE p; + + if (cur_ele == NULL) { + /* + * first element to add + */ + p = pvPortMalloc(sizeof(WAKEUP_INT_ELE)); + p->irq_no = irq_no; + p->next = NULL; + g_wakeup_int_list = p; + } else { + for (;;) { + if (cur_ele->irq_no == irq_no) { + /* + * already in the link list + * - return directly + */ + break; + } + else if (cur_ele->next == NULL) { + /* + * can't find the element + * - insert into the end + */ + p = pvPortMalloc(sizeof(WAKEUP_INT_ELE)); + p->irq_no = irq_no; + p->next = NULL; + cur_ele->next = p; + } else { + cur_ele = cur_ele->next; + } + } + } +} + +/* + * remove an exsiting irq to wakeup interrupt link list + */ +static void lpm_del_wakeup_interrupt_list(uint32_t irq_no) +{ + P_WAKEUP_INT_ELE cur_ele = g_wakeup_int_list; + P_WAKEUP_INT_ELE p; + + if (cur_ele != NULL) { + if (cur_ele->irq_no == irq_no) { + /*first element is the target*/ + p = g_wakeup_int_list; + g_wakeup_int_list = p->next; + vPortFree(p); + } else { + for (;;) { + p = cur_ele->next; + if (p == NULL) { + /* + * can't find the element + * - return directly + */ + break; + } else { + if (p->irq_no == irq_no) { + /* + * Find the target "p" + */ + cur_ele->next = p->next; + vPortFree(p); + break; + } else { + cur_ele = cur_ele->next; + } + } + } + } + } +} + + +/* + * register a IRQ source as M4 wakeup source + */ +void LPM_MCORE_RegisterWakeupInterrupt(GPC_Type * base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode) +{ + /*register wakeup interrupt for M4 in GPC*/ + GPC_EnableM4WakeupIRQ(base, irq_no, wakeup_mode); + + if (wakeup_mode == GPC_IRQ_WAKEUP_ENABLE) { + /*add an element to link list*/ + lpm_add_wakeup_interrupt_list(irq_no); + } else { + /*delete an element to link list*/ + lpm_del_wakeup_interrupt_list(irq_no); + } +} + + +/* + * Low Power Management initialization + */ +void LPM_MCORE_Init(GPC_Type * base) +{ + // Init GPC + GPC_Init(base); + + // Copy critical function to TCM Space + prepare_ram_wfi(); + + // Init the wakeup interrupt link list + lpm_init_wakeup_interrupt_list(); + + // GPT4 Patch, see function implementation for details + GPT_Patch_Prepare(); +} + + +/* + * get the current m4 LPM state + */ +LPM_POWER_STATUS_M4 LPM_MCORE_GetPowerStatus(GPC_Type * base) +{ + return m4_lpm_state; +} + +/* + * on-the-fly change m4 parent clock between 24MHz and 240MHz + */ +void LPM_MCORE_ChangeM4Clock(LPM_M4_CLOCK_SPEED target) +{ + // change CCM Root to change M4 clock + switch (target) { + case LPM_M4_LOW_FREQ: + if (CCM_GetRootMux(CCM, ccmRootM4) != ccmRootmuxM4Osc24m) { + #if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) + PRINTF("Change M4 clock freq to 24M\r\n"); + #endif + CCM_SetRootMux(CCM, ccmRootM4, ccmRootmuxM4Osc24m); + } + break; + case LPM_M4_HIGH_FREQ: + if (CCM_GetRootMux(CCM, ccmRootM4) != ccmRootmuxM4SysPllDiv2) { + #if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) + PRINTF("Change M4 clock freq to SysPLL Div2 (240M)\r\n"); + #endif + CCM_SetRootMux(CCM, ccmRootM4, ccmRootmuxM4SysPllDiv2); + } + break; + default: + break; + } +#if (defined(LPM_MCORE_PRINT_DEBUG_INFO) && (LPM_MCORE_PRINT_DEBUG_INFO)) + verify_clock_speed(); +#endif +} + +/* + * cycle M4 low power mode to next state, the state machine is + * + * +---> "RUN" ---> "WAIT" ---> "STOP" ---+ + * | | + * +--------------------------------------+ + */ +void LPM_MCORE_SetPowerStatus(GPC_Type * base, LPM_POWER_STATUS_M4 m4_next_lpm) +{ + uint32_t next_lpm = GPC_LPCR_M4_LPM0(0); + switch (m4_next_lpm) { + case LPM_M4_STATE_RUN: + next_lpm = GPC_LPCR_M4_LPM0(0); + break; + case LPM_M4_STATE_WAIT: + next_lpm = GPC_LPCR_M4_LPM0(1); + break; + case LPM_M4_STATE_STOP: + next_lpm = GPC_LPCR_M4_LPM0(2); + break; + default: + break; + } + + /* + * Patch, let GPC-M4 observe the GPR0 interrupt for a period as long + * as 5 32KHz clock cycle before set it to a Low power status + */ + if (m4_next_lpm != LPM_M4_STATE_RUN) + { + uint32_t i; + LPM_MCORE_RegisterWakeupInterrupt(GPC, GPT4_IRQn, GPC_IRQ_WAKEUP_ENABLE); + for (i=0; i!=GPC_SYNC_DELAY_CNT; i++) + __NOP(); + LPM_MCORE_RegisterWakeupInterrupt(GPC, GPT4_IRQn, GPC_IRQ_WAKEUP_DISABLE); + } + + GPC_SetM4NextLPM(base, next_lpm); + + /*change lpm state variable*/ + m4_lpm_state = m4_next_lpm; +} + + + +/* + * Give readable string of current M4 lpm state + */ +const char* LPM_MCORE_GetPowerStatusString(void) +{ + switch (m4_lpm_state) { + case LPM_M4_STATE_RUN: + return "RUN"; + case LPM_M4_STATE_WAIT: + return "WAIT"; + case LPM_M4_STATE_STOP: + return "STOP"; + default: + return "UNKNOWN"; + } +} + +/* + * Check if A7 LPM Driver is ready + */ +uint32_t LPM_MCORE_CheckPeerReady(void) +{ + return (MU_GetFlags(MUB) & MU_SR_Fn(1)); +} + +/* + * Use MU Flag to indicate to A7 that low power management in M4 is ready + */ +void LPM_MCORE_SetSelfReady(void) +{ + MU_SetFlags(MUB, MU_CR_Fn(1)); +} + +/* + * This function modify BASEPRI to configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY and + * wakeup interrupt's NVIC->Priority to configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY - 1 + * The effect is all non-wakeup interrupt gets mute + * The original basepri settings are stored into pBasepriBackup + * The original wakeup interrupt nvic->priority settings are stored into linklist + */ +void lpm_disable_non_wakeup_interrupt(uint32_t* pBasepriBackup) +{ + P_WAKEUP_INT_ELE ele; + uint32_t irq_no; +#if defined(__CC_ARM) + register uint32_t __regBasePri __ASM("basepri"); + *pBasepriBackup = __regBasePri; + __regBasePri = (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - __NVIC_PRIO_BITS)); +#else + *pBasepriBackup = __get_BASEPRI(); + __set_BASEPRI(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - __NVIC_PRIO_BITS)); +#endif + /* + * Make exceptions to wakeup interrupts, they are stored in "g_wakeup_int_list" + */ + ele = g_wakeup_int_list; + for (;;) { + if (ele == NULL) + break; + + /* + * Store the current Priority into ele backup field + * Change the Priority to "configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY - 1" + */ + irq_no = ele->irq_no; + ele->irq_priority_backup = NVIC->IP[irq_no]; + NVIC->IP[irq_no] = (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY - 1) << (8 - __NVIC_PRIO_BITS); + + /* + * Move to next + */ + ele = ele->next; + } + __DSB(); + __ISB(); +} + +/* + * This function restores BASEPRI and wakeup interrupt nvic priority settings + * It recover interrupt settings made by lpm_disable_non_wakeup_interrupt + */ +void lpm_enable_non_wakeup_interrupt(uint32_t basePriBackup) +{ + P_WAKEUP_INT_ELE ele; + uint32_t irq_no; +#if defined(__CC_ARM) + register uint32_t __regBasePri __ASM("basepri"); +#endif + /* + * first restore wakeup interrupt priority + */ + ele = g_wakeup_int_list; + for (;;) { + if (ele == NULL) + break; + + /* + * Restore the original priority + */ + irq_no = ele->irq_no; + NVIC->IP[irq_no] = ele->irq_priority_backup; + + /* + * Move to next + */ + ele = ele->next; + } +#if defined(__CC_ARM) + __regBasePri = basePriBackup & 0xFF; +#else + __set_BASEPRI(basePriBackup); +#endif + // infinite_loop(); + // Are these necessary? + __DSB(); + __ISB(); +} + + +/* + * The sleep function inserted into FreeRTOS idle task hook + */ +void LPM_MCORE_WaitForInt(void) +{ + uint32_t priMaskBackup; + + /* + * Only when + * 1. A7 peer is ready + * 2. safe sleep function has been put into TCM + * 3. m4 true sleep mode has been allowed + * 4. m4 current lpm mode is wait / stop + * The "power save wfi" routine will be executed + * Otherwise "normal wfi" will be executed + * + * In Power Save WFI + * - PRIMASK is set, so all interrupt handler won't be executed + * - BASEPRI and NVIC->Priority is modified so that only wakeup interrupt can + * wake up M4 from WFI + * - After M4 wake up, NVIC->Priority, BASEPRI and PRIMASK are restored so that + * the system return to normal mode + * + * There is a critical section code which is in "runInRAM", inside it M4 will + * inform A7 it release the high bus. A7 can then shutdown the high bus which + * will make all highbus related peripherals losing functionality, including + * DDR, so code in "runInRAM" should run in TCM and don't have any access to + * other part of memory + */ + if (LPM_MCORE_CheckPeerReady() && (runInRAM != NULL)) + { + volatile uint32_t* reg_lpcr_m4 = &GPC->LPCR_M4; + + uint32_t next_lpm_mode = *reg_lpcr_m4 & GPC_LPCR_M4_LPM0_MASK; + uint32_t basePriBackup; + + /* Save current PRIMASK value. */ + priMaskBackup = __get_PRIMASK(); + + /* + * Set PRIMASK to avoid execution of any enabled ISR. + * Note : PRIMASK will not prevent interrupt to wake up M4 from WFI + * but it will prevent interrupt handler from running + */ + __set_PRIMASK(1); + /* Barriers are normally not required but do ensure the code is completely + * within the specified behaviour for the architecture. + */ + __DSB(); + __ISB(); + /* + * Some of the code should be moved out of "runInRAM" + */ + switch (next_lpm_mode) { + case LPCR_M4_RUN: + /* + * STOP -> RUN + */ + /* + * tell A7 the next LPM mode is RUN + */ + /* + * the WFI will be wakeup by any enabled interrupt + */ + __WFI(); + break; + case LPCR_M4_WAIT: + case LPCR_M4_STOP: + /* + * RUN -> WAIT or WAIT -> STOP + */ + /* + * tell A7 the next LPM mode is WAIT/STOP + */ + if (next_lpm_mode == LPCR_M4_WAIT) + LPM_MCORE_SendMessage(MSG_LPM_M4_WAIT); + else if (next_lpm_mode == LPCR_M4_STOP) + LPM_MCORE_SendMessage(MSG_LPM_M4_STOP); + /* + * do modification to BASEPRI and NVIC->Priority settings so that + * all interrupt except wakeup interrupt are disabled + */ + lpm_disable_non_wakeup_interrupt(&basePriBackup); + + /* + * Inside "runInRAM", M4 will inform A7 that it release the highbus. Later + * when M4 is waken up, it will request A7 to resume highbus. This section + * of code must run in TCM to avoid accessing highbus dependent resouces + */ + runInRAM(); + + // Restore Basepri and NVIC->Priority settings + lpm_enable_non_wakeup_interrupt(basePriBackup); + break; + default: + break; + } + /* + * Recover PRIMASK register value. this will enable the wakeup interrupt + * handler and will activate the main task immediately + */ + __set_PRIMASK(priMaskBackup); + + /* Barriers are normally not required but do ensure the code is completely + * within the specified behaviour for the architecture. */ + __DSB(); + __ISB(); + } + else { + /* + * Normal WFI which will be wakeup by any enabled interrupt + */ + __WFI(); + } +} + +/* + * This function implement a patch for "TO1.1" chips + * - In "TO1.1" chips. Everytime a WFI is executed, IC set an internal + * "dsm-request" signal. The signal is NOT deasserted when WFI is + * executed, until a GPC wakeup interrupt happens. When this signal + * asserts, setting "LPM_M4" to "WAIT" or "STOP" will immediately + * cause the M4 core enter sleep mode, rather than the next time "WFI" + * is executed. Only a wakeup interrupt can clear the "dsm-request" signal + * + * - The issue is like IC Errata ticket "ERR007265" in i.MX6 + * + * - As suggested by IC, software should let GPC observe an interrupt long + * enough before setting "LPM_M4". Here we utilize an GPT to trigger this + * interrupt. + * + * An GPT will be configured to generate a interrupt at the very beginning, + * this interrupt is masked by M4 NVIC so M4 will not respond to it. But + * every time M4 is wake up, before the next time GPC.LPM_M4 is modified, + * GPC.M4_IMR will be set to unmask this pending interrupt to GPC module + * only, the IRQ will be unmasked for a interval long enough (longer than + * 5 32K clock cycle as suggested by IC) and then be masked again. + * + * - The function configures GPTB to generate a pending interrupt. + */ +static void GPT_Patch_Prepare(void) { + uint64_t counter = 24000 * 5; /* Requrie 5ms to generate the pending interrupt*/ + uint32_t high; + uint32_t div24m, div; + + gpt_init_config_t config = { + .freeRun = false, + .waitEnable = true, + .stopEnable = true, + .dozeEnable = true, + .dbgEnable = false, + .enableMode = true + }; + + GPT_Init(BOARD_GPTB_BASEADDR, &config); + + /* Set GPT clock source to 24M OSC */ + GPT_SetClockSource(BOARD_GPTB_BASEADDR, gptClockSourceOsc); + + /* Get the value that exceed maximum register counter */ + high = (uint32_t)(counter >> 32); + + div24m = MAXIMUM_24M_DIV; /*Since we use 24MHz as GPT peripheral clock, here we set the 24M divider to maximum value*/ + div = high / (div24m + 1); /* Get PRESCALER value */ + + /* Now set prescaler */ + GPT_SetOscPrescaler(BOARD_GPTB_BASEADDR, div24m); + GPT_SetPrescaler(BOARD_GPTB_BASEADDR, div); + + /* Set GPT compare value */ + GPT_SetOutputCompareValue(BOARD_GPTB_BASEADDR, gptOutputCompareChannel1, + (uint32_t)(counter / (div24m + 1) / (div + 1))); + + /* Enable GPT Output Compare1 interrupt */ + GPT_SetIntCmd(BOARD_GPTB_BASEADDR, gptStatusFlagOutputCompare1, true); + + /* GPT start */ + GPT_Enable(BOARD_GPTB_BASEADDR); + + /* Wait until timer reaches*/ + while ((BOARD_GPTB_BASEADDR->SR & gptStatusFlagOutputCompare1) == gptStatusFlagOutputCompare1) { + GPT_Disable(BOARD_GPTB_BASEADDR); + } +} diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h new file mode 100644 index 0000000..6a7a843 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/common/lpm_mcore.h @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LPM_MCORE_H__ +#define __LPM_MCORE_H__ + +#include "gpc.h" +#include "device_imx.h" + +#define DELAY_LOOP_CNT_LOW_SPEED 10 +#define DELAY_CNT 100 + +#define LPCR_M4_RUN 0 +#define LPCR_M4_WAIT 1 +#define LPCR_M4_STOP 2 + +#define LPM_MCORE_MU_CHANNEL 0 + +#define LPM_MCORE_PRINT_DEBUG_INFO 0 + +#define MSG_LPM_M4_RUN 0x5A5A0001 +#define MSG_LPM_M4_WAIT 0x5A5A0002 +#define MSG_LPM_M4_STOP 0x5A5A0003 + +#define MSG_LPM_M4_REQUEST_HIGHBUS 0x2222CCCC +#define MSG_LPM_M4_RELEASE_HIGHBUS 0x2222BBBB + +#define MSG_LPM_A7_HIGHBUS_READY 0xFFFF6666 + +#define GPC_SYNC_DELAY_CNT 65536 + +/* + * LPM state of M4 core + */ +typedef enum lpm_power_status_m4 { + LPM_M4_STATE_RUN, + LPM_M4_STATE_WAIT, + LPM_M4_STATE_STOP, +} LPM_POWER_STATUS_M4; + +/* + * Clock Speed of M4 core + */ +typedef enum lpm_m4_clock_speed { + LPM_M4_HIGH_FREQ, + LPM_M4_LOW_FREQ +} LPM_M4_CLOCK_SPEED; + +/* + * Linklist of wakeup interrupt + */ +typedef struct wakeup_int_ele WAKEUP_INT_ELE, *P_WAKEUP_INT_ELE; +struct wakeup_int_ele { + P_WAKEUP_INT_ELE next; + uint32_t irq_no; + uint32_t irq_priority_backup; +}; + +/* + * low power driver initialization + */ +void LPM_MCORE_Init(GPC_Type * base); + +/* + * get the current lpm state of M4 core + */ +LPM_POWER_STATUS_M4 LPM_MCORE_GetPowerStatus(GPC_Type * base); + +/* + * set the next lpm state of M4 core, the state will be entered + * next time WFI is executed + */ +void LPM_MCORE_SetPowerStatus(GPC_Type * base, LPM_POWER_STATUS_M4 m4_next_lpm); + +/* + * provide readable information of current m4 core lpm state + */ +const char* LPM_MCORE_GetPowerStatusString(void); + +/* + * register/unregister a peripherail interrupt to M4 core wakeup interrupt + */ +void LPM_MCORE_RegisterWakeupInterrupt(GPC_Type * base, uint32_t irq_no, GPC_IRQ_WAKEUP_MODE wakeup_mode); + +/* + * change the m4 core clock between 24MHz(OSC) and 240MHz (SysPllDiv2) + */ +void LPM_MCORE_ChangeM4Clock(LPM_M4_CLOCK_SPEED target); + +/* + * Check if A7 LPM driver is ready + */ +uint32_t LPM_MCORE_CheckPeerReady(void); + +/* + * Set M4 LPM driver ready flag to A7 Peer + */ +void LPM_MCORE_SetSelfReady(void); + +/* + * Function to inserted into FreeRTOS idletask hook + */ +void LPM_MCORE_WaitForInt(void); + +#endif diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h new file mode 100644 index 0000000..416dbb2 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 1 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 2 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt new file mode 100644 index 0000000..f8bb577 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/CMakeLists.txt @@ -0,0 +1,178 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../common) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../common) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rand_wfi_imx7d + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../common/gpc.c" + "${ProjDirPath}/../../common/gpc.h" + "${ProjDirPath}/../../common/lpm_mcore.c" + "${ProjDirPath}/../../common/lpm_mcore.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../gpio_pins.c" + "${ProjDirPath}/../../../../gpio_pins.h" + "${ProjDirPath}/../gpt_timer.c" + "${ProjDirPath}/../gpt_timer.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/gpt.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/gpt.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc_semaphore.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_semaphore.h" +) +SET_TARGET_PROPERTIES(rand_wfi_imx7d PROPERTIES OUTPUT_NAME "rand_wfi_imx7d.elf") + +TARGET_LINK_LIBRARIES(rand_wfi_imx7d -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rand_wfi_imx7d m) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d c) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d gcc) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d nosys) +TARGET_LINK_LIBRARIES(rand_wfi_imx7d -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rand_wfi_imx7d.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rand_wfi_imx7d.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rand_wfi_imx7d POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.elf ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.hex) +ADD_CUSTOM_COMMAND(TARGET rand_wfi_imx7d POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.elf ${EXECUTABLE_OUTPUT_PATH}/rand_wfi_imx7d.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject new file mode 100644 index 0000000..c18a05c --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project new file mode 100644 index 0000000..f80c2fa --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/ds5/.project @@ -0,0 +1,86 @@ + + + rand_wfi_imx7d_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpc.c1PARENT-2-PROJECT_LOC/common/gpc.csource2virtual:/virtualsource/gpc.h1PARENT-2-PROJECT_LOC/common/gpc.hsource2virtual:/virtualsource/lpm_mcore.c1PARENT-2-PROJECT_LOC/common/lpm_mcore.csource2virtual:/virtualsource/lpm_mcore.h1PARENT-2-PROJECT_LOC/common/lpm_mcore.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.htimer2virtual:/virtualtimer/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.ctimer2virtual:/virtualtimer/gpt_timer.h1PARENT-1-PROJECT_LOC/gpt_timer.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.h + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c new file mode 100644 index 0000000..e264072 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.c @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/**************************************************************************** +* +* Comments: +* This file contains the functions which write and read the SPI memories +* using the ECSPI driver in interrupt mode. +* +****************************************************************************/ + +#include "FreeRTOS.h" +#include "semphr.h" +#include "gpt.h" +#include "gpt_timer.h" +#include "board.h" + +#define MAXIMUM_24M_DIV 15 + +static SemaphoreHandle_t xSemaphore; + +void GPT_Timer_Init() +{ + gpt_init_config_t config = { + .freeRun = false, + .waitEnable = true, + .stopEnable = true, + .dozeEnable = true, + .dbgEnable = false, + .enableMode = true + }; + + xSemaphore = xSemaphoreCreateBinary(); + + /* Initialize GPT module */ + GPT_Init(BOARD_GPTA_BASEADDR, &config); + + /* Set GPT clock source to 24M OSC */ + GPT_SetClockSource(BOARD_GPTA_BASEADDR, gptClockSourceOsc); + + /* Set GPT interrupt priority 3 */ + NVIC_SetPriority(BOARD_GPTA_IRQ_NUM, 3); + + /* Enable NVIC interrupt */ + NVIC_EnableIRQ(BOARD_GPTA_IRQ_NUM); +} + +/* + * Set GPT to triggle interrupt in future time + */ +void GPT_Set_Timer_Delay(uint32_t ms) +{ + uint64_t counter = 24000ULL * ms; /* First get the counter needed by delay time */ + uint32_t high; + uint32_t div24m, div; + + /* Get the value that exceed maximum register counter */ + high = (uint32_t)(counter >> 32); + + div24m = MAXIMUM_24M_DIV; /*Since we use 24MHz as GPT peripheral clock, here we set the 24M divider to maximum value*/ + div = high / (div24m + 1); /* Get PRESCALER value */ + + /* Now set prescaler */ + GPT_SetOscPrescaler(BOARD_GPTA_BASEADDR, div24m); + GPT_SetPrescaler(BOARD_GPTA_BASEADDR, div); + + /* Set GPT compare value */ + GPT_SetOutputCompareValue(BOARD_GPTA_BASEADDR, gptOutputCompareChannel1, + (uint32_t)(counter / (div24m + 1) / (div + 1))); + + /* Enable GPT Output Compare1 interrupt */ + GPT_SetIntCmd(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1, true); + + /* GPT start */ + GPT_Enable(BOARD_GPTA_BASEADDR); +} + +/* + * Block the current task until GPT interrupt happens + */ +void GPT_Wait_Timer_Expire(void) +{ + /* Wait until next GPT event happens. */ + xSemaphoreTake(xSemaphore, portMAX_DELAY); +} + +/* + * GPT Interrupt Handler + */ +void BOARD_GPTA_HANDLER() +{ + BaseType_t xHigherPriorityTaskWoken; + + /* When GPT timeout, we disable GPT to make sure this is a oneshot event */ + GPT_Disable(BOARD_GPTA_BASEADDR); + GPT_SetIntCmd(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1, false); + GPT_ClearStatusFlag(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1); + + xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + /*portYIELD_FROM_ISR is necessary to activate task switch immediately*/ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h new file mode 100644 index 0000000..0bab0ff --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/gpt_timer.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __GPT_TIMER_H__ +#define __GPT_TIMER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Initialize GPT timer, must be called before GPT_Timer_Delay(). + */ +void GPT_Timer_Init(void); + +/*! + * @brief Block task for some time with GPT, this timer is not multi-thread + * safe and could only called in one task. + * + * @param ms milliseconds to delay + */ +void GPT_Set_Timer_Delay(uint32_t ms); + +void GPT_Wait_Timer_Expire(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __GPT_TIMER_H__ */ +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c new file mode 100644 index 0000000..d36d4f8 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/hardware_init.c @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "gpio_pins.h" + +void hardware_init(void) +{ + uint32_t i; + /* + * Set GPC_LPCR_M4 to run. In Low Power Demo, when M4 enters STOP, the + * whole system may enter DSM. A7 will rekick A7 after exit DSM. GPC + * register status will not auto reset so a manual reset is performed + * here + * GPC RDC is default set by U-Boot to be shared by A7 and M4 + */ + GPC_LPCR_M4 = GPC_LPCR_M4 & (~GPC_LPCR_M4_LPM0_MASK); + + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* + * In order to wakeup M4 from LPM, all PLLCTRLs need to be set to "NeededRun" + */ + for (i=0; i!=33; i++) { + CCM_BASE_PTR->PLL_CTRL[i].PLL_CTRL = ccmClockNeededRun; + } + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this demo, we need to grasp board GPT exclusively */ + RDC_SetPdapAccess(RDC, BOARD_GPTA_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select GPTA clock derived from OSC24M */ + CCM_UpdateRoot(CCM, BOARD_GPTA_CCM_ROOT, ccmRootmuxGptOsc24m, 0, 0); + + /* Enable clock used by GPTA */ + CCM_EnableRoot(CCM, BOARD_GPTA_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_GPTA_CCM_CCGR, ccmClockNeededAll); + + /* In this demo, we need GPT4 to work as a patch to fix GPC sync issue */ + RDC_SetPdapAccess(RDC, BOARD_GPTB_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select GPTB clock derived from OSC24M */ + CCM_UpdateRoot(CCM, BOARD_GPTB_CCM_ROOT, ccmRootmuxGptOsc24m, 0, 0); + + /* Enable clock used by GPTB */ + CCM_EnableRoot(CCM, BOARD_GPTB_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_GPTB_CCM_CCGR, ccmClockNeededAll); + + /* Enable MU clock*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededAll); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/main.c b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/main.c new file mode 100644 index 0000000..3c75c46 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/low_power_imx7d/rand_wfi/main.c @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include "FreeRTOS.h" +#include "stdlib.h" +#include "task.h" +#include "board.h" +#include "debug_console_imx.h" +#include "gpt_timer.h" +#include "lpm_mcore.h" +#if defined(__GNUC__) +#include +#include +#endif + +/////////////////////////////////////////////////////////////////////////////// +// Macros +/////////////////////////////////////////////////////////////////////////////// +#define PERIOD_MIN 5 +#define PERIOD_MAX 10 + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// + +/*! + * @brief Set random time gpt timer to wakeup the system + */ +static uint32_t gpt_set_ramdom_period(uint32_t min_s, uint32_t max_s) +{ + uint32_t delay_s, delta_s; + /*Generate the random number*/ + if (max_s <= min_s) + delay_s = min_s; + else { + delta_s = max_s - min_s; + delay_s = rand() % delta_s + min_s; + } + + /*Set the GPT with delay_s, Taks will blocks until GPT event happens*/ + GPT_Set_Timer_Delay(1000 * delay_s); + return delay_s; +} + +/*! + * @brief the main power mode cycling task + */ +void LowPowerTask(void *pvParameters) +{ + uint32_t elapsed_time, total_time; + char control_char; + + PRINTF("\r\nLow Power Demo\r\n"); + + /* + * Wait For A7 Side Become Ready + */ + PRINTF("********************************\r\n"); + PRINTF("Please wait :\r\n"); + PRINTF(" 1) A7 peer is ready\r\n"); + PRINTF("Then press \"S\" to start the demo\r\n"); + PRINTF("********************************\r\n"); + + for (;;) { + PRINTF("\r\nPress \"S\" to start the demo : "); + control_char = GETCHAR(); + PRINTF("%c", control_char); + if ((control_char == 's') || (control_char == 'S')) { + break; + } + } + PRINTF("\r\n"); + + while (!LPM_MCORE_CheckPeerReady()) { + /* + * Note, when vTaskDelay is called, idle task hook function + * get opportunity to run + */ + vTaskDelay(5); + } + + LPM_MCORE_RegisterWakeupInterrupt(BOARD_GPC_BASEADDR, BOARD_GPTA_IRQ_NUM, GPC_IRQ_WAKEUP_ENABLE); + + LPM_MCORE_SetSelfReady(); + + total_time = 0; + while(1) + { + switch (LPM_MCORE_GetPowerStatus(BOARD_GPC_BASEADDR)) { + case LPM_M4_STATE_RUN: + /*---> WAIT*/ + LPM_MCORE_ChangeM4Clock(LPM_M4_LOW_FREQ); + LPM_MCORE_SetPowerStatus(BOARD_GPC_BASEADDR, LPM_M4_STATE_WAIT); + break; + case LPM_M4_STATE_WAIT: + /*---> STOP*/ + LPM_MCORE_ChangeM4Clock(LPM_M4_LOW_FREQ); + LPM_MCORE_SetPowerStatus(BOARD_GPC_BASEADDR, LPM_M4_STATE_STOP); + break; + case LPM_M4_STATE_STOP: + /*---> RUN*/ + LPM_MCORE_ChangeM4Clock(LPM_M4_HIGH_FREQ); + LPM_MCORE_SetPowerStatus(BOARD_GPC_BASEADDR, LPM_M4_STATE_RUN); + break; + default: + break; + } + + elapsed_time = gpt_set_ramdom_period(PERIOD_MIN, PERIOD_MAX); + PRINTF("GPT will triggle interrupt in %ds\r\n", elapsed_time); + + PRINTF("go to mode %s\r\n", LPM_MCORE_GetPowerStatusString()); + + /*wait GPT interrupt handler getting executed*/ + GPT_Wait_Timer_Expire(); + total_time += elapsed_time; + PRINTF("GPT Event! Total time %ds\r\n", total_time); + } +} + +/*! + * @brief Custom function to be run in idletask + */ +void vApplicationIdleHook(void) +{ + /* Waiting for Wake up event. */ + LPM_MCORE_WaitForInt(); +} + +/*! + * @brief Main function + */ +int main(void) +{ + // Initialize demo application pins setting and clock setting. + hardware_init(); + + PRINTF(" ************************************************************************\r\n"); + PRINTF(" * i.MX 7Dual Dual Core Low Power Demo - M4 side *\r\n"); + PRINTF(" * *\r\n"); + PRINTF(" * A GPT will change the M4 Power Mode with random period *\r\n"); + PRINTF(" * *\r\n"); + PRINTF(" ************************************************************************\r\n"); + + // Init the GPT Timer + GPT_Timer_Init(); + + // Low Power Management Initialization + LPM_MCORE_Init(BOARD_GPC_BASEADDR); + + // Create a demo task which will demo M4 core cycling through different power modes. + xTaskCreate(LowPowerTask, "Low Power Task", configMINIMAL_STACK_SIZE, // xTaskGenericCreate + NULL, tskIDLE_PRIORITY+1, NULL); + + // Start FreeRTOS scheduler. + vTaskStartScheduler(); + + // Should never reach this point. + while (true); +} + +#if defined(__GNUC__) +/*! + * @brief Function to override ARMGCC default function _sbrk + * + * _sbrk is called by malloc. ARMGCC default _sbrk compares "SP" register and + * heap end, if heap end is larger than "SP", then _sbrk returns error and + * memory allocation failed. This function changes to compare __HeapLimit with + * heap end. + * + * Then rand() function used in this project will call malloc in GCC compiler, + * so the customized version of _sbrk is needed here + */ +caddr_t _sbrk(int incr) +{ + extern uint32_t end __asm("end"); + extern uint32_t heap_limit __asm("__HeapLimit"); + static uint32_t *heap_end; + char *prev_heap_end; + + if (heap_end == NULL) + heap_end = &end; + + prev_heap_end = (char*)heap_end; + + if (heap_end + incr > &heap_limit) + { + errno = ENOMEM; + return (caddr_t)-1; + } + + heap_end += incr; + + return (caddr_t)prev_heap_end; +} +#endif +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf b/examples/imx7d_sdb_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf new file mode 100644 index 0000000..39ffe13 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf @@ -0,0 +1,90 @@ +#! armcc -E +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: ARM C/C++ Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-07-08 +** +** Abstract: +** Linker file for the ARM C/C++ Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + +#define m_interrupts_start 0x1FFF8000 +#define m_interrupts_size 0x00000240 + +#define m_text_start 0x1FFF8240 +#define m_text_size 0x00007DC0 + +#define m_data_start 0x20000000 +#define m_data_size 0x8000 + +/* Sizes */ +#if (defined(__stack_size__)) + #define Stack_Size __stack_size__ +#else + #define Stack_Size 0x0400 +#endif + +#if (defined(__heap_size__)) + #define Heap_Size __heap_size__ +#else + #define Heap_Size 0x4000 +#endif + +LR_m_text m_text_start m_text_size { ; load region size_region + ER_m_text m_text_start m_text_size { ; load address = execution address + * (InRoot$$Sections) + .ANY (+RO) + } + RW_m_data m_data_start m_data_size { ; RW data + .ANY (+RW +ZI) + } + ARM_LIB_HEAP m_data_start+m_data_size-Heap_Size-Stack_Size EMPTY Heap_Size { ; Heap region growing up + } + ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down + } +} + +LR_m_interrupts m_interrupts_start m_interrupts_size { + VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address + * (RESET,+FIRST) + } +} diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt deleted file mode 100644 index e057d9f..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt +++ /dev/null @@ -1,185 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(rpmsg_pingpong_example - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../../pin_mux.c" - "${ProjDirPath}/../../../../pin_mux.h" - "${ProjDirPath}/../../../../board.c" - "${ProjDirPath}/../../../../board.h" - "${ProjDirPath}/../../../../clock_freq.c" - "${ProjDirPath}/../../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" - "${ProjDirPath}/../pingpong.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" -) -SET_TARGET_PROPERTIES(rpmsg_pingpong_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_example.elf") - -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example m) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example c) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example gcc) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example nosys) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_example.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_example.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.hex) -ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat deleted file mode 100755 index 0cf721f..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh deleted file mode 100755 index 3827529..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat deleted file mode 100755 index e9ccfdd..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh deleted file mode 100755 index effd076..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat deleted file mode 100755 index 0759349..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh deleted file mode 100755 index a12067d..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.cproject deleted file mode 100644 index a8c9b7d..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.project deleted file mode 100644 index 1d92d06..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - rpmsg_pingpong_example_imx7d_sdb_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.crpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/plat_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/freertos_env.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos_env.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/pingpong.c1PARENT-1-PROJECT_LOC/pingpong.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd deleted file mode 100644 index 1e40fa1..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - rpmsg_pingpong_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/hardware_init.c deleted file mode 100644 index aa69475..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/hardware_init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* RDC MU*/ - RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Enable clock gate for MU*/ - CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp deleted file mode 100644 index f7017c4..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hrpmsg$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/env.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.csystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../pingpong.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/mu_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/mu_imx.h diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww deleted file mode 100644 index 748cbcf..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allrpmsg_pingpong_exampleReleaserpmsg_pingpong_exampleDebugReleaserpmsg_pingpong_exampleReleaseDebugrpmsg_pingpong_exampleDebug -$WS_DIR$/rpmsg_pingpong_example.ewp diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/pingpong.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/pingpong.c deleted file mode 100644 index 4b8b82e..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong/pingpong.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "board.h" -#include "rpmsg/rpmsg.h" -#include "debug_console_imx.h" -#include "mu_imx.h" -#include "plat_porting.h" - -/* - * APP decided interrupt priority - */ -#define APP_MU_IRQ_PRIORITY 3 - -/* Internal functions */ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl); -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl); -static void rpmsg_read_cb(struct rpmsg_channel *, void *, int, void *, unsigned long); - -/* Globals */ -static struct remote_device *rdev; -static struct rpmsg_channel *app_chnl; -static uint32_t msg_var; -static SemaphoreHandle_t app_sema; - -/*! - * @brief A basic RPMSG task - */ -void PingPongTask(void *pvParameters) -{ - PRINTF("RPMSG PingPong Demo...\r\n"); - - app_sema = xSemaphoreCreateCounting(2, 0); - - PRINTF("RPMSG Init as Remote\r\n"); - /* - * RPMSG Init as REMOTE - */ - rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); - - /* - * rpmsg_channel_created will post the first semaphore - */ - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); - - - /* - * pingpong demo loop - */ - for (;;) { - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Get Data From A7 : %d\r\n", msg_var); - msg_var++; - rpmsg_send(app_chnl, (void*)&msg_var, sizeof(uint32_t)); - } -} - - -/* - * MU Interrrupt ISR - */ -void BOARD_MU_HANDLER(void) -{ - /* - * calls into rpmsg_handler provided by middleware - */ - rpmsg_handler(); -} - - -int main(void) -{ - hardware_init(); - - /* - * Prepare for the MU Interrupt - * MU must be initialized before rpmsg init is called - */ - MU_Init(BOARD_MU_BASE_ADDR); - NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); - NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); - - // Create a demo task which will print Hello world and echo user's input. - xTaskCreate(PingPongTask, "Ping Pong Task", configMINIMAL_STACK_SIZE, - NULL, tskIDLE_PRIORITY+1, NULL); - - // Start FreeRTOS scheduler. - vTaskStartScheduler(); - - // Should never reach this point. - while (true); -} - -/* rpmsg_rx_callback will call into this for a channel creation event*/ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) -{ - /* - * we should give the created rp_chnl handler to app layer - */ - app_chnl = rp_chnl; - - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} - -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) -{ - rpmsg_destroy_ept(rp_chnl->rp_ept); -} - -static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, - void * priv, unsigned long src) -{ - msg_var = *(uint32_t*)data; - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt new file mode 100644 index 0000000..207d004 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt @@ -0,0 +1,172 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_pingpong_bm_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../pingpong_bm.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_pingpong_bm_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_bm_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example m) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example c) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_bm_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_bm_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject new file mode 100644 index 0000000..e32cbf3 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project new file mode 100644 index 0000000..a15f6c3 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_pingpong_bm_example_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.srpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/pingpong_bm.c1PARENT-1-PROJECT_LOC/pingpong_bm.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c new file mode 100644 index 0000000..2051bc2 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include +#include "rpmsg/rpmsg.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +typedef struct the_message +{ + uint32_t DATA; +} THE_MESSAGE, * THE_MESSAGE_PTR; + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// +/* Globals */ +static volatile struct rpmsg_channel *app_chnl; +static volatile int pingpong_finished = 0; +static THE_MESSAGE msg; + +static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, + void * priv, unsigned long src) +{ + if(len > sizeof(THE_MESSAGE)) + { + PRINTF("Received size %d exceed pingpong buffer size\r\n", len); + return; + } + + /* Drop extra message received after pingpong finished */ + if (pingpong_finished) + return; + + /* Store received message to global buffer */ + memcpy(&msg, data, len); + + PRINTF("Get Data From Master Side : %d\r\n", msg.DATA); + + /* Send the message back to the remoteproc */ + msg.DATA++; + rpmsg_send((struct rpmsg_channel *)app_chnl, &msg, sizeof(THE_MESSAGE)); + + /* Set pingpong_finished to 1 per requirement */ +} + +/* rpmsg_rx_callback will call into this for a channel creation event*/ +static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) +{ + /* We should give the created rp_chnl handler to app layer */ + app_chnl = rp_chnl; + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); +} + +static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) +{ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main (void) +{ + struct remote_device *rdev; + + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Print the initial banner */ + PRINTF("\r\nRPMSG PingPong Bare Metal Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + rpmsg_init(0 /*REMOTE_CPU_ID*/, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); + + /* wait until the pingpong demo finished */ + while (!pingpong_finished) + { + } + + PRINTF("\r\nMessage pingpong finished\r\n"); + + rpmsg_deinit(rdev); + + return 0; +} + +/******************************************************************************* + * EOF + ******************************************************************************/ + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h new file mode 100644 index 0000000..c57902e --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt new file mode 100644 index 0000000..1b91236 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt @@ -0,0 +1,199 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_pingpong_freertos_example + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../pingpong_freertos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_pingpong_freertos_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_freertos_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example m) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example c) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_freertos_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_freertos_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject new file mode 100644 index 0000000..cdcd118 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project new file mode 100644 index 0000000..bba19f0 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_pingpong_freertos_example_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/pingpong_freertos.c1PARENT-1-PROJECT_LOC/pingpong_freertos.crpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.crpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c new file mode 100644 index 0000000..6d0c03d --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include "rpmsg/rpmsg_rtos.h" +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +#define APP_TASK_STACK_SIZE 256 + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +typedef struct the_message +{ + uint32_t DATA; +} THE_MESSAGE, * THE_MESSAGE_PTR; + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// + +static void PingPongTask (void* param) +{ + int result; + struct remote_device *rdev = NULL; + struct rpmsg_channel *app_chnl = NULL; + THE_MESSAGE msg = {0}; + int len; + + /* Print the initial banner */ + PRINTF("\r\nRPMSG PingPong FreeRTOS RTOS API Demo...\r\n"); + + PRINTF("RPMSG Init as Remote\r\n"); + result = rpmsg_rtos_init(0 /*REMOTE_CPU_ID*/, &rdev, RPMSG_MASTER, &app_chnl); + assert(0 == result); + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); + + while (true) + { + /* receive/send data to channel default ept */ + result = rpmsg_rtos_recv(app_chnl->rp_ept, &msg, &len, sizeof(THE_MESSAGE), NULL, 0xFFFFFFFF); + assert(0 == result); + PRINTF("Get Data From Master Side : %d\r\n", msg.DATA); + msg.DATA++; + result = rpmsg_rtos_send(app_chnl->rp_ept, &msg, sizeof(THE_MESSAGE), app_chnl->dst); + assert(0 == result); + } + + /* If destruction required */ + /* + PRINTF("\r\nMessage pingpong finished\r\n"); + + rpmsg_rtos_deinit(rdev); + */ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main (void) +{ + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Create a demo task. */ + xTaskCreate(PingPongTask, "Ping Pong Task", APP_TASK_STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, NULL); + + /* Start FreeRTOS scheduler. */ + vTaskStartScheduler(); + + /* Should never reach this point. */ + while(true); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt deleted file mode 100644 index cfdf394..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt +++ /dev/null @@ -1,185 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(rpmsg_str_echo_example - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../../pin_mux.c" - "${ProjDirPath}/../../../../pin_mux.h" - "${ProjDirPath}/../../../../board.c" - "${ProjDirPath}/../../../../board.h" - "${ProjDirPath}/../../../../clock_freq.c" - "${ProjDirPath}/../../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" - "${ProjDirPath}/../str_echo.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" -) -SET_TARGET_PROPERTIES(rpmsg_str_echo_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_example.elf") - -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example m) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example c) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example gcc) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example nosys) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_example.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_example.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.hex) -ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat deleted file mode 100755 index 0cf721f..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh deleted file mode 100755 index 3827529..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat deleted file mode 100755 index e9ccfdd..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh deleted file mode 100755 index effd076..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat deleted file mode 100755 index 0759349..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh deleted file mode 100755 index a12067d..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.cproject deleted file mode 100644 index 97441ea..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.project deleted file mode 100644 index 8fb75a6..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - rpmsg_str_echo_example_imx7d_sdb_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.crpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/plat_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/freertos_env.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos_env.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/str_echo.c1PARENT-1-PROJECT_LOC/str_echo.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd deleted file mode 100644 index b54d9e7..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - rpmsg_str_echo_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/hardware_init.c deleted file mode 100644 index aa69475..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/hardware_init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* RDC MU*/ - RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Enable clock gate for MU*/ - CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp deleted file mode 100644 index da4e5e6..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hrpmsg$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/env.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.csystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../str_echo.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/mu_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/mu_imx.h diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww deleted file mode 100644 index 16d90b2..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allrpmsg_str_echo_exampleReleaserpmsg_str_echo_exampleDebugReleaserpmsg_str_echo_exampleReleaseDebugrpmsg_str_echo_exampleDebug -$WS_DIR$/rpmsg_str_echo_example.ewp diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/str_echo.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/str_echo.c deleted file mode 100644 index 7a778fc..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo/str_echo.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "string.h" -#include "assert.h" -#include "board.h" -#include "rpmsg/rpmsg.h" -#include "debug_console_imx.h" -#include "mu_imx.h" -#include "plat_porting.h" - -/* - * APP decided interrupt priority - */ -#define APP_MU_IRQ_PRIORITY 3 - -#define MAX_STRING_SIZE 496 /* Maximum size to hold the data A7 gives */ - -/* - * For the most worst case, master will send 3 consecutive messages which remote - * do not process. - * The synchronization between remote and master is that each time endpoint callback - * is called, the MU Receive interrupt is temperorily disabled. Until the next time - * remote consumes the message, the interrupt will not be enabled again. - * When the interrupt is not enabled, Master can not send the notify, it will blocks - * there and can not send further message. - * In the worst case, master send the first message, it triggles the ISR in remote - * side, remote ISR clear the MU status bit so master can send the second message - * and notify again, master can continue to send the 3rd message but will blocks - * when trying to notify. Meanwhile, remote side is still in the first ISR which - * has a loop to receive all the 3 messages. - * Master is blocked and can not send the 4th message, remote side ISR copies all - * this 3 message to app buffer and informs the app layer to consume them. After - * a message is consumed, the ISR is enabled again and the second notify is received. - * This unblocks the master to complete the 3rd notify and send the next message. - * The 4th notify will not complete until remote consumes the second message. - * The situation goes on and we can see application layer need a maximum size 3 - * buffer to hold the unconsumed messages. STRING_BUFFER_CNT is therefore set to 3 - */ -#define STRING_BUFFER_CNT 3 - -/* Internal functions */ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl); -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl); -static void rpmsg_read_cb(struct rpmsg_channel *, void *, int, void *, unsigned long); - -/* Globals */ -static struct remote_device *rdev; -static struct rpmsg_channel *app_chnl; -static char strVar[STRING_BUFFER_CNT][MAX_STRING_SIZE + 1]; -static uint8_t app_idx = 0; -static uint8_t handler_idx = 0; -static SemaphoreHandle_t app_sema; - -/*! - * @brief A basic RPMSG task - */ -void StrEchoTask(void *pvParameters) -{ - PRINTF("RPMSG String Echo Demo...\r\n"); - - app_sema = xSemaphoreCreateCounting(STRING_BUFFER_CNT + 1, 0); - - PRINTF("RPMSG Init as Remote\r\n"); - /* - * RPMSG Init as REMOTE - */ - rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); - - /* - * rpmsg_channel_created will post the first semaphore - */ - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); - - - /* - * pingpong demo loop - */ - for (;;) { - xSemaphoreTake(app_sema, portMAX_DELAY); - /* - * Take from next app string buffer - */ - if ((strlen(strVar[app_idx]) == 2) && (strVar[app_idx][0] == 0xd) && (strVar[app_idx][1] == 0xa)) - PRINTF("Get New Line From A7 From Slot %d\r\n", app_idx); - else - PRINTF("Get Message From A7 : \"%s\" [len : %d] from slot %d\r\n", strVar[app_idx], strlen(strVar[app_idx]), app_idx); - - /* - * echo back - */ - rpmsg_send(app_chnl, (void*)strVar[app_idx], strlen(strVar[app_idx])); - app_idx = (app_idx + 1) % STRING_BUFFER_CNT; - /* - * once a message is consumed, the MU receive interrupt can be enabled - * again - */ - MU_EnableRxFullInt(MU0_B, MU_RPMSG_CHANNEL); - } -} - -/* - * MU Interrrupt ISR - */ -void BOARD_MU_HANDLER(void) -{ - /* - * calls into rpmsg_handler provided by middleware - */ - rpmsg_handler(); -} - -int main(void) -{ - hardware_init(); - - /* - * Prepare for the MU Interrupt - * MU must be initialized before rpmsg init is called - */ - MU_Init(BOARD_MU_BASE_ADDR); - NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); - NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); - - // Create a demo task which will print Hello world and echo user's input. - xTaskCreate(StrEchoTask, "String Echo Task", configMINIMAL_STACK_SIZE, - NULL, tskIDLE_PRIORITY+1, NULL); - - // Start FreeRTOS scheduler. - vTaskStartScheduler(); - - // Should never reach this point. - while (true); -} - -/* rpmsg_rx_callback will call into this for a channel creation event*/ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) -{ - /* - * we should give the created rp_chnl handler to app layer - */ - app_chnl = rp_chnl; - - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} - -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) -{ - rpmsg_destroy_ept(rp_chnl->rp_ept); -} - -static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, - void * priv, unsigned long src) -{ - /* - * Temperorily Disable MU Receive Interrupt to avoid master - * sending too many messages and remote will fail to keep pace - * to consume - */ - MU_DisableRxFullInt(MU0_B, MU_RPMSG_CHANNEL); - /* - * Copy to next app string buffer - */ - assert(len <= MAX_STRING_SIZE); - memcpy((void*)strVar[handler_idx], data, len); - /* - * Add trailing '\0' - */ - strVar[handler_idx][len] = 0; - handler_idx = (handler_idx + 1) % STRING_BUFFER_CNT; - xSemaphoreGiveFromISR(app_sema, NULL); -} -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt new file mode 100644 index 0000000..eae2fa5 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt @@ -0,0 +1,172 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_str_echo_bm_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../str_echo_bm.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_str_echo_bm_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_bm_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example m) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example c) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_bm_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_bm_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject new file mode 100644 index 0000000..f2a7733 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project new file mode 100644 index 0000000..e210c84 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_str_echo_bm_example_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.srpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/str_echo_bm.c1PARENT-1-PROJECT_LOC/str_echo_bm.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c new file mode 100644 index 0000000..c96d505 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c @@ -0,0 +1,205 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "rpmsg/rpmsg_ext.h" +#include "string.h" +#include "assert.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +/* + * For the most worst case, master will send 3 consecutive messages which remote + * do not process. + * The synchronization between remote and master is that each time endpoint callback + * is called, the MU Receive interrupt is temperorily disabled. Until the next time + * remote consumes the message, the interrupt will not be enabled again. + * When the interrupt is not enabled, Master can not send the notify, it will blocks + * there and can not send further message. + * In the worst case, master send the first message, it triggles the ISR in remote + * side, remote ISR clear the MU status bit so master can send the second message + * and notify again, master can continue to send the 3rd message but will blocks + * when trying to notify. Meanwhile, remote side is still in the first ISR which + * has a loop to receive all the 3 messages. + * Master is blocked and can not send the 4th message, remote side ISR stores all + * this 3 messages to app buffer and informs the app layer to consume them. After + * 3 messages are consumed, the ISR is enabled again and the second notify is received. + * This unblocks the master to complete the 3rd notify and send the 4th message. + * The situation goes on and we can see application layer need a maximum size 3 + * buffer to hold the unconsumed messages. STRING_BUFFER_CNT is therefore set to 3 + */ +#define STRING_BUFFER_CNT 3 + +typedef struct +{ + unsigned long src; + void* data; + int len; +} app_message_t; + +/* Globals */ +static struct rpmsg_channel *app_chnl = NULL; +static app_message_t app_msg[STRING_BUFFER_CNT]; +static char app_buf[512]; /* Each RPMSG buffer can carry less than 512 payload */ +static uint8_t app_idx = 0; +static uint8_t handler_idx = 0; +static volatile int32_t msg_count = 0; + +static void rpmsg_enable_rx_int(bool enable) +{ + if (enable) + { + if ((--msg_count) == 0) + MU_EnableRxFullInt(MUB, RPMSG_MU_CHANNEL); + } + else + { + if ((msg_count++) == 0) + MU_DisableRxFullInt(MUB, RPMSG_MU_CHANNEL); + } +} + +static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, + void * priv, unsigned long src) +{ + /* + * Temperorily Disable MU Receive Interrupt to avoid master + * sending too many messages and remote will fail to keep pace + * to consume (flow control) + */ + rpmsg_enable_rx_int(false); + + /* Hold the RPMsg rx buffer to be used in main loop */ + rpmsg_hold_rx_buffer(rp_chnl, data); + app_msg[handler_idx].src = src; + app_msg[handler_idx].data = data; + app_msg[handler_idx].len = len; + + /* Move to next free message index */ + handler_idx = (handler_idx + 1) % STRING_BUFFER_CNT; +} + +/* rpmsg_rx_callback will call into this for a channel creation event*/ +static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) +{ + /* We should give the created rp_chnl handler to app layer */ + app_chnl = rp_chnl; + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); +} + +static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) +{ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main(void) +{ + struct remote_device *rdev; + int len; + void *tx_buf; + unsigned long size; + + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Print the initial banner */ + PRINTF("\r\nRPMSG String Echo Bare Metal Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); + + /* + * str_echo demo loop + */ + for (;;) + { + /* Wait message to be available */ + while (msg_count == 0) + { + } + + /* Copy string from RPMsg rx buffer */ + len = app_msg[app_idx].len; + assert(len < sizeof(app_buf)); + memcpy(app_buf, app_msg[app_idx].data, len); + app_buf[len] = 0; /* End string by '\0' */ + + if ((len == 2) && (app_buf[0] == 0xd) && (app_buf[1] == 0xa)) + PRINTF("Get New Line From Master Side From Slot %d\r\n", app_idx); + else + PRINTF("Get Message From Master Side : \"%s\" [len : %d] from slot %d\r\n", app_buf, len, app_idx); + + /* Get tx buffer from RPMsg */ + tx_buf = rpmsg_alloc_tx_buffer(app_chnl, &size, RPMSG_TRUE); + assert(tx_buf); + /* Copy string to RPMsg tx buffer */ + memcpy(tx_buf, app_buf, len); + /* Echo back received message with nocopy send */ + rpmsg_sendto_nocopy(app_chnl, tx_buf, len, app_msg[app_idx].src); + + /* Release held RPMsg rx buffer */ + rpmsg_release_rx_buffer(app_chnl, app_msg[app_idx].data); + app_idx = (app_idx + 1) % STRING_BUFFER_CNT; + + /* Once a message is consumed, minus the msg_count and might enable MU interrupt again */ + rpmsg_enable_rx_int(true); + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h new file mode 100644 index 0000000..c57902e --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt new file mode 100644 index 0000000..19eeddc --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt @@ -0,0 +1,199 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_str_echo_freertos_example + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../str_echo_freertos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_str_echo_freertos_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_freertos_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example m) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example c) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_freertos_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_freertos_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.bin) diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject new file mode 100644 index 0000000..4f01e6c --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project new file mode 100644 index 0000000..74711fd --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_str_echo_freertos_example_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/str_echo_freertos.c1PARENT-1-PROJECT_LOC/str_echo_freertos.crpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.crpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c new file mode 100644 index 0000000..b34b3d7 --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "rpmsg/rpmsg_rtos.h" +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "string.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +#define APP_TASK_STACK_SIZE 256 + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +/* Globals */ +static char app_buf[512]; /* Each RPMSG buffer can carry less than 512 payload */ + +/*! + * @brief A basic RPMSG task + */ +static void StrEchoTask(void *pvParameters) +{ + int result; + struct remote_device *rdev = NULL; + struct rpmsg_channel *app_chnl = NULL; + void *rx_buf; + int len; + unsigned long src; + void *tx_buf; + unsigned long size; + + /* Print the initial banner */ + PRINTF("\r\nRPMSG String Echo FreeRTOS RTOS API Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + result = rpmsg_rtos_init(0 /*REMOTE_CPU_ID*/, &rdev, RPMSG_MASTER, &app_chnl); + assert(result == 0); + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); + + /* + * str_echo demo loop + */ + for (;;) + { + /* Get RPMsg rx buffer with message */ + result = rpmsg_rtos_recv_nocopy(app_chnl->rp_ept, &rx_buf, &len, &src, 0xFFFFFFFF); + assert(result == 0); + + /* Copy string from RPMsg rx buffer */ + assert(len < sizeof(app_buf)); + memcpy(app_buf, rx_buf, len); + app_buf[len] = 0; /* End string by '\0' */ + + if ((len == 2) && (app_buf[0] == 0xd) && (app_buf[1] == 0xa)) + PRINTF("Get New Line From Master Side\r\n"); + else + PRINTF("Get Message From Master Side : \"%s\" [len : %d]\r\n", app_buf, len); + + /* Get tx buffer from RPMsg */ + tx_buf = rpmsg_rtos_alloc_tx_buffer(app_chnl->rp_ept, &size); + assert(tx_buf); + /* Copy string to RPMsg tx buffer */ + memcpy(tx_buf, app_buf, len); + /* Echo back received message with nocopy send */ + result = rpmsg_rtos_send_nocopy(app_chnl->rp_ept, tx_buf, len, src); + assert(result == 0); + + /* Release held RPMsg rx buffer */ + result = rpmsg_rtos_recv_nocopy_free(app_chnl->rp_ept, rx_buf); + assert(result == 0); + } +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +int main(void) +{ + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Create a demo task. */ + xTaskCreate(StrEchoTask, "String Echo Task", APP_TASK_STACK_SIZE, + NULL, tskIDLE_PRIORITY+1, NULL); + + /* Start FreeRTOS scheduler. */ + vTaskStartScheduler(); + + /* Should never reach this point. */ + while (true); +} +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..bd4ca6f --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt index eff480e..517dd77 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../sema4_mutex.c" "${ProjDirPath}/../sema4_mutex.h" @@ -109,6 +113,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -120,6 +125,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.cproject index 27bd6d6..08da60b 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.cproject +++ b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.project index 4b21d84..d8da118 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.project +++ b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/sema4_mutex.c1PARENT-1-PROJECT_LOC/sema4_mutex.csource2virtual:/virtualsource/sema4_mutex.h1PARENT-1-PROJECT_LOC/sema4_mutex.hdriver2virtual:/virtualdriver/sema4.c1PARENT-5-PROJECT_LOC/platform/drivers/src/sema4.cdriver2virtual:/virtualdriver/sema4.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/sema4.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/sema4_mutex.c1PARENT-1-PROJECT_LOC/sema4_mutex.csource2virtual:/virtualsource/sema4_mutex.h1PARENT-1-PROJECT_LOC/sema4_mutex.hdriver2virtual:/virtualdriver/sema4.c1PARENT-5-PROJECT_LOC/platform/drivers/src/sema4.cdriver2virtual:/virtualdriver/sema4.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/sema4.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/makedir.bat b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd deleted file mode 100644 index 53c1d2b..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - sema4_demo_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp deleted file mode 100644 index 171c428..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.c$PROJ_DIR$/../sema4_mutex.c$PROJ_DIR$/../sema4_mutex.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/sema4.c$PROJ_DIR$/../../../../../platform/drivers/inc/sema4.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.eww b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.eww deleted file mode 100644 index 4bebbae..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/iar/sema4_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allsema4_demoReleasesema4_demoDebugReleasesema4_demoReleaseDebugsema4_demoDebug -$WS_DIR$/sema4_demo.ewp diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/main.c b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/main.c index ccf070e..d24111f 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/main.c +++ b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/main.c @@ -98,7 +98,7 @@ int main(void) // Initialize SEMA4 mutex gate and reset SEMA4_Mutex_Init(SEMA4_DEMO_GATE, true); - // Create a demo task which will print Hello world and echo user's input. + // Create a demo task. xTaskCreate(Sema4Task, "SEMA4 Task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY+1, NULL); diff --git a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/sema4_mutex.c b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/sema4_mutex.c index 366f481..a52cfba 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sema4_demo/sema4_mutex.c +++ b/examples/imx7d_sdb_m4/demo_apps/sema4_demo/sema4_mutex.c @@ -122,7 +122,7 @@ void SEMA4_Mutex_Unlock(uint32_t gate) void BOARD_SEMA4_HANDLER() { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; uint32_t i; uint16_t flag; @@ -135,7 +135,12 @@ void BOARD_SEMA4_HANDLER() /* Because the status cannot be cleared manually, we have to disable the gate's * interrupt to avoid endlessly going into ISR */ SEMA4_SetIntCmd(BOARD_SEMA4_BASEADDR, flag, false); + + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore[i], &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } } } diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/FreeRTOSConfig.h b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..a2b974b --- /dev/null +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt index c2ab91e..e0e8ebf 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/CMakeLists.txt @@ -28,39 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -71,8 +70,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) INCLUDE_DIRECTORIES(${ProjDirPath}/../common) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -83,6 +84,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) INCLUDE_DIRECTORIES(${ProjDirPath}/../common) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -91,7 +93,7 @@ ADD_EXECUTABLE(sensor_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../sensor_demo_imx7d/main.c" "${ProjDirPath}/../common/i2c_xfer.c" "${ProjDirPath}/../common/i2c_xfer.h" @@ -101,8 +103,12 @@ ADD_EXECUTABLE(sensor_demo "${ProjDirPath}/../common/fxos8700.h" "${ProjDirPath}/../common/fxas21002.c" "${ProjDirPath}/../common/fxas21002.h" + "${ProjDirPath}/../../../../../platform/drivers/src/gpio_imx.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/gpio_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/i2c_imx.c" "${ProjDirPath}/../../../../../platform/drivers/inc/i2c_imx.h" + "${ProjDirPath}/../../../../../platform/drivers/src/rdc_semaphore.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_semaphore.h" "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" @@ -119,6 +125,7 @@ ADD_EXECUTABLE(sensor_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -130,6 +137,7 @@ ADD_EXECUTABLE(sensor_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" @@ -145,6 +153,8 @@ ADD_EXECUTABLE(sensor_demo "${ProjDirPath}/../../../clock_freq.c" "${ProjDirPath}/../../../clock_freq.h" "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../gpio_pins.c" + "${ProjDirPath}/../../../gpio_pins.h" ) SET_TARGET_PROPERTIES(sensor_demo PROPERTIES OUTPUT_NAME "sensor_demo.elf") diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_all.bat b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_release.bat b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/clean.bat b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.c b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.c index 4764390..4464976 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.c +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.c @@ -36,79 +36,140 @@ /*FUNCTION**************************************************************** * -* Function Name : fxas21002_init +* Function Name : FXAS_Init * Returned Value : result * Comments : Initialize FXAS21002 Gyro sensor. * *END*********************************************************************/ -bool fxas21002_init(gyro_sensor_t* pThisGyro) +bool FXAS_Init(fxas_handle_t *handle, const fxas_init_t *fxas_config) { - uint8_t txBuffer; - uint8_t cmdBuffer[2]; + // Place FXAS21002 in Standby. + FXAS_WriteReg(handle, FXAS21002_CTRL_REG1, 0x00); + + // Configure full scale range. + FXAS_WriteReg(handle, FXAS21002_CTRL_REG0, (uint8_t)fxas_config->range); + + // Configure output data rate. + FXAS_WriteReg(handle, FXAS21002_CTRL_REG1, (uint8_t)fxas_config->dataRate); + + return true; +} + +/*FUNCTION********************************************************************** + * + * Function Name : FXAS_Deinit + * Description : Disable the FXAS21002 and reset register content. + * + *END**************************************************************************/ +bool FXAS_Deinit(fxas_handle_t *handle) +{ + // Reset Register content and place FXAS21002 into Standby Mode. + return FXAS_WriteReg(handle, FXAS21002_CTRL_REG1, 0x40); +} + +/*FUNCTION**************************************************************** +* +* Function Name : FXAS_Enable +* Returned Value : result +* Comments : Enable the FXAS21002 sensor. +* +*END*********************************************************************/ +bool FXAS_Enable(fxas_handle_t *handle) +{ + uint8_t regVal; - pThisGyro->fDegPerSecPerCount = FXAS21002_DEGPERSECPERCOUNT; - - // Write 0000 0000 = 0x00 to CTRL_REG1 to place FXOS21002 in Standby - // [7]: ZR_cond=0 - // [6]: RST=0 - // [5]: ST=0 self test disabled - // [4-2]: DR[2-0]=000 for 800Hz - // [1-0]: Active=0, Ready=0 for Standby mode - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; - cmdBuffer[1] = FXAS21002_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + if (!FXAS_ReadReg(handle, FXAS21002_CTRL_REG1, ®Val)) return false; - // write 0000 0000 = 0x00 to CTRL_REG0 to configure range and filters - // [7-6]: BW[1-0]=00, LPF disabled - // [5]: SPIW=0 4 wire SPI (irrelevant) - // [4-3]: SEL[1-0]=00 for 10Hz HPF at 200Hz ODR - // [2]: HPF_EN=0 disable HPF - // [1-0]: FS[1-0]=00 for 1600dps (TBD CHANGE TO 2000dps when final trimmed parts available) - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; - cmdBuffer[1] = FXAS21002_CTRL_REG0; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + /* Active FXAS21002 */ + regVal |= 0x02; + + if (!FXAS_WriteReg(handle, FXAS21002_CTRL_REG1, regVal)) + return false; + + return true; +} + +/*FUNCTION**************************************************************** +* +* Function Name : FXAS_Disable +* Returned Value : result +* Comments : Disable the FXAS21002 sensor. +* +*END*********************************************************************/ +bool FXAS_Disable(fxas_handle_t *handle) +{ + uint8_t regVal; + + if (!FXAS_ReadReg(handle, FXAS21002_CTRL_REG1, ®Val)) return false; - // write 0000 0010 = 0x02 to CTRL_REG1 to configure 800Hz ODR and enter Active mode - // [7]: ZR_cond=0 - // [6]: RST=0 - // [5]: ST=0 self test disabled - // [4-2]: DR[2-0]=000 for 800Hz ODR - // [1-0]: Active=1, Ready=0 for Active mode - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; - cmdBuffer[1] = FXAS21002_CTRL_REG1; - txBuffer = 0x02; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + /* De-active FXAS21002 */ + regVal &= ~0x02; + + if (!FXAS_WriteReg(handle, FXAS21002_CTRL_REG1, regVal)) return false; return true; } +/*FUNCTION********************************************************************** + * + * Function Name : FXAS_WriteReg + * Description : Write the specified register of FXAS21002. + * The writing process is through I2C. + * + *END**************************************************************************/ +bool FXAS_WriteReg(fxas_handle_t *handle, uint8_t regAddr, uint8_t regVal) +{ + uint8_t cmdBuffer[2]; + + cmdBuffer[0] = handle->address << 1; + cmdBuffer[1] = regAddr; + + return I2C_XFER_SendDataBlocking(handle->device, cmdBuffer, 2, ®Val, 1); +} + +/*FUNCTION********************************************************************** + * + * Function Name : FXAS_ReadReg + * Description : Read the specified register value of FXAS21002. + * The reading process is through I2C. + * + *END**************************************************************************/ +bool FXAS_ReadReg(fxas_handle_t *handle, uint8_t regAddr, uint8_t *regValPtr) +{ + uint8_t cmdBuffer[3]; + + cmdBuffer[0] = handle->address << 1; + cmdBuffer[1] = regAddr; + cmdBuffer[2] = (handle->address << 1) + 1; + + return I2C_XFER_ReceiveDataBlocking(handle->device, cmdBuffer, 3, regValPtr, 1); +} + /*FUNCTION**************************************************************** * -* Function Name : fxas21002_read_data +* Function Name : FXAS_ReadData * Returned Value : result -* Comments : Get current height and temperature from fxas21002. +* Comments : Get 3-Axes Gyro from fxas21002. * *END*********************************************************************/ -bool fxas21002_read_data(gyro_sensor_t* pThisGyro) +bool FXAS_ReadData(fxas_handle_t *handle, fxas_data_t *val) { uint8_t rxBuffer[6]; uint8_t cmdBuffer[3]; - // store the gain terms in the GyroSensor structure - cmdBuffer[0] = BOARD_I2C_FXAS21002_ADDR << 1; + // Store the gain terms in the GyroSensor data structure. + cmdBuffer[0] = handle->address << 1; cmdBuffer[1] = FXAS21002_OUT_X_MSB; - cmdBuffer[2] = (BOARD_I2C_FXAS21002_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 6)) + cmdBuffer[2] = (handle->address << 1) + 1; + if (!I2C_XFER_ReceiveDataBlocking(handle->device, cmdBuffer, 3, rxBuffer, 6)) return false; - pThisGyro->iYpFast[0] = (rxBuffer[0] << 8) | rxBuffer[1]; - pThisGyro->iYpFast[1] = (rxBuffer[2] << 8) | rxBuffer[3]; - pThisGyro->iYpFast[2] = (rxBuffer[4] << 8) | rxBuffer[5]; + val->gyroX = (rxBuffer[0] << 8) | rxBuffer[1]; + val->gyroY = (rxBuffer[2] << 8) | rxBuffer[3]; + val->gyroZ = (rxBuffer[4] << 8) | rxBuffer[5]; return true; } diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.h b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.h index a3adbae..aa8408f 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.h +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxas21002.h @@ -31,21 +31,23 @@ #ifndef __FXAS21002_H__ #define __FXAS21002_H__ -#define OVERSAMPLE_RATIO (64) // int32: 8x: 3DOF, 6DOF, 9DOF run at SENSORFS / OVERSAMPLE_RATIO Hz - -// place the gain in the gyro structure -#define FXAS21002_COUNTSPERDEGPERSEC (16.0F) // for production 2000dps range (2000dps=32000) -#define FXAS21002_DEGPERSECPERCOUNT (0.0625F) // must be reciprocal of FCOUNTSPERDEGPERSEC +/*! + * @addtogroup fxas21002 + * @{ + */ -/* I2C Slave Address define */ +/******************************************************************************* + * Definitions + ******************************************************************************/ +/*! @brief FXAS21002 I2C address. */ #define FXAS21002_ADDRESS_0 (0x20) #define FXAS21002_ADDRESS_1 (0x21) #define FXAS21002_ADDRESS_DEFAULT (FXAS21002_ADDRESS_0) -/* FXAS21002 device ID number */ +/*! @brief FXAS21002 device ID number. */ #define FXAS21002_DEVICE_ID (0xD7) -/* FXAS21002 Registers address definition */ +/*! @brief FXAS21002 Registers address definition. */ #define FXAS21002_STATUS (0x00) #define FXAS21002_OUT_X_MSB (0x01) #define FXAS21002_OUT_X_LSB (0x02) @@ -69,28 +71,119 @@ #define FXAS21002_CTRL_REG2 (0x14) #define FXAS21002_CTRL_REG3 (0x15) -// gyro sensor structure definition -typedef struct _gyro_sensor +/* + * Field Definitions. + */ + +/*! @brief fxas21002 output data rate configuration. */ +typedef enum _fxas_data_rate_cfg +{ + fxasDataRate800Hz = 0x0 << 2, + fxasDataRate400HZ = 0x1 << 2, + fxasDataRate200HZ = 0x2 << 2, + fxasDataRate100HZ = 0x3 << 2, + fxasDataRate50HZ = 0x4 << 2, + fxasDataRate25HZ = 0x5 << 2, + fxasDataRate12_5HZ = 0x6 << 2, +} fxas_data_rate_cfg_t; + +/*! @brief fxas21002 gyroscope full-scale range */ +typedef enum _fxas_range_cfg +{ + fxasRange2000Dps = 0x0, /*!< +-2000 dps mode */ + fxasRange1000Dps = 0x1, /*!< +-1000 dps mode */ + fxasRange500Dps = 0x2, /*!< +-500 dps mode */ + fxasRange250Dps = 0x3 /*!< +-250 dps mode */ +} fxas_range_cfg_t; + +/*! @brief fxas21002 configure definition. */ +typedef struct _fxas_handle +{ + /* I2C relevant definition. */ + i2c_handle_t *device; /*!< I2C handle. */ + uint8_t address; /*!< fxas21002 I2C bus address. */ +} fxas_handle_t; + +/*! @brief Initialize structure of fxas21002 */ +typedef struct _fxas_init +{ + fxas_data_rate_cfg_t dataRate; /*!< Output data rate selection */ + fxas_range_cfg_t range; /*!< Accelerometer full scale range selection */ +} fxas_init_t; + +/*! @brief fxas gyroscope data struct */ +typedef struct _fxas_data { - int32_t iSumYpFast[3]; // sum of fast measurements - float fYp[3]; // raw gyro sensor output (deg/s) - float fDegPerSecPerCount; // initialized to FDEGPERSECPERCOUNT - int16_t iYpFast[3]; // fast (typically 200Hz) readings - int16_t iYp[3]; // averaged gyro sensor output (counts) -} gyro_sensor_t; + int16_t gyroX; + int16_t gyroY; + int16_t gyroZ; +} fxas_data_t; /* Function prototypes */ #if defined(__cplusplus) extern "C" { #endif -bool fxas21002_init(gyro_sensor_t*); -bool fxas21002_read_data(gyro_sensor_t*); +/*! + * @brief fxas21002 initialize function. + * + * This function should be called after i2c module initialize, and in this function, + * some configurations are fixed. The second parameter is the initialize structure to fxas21002. + * If users want to change the settings after initialization, they have to use FXAS_writeReg() + * to set the register value of fxas21002. + * @param handle fxas21002 handle structure. + * @param fxos_config fxas21002 configuration structure. + */ +bool FXAS_Init(fxas_handle_t *handle, const fxas_init_t *fxas_config); + +/*! + * @brief Deinit the fxas21002 sensor. + * + * Mainly used to set fxas21002 to standby mode and reset its registers content. + * @param handle fxas21002 handle structure pointer. + */ +bool FXAS_Deinit(fxas_handle_t *handle); + +/*! + * @brief Enable the FXAS21002 sensor. + * @param handle FXAS21002 handler structure. + */ +bool FXAS_Enable(fxas_handle_t *handle); + +/*! + * @brief Disable the FXAS21002 sensor. + * @param handle FXAS21002 handler structure. + */ +bool FXAS_Disable(fxas_handle_t *handle); + +/*! + * @brief Write register to fxas21002 using I2C. + * @param handle fxas21002 handle structure. + * @param regAddr The register address in fxas21002. + * @param regVal Value needs to write into the register. + */ +bool FXAS_WriteReg(fxas_handle_t *handle, uint8_t regAddr, uint8_t regVal); + +/*! + * @brief Read register from fxas21002 using I2C. + * @param handle fxas21002 handle structure. + * @param regAddr The register address in fxas21002. + * @param regValPtr The read value buffer pointer. + */ +bool FXAS_ReadReg(fxas_handle_t *handle, uint8_t regAddr, uint8_t *regValPtr); + +/*! + * @brief Read sensor data from fxas21002 using I2C + * @param handler fxas21002 handler structure. + * @param val Sensor data read from fxas21002. + */ +bool FXAS_ReadData(fxas_handle_t *handle, fxas_data_t *val); #ifdef __cplusplus } #endif +/*! @} */ #endif /* __FXAS21002_H__ */ /******************************************************************************* diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.c b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.c index 207c594..a2130fe 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.c +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.c @@ -36,88 +36,75 @@ /*FUNCTION**************************************************************** * -* Function Name : fxos8700_init +* Function Name : FXOS_Init * Returned Value : result * Comments : Initialize FXOS8700 Acc and Mag sensor. * *END*********************************************************************/ -bool fxos8700_init(void) +bool FXOS_Init(fxos_handle_t *handle, const fxos_init_t *fxos_config) { - uint8_t txBuffer; - uint8_t cmdBuffer[2]; + // Place FXOS8700 into standby + if (!FXOS_WriteReg(handle, FXOS8700_CTRL_REG1, 0x00)) + return false; + + // Set oversampling to reduce magnetometer noise + // Select hybrid mode with accel and magnetometer active + if (!FXOS_WriteReg(handle, FXOS8700_M_CTRL_REG1, (uint8_t)fxos_config->osr | (uint8_t)fxos_config->hms)) + return false; - // write 0000 0000 = 0x00 to CTRL_REG1 to place FXOS8700 into standby - // [7-1] = 0000 000 - // [0]: active=0 - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + // Map the magnetometer registers to follow the accelerometer registers + if (!FXOS_WriteReg(handle, FXOS8700_M_CTRL_REG2, 0x20)) return false; - // write 0001 1111 = 0x1F to M_CTRL_REG1 - // [7]: m_acal=0: auto calibration disabled - // [6]: m_rst=0: one-shot magnetic reset disabled - // [5]: m_ost=0: one-shot magnetic measurement disabled - // [4-2]: m_os=111=7: 8x oversampling (for 200Hz) to reduce magnetometer noise - // [1-0]: m_hms=11=3: select hybrid mode with accel and magnetometer active - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_M_CTRL_REG1; - txBuffer = 0x1F; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + // Set accelerometer range(2G, 4G or 8G) + if (!FXOS_WriteReg(handle, FXOS8700_XYZ_DATA_CFG, (uint8_t)fxos_config->range)) return false; - // write 0010 0000 = 0x20 to magnetometer control register 2 - // [7]: reserved - // [6]: reserved - // [5]: hyb_autoinc_mode=1 to map the magnetometer registers to follow the accelerometer registers - // [4]: m_maxmin_dis=0 to retain default min/max latching even though not used - // [3]: m_maxmin_dis_ths=0 - // [2]: m_maxmin_rst=0 - // [1-0]: m_rst_cnt=00 to enable magnetic reset each cycle - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_M_CTRL_REG2; - txBuffer = 0x20; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + // Setting for high resolution (maximum over sampling) + if (!FXOS_WriteReg(handle, FXOS8700_CTRL_REG2, 0x02)) return false; - // write 0000 0001= 0x01 to XYZ_DATA_CFG register - // [7]: reserved - // [6]: reserved - // [5]: reserved - // [4]: hpf_out=0 - // [3]: reserved - // [2]: reserved - // [1-0]: fs=01 for 4g mode: 2048 counts / g = 8192 counts / g after 2 bit left shift - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_XYZ_DATA_CFG; - txBuffer = 0x01; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + // Set the data rate. + if (!FXOS_WriteReg(handle, FXOS8700_CTRL_REG1, ((uint8_t)fxos_config->dataRate))) return false; - // write 0000 0010 = 0x02 to CTRL_REG2 to set MODS bits - // [7]: st=0: self test disabled - // [6]: rst=0: reset disabled - // [5]: unused - // [4-3]: smods=00 - // [2]: slpe=0: auto sleep disabled - // [1-0]: mods=10 for high resolution (maximum over sampling) - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_CTRL_REG2; - txBuffer = 0x02; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + return true; +} + +/*FUNCTION********************************************************************** + * + * Function Name : FXOS_Deinit + * Description : Disable the FXOS8700 and reset register content. + * + *END**************************************************************************/ +bool FXOS_Deinit(fxos_handle_t *handle) +{ + // Write 0000 0000 = 0x00 to CTRL_REG1 to place FXOS8700 into standby. + if (!FXOS_WriteReg(handle, FXOS8700_CTRL_REG1, 0x00)) + return false; + + // Reset Register content. + return FXOS_WriteReg(handle, FXOS8700_CTRL_REG2, 0x40); +} + +/*FUNCTION**************************************************************** +* +* Function Name : FXOS_Enable +* Returned Value : result +* Comments : Enable the FXOS8700 sensor. +* +*END*********************************************************************/ +bool FXOS_Enable(fxos_handle_t *handle) +{ + uint8_t regVal; + + if (!FXOS_ReadReg(handle, FXOS8700_CTRL_REG1, ®Val)) return false; - // write 0000 1101 = 0x0D to accelerometer control register 1 - // [7-6]: aslp_rate=00 - // [5-3]: dr=001=1 for 200Hz data rate (when in hybrid mode) - // [2]: lnoise=1 for low noise mode (since we're in 4g mode) - // [1]: f_read=0 for normal 16 bit reads - // [0]: active=1 to take the part out of standby and enable sampling - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; - cmdBuffer[1] = FXOS8700_CTRL_REG1; - txBuffer = 0x0D; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + /* Active FXOS8700 and Enable Reduced noise mode */ + regVal |= 0x05; + + if (!FXOS_WriteReg(handle, FXOS8700_CTRL_REG1, regVal)) return false; return true; @@ -125,30 +112,85 @@ bool fxos8700_init(void) /*FUNCTION**************************************************************** * -* Function Name : fxos8700_read_data +* Function Name : FXOS_Disable +* Returned Value : result +* Comments : Disable the FXOS8700 sensor. +* +*END*********************************************************************/ +bool FXOS_Disable(fxos_handle_t *handle) +{ + uint8_t regVal; + + if (!FXOS_ReadReg(handle, FXOS8700_CTRL_REG1, ®Val)) + return false; + + /* De-active FXOS8700 & Disable Reduced noise mode*/ + regVal &= ~0x05; + + if (!FXOS_WriteReg(handle, FXOS8700_CTRL_REG1, regVal)) + return false; + + return true; +} + +/*FUNCTION********************************************************************** + * + * Function Name : FXOS_WriteReg + * Description : Write the specified register of fxos8700. + * The writing process is through I2C. + *END**************************************************************************/ +bool FXOS_WriteReg(fxos_handle_t *handle, uint8_t regAddr, uint8_t regVal) +{ + uint8_t cmdBuffer[2]; + + cmdBuffer[0] = handle->address << 1; + cmdBuffer[1] = regAddr; + + return I2C_XFER_SendDataBlocking(handle->device, cmdBuffer, 2, ®Val, 1); +} + +/*FUNCTION********************************************************************** + * + * Function Name : FXOS_ReadReg + * Description : Read the specified register value of fxos8700. + * The reading process is through I2C. + *END**************************************************************************/ +bool FXOS_ReadReg(fxos_handle_t *handle, uint8_t regAddr, uint8_t *regValPtr) +{ + uint8_t cmdBuffer[3]; + + cmdBuffer[0] = handle->address << 1; + cmdBuffer[1] = regAddr; + cmdBuffer[2] = (handle->address << 1) + 1; + + return I2C_XFER_ReceiveDataBlocking(handle->device, cmdBuffer, 3, regValPtr, 1); +} + +/*FUNCTION**************************************************************** +* +* Function Name : FXOS_ReadData * Returned Value : result * Comments : Get current Acc and Mag from FXOS8700 6-axis sensor. * *END*********************************************************************/ -bool fxos8700_read_data(int16_t *Ax, int16_t *Ay, int16_t *Az, - int16_t *Mx, int16_t *My, int16_t *Mz) +bool FXOS_ReadData(fxos_handle_t *handle, fxos_data_t *val) { uint8_t rxBuffer[12]; uint8_t cmdBuffer[3]; // Fetch Current Acc and Mag in all Axis - cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[0] = handle->address << 1; cmdBuffer[1] = FXOS8700_OUT_X_MSB; - cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 12)) + cmdBuffer[2] = (handle->address << 1) + 1; + if (!I2C_XFER_ReceiveDataBlocking(handle->device, cmdBuffer, 3, rxBuffer, 12)) return false; - *Ax = (rxBuffer[2] << 8) | rxBuffer[3]; - *Ay = (rxBuffer[0] << 8) | rxBuffer[1]; - *Az = (rxBuffer[4] << 8) | rxBuffer[5]; - *Mx = (rxBuffer[8] << 8) | rxBuffer[9]; - *My = (rxBuffer[6] << 8) | rxBuffer[7]; - *Mz = (rxBuffer[10] << 8) | rxBuffer[11]; + val->accX = (rxBuffer[2] << 8) | rxBuffer[3]; + val->accY = (rxBuffer[0] << 8) | rxBuffer[1]; + val->accZ = (rxBuffer[4] << 8) | rxBuffer[5]; + val->magX = (rxBuffer[8] << 8) | rxBuffer[9]; + val->magY = (rxBuffer[6] << 8) | rxBuffer[7]; + val->magZ = (rxBuffer[10] << 8) | rxBuffer[11]; return true; } diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.h b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.h index 65e61cd..2cd9a3c 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.h +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/fxos8700.h @@ -27,46 +27,186 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -#ifndef __FXOS8700_H__ -#define __FXOS8700_H__ + +#ifndef __FXOS_8700_H__ +#define __FXOS_8700_H__ #include #include -/* I2C Slave Address define */ -#define FXOS8700_ADDRESS_0 (0x1C) -#define FXOS8700_ADDRESS_1 (0x1D) -#define FXOS8700_ADDRESS_2 (0x1E) -#define FXOS8700_ADDRESS_3 (0x1F) -#define FXOS8700_ADDRESS_DEFAULT (FXOS8700_ADDRESS_0) - -/* FXOS8700 device ID number */ -#define FXOS8700_DEVICE_ID (0xC7) - -/* FXOS8700 Registers address definition */ -#define FXOS8700_OUT_X_MSB (0x01) -#define FXOS8700_WHO_AM_I (0x0D) -#define FXOS8700_XYZ_DATA_CFG (0x0E) -#define FXOS8700_CTRL_REG1 (0x2A) -#define FXOS8700_CTRL_REG2 (0x2B) -#define FXOS8700_M_CTRL_REG1 (0x5B) -#define FXOS8700_M_CTRL_REG2 (0x5C) - -/* Function prototypes */ +/*! + * @addtogroup fxos8700 + * @{ + */ + +/******************************************************************************* + * Definitions + ******************************************************************************/ +/*! @brief FXOS8700 I2C address. */ +#define FXOS8700_ADDRESS_0 (0x1C) +#define FXOS8700_ADDRESS_1 (0x1D) +#define FXOS8700_ADDRESS_2 (0x1E) +#define FXOS8700_ADDRESS_3 (0x1F) +#define FXOS8700_ADDRESS_DEFAULT (FXOS8700_ADDRESS_0) + +/*! @brief FXOS8700 device ID number. */ +#define FXOS8700_DEVICE_ID (0xC7) + +/*! @brief FXOS8700 Registers address definition. */ +#define FXOS8700_OUT_X_MSB (0x01) +#define FXOS8700_WHO_AM_I (0x0D) +#define FXOS8700_XYZ_DATA_CFG (0x0E) +#define FXOS8700_CTRL_REG1 (0x2A) +#define FXOS8700_CTRL_REG2 (0x2B) +#define FXOS8700_CTRL_REG3 (0x2C) +#define FXOS8700_CTRL_REG4 (0x2D) +#define FXOS8700_CTRL_REG5 (0x2E) +#define FXOS8700_M_CTRL_REG1 (0x5B) +#define FXOS8700_M_CTRL_REG2 (0x5C) + +/* + * Field Definitions. + */ + +/*! @brief fxos8700 output data rate configuration. */ +typedef enum _fxos_data_rate_cfg +{ + fxosDataRate800Hz = 0x0 << 3, + fxosDataRate400HZ = 0x1 << 3, + fxosDataRate200HZ = 0x2 << 3, + fxosDataRate100HZ = 0x3 << 3, + fxosDataRate50HZ = 0x4 << 3, + fxosDataRate12_5HZ = 0x5 << 3, + fxosDataRate6_25HZ = 0x6 << 3, + fxosDataRate1_56HZ = 0x7 << 3 +} fxos_data_rate_cfg_t; + +/*! @brief fxos8700 oversample ratio configuration. */ +typedef enum _fxos_oversample_cfg +{ + fxosOSR0 = 0x0 << 2, + fxosOSR1 = 0x1 << 2, + fxosOSR2 = 0x2 << 2, + fxosOSR3 = 0x3 << 2, + fxosOSR4 = 0x4 << 2, + fxosOSR5 = 0x5 << 2, + fxosOSR6 = 0x6 << 2, + fxosOSR7 = 0x7 << 2 +} fxos_oversample_cfg_t; + +/*! @brief fxos8700 accelerometer/magnetometer selection. */ +typedef enum _fxos_hms_cfg +{ + fxosAccelerometerOnly = 0x0, /*!< accelerometer only */ + fxosMagnetometerOnly = 0x1, /*!< magnetometer only */ + fxosBoth = 0x3 /*!< select both accelerometer and magnetometer */ +} fxos_hms_cfg_t; + +/*! @brief fxos accelerometer full-scale range */ +typedef enum _fxos_range_cfg +{ + fxosRange2gMode = 0x0, /*!< 2g mode */ + fxosRange4gMode = 0x1, /*!< 4g mode */ + fxosRange8gMode = 0x2 /*!< 8g mode */ +} fxos_range_cfg_t; + +/*! @brief fxos configure definition. */ +typedef struct _fxos_handle +{ + /* I2C relevant definition. */ + i2c_handle_t *device; /*!< I2C handle. */ + uint8_t address; /*!< fxos I2C bus address. */ +} fxos_handle_t; + +/*! @brief Initialize structure of fxos8700 */ +typedef struct _fxos_init +{ + fxos_data_rate_cfg_t dataRate; /*!< Output data rate selection */ + fxos_oversample_cfg_t osr; /*!< Over sample ratio selection */ + fxos_hms_cfg_t hms; /*!< Accelerometer/Magnetometer selection */ + fxos_range_cfg_t range; /*!< Accelerometer full scale range selection */ +} fxos_init_t; + +/*! @brief fxos accelerometer and magnetometer data structure */ +typedef struct _fxos_data +{ + int16_t accX; + int16_t accY; + int16_t accZ; + int16_t magX; + int16_t magY; + int16_t magZ; +} fxos_data_t; + +/******************************************************************************* + * API + ******************************************************************************/ #if defined(__cplusplus) extern "C" { #endif -bool fxos8700_init(void); -bool fxos8700_read_data(int16_t *, int16_t *, int16_t *, int16_t *, int16_t *, int16_t *); +/*! + * @brief fxos8700 initialize function. + * + * This function should be called after i2c module initialize, and in this function, + * some configurations are fixed. The second parameter is the initialize structure to fxos8700. + * If users want to change the settings after initialization, they have to use FXOS_writeReg() + * to set the register value of fxos8700. + * @param handle fxos8700 handle structure. + * @param fxos_config fxos8700 configuration structure. + */ +bool FXOS_Init(fxos_handle_t *handle, const fxos_init_t *fxos_config); + +/*! + * @brief Deinit the fxos8700 sensor. + * + * Mainly used to set fxos8700 to standby mode and reset its registers content. + * @param handle fxos8700 handle structure pointer. + */ +bool FXOS_Deinit(fxos_handle_t *handle); + +/*! + * @brief Enable the FXOS8700 sensor. + * @param handle FXOS8700 handler structure. + */ +bool FXOS_Enable(fxos_handle_t *handle); + +/*! + * @brief Disable the FXOS8700 sensor. + * @param handle FXOS8700 handler structure. + */ +bool FXOS_Disable(fxos_handle_t *handle); -#ifdef __cplusplus +/*! + * @brief Write register to fxos8700 using I2C. + * @param handle fxos8700 handle structure. + * @param regAddr The register address in fxos8700. + * @param regVal Value needs to write into the register. + */ +bool FXOS_WriteReg(fxos_handle_t *handle, uint8_t regAddr, uint8_t regVal); + +/*! + * @brief Read register from fxos8700 using I2C. + * @param handle fxos8700 handle structure. + * @param regAddr The register address in fxos8700. + * @param regValPtr The read value buffer pointer. + */ +bool FXOS_ReadReg(fxos_handle_t *handle, uint8_t regAddr, uint8_t *regValPtr); + +/*! + * @brief Read sensor data from fxos8700 using I2C + * @param handle fxos8700 handle structure. + * @param val Sensor data read from fxos8700. + */ +bool FXOS_ReadData(fxos_handle_t *handle, fxos_data_t *val); + +#if defined(__cplusplus) } #endif +/*! @} */ -#endif/* __FXOS8700_H__ */ +#endif/* __FXOS_8700_H__ */ /******************************************************************************* * EOF ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.c b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.c index b8410d4..faf6395 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.c +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.c @@ -28,294 +28,313 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "FreeRTOS.h" +#include "task.h" #include "semphr.h" #include "device_imx.h" #include "i2c_imx.h" -#include "board.h" - -typedef struct _i2c_state { - const uint8_t* cmdBuff; /*!< The buffer of I2C command. */ - const uint8_t* txBuff; /*!< The buffer of data being sent.*/ - uint8_t* rxBuff; /*!< The buffer of received data. */ - uint32_t cmdSize; /*!< The remaining number of commands to be transmitted. */ - uint32_t txSize; /*!< The remaining number of bytes to be transmitted. */ - uint32_t rxSize; /*!< The remaining number of bytes to be received. */ - bool isBusy; /*!< True if there is an active transmission. */ - uint32_t operateDir; /*!< Overall I2C bus operating direction. */ - uint32_t currentDir; /*!< Current Data transfer direction. */ - uint32_t currentMode; /*!< Current I2C Bus role of this module. */ - SemaphoreHandle_t xSemaphore; /*!< I2C internal synchronize semaphore. */ -} i2c_state_t; - -/* I2C runtime state structure */ -static volatile i2c_state_t i2cState; - -void I2C_XFER_Config(i2c_init_config_t* initConfig) +#include "i2c_xfer.h" + +void I2C_XFER_Init(i2c_handle_t *handle, i2c_xfer_init_config_t *initConfig) { /* Initialize I2C state structure content. */ - i2cState.cmdBuff = 0; - i2cState.txBuff = 0; - i2cState.rxBuff = 0; - i2cState.cmdSize = 0; - i2cState.txSize = 0; - i2cState.rxSize = 0; - i2cState.isBusy = false; - i2cState.operateDir = i2cDirectionReceive; - i2cState.currentDir = i2cDirectionReceive; - i2cState.currentMode = i2cModeSlave; - i2cState.xSemaphore = xSemaphoreCreateBinary(); + handle->base = initConfig->base; + handle->irqNum = initConfig->irqNum; + handle->irqPrio = initConfig->irqPrio; + handle->cmdBuff = 0; + handle->txBuff = 0; + handle->rxBuff = 0; + handle->cmdSize = 0; + handle->txSize = 0; + handle->rxSize = 0; + handle->isBusy = false; + handle->operateDir = i2cDirectionReceive; + handle->currentDir = i2cDirectionReceive; + handle->currentMode = i2cModeSlave; + handle->xSemaphore = xSemaphoreCreateBinary(); /* Initialize I2C baud rate, mode, transfer direction and slave address. */ - I2C_Init(BOARD_I2C_BASEADDR, initConfig); + I2C_Init(handle->base, &initConfig->config); /* Set I2C Interrupt priority */ - NVIC_SetPriority(BOARD_I2C_IRQ_NUM, 3); + NVIC_SetPriority(handle->irqNum, handle->irqPrio); /* Call core API to enable the IRQ. */ - NVIC_EnableIRQ(BOARD_I2C_IRQ_NUM); + NVIC_EnableIRQ(handle->irqNum); /* Finally, enable the I2C module */ - I2C_Enable(BOARD_I2C_BASEADDR); + I2C_Enable(handle->base); } -bool I2C_XFER_SendDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, - const uint8_t* txBuffer, uint32_t txSize) +bool I2C_XFER_SendDataBlocking(i2c_handle_t *handle, const uint8_t *cmdBuff, uint32_t cmdSize, + const uint8_t *txBuffer, uint32_t txSize) { - if ((i2cState.isBusy) || (0 == txSize)) + TickType_t tickOld, tickNew; + + if ((handle->isBusy) || (0 == txSize)) return false; /* Initialize i2c transfer struct */ - i2cState.cmdBuff = cmdBuff; - i2cState.cmdSize = cmdSize; - i2cState.txBuff = txBuffer; - i2cState.txSize = txSize; - i2cState.isBusy = true; - i2cState.operateDir = i2cDirectionTransmit; + handle->cmdBuff = cmdBuff; + handle->cmdSize = cmdSize; + handle->txBuff = txBuffer; + handle->txSize = txSize; + handle->isBusy = true; + handle->operateDir = i2cDirectionTransmit; /* Clear I2C interrupt flag to avoid spurious interrupt */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + I2C_ClearStatusFlag(handle->base, i2cStatusInterrupt); - if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + if (I2C_GetStatusFlag(handle->base, i2cStatusBusBusy)) { /* Reset i2c transfer state. */ - i2cState.operateDir = i2cDirectionReceive; - i2cState.isBusy = false; + handle->operateDir = i2cDirectionReceive; + handle->isBusy = false; return false; } /* Set I2C work under Tx mode */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; + I2C_SetDirMode(handle->base, i2cDirectionTransmit); + handle->currentDir = i2cDirectionTransmit; /* Switch to Master Mode and Send Start Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); - i2cState.currentMode = i2cModeMaster; + I2C_SetWorkMode(handle->base, i2cModeMaster); + handle->currentMode = i2cModeMaster; if (0 != cmdSize) { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; + I2C_WriteByte(handle->base, *handle->cmdBuff); + handle->cmdBuff++; + handle->cmdSize--; } else { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); - i2cState.txBuff++; - i2cState.txSize--; + I2C_WriteByte(handle->base, *handle->txBuff); + handle->txBuff++; + handle->txSize--; } /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + I2C_SetIntCmd(handle->base, true); /* Wait until send data finish. */ - xSemaphoreTake(i2cState.xSemaphore, portMAX_DELAY); + xSemaphoreTake(handle->xSemaphore, portMAX_DELAY); + + /* Wait bus idle */ + tickOld = xTaskGetTickCount(); + + while (I2C_GetStatusFlag(handle->base, i2cStatusBusBusy)) + { + tickNew = xTaskGetTickCount(); + + /* A 50ms time-out to wait bus idle */ + if ((50 * portTICK_PERIOD_MS) < (tickNew - tickOld)) + return false; + } return true; } -uint32_t I2C_XFER_GetSendStatus(void) +uint32_t I2C_XFER_GetSendStatus(i2c_handle_t *handle) { - return i2cState.txSize; + return handle->txSize; } -bool I2C_XFER_ReceiveDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, - uint8_t* rxBuffer, uint32_t rxSize) +bool I2C_XFER_ReceiveDataBlocking(i2c_handle_t *handle, const uint8_t* cmdBuff, uint32_t cmdSize, + uint8_t* rxBuffer, uint32_t rxSize) { - if ((i2cState.isBusy) || (0 == rxSize)) + TickType_t tickOld, tickNew; + + if ((handle->isBusy) || (0 == rxSize)) return false; /* Initialize i2c transfer struct */ - i2cState.cmdBuff = cmdBuff; - i2cState.cmdSize = cmdSize; - i2cState.rxBuff = rxBuffer; - i2cState.rxSize = rxSize; - i2cState.isBusy = true; - i2cState.operateDir = i2cDirectionReceive; + handle->cmdBuff = cmdBuff; + handle->cmdSize = cmdSize; + handle->rxBuff = rxBuffer; + handle->rxSize = rxSize; + handle->isBusy = true; + handle->operateDir = i2cDirectionReceive; /* Clear I2C interrupt flag to avoid spurious interrupt */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + I2C_ClearStatusFlag(handle->base, i2cStatusInterrupt); - if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + if (I2C_GetStatusFlag(handle->base, i2cStatusBusBusy)) { /* Reset i2c transfer state. */ - i2cState.operateDir = i2cDirectionReceive; - i2cState.isBusy = false; + handle->operateDir = i2cDirectionReceive; + handle->isBusy = false; return false; } /* Set I2C work under Tx mode */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; + I2C_SetDirMode(handle->base, i2cDirectionTransmit); + handle->currentDir = i2cDirectionTransmit; /* Switch to Master Mode and Send Start Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); - i2cState.currentMode = i2cModeMaster; + I2C_SetWorkMode(handle->base, i2cModeMaster); + handle->currentMode = i2cModeMaster; /* Is there command to be sent before receive data? */ - if (0 != i2cState.cmdSize) + if (0 != handle->cmdSize) { - if (1 == i2cState.cmdSize) - I2C_SendRepeatStart(BOARD_I2C_BASEADDR); - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; + if (1 == handle->cmdSize) + I2C_SendRepeatStart(handle->base); + I2C_WriteByte(handle->base, *handle->cmdBuff); + handle->cmdBuff++; + handle->cmdSize--; } else { /* Change to receive state. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; + I2C_SetDirMode(handle->base, i2cDirectionReceive); + handle->currentDir = i2cDirectionReceive; if (1 == rxSize) /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + I2C_SetAckBit(handle->base, false); else /* Send Ack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + I2C_SetAckBit(handle->base, true); /* dummy read to clock in 1st byte */ - I2C_ReadByte(BOARD_I2C_BASEADDR); + I2C_ReadByte(handle->base); } /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + I2C_SetIntCmd(handle->base, true); /* Wait until receive data finish. */ - xSemaphoreTake(i2cState.xSemaphore, portMAX_DELAY); + xSemaphoreTake(handle->xSemaphore, portMAX_DELAY); + + /* Wait bus idle */ + tickOld = xTaskGetTickCount(); + + while (I2C_GetStatusFlag(handle->base, i2cStatusBusBusy)) + { + tickNew = xTaskGetTickCount(); + + /* A 50ms time-out to wait bus idle */ + if ((50 * portTICK_PERIOD_MS) < (tickNew - tickOld)) + return false; + } return true; } -uint32_t I2C_XFER_GetReceiveStatus(void) +uint32_t I2C_XFER_GetReceiveStatus(i2c_handle_t *handle) { - return i2cState.rxSize; + return handle->rxSize; } -void BOARD_I2C_HANDLER(void) +void I2C_XFER_Handler(i2c_handle_t *handle) { BaseType_t xHigherPriorityTaskWoken = pdFALSE; /* Clear interrupt flag. */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + I2C_ClearStatusFlag(handle->base, i2cStatusInterrupt); /* Exit the ISR if no transfer is happening for this instance. */ - if (!i2cState.isBusy) + if (!handle->isBusy) return; - if (i2cModeMaster == i2cState.currentMode) + if (i2cModeMaster == handle->currentMode) { - if (i2cDirectionTransmit == i2cState.currentDir) + if (i2cDirectionTransmit == handle->currentDir) { - if ((I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck)) || - ((0 == i2cState.txSize) && (0 == i2cState.cmdSize))) + if ((I2C_GetStatusFlag(handle->base, i2cStatusReceivedAck)) || + ((0 == handle->txSize) && (0 == handle->cmdSize))) { - if ((i2cDirectionTransmit == i2cState.operateDir) || - (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck))) + if ((i2cDirectionTransmit == handle->operateDir) || + (I2C_GetStatusFlag(handle->base, i2cStatusReceivedAck))) { /* Switch to Slave mode and Generate a Stop Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); - i2cState.currentMode = i2cModeSlave; + I2C_SetWorkMode(handle->base, i2cModeSlave); + handle->currentMode = i2cModeSlave; /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; + I2C_SetDirMode(handle->base, i2cDirectionReceive); + handle->currentDir = i2cDirectionReceive; /* Close I2C interrupt. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + I2C_SetIntCmd(handle->base, false); /* Release I2C Bus. */ - i2cState.isBusy = false; - xSemaphoreGiveFromISR(i2cState.xSemaphore, &xHigherPriorityTaskWoken); + handle->isBusy = false; + xSemaphoreGiveFromISR(handle->xSemaphore, &xHigherPriorityTaskWoken); + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } else { /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; + I2C_SetDirMode(handle->base, i2cDirectionReceive); + handle->currentDir = i2cDirectionReceive; - if (1 == i2cState.rxSize) + if (1 == handle->rxSize) /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + I2C_SetAckBit(handle->base, false); else /* Send Ack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + I2C_SetAckBit(handle->base, true); /* dummy read to clock in 1st byte */ - *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); + *handle->rxBuff = I2C_ReadByte(handle->base); } } else { - if (0 != i2cState.cmdSize) + if (0 != handle->cmdSize) { - if ((1 == i2cState.cmdSize) && (i2cDirectionReceive == i2cState.operateDir)) - I2C_SendRepeatStart(BOARD_I2C_BASEADDR); - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; + if ((1 == handle->cmdSize) && (i2cDirectionReceive == handle->operateDir)) + I2C_SendRepeatStart(handle->base); + I2C_WriteByte(handle->base, *handle->cmdBuff); + handle->cmdBuff++; + handle->cmdSize--; } else { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); - i2cState.txBuff++; - i2cState.txSize--; + I2C_WriteByte(handle->base, *handle->txBuff); + handle->txBuff++; + handle->txSize--; } } } else { /* Normal read operation. */ - if (2 == i2cState.rxSize) + if (2 == handle->rxSize) /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + I2C_SetAckBit(handle->base, false); else /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + I2C_SetAckBit(handle->base, true); - if (1 == i2cState.rxSize) + if (1 == handle->rxSize) { /* Switch back to Tx direction to avoid additional I2C bus read. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; + I2C_SetDirMode(handle->base, i2cDirectionTransmit); + handle->currentDir = i2cDirectionTransmit; } - *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); - i2cState.rxBuff++; - i2cState.rxSize--; + *handle->rxBuff = I2C_ReadByte(handle->base); + handle->rxBuff++; + handle->rxSize--; /* receive finished. */ - if (0 == i2cState.rxSize) + if (0 == handle->rxSize) { /* Switch to Slave mode and Generate a Stop Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); - i2cState.currentMode = i2cModeSlave; + I2C_SetWorkMode(handle->base, i2cModeSlave); + handle->currentMode = i2cModeSlave; /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; + I2C_SetDirMode(handle->base, i2cDirectionReceive); + handle->currentDir = i2cDirectionReceive; /* Close I2C interrupt. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + I2C_SetIntCmd(handle->base, false); /* Release I2C Bus. */ - i2cState.isBusy = false; + handle->isBusy = false; /* Release I2C Sem4 */ - xSemaphoreGiveFromISR(i2cState.xSemaphore, &xHigherPriorityTaskWoken); + xSemaphoreGiveFromISR(handle->xSemaphore, &xHigherPriorityTaskWoken); + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } } } diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.h b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.h index 64b8f03..6704e47 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.h +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/i2c_xfer.h @@ -32,18 +32,48 @@ #include #include +#include "FreeRTOS.h" +#include "semphr.h" #include "i2c_imx.h" +/* Type definitions */ +typedef struct _i2c_handle { + I2C_Type *base; /*!< The base address of I2C instance. */ + IRQn_Type irqNum; /*!< The interrupt interrupt request number. */ + uint32_t irqPrio; /*!< The interrupt interrupt request priority. */ + const uint8_t *cmdBuff; /*!< The buffer of I2C command. */ + const uint8_t *txBuff; /*!< The buffer of data being sent.*/ + uint8_t *rxBuff; /*!< The buffer of received data. */ + uint32_t cmdSize; /*!< The remaining number of commands to be transmitted. */ + uint32_t txSize; /*!< The remaining number of bytes to be transmitted. */ + uint32_t rxSize; /*!< The remaining number of bytes to be received. */ + bool isBusy; /*!< True if there is an active transmission. */ + uint32_t operateDir; /*!< Overall I2C bus operating direction. */ + uint32_t currentDir; /*!< Current Data transfer direction. */ + uint32_t currentMode; /*!< Current I2C Bus role of this module. */ + SemaphoreHandle_t xSemaphore; /*!< I2C internal synchronize semaphore. */ +} volatile i2c_handle_t; + +typedef struct _i2c_xfer_init_config { + I2C_Type *base; /*!< The base address of I2C instance. */ + i2c_init_config_t config; /*!< The I2C module low-level initialize structure. */ + IRQn_Type irqNum; /*!< The interrupt interrupt request number. */ + uint8_t irqPrio; /*!< The interrupt interrupt request priority. */ +} i2c_xfer_init_config_t; + /* Function prototypes */ #if defined(__cplusplus) extern "C" { #endif -void I2C_XFER_Config(i2c_init_config_t* initConfig); -bool I2C_XFER_SendDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, const uint8_t* txBuffer, uint32_t txSize); -uint32_t I2C_XFER_GetSendStatus(void); -bool I2C_XFER_ReceiveDataBlocking(const uint8_t* cmdBuff, uint32_t cmdSize, uint8_t* rxBuffer, uint32_t rxSize); -uint32_t I2C_XFER_GetReceiveStatus(void); +void I2C_XFER_Init(i2c_handle_t *handle, i2c_xfer_init_config_t *initConfig); +bool I2C_XFER_SendDataBlocking(i2c_handle_t *handle, const uint8_t *cmdBuff, uint32_t cmdSize, + const uint8_t *txBuffer, uint32_t txSize); +uint32_t I2C_XFER_GetSendStatus(i2c_handle_t *handle); +bool I2C_XFER_ReceiveDataBlocking(i2c_handle_t *handle, const uint8_t* cmdBuff, uint32_t cmdSize, + uint8_t* rxBuffer, uint32_t rxSize); +uint32_t I2C_XFER_GetReceiveStatus(i2c_handle_t *handle); +void I2C_XFER_Handler(i2c_handle_t *handle); #ifdef __cplusplus } diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.c b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.c deleted file mode 100644 index d44f63d..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.c +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include "board.h" -#include "debug_console_imx.h" -#include "i2c_xfer.h" -#include "mma8451q.h" - -static uint8_t mma8451qMode; - -/*FUNCTION**************************************************************** -* -* Function Name : MMA8451Q_Init -* Returned Value : true or false -* Comments : Initialize MMA8451Q 3-axis accelerometer sensor. -* -*END*********************************************************************/ -bool MMA8451Q_Init(void) -{ - uint8_t txBuffer; - uint8_t rxBuffer; - uint8_t cmdBuffer[3]; - - /* Place the MMA8451Q in Standby */ - PRINTF("Place the MMA8451Q in standby mode... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - PRINTF("OK\n\r"); - - // write 0000 0000= 0x00 to MMA8451Q_XYZ_DATA_CFG register - // [7]: reserved - // [6]: reserved - // [5]: reserved - // [4]: hpf_out=0 - // [3]: reserved - // [2]: reserved - // [1-0]: fs=00 for 2g mode. - PRINTF("Set the mode: 2G ... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_XYZ_DATA_CFG; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - mma8451qMode = 0U; - PRINTF("OK\n\r"); - - // write 0000 0001 = 0x01 to MMA8451Q_CTRL_REG1 - // [7-6]: aslp_rate=00 - // [5-3]: dr=000 - // [2]: lnoise=0 - // [1]: f_read=0 for normal read mode - // [0]: active=1 to take the part out of standby and enable sampling - PRINTF("Fast read clear and active mode ... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_CTRL_REG1; - txBuffer = 0x01; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - PRINTF("OK\n\r"); - - // read WHO_AM_I device register, 0x1A - PRINTF("Test WHO_AM_I check... "); - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_WHO_AM_I; - cmdBuffer[2] = (BOARD_I2C_MMA8451Q_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, &rxBuffer, 1)) - { - PRINTF("ERROR\n\r"); - return false; - } - if(rxBuffer == MMA8451Q_DEVICE_ID) - PRINTF("OK\n\r"); - else - { - PRINTF("ERROR\n\r"); - return false; - } - return true; -} - -/*FUNCTION**************************************************************** -* -* Function Name : MMA8451Q_ReadData -* Returned Value : true or false -* Comments : Get current acceleration from MMA8451Q. -* -*END*********************************************************************/ -bool MMA8451Q_ReadData(int16_t *x, int16_t *y, int16_t *z) -{ - uint8_t rxBuffer[7]; - uint8_t cmdBuffer[3]; - - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_OUT_X_MSB; - cmdBuffer[2] = (BOARD_I2C_MMA8451Q_ADDR << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 7)) - return false; - - *x = ((rxBuffer[0] << 8) & 0xff00) | rxBuffer[1]; - *y = ((rxBuffer[2] << 8) & 0xff00) | rxBuffer[3]; - *z = ((rxBuffer[4] << 8) & 0xff00) | rxBuffer[5]; - *x = (int16_t)(*x) >> 2; - *y = (int16_t)(*y) >> 2; - *z = (int16_t)(*z) >> 2; - - if(mma8451qMode == mma8451qMode_4G) - { - (*x) = (*x) << 1; - (*y) = (*y) << 1; - (*z) = (*z) << 1; - } - else if(mma8451qMode == mma8451qMode_8G) - { - (*x) = (*x) << 2; - (*y) = (*y) << 2; - (*z) = (*z) << 2; - } - - return true; -} - - /*FUNCTION**************************************************************** -* -* Function Name : MMA8451Q_ChangeMode -* Returned Value : true or false -* Comments : Change the current mode. -* -*END*********************************************************************/ -bool MMA8451Q_ChangeMode(uint8_t mode) -{ - uint8_t txBuffer; - uint8_t cmdBuffer[2]; - - cmdBuffer[0] = BOARD_I2C_MMA8451Q_ADDR << 1; - cmdBuffer[1] = MMA8451Q_XYZ_DATA_CFG; - txBuffer = mode; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) - return false; - return true; -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.h b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.h deleted file mode 100644 index b371bbd..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mma8451q.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __MMA8451Q_H__ -#define __MMA8451Q_H__ - -#include -#include - -/* I2C Slave Address define */ -#define MMA8451Q_ADDRESS_0 (0x1C) /* SA0 = 0, low logic */ -#define MMA8451Q_ADDRESS_1 (0x1D) /* SA0 = 1, high logic */ - -/* MMA8451Q device ID number */ -#define MMA8451Q_DEVICE_ID (0x1A) - -/* MMA8451Q Registers address definition */ -#define MMA8451Q_STATUS (0x00) -#define MMA8451Q_OUT_X_MSB (0x01) -#define MMA8451Q_OUT_X_LSB (0x02) -#define MMA8451Q_OUT_Y_MSB (0x03) -#define MMA8451Q_OUT_Y_LSB (0x04) -#define MMA8451Q_OUT_Z_MSB (0x05) -#define MMA8451Q_OUT_Z_LSB (0x06) -#define MMA8451Q_F_SETUP (0x09) -#define MMA8451Q_TRIG_CFG (0x0A) -#define MMA8451Q_SYSMOD (0x0B) -#define MMA8451Q_INT_SOURCE (0x0C) -#define MMA8451Q_WHO_AM_I (0x0D) -#define MMA8451Q_XYZ_DATA_CFG (0x0E) -#define MMA8451Q_HP_FILTER_CUTOFF (0x0F) -#define MMA8451Q_PL_STATUS (0x10) -#define MMA8451Q_PL_CFG (0x11) -#define MMA8451Q_PL_COUNT (0x12) -#define MMA8451Q_PL_BF_ZCOMP (0x13) -#define MMA8451Q_PL_THS_REG (0x14) -#define MMA8451Q_FF_MT_CFG (0x15) -#define MMA8451Q_FF_MT_SRC (0x16) -#define MMA8451Q_FF_MT_THS (0x17) -#define MMA8451Q_FF_MT_COUNT (0x18) -#define MMA8451Q_TRANSIENT_CFG (0x1D) -#define MMA8451Q_TRANSIENT_SRC (0x1E) -#define MMA8451Q_TRANSIENT_THS (0x1F) -#define MMA8451Q_TRANSIENT_COUNT (0x20) -#define MMA8451Q_PULSE_CFG (0x21) -#define MMA8451Q_PULSE_SRC (0x22) -#define MMA8451Q_PULSE_THSX (0x23) -#define MMA8451Q_PULSE_THSY (0x24) -#define MMA8451Q_PULSE_THSZ (0x25) -#define MMA8451Q_PULSE_TMLT (0x26) -#define MMA8451Q_PULSE_LTCY (0x27) -#define MMA8451Q_PULSE_WIND (0x28) -#define MMA8451Q_ASLP_COUNT (0x29) -#define MMA8451Q_CTRL_REG1 (0x2A) -#define MMA8451Q_CTRL_REG2 (0x2B) -#define MMA8451Q_CTRL_REG3 (0x2C) -#define MMA8451Q_CTRL_REG4 (0x2D) -#define MMA8451Q_CTRL_REG5 (0x2E) -#define MMA8451Q_OFF_X (0x2F) -#define MMA8451Q_OFF_Y (0x30) -#define MMA8451Q_OFF_Z (0x31) - -enum _mma8451q_mode -{ - mma8451qMode_2G = 0U, - mma8451qMode_4G = 1U, - mma8451qMode_8G = 2U -}; - -/* Function prototypes */ -#if defined(__cplusplus) -extern "C" { -#endif - -bool MMA8451Q_Init(void); -bool MMA8451Q_ReadData(int16_t *x, int16_t *y, int16_t *z); -bool MMA8451Q_ChangeMode(uint8_t mode); - -#ifdef __cplusplus -} -#endif - -#endif /* __MMA8451Q_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.c b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.c index f5dcddb..55d15f9 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.c +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.c @@ -34,49 +34,93 @@ #include "i2c_xfer.h" #include "mpl3115.h" -#define MPL3115_MPERCOUNT 0.0000152587890625F // 1/65536 fixed range for MPL3115 -#define MPL3115_CPERCPOUNT 0.00390625F // 1/256 fixed range for MPL3115 - /*FUNCTION**************************************************************** * -* Function Name : mpl3115_init +* Function Name : MPL3115_Init * Returned Value : result * Comments : Initialize MPL3115 pressure and temperature sensor. * *END*********************************************************************/ -bool mpl3115_init(pressure_sensor_t* pThisPressure) +bool MPL3115_Init(mpl_handle_t *handle, const mpl3115_init_t *mpl3115_config) { - uint8_t txBuffer; - uint8_t cmdBuffer[2]; + uint8_t regVal; + /* Place the MPL3115 in Standby */ + if (!MPL3115_WriteReg(handle, MPL3115_CTRL_REG1, 0x00)) + return false; - pThisPressure->fmPerCount = MPL3115_MPERCOUNT; - pThisPressure->fCPerCount = MPL3115_CPERCPOUNT; + // Set CTRL_REG1 according to mpl3115 init struct and switch it + // to active mode. + regVal = ((uint8_t)mpl3115_config->outputFormat | + (uint8_t)mpl3115_config->outputMode | + (uint8_t)mpl3115_config->oversampleRatio); - /* Place the MPL3115 in Standby */ - cmdBuffer[0] = MPL3115_ADDRESS << 1; - cmdBuffer[1] = MPL3115_CTRL_REG1; - txBuffer = 0x00; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + if (!MPL3115_WriteReg(handle, MPL3115_CTRL_REG1, regVal)) return false; - /* Enable Data Flags in PT_DATA_CFG */ - cmdBuffer[0] = MPL3115_ADDRESS << 1; - cmdBuffer[1] = MPL3115_PT_DATA_CFG; - txBuffer = 0x07; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + return true; +} + +/*FUNCTION**************************************************************** +* +* Function Name : MPL3115_Deinit +* Returned Value : result +* Comments : Deinit the mpl3115 sensor. +* +*END*********************************************************************/ +bool MPL3115_Deinit(mpl_handle_t *handle) +{ + // Switch mpl3115 to STANDBY mode. + if (!MPL3115_WriteReg(handle, MPL3115_CTRL_REG1, 0x00)) return false; - // write 1011 1001 = 0xB9 to configure MPL3115 and enter Active mode - // [7]: ALT=1 for altitude measurements - // [6]: RAW=0 to disable raw measurements - // [5-3]: OS=111 for OS ratio=128 for maximum internal averaging with 512ms output interval - // [2]: RST=0 do not enter reset - // [1]: OST=0 do not initiate a reading - // [0]: SBYB=1 to enter active mode - cmdBuffer[0] = MPL3115_ADDRESS << 1; - cmdBuffer[1] = MPL3115_CTRL_REG1; - txBuffer = 0xB9; - if (!I2C_XFER_SendDataBlocking(cmdBuffer, 2, &txBuffer, 1)) + // Reset all Register content. + if (!MPL3115_WriteReg(handle, MPL3115_CTRL_REG1, 0x04)) + return false; + + return true; +} + +/*FUNCTION**************************************************************** +* +* Function Name : MPL3115_Enable +* Returned Value : result +* Comments : Enable the MPL3115 sensor. +* +*END*********************************************************************/ +bool MPL3115_Enable(mpl_handle_t *handle) +{ + uint8_t regVal; + + if (!MPL3115_ReadReg(handle, MPL3115_CTRL_REG1, ®Val)) + return false; + + /* Active MPL3115 */ + regVal |= 0x01; + + if (!MPL3115_WriteReg(handle, MPL3115_CTRL_REG1, regVal)) + return false; + + return true; +} + +/*FUNCTION**************************************************************** +* +* Function Name : MPL3115_Disable +* Returned Value : result +* Comments : Disable the MPL3115 sensor. +* +*END*********************************************************************/ +bool MPL3115_Disable(mpl_handle_t *handle) +{ + uint8_t regVal; + + if (!MPL3115_ReadReg(handle, MPL3115_CTRL_REG1, ®Val)) + return false; + + /* De-active MPL3115 */ + regVal &= ~0x01; + + if (!MPL3115_WriteReg(handle, MPL3115_CTRL_REG1, regVal)) return false; return true; @@ -84,12 +128,47 @@ bool mpl3115_init(pressure_sensor_t* pThisPressure) /*FUNCTION**************************************************************** * -* Function Name : mpl3115_read_data +* Function Name : MPL3115_WriteReg +* Returned Value : result +* Comments : Write to MPL3115 single register. +* +*END*********************************************************************/ +bool MPL3115_WriteReg(mpl_handle_t *handle, uint8_t regAddr, uint8_t regVal) +{ + uint8_t cmdBuffer[2]; + + cmdBuffer[0] = MPL3115_ADDRESS << 1; + cmdBuffer[1] = regAddr; + + return I2C_XFER_SendDataBlocking(handle->device, cmdBuffer, 2, ®Val, 1); +} + +/*FUNCTION**************************************************************** +* +* Function Name : MPL3115_ReadReg +* Returned Value : result +* Comments : Read from MPL3115 single register. +* +*END*********************************************************************/ +bool MPL3115_ReadReg(mpl_handle_t *handle, uint8_t regAddr, uint8_t *regValPtr) +{ + uint8_t cmdBuffer[3]; + + cmdBuffer[0] = MPL3115_ADDRESS << 1; + cmdBuffer[1] = regAddr; + cmdBuffer[2] = (MPL3115_ADDRESS << 1) + 1; + + return I2C_XFER_ReceiveDataBlocking(handle->device, cmdBuffer, 3, regValPtr, 1); +} + +/*FUNCTION**************************************************************** +* +* Function Name : MPL3115_ReadData * Returned Value : result * Comments : Get current height and temperature from mpl3115. * *END*********************************************************************/ -bool mpl3115_read_data(pressure_sensor_t* pThisPressure) +bool MPL3115_ReadData(mpl_handle_t *handle, mpl3115_data_t *val) { uint8_t rxBuffer[5]; uint8_t cmdBuffer[3]; @@ -97,12 +176,12 @@ bool mpl3115_read_data(pressure_sensor_t* pThisPressure) cmdBuffer[0] = MPL3115_ADDRESS << 1; cmdBuffer[1] = MPL3115_OUT_P_MSB; cmdBuffer[2] = (MPL3115_ADDRESS << 1) + 1; - if (!I2C_XFER_ReceiveDataBlocking(cmdBuffer, 3, rxBuffer, 5)) + if (!I2C_XFER_ReceiveDataBlocking(handle->device, cmdBuffer, 3, rxBuffer, 5)) return false; - // place the read buffer into the 32 bit altitude and 16 bit temperature - pThisPressure->iHpFast = (rxBuffer[0] << 24) | (rxBuffer[1] << 16) | (rxBuffer[2] << 8); - pThisPressure->iTpFast = (rxBuffer[3] << 8) | rxBuffer[4]; + // place the read buffer into the 32 bit pressure/altitude and 16 bit temperature. + val->presData = (rxBuffer[0] << 24) | (rxBuffer[1] << 16) | (rxBuffer[2] << 8); + val->tempData = (rxBuffer[3] << 8) | rxBuffer[4]; return true; } diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.h b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.h index 7606e7b..02183c7 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.h +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/common/mpl3115.h @@ -34,13 +34,21 @@ #include #include -/* I2C Slave Address define */ +/*! + * @addtogroup mpl3115 + * @{ + */ + +/******************************************************************************* + * Definitions + ******************************************************************************/ +/*! @brief MPL3115 I2C address. */ #define MPL3115_ADDRESS (0x60) -/* MPL3115 device ID number */ +/*! @brief MPL3115 device ID number. */ #define MPL3115_DEVICE_ID (0xC4) -/* MPL3115 Registers address definition */ +/*! @briefRegister address Definitions. */ #define MPL3115_STATUS (0x00) #define MPL3115_OUT_P_MSB (0x01) #define MPL3115_OUT_P_CSB (0x02) @@ -88,30 +96,126 @@ #define MPL3115_OFF_T (0x2C) #define MPL3115_OFF_H (0x2D) -typedef struct _pressure_sensor +/* + * Field Definitions. + */ + +/*! @brief mpl3115 Altimeter/Barometer selection. */ +typedef enum _mpl3115_output_format_cfg +{ + mpl3115OutputFormatAltimeter = 0x80, + mpl3115OutputFormatBarometer = 0x0 +} mpl3115_output_format_cfg_t; + +/*! @brief mpl3115 raw data output without digital data processing selection. */ +typedef enum _mpl3115_output_mode_cfg +{ + mpl3115OutputModeRaw = 0x40, + mpl3115OutputModeNormal = 0x0 +} mpl3115_output_mode_cfg_t; + +/*! @brief mpl3115 oversample ratio selection. */ +typedef enum _mpl3115_oversample_cfg +{ + mpl3115OverSampleX1 = 0x0 << 3, + mpl3115OverSampleX2 = 0x1 << 3, + mpl3115OverSampleX4 = 0x2 << 3, + mpl3115OverSampleX8 = 0x3 << 3, + mpl3115OverSampleX16 = 0x4 << 3, + mpl3115OverSampleX32 = 0x5 << 3, + mpl3115OverSampleX64 = 0x6 << 3, + mpl3115OverSampleX128 = 0x7 << 3 +} mpl3115_oversample_cfg_t; + +/*! @brief fxos configure definition. */ +typedef struct _mpl_handle +{ + /* I2C relevant definition. */ + i2c_handle_t *device; /*!< I2C handle. */ +} mpl_handle_t; + +/*! @brief Initialize structure of mpl3115 */ +typedef struct _mpl3115_init +{ + mpl3115_output_format_cfg_t outputFormat; + mpl3115_output_mode_cfg_t outputMode; + mpl3115_oversample_cfg_t oversampleRatio; +} mpl3115_init_t; + +/*! @brief mpl3115 Pressure/Altitude and Temperature data structure */ +typedef struct _mpl3115_data { - int32_t iHp; // slow (typically 25Hz) height (counts) - int32_t iHpFast; // fast (typically 200Hz) height (counts) - int16_t iTp; // slow (typically 25Hz) temperature (count) - int16_t iTpFast; // fast (typically 200Hz) temperature (counts) - float fHp; // slow (typically 25Hz) height (m) - float fTp; // slow (typically 25Hz) temperature (C) - float fmPerCount; // initialized to FMPERCOUNT - float fCPerCount; // initialized to FCPERCPOUNT -} pressure_sensor_t; + int32_t presData; + int16_t tempData; +} mpl3115_data_t; +/******************************************************************************* + * API + ******************************************************************************/ /* Function prototypes */ #if defined(__cplusplus) extern "C" { #endif -bool mpl3115_init(pressure_sensor_t*); -bool mpl3115_read_data(pressure_sensor_t*); +/*! + * @brief MPL3115 initialize function. + * + * This function should be called after I2C transfer driver is initialized, and + * in this function, some configurations are fixed. + * If users want to change the settings, they have to use fxos_write_reg() to set + * the register value of MPL3115. + * @param handle MPL3115 handle structure. + * @param mpl3115_config mpl3115 configuration structure. + */ +bool MPL3115_Init(mpl_handle_t *handle, const mpl3115_init_t *mpl3115_config); + +/*! + * @brief Deinit the MPL3115 sensor. + * @param handle MPL3115 handler structure. + */ +bool MPL3115_Deinit(mpl_handle_t *handle); + +/*! + * @brief Enable the MPL3115 sensor. + * @param handle MPL3115 handler structure. + */ +bool MPL3115_Enable(mpl_handle_t *handle); + +/*! + * @brief Disable the MPL3115 sensor. + * @param handle MPL3115 handler structure. + */ +bool MPL3115_Disable(mpl_handle_t *handle); + +/*! + * @brief Write register to MPL3115 using I2C. + * @param handle MPL3115 handle structure. + * @param regAddr The register address in mpl3115. + * @param regVal Value needs to write into the register. + */ +bool MPL3115_WriteReg(mpl_handle_t *handle, uint8_t regAddr, uint8_t regVal); + +/*! + * @brief Read register from MPL3115 using I2C. + * @param handle MPL3115 handle structure. + * @param regAddr The register address in mpl3115. + * @param regValPtr Value pointer to written into. + */ +bool MPL3115_ReadReg(mpl_handle_t *handle, uint8_t regAddr, uint8_t *regValPtr); + +/*! + * @brief Read sensor data from MPL3115 using I2C + * @param handle MPL3115 handler structure. + * @param val Sensor data pointer read from mpl3115. + */ +bool MPL3115_ReadData(mpl_handle_t *handle, mpl3115_data_t *val); #ifdef __cplusplus } #endif +/*! @} */ + #endif /* __MPL3115_H__ */ /******************************************************************************* * EOF diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.cproject b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.cproject index 24a8553..a6a9a7b 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.cproject +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.project b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.project index 858b6e0..74d5737 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.project +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/sensor_demo_imx7d/main.csource2virtual:/virtualsource/i2c_xfer.c1PARENT-1-PROJECT_LOC/common/i2c_xfer.csource2virtual:/virtualsource/i2c_xfer.h1PARENT-1-PROJECT_LOC/common/i2c_xfer.hsource2virtual:/virtualsource/mpl3115.c1PARENT-1-PROJECT_LOC/common/mpl3115.csource2virtual:/virtualsource/mpl3115.h1PARENT-1-PROJECT_LOC/common/mpl3115.hsource2virtual:/virtualsource/fxos8700.c1PARENT-1-PROJECT_LOC/common/fxos8700.csource2virtual:/virtualsource/fxos8700.h1PARENT-1-PROJECT_LOC/common/fxos8700.hsource2virtual:/virtualsource/fxas21002.c1PARENT-1-PROJECT_LOC/common/fxas21002.csource2virtual:/virtualsource/fxas21002.h1PARENT-1-PROJECT_LOC/common/fxas21002.hdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/sensor_demo_imx7d/main.csource2virtual:/virtualsource/i2c_xfer.c1PARENT-1-PROJECT_LOC/common/i2c_xfer.csource2virtual:/virtualsource/i2c_xfer.h1PARENT-1-PROJECT_LOC/common/i2c_xfer.hsource2virtual:/virtualsource/mpl3115.c1PARENT-1-PROJECT_LOC/common/mpl3115.csource2virtual:/virtualsource/mpl3115.h1PARENT-1-PROJECT_LOC/common/mpl3115.hsource2virtual:/virtualsource/fxos8700.c1PARENT-1-PROJECT_LOC/common/fxos8700.csource2virtual:/virtualsource/fxos8700.h1PARENT-1-PROJECT_LOC/common/fxos8700.hsource2virtual:/virtualsource/fxas21002.c1PARENT-1-PROJECT_LOC/common/fxas21002.csource2virtual:/virtualsource/fxas21002.h1PARENT-1-PROJECT_LOC/common/fxas21002.hdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.h diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/makedir.bat b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd deleted file mode 100644 index 0e22b0b..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/ds5/sensor_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - sensor_demo_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/hardware_init.c b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/hardware_init.c index 3ffd205..2987178 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/hardware_init.c +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/hardware_init.c @@ -29,7 +29,7 @@ */ #include "board.h" -#include "pin_mux.h" +#include "gpio_pins.h" void hardware_init(void) { @@ -42,7 +42,15 @@ void hardware_init(void) /* initialize debug uart */ dbg_uart_init(); - /* In this example, we need to grasp board I2C exclusively */ + /* In this demo, we need to access RDC SEMAPHORE1 on this board */ + RDC_SetPdapAccess(RDC, rdcPdapSemaphore1, 0xFF, false, false); + + /* In this demo, we need to share board GPIO, we can set sreq argument to true + * when the peer core could also access GPIO with RDC_SEMAPHORE, or the peer + * core doesn't access the GPIO at all */ + RDC_SetPdapAccess(RDC, BOARD_GPIO_SENSOR_RDC_PDAP, 0xFF, false/*true*/, false); + + /* In this example, we need to grasp board I2C exclusively */ RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); /* Select I2C clock derived from OSC clock(24M) */ @@ -53,6 +61,15 @@ void hardware_init(void) /* I2C Pin setting */ configure_i2c_pins(BOARD_I2C_BASEADDR); + + /* Enable RDC SEMAPHORE GATE needed in this demo */ + CCM_ControlGate(CCM, ccmCcgrGateSema1, ccmClockNeededRunWait); + + /* Enable gpio clock gate */ + CCM_ControlGate(CCM, BOARD_GPIO_SENSOR_CCM_CCGR, ccmClockNeededRunWait); + + /* Configure gpio pin IOMUX */ + configure_gpio_pin(BOARD_GPIO_SENSOR_CONFIG); } /******************************************************************************* diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp deleted file mode 100644 index 8ef8f27..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../sensor_demo_imx7d/main.c$PROJ_DIR$/../common/i2c_xfer.c$PROJ_DIR$/../common/i2c_xfer.h$PROJ_DIR$/../common/mpl3115.c$PROJ_DIR$/../common/mpl3115.h$PROJ_DIR$/../common/fxos8700.c$PROJ_DIR$/../common/fxos8700.h$PROJ_DIR$/../common/fxas21002.c$PROJ_DIR$/../common/fxas21002.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/i2c_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/i2c_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.eww b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.eww deleted file mode 100644 index f300b1c..0000000 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/iar/sensor_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allsensor_demoReleasesensor_demoDebugReleasesensor_demoReleaseDebugsensor_demoDebug -$WS_DIR$/sensor_demo.ewp diff --git a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c index 6f87be1..c820f12 100644 --- a/examples/imx7d_sdb_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c +++ b/examples/imx7d_sdb_m4/demo_apps/sensor_demo/sensor_demo_imx7d/main.c @@ -33,10 +33,14 @@ /////////////////////////////////////////////////////////////////////////////// #include #include +#include #include "FreeRTOS.h" #include "task.h" #include "board.h" +#include "rdc_semaphore.h" #include "debug_console_imx.h" +#include "gpio_pins.h" +#include "gpio_imx.h" #include "i2c_xfer.h" #include "fxas21002.h" #include "fxos8700.h" @@ -45,130 +49,463 @@ //////////////////////////////////////////////////////////////////////////////// // Definition //////////////////////////////////////////////////////////////////////////////// -#define HEIGHT_UPDATE_THRESHOLD (0.5f) -#define TEMP_UPDATE_THRESHOLD (0.3f) -#define GYRO_UPDATE_THRESHOLD (5.0f) +#define HEIGHT_UPDATE_THRESHOLD (0.5f) +#define TEMP_UPDATE_THRESHOLD (0.3f) +#define GYRO_UPDATE_THRESHOLD (5.0f) +#define GYRO_OVERSAMPLE_RATIO (10) + +#define MPL3115_MPERCOUNT (0.0000152587890625f) // 1/65536 fixed range for MPL3115 +#define MPL3115_CPERCPOUNT (0.00390625f) // 1/256 fixed range for MPL3115 +#define FXAS21002_DEGPERSECPERCOUNT (0.0625F) // must be reciprocal of FCOUNTSPERDEGPERSEC + +//////////////////////////////////////////////////////////////////////////////// +// Type definition +//////////////////////////////////////////////////////////////////////////////// +typedef struct _gyro_sensor +{ + int32_t iSumYpFast[3]; // sum of fast measurements + float fYp[3]; // raw gyro sensor output (deg/s) + float fDegPerSecPerCount; // initialized to FDEGPERSECPERCOUNT + int16_t iYpFast[3]; // fast (typically 200Hz) readings + int16_t iYp[3]; // averaged gyro sensor output (counts) +} gyro_sensor_t; + +typedef struct _pressure_sensor +{ + float fHp; // float point type height (m) + float fTp; // float point type temperature (C) + float fmPerCount; // initialized to FMPERCOUNT + float fCPerCount; // initialized to FCPERCPOUNT +} pressure_sensor_t; + +//////////////////////////////////////////////////////////////////////////////// +// Static Variable +//////////////////////////////////////////////////////////////////////////////// +static i2c_handle_t I2C_handle; +static SemaphoreHandle_t xSemaphore; +static fxas_handle_t fxasHandle = {.device = &I2C_handle, + .address = BOARD_I2C_FXAS21002_ADDR}; +static fxos_handle_t fxosHandle = {.device = &I2C_handle, + .address = BOARD_I2C_FXOS8700_ADDR}; +static mpl_handle_t mplHandle = {.device = &I2C_handle}; //////////////////////////////////////////////////////////////////////////////// // Code //////////////////////////////////////////////////////////////////////////////// -void fxas21002Demo(void) +int32_t getOneDecimalPlace(float num) +{ + if (num < 0) + return -(((int32_t)(num * 10)) % 10); + else + return (((int32_t)(num * 10)) % 10); +} + +void printGyro(float Gxf, float Gyf, float Gzf) +{ + PRINTF("[FXAS21002] Rotate detected: X:%5d.%1ddps, Y:%5d.%1ddps, Z:%5d.%1ddps\n\r", + (int32_t)Gxf, + getOneDecimalPlace(Gxf), + (int32_t)Gyf, + getOneDecimalPlace(Gyf), + (int32_t)Gzf, + getOneDecimalPlace(Gzf)); +} + +void printAccMag(float Axf, float Ayf, float Azf, float Mxf, float Myf, float Mzf) +{ + PRINTF("[FXOS8700]Current Acc:X=%7d.%1dg Y=%7d.%1dg Z=%7d.%1dg\n\r", + (int32_t)Axf, + getOneDecimalPlace(Axf), + (int32_t)Ayf, + getOneDecimalPlace(Ayf), + (int32_t)Azf, + getOneDecimalPlace(Azf)); + PRINTF("[FXOS8700]Current Mag:X=%6d.%1duT Y=%6d.%1duT Z=%6d.%1duT\n\r", + (int32_t)Mxf, + getOneDecimalPlace(Mxf), + (int32_t)Myf, + getOneDecimalPlace(Myf), + (int32_t)Mzf, + getOneDecimalPlace(Mzf)); +} + +void printHeightTmp(float height, float tmp) +{ + PRINTF("[MPL3115]Current Height = %6d.%1dMeter, Current Temp = %6d.%1dCelsius\n\r", + (int32_t)height, + getOneDecimalPlace(height), + (int32_t)tmp, + getOneDecimalPlace(tmp)); +} + +void fxas21002OutputUpdate(gyro_sensor_t *gyroSensorPtr) +{ + static uint32_t count = 0, printCount = 0; + + count++; + if (count == GYRO_OVERSAMPLE_RATIO) + { + count = 0; + gyroSensorPtr->iYp[0] = gyroSensorPtr->iSumYpFast[0] / GYRO_OVERSAMPLE_RATIO; + gyroSensorPtr->iYp[1] = gyroSensorPtr->iSumYpFast[1] / GYRO_OVERSAMPLE_RATIO; + gyroSensorPtr->iYp[2] = gyroSensorPtr->iSumYpFast[2] / GYRO_OVERSAMPLE_RATIO; + gyroSensorPtr->fYp[0] = gyroSensorPtr->iYp[0] * gyroSensorPtr->fDegPerSecPerCount; + gyroSensorPtr->fYp[1] = gyroSensorPtr->iYp[1] * gyroSensorPtr->fDegPerSecPerCount; + gyroSensorPtr->fYp[2] = gyroSensorPtr->iYp[2] * gyroSensorPtr->fDegPerSecPerCount; + gyroSensorPtr->iSumYpFast[0] = 0; + gyroSensorPtr->iSumYpFast[1] = 0; + gyroSensorPtr->iSumYpFast[2] = 0; + } + + if ((gyroSensorPtr->fYp[0] > GYRO_UPDATE_THRESHOLD) || + (gyroSensorPtr->fYp[0] < -GYRO_UPDATE_THRESHOLD) || + (gyroSensorPtr->fYp[1] > GYRO_UPDATE_THRESHOLD) || + (gyroSensorPtr->fYp[1] < -GYRO_UPDATE_THRESHOLD) || + (gyroSensorPtr->fYp[2] > GYRO_UPDATE_THRESHOLD) || + (gyroSensorPtr->fYp[2] < -GYRO_UPDATE_THRESHOLD)) + { + printCount++; + if (5 == printCount) + { + printCount = 0; + printGyro(gyroSensorPtr->fYp[0], gyroSensorPtr->fYp[1], gyroSensorPtr->fYp[2]); + } + } +} + +void mpl3115OutputUpdate(pressure_sensor_t *pressureSensorPtr) +{ + static float lastHight = 0, lastTemp = 0; + + /* Print the data to terminal, if the delta exceed threshold. */ + if (((pressureSensorPtr->fHp - lastHight) > HEIGHT_UPDATE_THRESHOLD) || + ((pressureSensorPtr->fHp - lastHight) < -HEIGHT_UPDATE_THRESHOLD) || + ((pressureSensorPtr->fTp - lastTemp) > TEMP_UPDATE_THRESHOLD) || + ((pressureSensorPtr->fTp - lastTemp) < -TEMP_UPDATE_THRESHOLD)) + { + lastHight = pressureSensorPtr->fHp; + lastTemp = pressureSensorPtr->fTp; + printHeightTmp(pressureSensorPtr->fHp, pressureSensorPtr->fTp); + } +} + +void fxas21002Demo_Pol(void) { + const fxas_init_t initConfig = { + .dataRate = fxasDataRate100HZ, + .range = fxasRange2000Dps + }; + + fxas_data_t fxasData; gyro_sensor_t thisGyroSensor; - uint32_t count = 0, printCount = 0; + + memset(&thisGyroSensor, 0, sizeof(thisGyroSensor)); + thisGyroSensor.fDegPerSecPerCount = FXAS21002_DEGPERSECPERCOUNT; PRINTF("\n\r-------------- FXAS21002 Gyro data acquisition --------------\n\r\n\r"); PRINTF("FXAS21002 initialization ... "); - if (fxas21002_init(&thisGyroSensor)) + if (FXAS_Init(&fxasHandle, &initConfig)) PRINTF("OK\n\r"); else PRINTF("ERROR\n\r"); - /* delay 10ms to wait sensor init finish */ - vTaskDelay(10); + /* Active FXAS21002. */ + FXAS_Enable(&fxasHandle); + + /* Delay 100ms to wait sensor init finish */ + vTaskDelay(100); + + PRINTF("Please rotate the board to acquire current angular velocity\n\r"); while(1) { - fxas21002_read_data(&thisGyroSensor); - thisGyroSensor.iSumYpFast[0] += thisGyroSensor.iYpFast[0]; - thisGyroSensor.iSumYpFast[1] += thisGyroSensor.iYpFast[1]; - thisGyroSensor.iSumYpFast[2] += thisGyroSensor.iYpFast[2]; + vTaskDelay(10); + + FXAS_ReadData(&fxasHandle, &fxasData); + thisGyroSensor.iSumYpFast[0] += fxasData.gyroX; + thisGyroSensor.iSumYpFast[1] += fxasData.gyroY; + thisGyroSensor.iSumYpFast[2] += fxasData.gyroZ; + + fxas21002OutputUpdate(&thisGyroSensor); + } +} + +void fxas21002Demo_Int(void) +{ + const fxas_init_t initConfig = { + .dataRate = fxasDataRate100HZ, + .range = fxasRange2000Dps + }; + + fxas_data_t fxasData; + gyro_sensor_t thisGyroSensor; + + memset(&thisGyroSensor, 0, sizeof(thisGyroSensor)); + thisGyroSensor.fDegPerSecPerCount = FXAS21002_DEGPERSECPERCOUNT; - count++; - if (count == OVERSAMPLE_RATIO) + PRINTF("\n\r-------------- FXAS21002 Gyro data acquisition --------------\n\r\n\r"); + + PRINTF("FXAS21002 initialization ... "); + if (FXAS_Init(&fxasHandle, &initConfig)) + PRINTF("OK\n\r"); + else + PRINTF("ERROR\n\r"); + + /* Delay 100ms to wait sensor init finish */ + vTaskDelay(100); + + /* Enable Data Ready Interrupt. */ + // 1.Route Data Ready Interrupt to INT1 Pin; + // 2.Set INT1 Pin logic polarity to Active Low; + // 3.Set INT1 Pin output driver configuration to Open-drain; + // 4.Enable Data Ready Interrupt. + FXAS_WriteReg(&fxasHandle, FXAS21002_CTRL_REG2, 0x0C); + + /* Active FXAS21002 Sensor. */ + FXAS_Enable(&fxasHandle); + + PRINTF("Please rotate the board to acquire current angular velocity\n\r"); + + while(1) + { + /* Wait until sensor data ready. */ + if (pdTRUE == xSemaphoreTake(xSemaphore, 100)) { - count = 0; - thisGyroSensor.iYp[0] = thisGyroSensor.iSumYpFast[0] / OVERSAMPLE_RATIO; - thisGyroSensor.iYp[1] = thisGyroSensor.iSumYpFast[1] / OVERSAMPLE_RATIO; - thisGyroSensor.iYp[2] = thisGyroSensor.iSumYpFast[2] / OVERSAMPLE_RATIO; - thisGyroSensor.fYp[0] = thisGyroSensor.iYp[0] * thisGyroSensor.fDegPerSecPerCount; - thisGyroSensor.fYp[1] = thisGyroSensor.iYp[1] * thisGyroSensor.fDegPerSecPerCount; - thisGyroSensor.fYp[2] = thisGyroSensor.iYp[2] * thisGyroSensor.fDegPerSecPerCount; - thisGyroSensor.iSumYpFast[0] = 0; - thisGyroSensor.iSumYpFast[1] = 0; - thisGyroSensor.iSumYpFast[2] = 0; + /* Read data from sensor */ + FXAS_ReadData(&fxasHandle, &fxasData); + thisGyroSensor.iSumYpFast[0] += fxasData.gyroX; + thisGyroSensor.iSumYpFast[1] += fxasData.gyroY; + thisGyroSensor.iSumYpFast[2] += fxasData.gyroZ; + fxas21002OutputUpdate(&thisGyroSensor); } - - if ((thisGyroSensor.fYp[0] > GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[0] < -GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[1] > GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[1] < -GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[2] > GYRO_UPDATE_THRESHOLD) || - (thisGyroSensor.fYp[2] < -GYRO_UPDATE_THRESHOLD)) + else { - printCount++; - if (40 == printCount) - { - printCount = 0; - PRINTF("[FXAS21002] Rotate detected: X:%5.1fdps, Y:%5.1fdps, Z:%5.1fdps\n\r",\ - thisGyroSensor.fYp[0], thisGyroSensor.fYp[1], thisGyroSensor.fYp[2]); - } + /* Because the GPIO interrutp of Sensor Int pin will be masked when Linux + * boot on Cortex-A7 Core, so we provide this walkaround to enable the GPIO + * interrupt of Sensor Int pin here, if we did not get the sensor data ready + * interrupt for a long time. + */ + NVIC_DisableIRQ(BOARD_GPIO_SENSOR_IRQ_NUM); + RDC_SEMAPHORE_Lock(BOARD_GPIO_SENSOR_RDC_PDAP); + GPIO_SetPinIntMode(BOARD_GPIO_SENSOR_CONFIG->base, BOARD_GPIO_SENSOR_CONFIG->pin, true); + RDC_SEMAPHORE_Unlock(BOARD_GPIO_SENSOR_RDC_PDAP); + NVIC_EnableIRQ(BOARD_GPIO_SENSOR_IRQ_NUM); } } } -void fxos8700Demo(void) +void fxos8700Demo_Pol(void) { - int16_t Ax, Ay, Az, Mx, My, Mz; + const fxos_init_t initConfig = { + .dataRate = fxosDataRate400HZ, + .osr = fxosOSR7, + .hms = fxosBoth, + .range = fxosRange4gMode + }; + + fxos_data_t fxos8700Data; float Axf, Ayf, Azf, Mxf, Myf, Mzf; PRINTF("\n\r-------------- FXOS8700 Acc+Mag data acquisition --------------\n\r\n\r"); PRINTF("FXOS8700 initialization ... "); - if (fxos8700_init()) + if (FXOS_Init(&fxosHandle, &initConfig)) PRINTF("OK\n\r"); else PRINTF("ERROR\n\r"); + /* Active FXOS8700 Sensor. */ + FXOS_Enable(&fxosHandle); + while(1) { vTaskDelay(500); - fxos8700_read_data(&Ax, &Ay, &Az, &Mx, &My, &Mz); - Axf = Ax / 8192.0; - Ayf = Ay / 8192.0; - Azf = Az / 8192.0; - Mxf = Mx * 0.1; - Myf = My * 0.1; - Mzf = Mz * 0.1; - PRINTF("[FXOS8700]Current Acc:X=%7.1fg Y=%7.1fg Z=%7.1fg\n\r",Axf, Ayf, Azf); - PRINTF("[FXOS8700]Current Mag:X=%6.1fuT Y=%6.1fuT Z=%6.1fuT\n\r",Mxf, Myf, Mzf); + FXOS_ReadData(&fxosHandle, &fxos8700Data); + Axf = fxos8700Data.accX / 8192.0; + Ayf = fxos8700Data.accY / 8192.0; + Azf = fxos8700Data.accZ / 8192.0; + Mxf = fxos8700Data.magX * 0.1; + Myf = fxos8700Data.magY * 0.1; + Mzf = fxos8700Data.magZ * 0.1; + printAccMag(Axf, Ayf, Azf, Mxf, Myf, Mzf); } } -void mpl3115Demo(void) +void fxos8700Demo_Int(void) { + const fxos_init_t initConfig = { + .dataRate = fxosDataRate1_56HZ, + .osr = fxosOSR7, + .hms = fxosBoth, + .range = fxosRange4gMode + }; + + fxos_data_t fxos8700Data; + float Axf, Ayf, Azf, Mxf, Myf, Mzf; + + PRINTF("\n\r-------------- FXOS8700 Acc+Mag data acquisition --------------\n\r\n\r"); + + PRINTF("FXOS8700 initialization ... "); + if (FXOS_Init(&fxosHandle, &initConfig)) + PRINTF("OK\n\r"); + else + PRINTF("ERROR\n\r"); + + /* Enable Data Ready Interrupt. */ + // Set Interrupt pin to Active Low & Open-Drain. + FXOS_WriteReg(&fxosHandle, FXOS8700_CTRL_REG3, 0x01); + + // Route Data Ready Interrupt to Int1 Pin. + FXOS_WriteReg(&fxosHandle, FXOS8700_CTRL_REG5, 0x01); + + // Enable Data Ready Interrupt. + FXOS_WriteReg(&fxosHandle, FXOS8700_CTRL_REG4, 0x01); + + /* Active FXOS8700. */ + FXOS_Enable(&fxosHandle); + + while(1) + { + /* Wait until sensor data ready. */ + if (pdTRUE == xSemaphoreTake(xSemaphore, 1500)) + { + /* Read data from sensor */ + FXOS_ReadData(&fxosHandle, &fxos8700Data); + Axf = fxos8700Data.accX / 8192.0; + Ayf = fxos8700Data.accY / 8192.0; + Azf = fxos8700Data.accZ / 8192.0; + Mxf = fxos8700Data.magX * 0.1; + Myf = fxos8700Data.magY * 0.1; + Mzf = fxos8700Data.magZ * 0.1; + + /* Print to terminal */ + printAccMag(Axf, Ayf, Azf, Mxf, Myf, Mzf); + } + else + { + /* Because the GPIO interrutp of Sensor Int pin will be masked when Linux + * boot on Cortex-A7 Core, so we provide this walkaround to enable the GPIO + * interrupt of Sensor Int pin here, if we did not get the sensor data ready + * interrupt for a long time. + */ + NVIC_DisableIRQ(BOARD_GPIO_SENSOR_IRQ_NUM); + RDC_SEMAPHORE_Lock(BOARD_GPIO_SENSOR_RDC_PDAP); + GPIO_SetPinIntMode(BOARD_GPIO_SENSOR_CONFIG->base, BOARD_GPIO_SENSOR_CONFIG->pin, true); + RDC_SEMAPHORE_Unlock(BOARD_GPIO_SENSOR_RDC_PDAP); + NVIC_EnableIRQ(BOARD_GPIO_SENSOR_IRQ_NUM); + } + } +} + +void mpl3115Demo_Pol(void) +{ + const mpl3115_init_t initConfig = { + .outputFormat = mpl3115OutputFormatAltimeter, + .outputMode = mpl3115OutputModeNormal, + .oversampleRatio = mpl3115OverSampleX128 + }; + + mpl3115_data_t mpl3115Data; pressure_sensor_t thisPressureSensor; - float lastHight = 0, lastTemp = 0; + + memset(&thisPressureSensor, 0, sizeof(thisPressureSensor)); + thisPressureSensor.fmPerCount = MPL3115_MPERCOUNT; + thisPressureSensor.fCPerCount = MPL3115_CPERCPOUNT; PRINTF("\n\r-------------- MPL3115 Pressure data acquisition --------------\n\r\n\r"); PRINTF("MPL3115 initialization ... "); - if (mpl3115_init(&thisPressureSensor)) + if (MPL3115_Init(&mplHandle, &initConfig)) PRINTF("OK\n\r"); else PRINTF("ERROR\n\r"); + /* Active MPL3115 Sensor. */ + MPL3115_Enable(&mplHandle); + while(1) { - vTaskDelay(100); - mpl3115_read_data(&thisPressureSensor); - thisPressureSensor.iHp = thisPressureSensor.iHpFast;; - thisPressureSensor.iTp = thisPressureSensor.iTpFast; - thisPressureSensor.fHp = (float) thisPressureSensor.iHp *\ + vTaskDelay(500); + MPL3115_ReadData(&mplHandle, &mpl3115Data); + + thisPressureSensor.fHp = (float) mpl3115Data.presData * thisPressureSensor.fmPerCount; - thisPressureSensor.fTp = (float) thisPressureSensor.iTp *\ + thisPressureSensor.fTp = (float) mpl3115Data.tempData * thisPressureSensor.fCPerCount; - if (((thisPressureSensor.fHp - lastHight) > HEIGHT_UPDATE_THRESHOLD) || - ((thisPressureSensor.fHp - lastHight) < -HEIGHT_UPDATE_THRESHOLD) || - ((thisPressureSensor.fTp - lastTemp) > TEMP_UPDATE_THRESHOLD) || - ((thisPressureSensor.fTp - lastTemp) < -TEMP_UPDATE_THRESHOLD)) + + mpl3115OutputUpdate(&thisPressureSensor); + } +} + +void mpl3115Demo_Int(void) +{ + const mpl3115_init_t initConfig = { + .outputFormat = mpl3115OutputFormatAltimeter, + .outputMode = mpl3115OutputModeNormal, + .oversampleRatio = mpl3115OverSampleX128 + }; + + mpl3115_data_t mpl3115Data; + pressure_sensor_t thisPressureSensor; + + memset(&thisPressureSensor, 0, sizeof(thisPressureSensor)); + thisPressureSensor.fmPerCount = MPL3115_MPERCOUNT; + thisPressureSensor.fCPerCount = MPL3115_CPERCPOUNT; + + PRINTF("\n\r-------------- MPL3115 Pressure data acquisition --------------\n\r\n\r"); + + PRINTF("MPL3115 initialization ... "); + if (MPL3115_Init(&mplHandle, &initConfig)) + PRINTF("OK\n\r"); + else + PRINTF("ERROR\n\r"); + + /* Enable Data Ready Interrupt. */ + // MPL3115 Interrupt source to generate data ready event + // flag on new Pressure/Altitude or Temperature data. + MPL3115_WriteReg(&mplHandle, MPL3115_PT_DATA_CFG, 0x07); + + // Set interrupt pad INT1 & INT2 to Active Low & Open Drain. + MPL3115_WriteReg(&mplHandle, MPL3115_CTRL_REG3, 0x11); + + // Route Data Ready Interrupt to interrupt pad INT1. + MPL3115_WriteReg(&mplHandle, MPL3115_CTRL_REG5, 0x80); + + // Enable Data Ready Interrupt. + MPL3115_WriteReg(&mplHandle, MPL3115_CTRL_REG4, 0x80); + + /* Active MPL3115 Sensor. */ + MPL3115_Enable(&mplHandle); + + while(1) + { + /* Wait until sensor data ready. */ + if (pdTRUE == xSemaphoreTake(xSemaphore, 1000)) { - lastHight = thisPressureSensor.fHp; - lastTemp = thisPressureSensor.fTp; - PRINTF("[MPL3115]Current Height = %6.1fMeter, Current Temp = %5.1fCelsius\n\r", - thisPressureSensor.fHp, - thisPressureSensor.fTp); + /* Get the latest data from sensor */ + MPL3115_ReadData(&mplHandle, &mpl3115Data); + + /* Convert sensor data to standard unit. */ + thisPressureSensor.fHp = (float) mpl3115Data.presData * + thisPressureSensor.fmPerCount; + thisPressureSensor.fTp = (float) mpl3115Data.tempData * + thisPressureSensor.fCPerCount; + + mpl3115OutputUpdate(&thisPressureSensor); + } + else + { + /* Because the GPIO interrutp of Sensor Int pin will be masked when Linux + * boot on Cortex-A7 Core, so we provide this walkaround to enable the GPIO + * interrupt of Sensor Int pin here, if we did not get the sensor data ready + * interrupt for a long time. + */ + NVIC_DisableIRQ(BOARD_GPIO_SENSOR_IRQ_NUM); + RDC_SEMAPHORE_Lock(BOARD_GPIO_SENSOR_RDC_PDAP); + GPIO_SetPinIntMode(BOARD_GPIO_SENSOR_CONFIG->base, BOARD_GPIO_SENSOR_CONFIG->pin, true); + RDC_SEMAPHORE_Unlock(BOARD_GPIO_SENSOR_RDC_PDAP); + NVIC_EnableIRQ(BOARD_GPIO_SENSOR_IRQ_NUM); } } } @@ -177,41 +514,92 @@ void MainTask(void *pvParameters) { uint8_t demoSel; - PRINTF("\n\r-------------- iMX7D SDB on board sensor example --------------\n\r\n\r"); + /* GPIO module initialize, configure button as interrupt mode. */ + gpio_init_config_t sensorIntInitConfig = { + .pin = BOARD_GPIO_SENSOR_CONFIG->pin, + .direction = gpioDigitalInput, + .interruptMode = gpioIntFallingEdge + }; /* Setup I2C init structure. */ - i2c_init_config_t i2cInitConfig = { - .clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR), - .baudRate = 400000u, - .slaveAddress = 0x00 + i2c_xfer_init_config_t i2cInitConfig = { + .base = BOARD_I2C_BASEADDR, + .config = { + .clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR), + .baudRate = 400000u, + .slaveAddress = 0x00 + }, + .irqNum = BOARD_I2C_IRQ_NUM, + .irqPrio = 3 }; + PRINTF("\n\r-------------- iMX7D SDB on board sensor example --------------\n\r\n\r"); + + /* Data acquire sync semi4 init. */ + xSemaphore = xSemaphoreCreateBinary(); + /* Initialize I2C module with I2C init structure. */ - I2C_XFER_Config(&i2cInitConfig); + I2C_XFER_Init(&I2C_handle, &i2cInitConfig); + + /* Deinit on-board sensors to avoid unexpected interrupt. */ + FXAS_Deinit(&fxasHandle); + FXOS_Deinit(&fxosHandle); + MPL3115_Deinit(&mplHandle); + vTaskDelay(50); + + /* Acquire RDC semaphore before access GPIO to avoid conflict, it's + * necessary when GPIO RDC is configured as Semaphore Required */ + RDC_SEMAPHORE_Lock(BOARD_GPIO_SENSOR_RDC_PDAP); + + GPIO_Init(BOARD_GPIO_SENSOR_CONFIG->base, &sensorIntInitConfig); + + /* Clear the interrupt state, this operation is necessary, because the GPIO module maybe confuse + the first rising edge as interrupt*/ + GPIO_ClearStatusFlag(BOARD_GPIO_SENSOR_CONFIG->base, BOARD_GPIO_SENSOR_CONFIG->pin); + /* Enable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_SENSOR_CONFIG->base, BOARD_GPIO_SENSOR_CONFIG->pin, true); + + RDC_SEMAPHORE_Unlock(BOARD_GPIO_SENSOR_RDC_PDAP); + + /* Set I2C Interrupt priority */ + NVIC_SetPriority(BOARD_GPIO_SENSOR_IRQ_NUM, 3); + NVIC_EnableIRQ(BOARD_GPIO_SENSOR_IRQ_NUM); /* Print the initial banner. */ PRINTF("\n\rPlease select the sensor demo you want to run:\n\r"); - PRINTF("[1].FXAS21002 3-axes Gyro sensor\n\r"); - PRINTF("[2].FXOS8700 6-axes Acc+Mag sensor\n\r"); - PRINTF("[3].MPL3115 Pressure sensor\n\r"); + PRINTF("[1].FXAS21002 3-axes Gyro sensor Polling Demo\n\r"); + PRINTF("[2].FXAS21002 3-axes Gyro sensor Interrupt Demo\n\r"); + PRINTF("[3].FXOS8700 6-axes Acc+Mag sensor Polling Demo\n\r"); + PRINTF("[4].FXOS8700 6-axes Acc+Mag sensor Interrupt Demo\n\r"); + PRINTF("[5].MPL3115 Pressure sensor Polling Demo\n\r"); + PRINTF("[6].MPL3115 Pressure sensor Interrupt Demo\n\r"); while(1) { demoSel = GETCHAR(); - if (('1' == demoSel) || ('2' == demoSel) || ('3' == demoSel)) + if ((demoSel >= '1') && (demoSel <= '6')) break; } switch(demoSel) { case '1': - fxas21002Demo(); + fxas21002Demo_Pol(); break; case '2': - fxos8700Demo(); + fxas21002Demo_Int(); break; case '3': - mpl3115Demo(); + fxos8700Demo_Pol(); + break; + case '4': + fxos8700Demo_Int(); + break; + case '5': + mpl3115Demo_Pol(); + break; + case '6': + mpl3115Demo_Int(); break; } } @@ -232,6 +620,29 @@ int main(void) while (true); } +void BOARD_I2C_HANDLER(void) +{ + I2C_XFER_Handler(&I2C_handle); +} + +void BOARD_GPIO_SENSOR_HANDLER(void) +{ + BaseType_t xHigherPriorityTaskWoken = pdFALSE; + + RDC_SEMAPHORE_Lock(BOARD_GPIO_SENSOR_RDC_PDAP); + + /* clear the interrupt status. */ + GPIO_ClearStatusFlag(BOARD_GPIO_SENSOR_CONFIG->base, BOARD_GPIO_SENSOR_CONFIG->pin); + + RDC_SEMAPHORE_Unlock(BOARD_GPIO_SENSOR_RDC_PDAP); + + /* Unlock the task to process the event. */ + xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); +} + /******************************************************************************* * EOF ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt index c6d27e8..ea6ba4d 100644 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt @@ -28,32 +28,32 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") # CXX MACRO @@ -88,11 +88,13 @@ ADD_EXECUTABLE(adc_imx7d_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.cproject index d5a911c..1dafc0f 100644 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.cproject +++ b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.project index a777294..df9b9ee 100644 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.project +++ b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/adc_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/adc_imx7d.cdriver2virtual:/virtualdriver/adc_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/adc_imx7d.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/adc_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/adc_imx7d.cdriver2virtual:/virtualdriver/adc_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/adc_imx7d.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd deleted file mode 100644 index c6d95b5..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - adc_imx7d_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/makedir.bat b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp deleted file mode 100644 index 3e84c94..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/adc_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/inc/adc_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww b/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww deleted file mode 100644 index b9ee8e1..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -alladc_imx7d_exampleReleaseadc_imx7d_exampleDebugReleaseadc_imx7d_exampleReleaseDebugadc_imx7d_exampleDebug -$WS_DIR$/adc_imx7d_example.ewp diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt index 97f64f2..75c6836 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(flexcan_loopback_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject index 1f636d3..693d0cf 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project index 1356bd8..2175e5e 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd deleted file mode 100644 index 8333193..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - flexcan_loopback_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp deleted file mode 100644 index 1c34180..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../../gpio_pins.c$PROJ_DIR$/../../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/flexcan.c$PROJ_DIR$/../../../../../../platform/drivers/inc/flexcan.h$PROJ_DIR$/../../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww deleted file mode 100644 index dec459a..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allflexcan_loopback_exampleReleaseflexcan_loopback_exampleDebugReleaseflexcan_loopback_exampleReleaseDebugflexcan_loopback_exampleDebug -$WS_DIR$/flexcan_loopback_example.ewp diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/main.c b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/main.c index b269e92..980e8ea 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/main.c +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_loopback/main.c @@ -115,7 +115,7 @@ void init_flexcan(void) void init_gpt_timer(void) { uint32_t freq; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt index 365d270..a504059 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(flexcan_network_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject index a124a86..af65217 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.project index e318377..abb8668 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.project +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd deleted file mode 100644 index 8453f80..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - flexcan_network_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp deleted file mode 100644 index 4359073..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../../gpio_pins.c$PROJ_DIR$/../../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/flexcan.c$PROJ_DIR$/../../../../../../platform/drivers/inc/flexcan.h$PROJ_DIR$/../../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww deleted file mode 100644 index e2faa39..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allflexcan_network_exampleReleaseflexcan_network_exampleDebugReleaseflexcan_network_exampleReleaseDebugflexcan_network_exampleDebug -$WS_DIR$/flexcan_network_example.ewp diff --git a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/main.c b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/main.c index 232b24a..6be1572 100644 --- a/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/main.c +++ b/examples/imx7d_sdb_m4/driver_examples/flexcan/flexcan_network/main.c @@ -122,7 +122,7 @@ void init_flexcan(void) void init_gpt(void) { uint32_t freq; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt index 259676e..af034fb 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(gpio_imx_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.cproject index b31cba4..2f143e3 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.cproject +++ b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.project index ade2065..1363820 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.project +++ b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd deleted file mode 100644 index e303892..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - gpio_imx_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/makedir.bat b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/hardware_init.c b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/hardware_init.c index eacaaba..3c5b0e1 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/hardware_init.c +++ b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/hardware_init.c @@ -44,7 +44,7 @@ void hardware_init(void) RDC_SetPdapAccess(RDC, BOARD_GPIO_KEY_RDC_PDAP, 0xFF, false, false); /* Enable gpio clock gate */ - CCM_ControlGate(CCM, BOARD_GPIO_CCM_CCGR, ccmClockNeededRunWait); + CCM_ControlGate(CCM, BOARD_GPIO_KEY_CCM_CCGR, ccmClockNeededRunWait); /* Configure gpio pin IOMUX */ configure_gpio_pin(BOARD_GPIO_KEY_CONFIG); } diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp deleted file mode 100644 index 9873a22..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../gpio_pins.c$PROJ_DIR$/../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpio_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpio_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww deleted file mode 100644 index e6fbb01..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allgpio_imx_exampleReleasegpio_imx_exampleDebugReleasegpio_imx_exampleReleaseDebuggpio_imx_exampleDebug -$WS_DIR$/gpio_imx_example.ewp diff --git a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/main.c b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/main.c index bc51468..f062aef 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpio_imx/main.c +++ b/examples/imx7d_sdb_m4/driver_examples/gpio_imx/main.c @@ -34,99 +34,243 @@ #include "gpio_imx.h" #include "debug_console_imx.h" +#define GPIO_INTERRUPT (1) +#define GPIO_POLLING (0) +#define GPIO_DEBOUNCE_DELAY (100000) + /* button relevent variables */ -static volatile uint8_t keyPressCount; -static uint8_t keyLastState; -static uint8_t keyState; +static uint8_t keyPressCount; +static bool on = false; +#ifdef BOARD_GPIO_KEY_CONFIG +static volatile uint8_t button_pressed_flag; +#endif + +/*! + * @brief Initialize GPIO_LED controller. + */ +static void GPIO_Ctrl_InitLedPin(void) +{ +#ifdef BOARD_GPIO_LED_CONFIG + /* GPIO module initialize, configure "LED" as output and drive the output high level */ + gpio_init_config_t ledInitConfig = { + .pin = BOARD_GPIO_LED_CONFIG->pin, + .direction = gpioDigitalOutput, + .interruptMode = gpioNoIntmode + }; + GPIO_Init(BOARD_GPIO_LED_CONFIG->base, &ledInitConfig); +#endif +} + +/*! + * @brief Initialize GPIO INT\POLLING controller. + */ +static void GPIO_Ctrl_InitKeyPin(uint32_t gpioMode) +{ +#ifdef BOARD_GPIO_KEY_CONFIG + if (GPIO_INTERRUPT == gpioMode) + { + /* GPIO module initialize, configure button as interrupt mode. */ + gpio_init_config_t keyInitConfig = { + .pin = BOARD_GPIO_KEY_CONFIG->pin, + .direction = gpioDigitalInput, + .interruptMode = gpioIntFallingEdge, + }; + GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + /* Enable interrupt. */ + NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + } + else + { + /* GPIO module initialize, configure button as GPIO functionality. */ + gpio_init_config_t keyInitConfig = { + .pin = BOARD_GPIO_KEY_CONFIG->pin, + .direction = gpioDigitalInput, + .interruptMode = gpioNoIntmode, + }; + GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + } +#endif +} + +/*! + * @brief Wait user to press key in INT\NOINT mode. + */ +static void GPIO_WaitKeyPressed(uint32_t gpioMode) +{ +#ifdef BOARD_GPIO_KEY_CONFIG + uint32_t i, j, debounce; + + if (GPIO_INTERRUPT == gpioMode) + { + do + { + debounce = 0; + + /* Clear the interrupt state, this operation is necessary, because the GPIO module maybe confuse + the first rising edge as interrupt*/ + GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + /* Enable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); + + /* Waitting for Key pressed. */ + while(button_pressed_flag == 0); + button_pressed_flag = 0; + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } while (1); + } + else + { + /* Wait for Key Released. */ + do + { + debounce = 0; + while (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)); + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (1 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } + while (1); + + /* Wait for Key Pressed. */ + do + { + debounce = 0; + while (1 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)); + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } + while (1); + } +#else + GETCHAR(); +#endif +} + +/*! + * @brief Toggle the led + */ +static void GPIO_LED_Toggle(void) +{ +#ifdef BOARD_GPIO_LED_CONFIG + GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base,BOARD_GPIO_LED_CONFIG->pin, on ? gpioPinSet : gpioPinClear); + keyPressCount++; + PRINTF("Button pressed %d times\n\r", keyPressCount); +#else + PRINTF("%c ", on ? '+' : '-'); +#endif + on = !on; +} /****************************************************************************** * * Function Name: main * Comments: GPIO module initialize, interrupt and IO operation. * This example include 2 step: -* 1)Configure BUTTON1 as interrupt mode, falling edge, and test +* 1)Configure BUTTON1 as interrupt mode, falling edge, and test * by pressing the button 3 times to trigger interrupt. * 2)Configure BUTTON1 as GPIO functionality * and check the button's state(pressed or released) through switch LED * to on or off if this board has LED. * ******************************************************************************/ -int main( void ) +int main(void) { /* hardware initialiize, include RDC, IOMUX, Uart debug initialize */ - hardware_init(); - + hardware_init(); PRINTF("\n\r====================== GPIO Example ========================\n\r"); -#ifdef BOARD_GPIO_LED_CONFIG - /* GPIO module initialize, configure "LED" as output and drive the output high level */ - gpio_init_t ledInitConfig = { - .pin = BOARD_GPIO_LED_CONFIG->pin, - .direction = gpioDigitalOutput, - .interruptMode = gpioNoIntmode - }; - GPIO_Init(BOARD_GPIO_LED_CONFIG->base, &ledInitConfig); - - /* drive the LED output high level. */ - GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base, BOARD_GPIO_LED_CONFIG->pin, gpioPinSet); -#endif + /* GPIO module initialize, configure "LED" as output and button as interrupt mode. */ + GPIO_Ctrl_InitLedPin(); + GPIO_Ctrl_InitKeyPin(GPIO_INTERRUPT); + /* wait for user to press button */ #ifdef BOARD_GPIO_KEY_CONFIG - /* GPIO module initialize, configure button as interrupt mode. */ - gpio_init_t keyInitConfig = { - .pin = BOARD_GPIO_KEY_CONFIG->pin, - .direction = gpioDigitalInput, - .interruptMode = gpioIntFallingEdge - }; - GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); - - NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); - /* Clear the interrupt state, this operation is necessary, because the GPIO module maybe confuse - the first rising edge as interrupt*/ - GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - /* Enable GPIO pin interrupt */ - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); - /* press button trigger interrupt */ PRINTF("\n\r=================== GPIO Interrupt =====================\n\r"); - PRINTF("The (%s) button is configured to trigger GPIO interrupt.\n\r", BOARD_GPIO_KEY_CONFIG->name); + PRINTF("The (%s) button is configured to trigger GPIO interrupt\n\r", BOARD_GPIO_KEY_CONFIG->name); PRINTF("Press the (%s) button 3 times to continue.\n\n\r", BOARD_GPIO_KEY_CONFIG->name); +#else + PRINTF("\n\r============ Use key to simulate GPIO button ==============\n\r"); + PRINTF("Input any data from terminal 3 times to continues.\n\n\r"); +#endif + keyPressCount = 0; + while(keyPressCount < 3) + { + GPIO_WaitKeyPressed(GPIO_INTERRUPT); + keyPressCount++; + PRINTF("Button pressed %d time. \n\r", keyPressCount); + } - keyPressCount = 1; - while(keyPressCount < 4); - - /* Now disable the interrupt */ - NVIC_DisableIRQ(BOARD_GPIO_KEY_IRQ_NUM); - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, false); - - /* GPIO module initialize, configure button as GPIO functionality. */ - keyInitConfig.pin = BOARD_GPIO_KEY_CONFIG->pin; - keyInitConfig.direction = gpioDigitalInput; - keyInitConfig.interruptMode = gpioNoIntmode; - GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + GPIO_Ctrl_InitKeyPin(GPIO_POLLING); + keyPressCount = 0; /* Configure button as GPIO functionality and check the button's state(pressed or released) to switch LED on or off */ - /* Check the buttion's status(pressed or released) */ PRINTF("\n\r================= GPIO Functionality==================\n\r"); - PRINTF("The (%s) button state is now polled.\n\r", BOARD_GPIO_KEY_CONFIG->name); - PRINTF("Press the (%s) button to switch LED on or off\n\n\r", BOARD_GPIO_KEY_CONFIG->name); - - keyLastState = 1; //initial button released, logic 1 - - for(;;) + PRINTF("The button state is now polled.\n\r"); + PRINTF("Press the button to switch LED on or off\n\n\r"); + while(true) { - keyState = GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - if(keyState != keyLastState) - { - PRINTF("Button %s\n\r", keyState ? "released" : "pressed"); - keyLastState = keyState; -#ifdef BOARD_GPIO_LED_CONFIG - GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base, BOARD_GPIO_LED_CONFIG->pin, keyState ? gpioPinSet : gpioPinClear); -#endif - } + GPIO_WaitKeyPressed(GPIO_POLLING); + GPIO_LED_Toggle(); } -#endif } /****************************************************************************** @@ -134,13 +278,17 @@ int main( void ) * Comments: The interrupt service routine triggered by gpio * Note: Need to consider how to eliminate the button shake problem ******************************************************************************/ +#ifdef BOARD_GPIO_KEY_CONFIG void BOARD_GPIO_KEY_HANDLER(void) { - PRINTF("Button pressed %d time. \n\r", keyPressCount); - keyPressCount++; + button_pressed_flag = 1; /* clear the interrupt status */ GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + + /* Disable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, false); } +#endif /******************************************************************************* * EOF diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/CMakeLists.txt index 271de2f..eaa052e 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(gpt_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/gpt/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.cproject index 88a81ae..1a35343 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.cproject +++ b/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.project index d6b5a5b..b2e99ea 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.project +++ b/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/gpt_example.wsd b/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/gpt_example.wsd deleted file mode 100644 index b055faa..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/gpt_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - gpt_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/makedir.bat b/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewd b/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewp b/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewp deleted file mode 100644 index 3a2b848..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.eww b/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.eww deleted file mode 100644 index 4e7ff2a..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/iar/gpt_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allgpt_exampleReleasegpt_exampleDebugReleasegpt_exampleReleaseDebuggpt_exampleDebug -$WS_DIR$/gpt_example.ewp diff --git a/examples/imx7d_sdb_m4/driver_examples/gpt/main.c b/examples/imx7d_sdb_m4/driver_examples/gpt/main.c index 8292b03..edf299c 100644 --- a/examples/imx7d_sdb_m4/driver_examples/gpt/main.c +++ b/examples/imx7d_sdb_m4/driver_examples/gpt/main.c @@ -40,7 +40,7 @@ static uint32_t counterA, counterB; int main(void) { uint32_t freqA, freqB; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt new file mode 100644 index 0000000..77065a3 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/CMakeLists.txt @@ -0,0 +1,136 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(i2c_imx_interrupt_sensor_imx7d_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/i2c_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/i2c_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(i2c_imx_interrupt_sensor_imx7d_example PROPERTIES OUTPUT_NAME "i2c_imx_interrupt_sensor_imx7d_example.elf") + +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example m) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example c) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example gcc) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example nosys) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_sensor_imx7d_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/i2c_imx_interrupt_sensor_imx7d_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/i2c_imx_interrupt_sensor_imx7d_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.hex) +ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_sensor_imx7d_example.bin) diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject new file mode 100644 index 0000000..4920a1e --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project new file mode 100644 index 0000000..652f761 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/ds5/.project @@ -0,0 +1,86 @@ + + + i2c_imx_interrupt_sensor_imx7d_example_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c new file mode 100644 index 0000000..3ffd205 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/hardware_init.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this example, we need to grasp board I2C exclusively */ + RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select I2C clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); + /* Enable I2C clock */ + CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); + + /* I2C Pin setting */ + configure_i2c_pins(BOARD_I2C_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c new file mode 100644 index 0000000..bcb365e --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_interrupt_sensor_imx7d/main.c @@ -0,0 +1,431 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "board.h" +#include "debug_console_imx.h" +#include "i2c_imx.h" + +typedef struct _i2c_state { + const uint8_t* cmdBuff; /*!< The buffer of I2C command. */ + const uint8_t* txBuff; /*!< The buffer of data being sent.*/ + uint8_t* rxBuff; /*!< The buffer of received data. */ + volatile uint32_t cmdSize; /*!< The remaining number of commands to be transmitted. */ + volatile uint32_t txSize; /*!< The remaining number of bytes to be transmitted. */ + volatile uint32_t rxSize; /*!< The remaining number of bytes to be received. */ + volatile bool isBusy; /*!< True if there is an active transmission. */ + volatile uint32_t operateDir; /*!< Overall I2C bus operating direction. */ + volatile uint32_t currentDir; /*!< Current Data transfer direction. */ + volatile uint32_t currentMode; /*!< Current I2C Bus role of this module. */ +} i2c_state_t; + +/* I2C runtime state structure */ +static i2c_state_t i2cState; + +static uint8_t txBuffer[5]; +static uint8_t rxBuffer[7]; +static uint8_t cmdBuffer[5]; + +static void report_abs(void); +static void I2C_XFER_Config(i2c_init_config_t* initConfig); +static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, const uint8_t* txBuffer, uint32_t txSize); +static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, uint8_t* rxBuffer, uint32_t rxSize); +static bool I2C_XFER_IsBusy(void); + +int main(void) +{ + uint8_t i; + + /* Setup I2C init structure. */ + i2c_init_config_t i2cInitConfig = { + .baudRate = 400000u, + .slaveAddress = 0x00 + }; + + /* Initialize board specified hardware. */ + hardware_init(); + + /* Get current module clock frequency. */ + i2cInitConfig.clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR); + + PRINTF("\n\r++++++++++++++++ I2C Send/Receive interrupt Example ++++++++++++++++\n\r"); + PRINTF("This example will configure on board accelerometer through I2C Bus\n\r"); + PRINTF("and read 10 samples back to see if the accelerometer is configured successfully. \n\r\n\r"); + + PRINTF("[1].Initialize the I2C module with initialize structure. \n\r"); + I2C_XFER_Config(&i2cInitConfig); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); + + PRINTF("[2].Set on-board Acc sensor range to 2G\n\r"); + // Place FXOS8700 into standby + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + // Disable FXOS8700's magnetometer only + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5B; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5C; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + // Set accelerometer range to 2G + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0E; + txBuffer[0] = 0x00; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + // Set accelerometer for high resolution (maximum over sampling) + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2B; + txBuffer[0] = 0x02; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + PRINTF("[3].Set on-board Acc sensor working at fast read and active mode\n\r"); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x09; + I2C_XFER_Write(cmdBuffer, 2, txBuffer, 1); + while(I2C_XFER_IsBusy()); + + PRINTF("[4].Acc sensor WHO_AM_I check... "); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0D; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_XFER_Read(cmdBuffer, 3, rxBuffer, 1); + while (I2C_XFER_IsBusy()); + if (0xC7 == rxBuffer[0]) + PRINTF("OK\n\r"); + else + PRINTF("ERROR\n\r"); + + PRINTF("[5].Acquire 10 samples from Acc sensor\n\r"); + for (i = 0; i < 10; i++) + report_abs(); + + PRINTF("\n\rExample finished!!!\n\r"); + while (true) + __WFI(); +} + +static void report_abs(void) +{ + int16_t x, y, z; + float Ax, Ay, Az; + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x01; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_XFER_Read(cmdBuffer, 3, rxBuffer, 6); + while (I2C_XFER_IsBusy()); + + x = ((rxBuffer[0] << 8) & 0xff00) | rxBuffer[1]; + y = ((rxBuffer[2] << 8) & 0xff00) | rxBuffer[3]; + z = ((rxBuffer[4] << 8) & 0xff00) | rxBuffer[5]; + x = (int16_t)(x) >> 2; + y = (int16_t)(y) >> 2; + z = (int16_t)(z) >> 2; + + Ax = x / (4.0 * 1024); //For full scale range 2g mode. + Ay = y / (4.0 * 1024); + Az = z / (4.0 * 1024); + PRINTF("2G MODE: X=%6.3fg Y=%6.3fg Z=%6.3fg\n\r",Ax, Ay, Az); +} + +static void I2C_XFER_Config(i2c_init_config_t* initConfig) +{ + /* Initialize I2C state structure content. */ + i2cState.cmdBuff = 0; + i2cState.txBuff = 0; + i2cState.rxBuff = 0; + i2cState.cmdSize = 0; + i2cState.txSize = 0; + i2cState.rxSize = 0; + i2cState.isBusy = false; + i2cState.operateDir = i2cDirectionReceive; + i2cState.currentDir = i2cDirectionReceive; + i2cState.currentMode = i2cModeSlave; + + /* Initialize I2C baud rate, mode, transfer direction and slave address. */ + I2C_Init(BOARD_I2C_BASEADDR, initConfig); + + /* Set I2C Interrupt priority */ + NVIC_SetPriority(BOARD_I2C_IRQ_NUM, 3); + + /* Call core API to enable the IRQ. */ + NVIC_EnableIRQ(BOARD_I2C_IRQ_NUM); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); +} + +static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, + const uint8_t* txBuffer, uint32_t txSize) +{ + if ((i2cState.isBusy) || (0 == txSize)) + return false; + + /* Initialize i2c transfer struct */ + i2cState.cmdBuff = cmdBuff; + i2cState.cmdSize = cmdSize; + i2cState.txBuff = txBuffer; + i2cState.txSize = txSize; + i2cState.isBusy = true; + i2cState.operateDir = i2cDirectionTransmit; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + { + /* Reset i2c transfer state. */ + i2cState.operateDir = i2cDirectionReceive; + i2cState.isBusy = false; + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); + i2cState.currentMode = i2cModeMaster; + + if (0 != cmdSize) + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); + i2cState.txBuff++; + i2cState.txSize--; + } + + /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + + return true; +} + +static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, + uint8_t* rxBuffer, uint32_t rxSize) +{ + if ((i2cState.isBusy) || (0 == rxSize)) + return false; + + /* Initialize i2c transfer struct */ + i2cState.cmdBuff = cmdBuff; + i2cState.cmdSize = cmdSize; + i2cState.rxBuff = rxBuffer; + i2cState.rxSize = rxSize; + i2cState.isBusy = true; + i2cState.operateDir = i2cDirectionReceive; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + { + /* Reset i2c transfer state. */ + i2cState.operateDir = i2cDirectionReceive; + i2cState.isBusy = false; + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); + i2cState.currentMode = i2cModeMaster; + + /* Is there command to be sent before receive data? */ + if (0 != i2cState.cmdSize) + { + if (1 == i2cState.cmdSize) + I2C_SendRepeatStart(BOARD_I2C_BASEADDR); + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Ack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + /* dummy read to clock in 1st byte */ + I2C_ReadByte(BOARD_I2C_BASEADDR); + } + + /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + + return true; +} + +static bool I2C_XFER_IsBusy(void) +{ + return i2cState.isBusy; +} + +void BOARD_I2C_HANDLER(void) +{ + /* Clear interrupt flag. */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + /* Exit the ISR if no transfer is happening for this instance. */ + if (!i2cState.isBusy) + return; + + if (i2cModeMaster == i2cState.currentMode) + { + if (i2cDirectionTransmit == i2cState.currentDir) + { + if ((I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck)) || + ((0 == i2cState.txSize) && (0 == i2cState.cmdSize))) + { + if ((i2cDirectionTransmit == i2cState.operateDir) || + (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck))) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); + i2cState.currentMode = i2cModeSlave; + + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + /* Close I2C interrupt. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + /* Release I2C Bus. */ + i2cState.isBusy = false; + } + else + { + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + if (1 == i2cState.rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Ack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + /* dummy read to clock in 1st byte */ + *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); + } + } + else + { + if (0 != i2cState.cmdSize) + { + if ((1 == i2cState.cmdSize) && (i2cDirectionReceive == i2cState.operateDir)) + I2C_SendRepeatStart(BOARD_I2C_BASEADDR); + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); + i2cState.txBuff++; + i2cState.txSize--; + } + } + } + else + { + /* Normal read operation. */ + if (2 == i2cState.rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + + if (1 == i2cState.rxSize) + { + /* Switch back to Tx direction to avoid additional I2C bus read. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + } + *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); + i2cState.rxBuff++; + i2cState.rxSize--; + + /* receive finished. */ + if (0 == i2cState.rxSize) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); + i2cState.currentMode = i2cModeSlave; + + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + /* Close I2C interrupt. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + /* Release I2C Bus. */ + i2cState.isBusy = false; + } + } + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt new file mode 100644 index 0000000..da26472 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/CMakeLists.txt @@ -0,0 +1,136 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(i2c_imx_polling_sensor_imx7d_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/i2c_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/i2c_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(i2c_imx_polling_sensor_imx7d_example PROPERTIES OUTPUT_NAME "i2c_imx_polling_sensor_imx7d_example.elf") + +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example m) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example c) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example gcc) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example nosys) +TARGET_LINK_LIBRARIES(i2c_imx_polling_sensor_imx7d_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/i2c_imx_polling_sensor_imx7d_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/i2c_imx_polling_sensor_imx7d_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET i2c_imx_polling_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.hex) +ADD_CUSTOM_COMMAND(TARGET i2c_imx_polling_sensor_imx7d_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_sensor_imx7d_example.bin) diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject new file mode 100644 index 0000000..4fef3c2 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project new file mode 100644 index 0000000..daf6c27 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/ds5/.project @@ -0,0 +1,86 @@ + + + i2c_imx_polling_sensor_imx7d_example_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c new file mode 100644 index 0000000..3ffd205 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/hardware_init.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this example, we need to grasp board I2C exclusively */ + RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select I2C clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); + /* Enable I2C clock */ + CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); + + /* I2C Pin setting */ + configure_i2c_pins(BOARD_I2C_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c new file mode 100644 index 0000000..d2977a1 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/i2c_imx/i2c_polling_sensor_imx7d/main.c @@ -0,0 +1,343 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "board.h" +#include "debug_console_imx.h" +#include "i2c_imx.h" + +static uint8_t txBuffer[5]; +static uint8_t rxBuffer[7]; +static uint8_t cmdBuffer[5]; + +static void report_abs(void); +static bool I2C_MasterSendDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + const uint8_t *txBuff, + uint32_t txSize); +static bool I2C_MasterReceiveDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + uint8_t *rxBuff, + uint32_t rxSize); + +int main(void) +{ + uint8_t i; + + /* Setup I2C init structure. */ + i2c_init_config_t i2cInitConfig = { + .baudRate = 400000u, + .slaveAddress = 0x00 + }; + + /* Initialize board specified hardware. */ + hardware_init(); + + /* Get current module clock frequency. */ + i2cInitConfig.clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR); + + PRINTF("\n\r++++++++++++++++ I2C Send/Receive polling Example ++++++++++++++++\n\r"); + PRINTF("This example will configure on board accelerometer through I2C Bus\n\r"); + PRINTF("and read 10 samples back to see if the accelerometer is configured successfully. \n\r"); + + PRINTF("[1].Initialize the I2C module with initialize structure. \n\r"); + I2C_Init(BOARD_I2C_BASEADDR, &i2cInitConfig); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); + + PRINTF("[2].Set on-board Acc sensor range to 2G\n\r"); + // Place FXOS8700 into standby + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + // Disable FXOS8700's magnetometer only + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5B; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x5C; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + // Set accelerometer range to 2G + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0E; + txBuffer[0] = 0x00; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + // Set accelerometer for high resolution (maximum over sampling) + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2B; + txBuffer[0] = 0x02; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + PRINTF("[3].Set on-board Acc sensor working at active mode\n\r"); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x2A; + txBuffer[0] = 0x09; + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 2, txBuffer, 1); + + PRINTF("[4].Acc sensor WHO_AM_I check... "); + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x0D; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_MasterReceiveDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 3, rxBuffer, 1); + if (0xC7 == rxBuffer[0]) + PRINTF("OK\n\r"); + else + PRINTF("ERROR\n\r"); + + PRINTF("[5].Acquire 10 samples from Acc sensor\n\r"); + for (i = 0; i < 10; i++) + report_abs(); + + PRINTF("\n\rExample finished!!!\n\r"); + while (true) + __WFI(); +} + +static void report_abs(void) +{ + int16_t x, y, z; + float Ax, Ay, Az; + + cmdBuffer[0] = BOARD_I2C_FXOS8700_ADDR << 1; + cmdBuffer[1] = 0x01; + cmdBuffer[2] = (BOARD_I2C_FXOS8700_ADDR << 1) + 1; + I2C_MasterReceiveDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 3, rxBuffer, 6); + + x = ((rxBuffer[0] << 8) & 0xff00) | rxBuffer[1]; + y = ((rxBuffer[2] << 8) & 0xff00) | rxBuffer[3]; + z = ((rxBuffer[4] << 8) & 0xff00) | rxBuffer[5]; + x = (int16_t)(x) >> 2; + y = (int16_t)(y) >> 2; + z = (int16_t)(z) >> 2; + + Ax = x / (4.0 * 1024); //For full scale range 2g mode. + Ay = y / (4.0 * 1024); + Az = z / (4.0 * 1024); + PRINTF("2G MODE: X=%6.3fg Y=%6.3fg Z=%6.3fg\n\r",Ax, Ay, Az); +} + +static bool I2C_MasterSendDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + const uint8_t *txBuff, + uint32_t txSize) +{ + if (I2C_GetStatusFlag(base, i2cStatusBusBusy)) + return false; + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(base, i2cDirectionTransmit); + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(base, i2cModeMaster); + + /* Send first byte */ + if (0 != cmdSize) + { + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + I2C_WriteByte(base, *txBuff++); + txSize--; + } + + while (1) + { + /* Wait I2C transmission status flag assert. */ + while (!I2C_GetStatusFlag(base, i2cStatusInterrupt)); + + /* Clear I2C transmission status flag. */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + /* Transmit complete. */ + if ((I2C_GetStatusFlag(base, i2cStatusReceivedAck)) || + ((0 == txSize) && (0 == cmdSize))) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + return true; + } + else + { + if (0 != cmdSize) + { + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + I2C_WriteByte(base, *txBuff++); + txSize--; + } + } + } +} + +static bool I2C_MasterReceiveDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + uint8_t *rxBuff, + uint32_t rxSize) +{ + uint32_t currentDir = i2cDirectionReceive; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(base, i2cStatusBusBusy)) + { + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(base, i2cDirectionTransmit); + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(base, i2cModeMaster); + + if (0 != cmdSize) + { + currentDir = i2cDirectionTransmit; + if (1 == cmdSize) + I2C_SendRepeatStart(base); + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(base, i2cDirectionReceive); + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Ack */ + I2C_SetAckBit(base, true); + /* dummy read to clock in 1st byte */ + *rxBuff = I2C_ReadByte(base); + } + + while (1) + { + /* Wait I2C transmission status flag assert. */ + while (!I2C_GetStatusFlag(base, i2cStatusInterrupt)); + + /* Clear I2C transmission status flag. */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + if (i2cDirectionTransmit == currentDir) + { + if (0 < cmdSize) + { + if (I2C_GetStatusFlag(base, i2cStatusReceivedAck)) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + return false; + } + else + { + if (1 == cmdSize) + I2C_SendRepeatStart(base); + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(base, i2cDirectionReceive); + currentDir = i2cDirectionReceive; + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Ack */ + I2C_SetAckBit(base, true); + /* dummy read to clock in 1st byte */ + *rxBuff = I2C_ReadByte(base); + } + } + else + { + /* Normal read operation. */ + if (2 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Nack */ + I2C_SetAckBit(base, true); + + if (1 == rxSize) + /* Switch back to Tx direction to avoid additional I2C bus read. */ + I2C_SetDirMode(base, i2cDirectionTransmit); + *rxBuff = I2C_ReadByte(base); + rxBuff++; + rxSize--; + + /* receive finished. */ + if (0 == rxSize) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + + return true; + } + } + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt index 82ecfcc..a9a2980 100644 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(uart_imx_interrupt_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject index c30bba7..70fede1 100644 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project index 4239d67..8e6eb20 100644 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd deleted file mode 100644 index f249955..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - uart_imx_interrupt_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp deleted file mode 100644 index e481dee..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww deleted file mode 100644 index 479e121..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -alluart_imx_interrupt_exampleReleaseuart_imx_interrupt_exampleDebugReleaseuart_imx_interrupt_exampleReleaseDebuguart_imx_interrupt_exampleDebug -$WS_DIR$/uart_imx_interrupt_example.ewp diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/main.c b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/main.c index 5cef7aa..9b22f1f 100644 --- a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/main.c +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_interrupt/main.c @@ -56,22 +56,24 @@ static uint32_t UART_XFER_GetReadStatus(void); int main(void) { - uint8_t rxChar, txChar; - // Setup UART init structure. - uart_init_config_t uart_init_str = { - .clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR), + uart_init_config_t initConfig = { .baudRate = 115200u, .wordLength = uartWordLength8Bits, .stopBitNum = uartStopBitNumOne, .parity = uartParityDisable, .direction = uartDirectionTxRx }; + uint8_t rxChar, txChar; // Initialize board specified hardware. hardware_init(); + + // Get current module clock frequency. + initConfig.clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR); + // Initialize the uart module with initialize structure. - UART_XFER_Config(&uart_init_str); + UART_XFER_Config(&initConfig); // Inform to start non blocking example. UART_XFER_Write((uint8_t*)buffStart, sizeof(buffStart)); diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt new file mode 100644 index 0000000..97d1f98 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt @@ -0,0 +1,132 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(uart_imx_polling_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(uart_imx_polling_example PROPERTIES OUTPUT_NAME "uart_imx_polling_example.elf") + +TARGET_LINK_LIBRARIES(uart_imx_polling_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(uart_imx_polling_example m) +TARGET_LINK_LIBRARIES(uart_imx_polling_example c) +TARGET_LINK_LIBRARIES(uart_imx_polling_example gcc) +TARGET_LINK_LIBRARIES(uart_imx_polling_example nosys) +TARGET_LINK_LIBRARIES(uart_imx_polling_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/uart_imx_polling_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/uart_imx_polling_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET uart_imx_polling_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.elf ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.hex) +ADD_CUSTOM_COMMAND(TARGET uart_imx_polling_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.elf ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.bin) diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject new file mode 100644 index 0000000..301536c --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.project new file mode 100644 index 0000000..19b17a9 --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/ds5/.project @@ -0,0 +1,86 @@ + + + uart_imx_polling_example_imx7d_sdb_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/hardware_init.c b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/hardware_init.c new file mode 100644 index 0000000..b9efeaf --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/hardware_init.c @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* In this example, we need to grasp board debug uart exclusively */ + RDC_SetPdapAccess(RDC, BOARD_DEBUG_UART_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Select board debug clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT, ccmRootmuxUartOsc24m, 0, 0); + /* Enable debug uart clock */ + CCM_EnableRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_DEBUG_UART_CCM_CCGR, ccmClockNeededRunWait); + + /* UART Pin setting */ + configure_uart_pins(BOARD_DEBUG_UART_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/main.c b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/main.c new file mode 100644 index 0000000..5888f6f --- /dev/null +++ b/examples/imx7d_sdb_m4/driver_examples/uart_imx/uart_polling/main.c @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include +#include +#include "uart_imx.h" +#include "board.h" + +/////////////////////////////////////////////////////////////////////////////// +// Consts +/////////////////////////////////////////////////////////////////////////////// +const uint8_t bufferData1[] = "\n\r++++++++++++++++ UART Send/Receive Polling Example +++++++++++++++++\n\r"; +const uint8_t bufferData2[] = "\n\rType characters from keyboard, the board will receive and then echo them to terminal screen\n\r"; + +static void UART_SendDataPolling(UART_Type *base, const uint8_t *txBuff, uint32_t txSize); +static void UART_ReceiveDataPolling(UART_Type *base, uint8_t *rxBuff, uint32_t rxSize); + +int main(void) +{ + // Setup UART init structure. + uart_init_config_t initConfig = { + .baudRate = 115200u, + .wordLength = uartWordLength8Bits, + .stopBitNum = uartStopBitNumOne, + .parity = uartParityDisable, + .direction = uartDirectionTxRx + }; + uint8_t rxChar = 0; + uint32_t byteCount = 0; + + /* Initialize board specified hardware. */ + hardware_init(); + + // Get current module clock frequency. + initConfig.clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR); + + /* Initialize UART baud rate, bit count, parity, stop bit and direction. */ + UART_Init(BOARD_DEBUG_UART_BASEADDR, &initConfig); + + /* Set UART build-in hardware FIFO Watermark. */ + UART_SetTxFifoWatermark(BOARD_DEBUG_UART_BASEADDR, 16); + UART_SetRxFifoWatermark(BOARD_DEBUG_UART_BASEADDR, 1); + + /* Finally, enable the UART module */ + UART_Enable(BOARD_DEBUG_UART_BASEADDR); + + byteCount = sizeof(bufferData1); + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, bufferData1, byteCount); + + byteCount = sizeof(bufferData2); + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, bufferData2, byteCount); + + while (true) + { + /* Wait to receive input data */ + UART_ReceiveDataPolling(BOARD_DEBUG_UART_BASEADDR, &rxChar, 1u); + + /* Send any character that received */ + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, &rxChar, 1u); + } +} + +static void UART_SendDataPolling(UART_Type *base, const uint8_t *txBuff, uint32_t txSize) +{ + while (txSize--) + { + while (!UART_GetStatusFlag(base, uartStatusTxComplete)); + UART_Putchar(base, *txBuff++); + } +} + +static void UART_ReceiveDataPolling(UART_Type *base, uint8_t *rxBuff, uint32_t rxSize) +{ + while (rxSize--) + { + while (!UART_GetStatusFlag(base, uartStatusRxReady)); + *rxBuff = UART_Getchar(base); + rxBuff++; + + if (UART_GetStatusFlag(base, uartStatusRxOverrun)) + UART_ClearStatusFlag(base, uartStatusRxOverrun); + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt index 3e9f4f0..cda6351 100644 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt +++ b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(wdog_imx_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_all.bat b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_debug.bat b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_release.bat b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/clean.bat b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.cproject b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.cproject index 84b4a99..37167a2 100644 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.cproject +++ b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.project b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.project index 4d130bb..1b5a7ef 100644 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.project +++ b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/makedir.bat b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd deleted file mode 100644 index 507dc3d..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - wdog_imx_example_imx7d_sdb_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp deleted file mode 100644 index 27da58b..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww deleted file mode 100644 index d58e53d..0000000 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allwdog_imx_exampleReleasewdog_imx_exampleDebugReleasewdog_imx_exampleReleaseDebugwdog_imx_exampleDebug -$WS_DIR$/wdog_imx_example.ewp diff --git a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/main.c b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/main.c index 53c0756..af29975 100644 --- a/examples/imx7d_sdb_m4/driver_examples/wdog_imx/main.c +++ b/examples/imx7d_sdb_m4/driver_examples/wdog_imx/main.c @@ -37,11 +37,11 @@ static uint32_t num = 5; int main(void) { - wdog_mode_config_t config = { - .wdw = true, /*!< true: suspend in low power wait, false: not suspend */ + wdog_init_config_t config = { + .wdw = false, /*!< true: suspend in low power wait, false: not suspend */ .wdt = true, /*!< true: assert WDOG_B when timeout, false: not assert WDOG_B */ .wdbg = true, /*!< true: suspend in debug mode, false: not suspend */ - .wdzst = true /*!< true: suspend in doze and stop mode, false: not suspend */ + .wdzst = false /*!< true: suspend in doze and stop mode, false: not suspend */ }; hardware_init(); @@ -51,6 +51,8 @@ int main(void) /* Enable WDOG interrupt 0.5 second before WDOG timeout */ NVIC_SetPriority(BOARD_WDOG_IRQ_NUM, 3); NVIC_EnableIRQ(BOARD_WDOG_IRQ_NUM); + /* Refresh WDOG to reload counter */ + WDOG_Refresh(BOARD_WDOG_BASEADDR); WDOG_EnableInt(BOARD_WDOG_BASEADDR, 1); PRINTF("WDOG with timeout 1.5 seconds will now start\n\r"); diff --git a/examples/imx7d_sdb_m4/gpio_pins.c b/examples/imx7d_sdb_m4/gpio_pins.c index 3e2d167..c4e36dd 100644 --- a/examples/imx7d_sdb_m4/gpio_pins.c +++ b/examples/imx7d_sdb_m4/gpio_pins.c @@ -37,8 +37,8 @@ gpio_config_t gpioKeyFunc1 = { 5, /* muxConfig */ &IOMUXC_SW_PAD_CTL_PAD_SD2_RESET_B, /* padReg */ IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO14_PS(2) | /* padConfig */ - IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO14_PE_MASK | - IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO14_HYS_MASK, + IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO14_PE_MASK | + IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO14_HYS_MASK, GPIO5, /* base */ 11 /* pin */ }; @@ -49,12 +49,24 @@ gpio_config_t gpioKeyFunc2 = { 5, /* muxConfig */ &IOMUXC_SW_PAD_CTL_PAD_SD2_WP, /* padReg */ IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO15_PS(2) | /* padConfig */ - IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO15_PE_MASK | - IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO15_HYS_MASK, + IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO15_PE_MASK | + IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO15_HYS_MASK, GPIO5, /* base */ 10 /* pin */ }; +gpio_config_t gpioSensorInt = { + "SensorInt", /* name */ + &IOMUXC_SW_MUX_CTL_PAD_SAI1_TX_DATA, /* muxReg */ + 5, /* muxConfig */ + &IOMUXC_SW_PAD_CTL_PAD_SAI1_TX_DATA, /* padReg */ + IOMUXC_SW_PAD_CTL_PAD_SAI1_TX_DATA_PS(2) | /* padConfig */ + IOMUXC_SW_PAD_CTL_PAD_SAI1_TX_DATA_PE_MASK | + IOMUXC_SW_PAD_CTL_PAD_SAI1_TX_DATA_HYS_MASK, + GPIO6, /* base */ + 15 /* pin */ +}; + void configure_gpio_pin(gpio_config_t *config) { assert(config); diff --git a/examples/imx7d_sdb_m4/gpio_pins.h b/examples/imx7d_sdb_m4/gpio_pins.h index 7a89afd..6fbc820 100644 --- a/examples/imx7d_sdb_m4/gpio_pins.h +++ b/examples/imx7d_sdb_m4/gpio_pins.h @@ -52,6 +52,7 @@ extern "C" { /*! @brief GPIO pin configuration */ extern gpio_config_t gpioKeyFunc1; extern gpio_config_t gpioKeyFunc2; +extern gpio_config_t gpioSensorInt; /*! @brief Configure specific GPIO pin */ void configure_gpio_pin(gpio_config_t *config); diff --git a/examples/imx7d_sdb_m4/pin_mux.h b/examples/imx7d_sdb_m4/pin_mux.h index 42eba6b..adb5cc7 100644 --- a/examples/imx7d_sdb_m4/pin_mux.h +++ b/examples/imx7d_sdb_m4/pin_mux.h @@ -33,8 +33,8 @@ ** @{ */ -#ifndef __PIN_MUX__ -#define __PIN_MUX__ +#ifndef __PIN_MUX_H__ +#define __PIN_MUX_H__ /* MODULE pin_mux. */ @@ -88,7 +88,7 @@ void configure_i2c_pins(I2C_Type* base); /* ===================================================================*/ void configure_uart_pins(UART_Type* base); -#endif /* __PIN_MUX__ */ +#endif /* __PIN_MUX_H__ */ /******************************************************************************* * EOF ******************************************************************************/ diff --git a/examples/imx7d_val_m4/FreeRTOSConfig.h b/examples/imx7d_val_m4/FreeRTOSConfig.h deleted file mode 100644 index 39dcb8e..0000000 --- a/examples/imx7d_val_m4/FreeRTOSConfig.h +++ /dev/null @@ -1,163 +0,0 @@ -/* - FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -/* Ensure stdint is only used by the compiler, and not the assembler. */ -#ifdef __ICCARM__ - #include -#endif - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ (240000000ul) -#define configTICK_RATE_HZ ((TickType_t)1000) -#define configMAX_PRIORITIES (5) -#define configMINIMAL_STACK_SIZE ((unsigned short)130) -#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) -#define configMAX_TASK_NAME_LEN (10) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 8 -#define configCHECK_FOR_STACK_OVERFLOW 0 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 0 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configGENERATE_RUN_TIME_STATS 0 - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES (2) - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY (2) -#define configTIMER_QUEUE_LENGTH 10 -#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 1 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 - -/* Cortex-M specific definitions. */ -#ifdef __NVIC_PRIO_BITS - /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ - #define configPRIO_BITS __NVIC_PRIO_BITS -#else - #define configPRIO_BITS 4 /* 15 priority levels */ -#endif - -/* The lowest interrupt priority that can be used in a call to a "set priority" -function. */ -#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf - -/* The highest interrupt priority that can be used by any interrupt service -routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL -INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER -PRIORITY THAN THIS! (higher priorities are lower numeric values. */ -#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 - -/* Interrupt priorities used by the kernel port layer itself. These are generic -to all Cortex-M ports, and do not rely on any particular library functions. */ -#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) -/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! -See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ -#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) - -/* Normal assert() semantics without relying on the provision of an assert.h -header file. */ -#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} - -/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS -standard names. */ -#define vPortSVCHandler SVC_Handler -#define xPortPendSVHandler PendSV_Handler -#define xPortSysTickHandler SysTick_Handler - -#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/board.c b/examples/imx7d_val_m4/board.c index 5ce8c78..68cd28b 100644 --- a/examples/imx7d_val_m4/board.c +++ b/examples/imx7d_val_m4/board.c @@ -46,9 +46,11 @@ void BOARD_ClockInit(void) CCM_UpdateRoot(CCM, ccmRootWdog, ccmRootmuxWdogOsc24m, 0, 0); CCM_EnableRoot(CCM, ccmRootWdog); CCM_ControlGate(CCM, ccmCcgrGateWdog3, ccmClockNeededRun); + + RDC_SetPdapAccess(RDC, BOARD_WDOG_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); WDOG_DisablePowerdown(BOARD_WDOG_BASEADDR); + CCM_ControlGate(CCM, ccmCcgrGateWdog3, ccmClockNotNeeded); - CCM_DisableRoot(CCM, ccmRootWdog); /* We need system PLL Div2 to run M4 core */ CCM_ControlGate(CCM, ccmPllGateSys, ccmClockNeededRun); diff --git a/examples/imx7d_val_m4/board.h b/examples/imx7d_val_m4/board.h index 1066241..16af3dc 100644 --- a/examples/imx7d_val_m4/board.h +++ b/examples/imx7d_val_m4/board.h @@ -61,8 +61,8 @@ #define BOARD_SEMA4_RDC_PDAP rdcPdapSemaphoreHs #define BOARD_SEMA4_CCM_CCGR ccmCcgrGateSemaHs #define BOARD_SEMA4_BASEADDR SEMA4 -#define BOARD_SEMA4_IRQ_NUM HS1_IRQn -#define BOARD_SEMA4_HANDLER SEMA4_Handler +#define BOARD_SEMA4_IRQ_NUM SEMA4_HS_M4_IRQn +#define BOARD_SEMA4_HANDLER SEMA4_HS_M4_Handler /* GPT instance A information for this board */ #define BOARD_GPTA_RDC_PDAP rdcPdapGpt3 @@ -80,9 +80,10 @@ #define BOARD_GPTB_HANDLER GPT4_Handler /* GPIO information for this board */ -#define BOARD_GPIO_CCM_CCGR ccmCcgrGateGpio1 +#define BOARD_GPIO_LED_CCM_CCGR ccmCcgrGateGpio1 #define BOARD_GPIO_LED_RDC_PDAP rdcPdapGpio1 #define BOARD_GPIO_LED_CONFIG (&gpioLed) +#define BOARD_GPIO_KEY_CCM_CCGR ccmCcgrGateGpio1 #define BOARD_GPIO_KEY_RDC_PDAP rdcPdapGpio1 #define BOARD_GPIO_KEY_CONFIG (&gpioKeyVolUp) #define BOARD_GPIO_KEY_IRQ_NUM GPIO1_INT15_0_IRQn @@ -97,9 +98,9 @@ #define BOARD_DEBUG_UART_HANDLER UART2_Handler /* MU information for this board*/ -#define BOARD_MU_HANDLER MU_Handler -#define BOARD_MU_IRQ_NUM MU_INT_M4_IRQn -#define BOARD_MU_BASE_ADDR MU0_B +#define BOARD_MU_HANDLER MU_M4_Handler +#define BOARD_MU_IRQ_NUM MU_M4_IRQn +#define BOARD_MU_BASE_ADDR MUB #define BOARD_MU_CCM_CCGR ccmCcgrGateMu #define BOARD_MU_RDC_PDAP rdcPdapMuB diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..dad2e0d --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt index 87ec30e..281bc12 100644 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,18 +82,19 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE -ADD_EXECUTABLE(blinking_imx_demo +ADD_EXECUTABLE(blinking_imx_demo_gpt "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../gpt_timer.c" - "${ProjDirPath}/../gpt_timer.h" + "${ProjDirPath}/../hw_timer.h" "${ProjDirPath}/../gpio_ctrl.c" "${ProjDirPath}/../gpio_ctrl.h" "${ProjDirPath}/../../../../../platform/drivers/src/gpio_imx.c" @@ -115,6 +119,7 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -126,6 +131,7 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" @@ -144,25 +150,25 @@ ADD_EXECUTABLE(blinking_imx_demo "${ProjDirPath}/../../../gpio_pins.c" "${ProjDirPath}/../../../gpio_pins.h" ) -SET_TARGET_PROPERTIES(blinking_imx_demo PROPERTIES OUTPUT_NAME "blinking_imx_demo.elf") +SET_TARGET_PROPERTIES(blinking_imx_demo_gpt PROPERTIES OUTPUT_NAME "blinking_imx_demo_gpt.elf") -TARGET_LINK_LIBRARIES(blinking_imx_demo -Wl,--start-group) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt -Wl,--start-group) # LIBRARIES IF(CMAKE_BUILD_TYPE MATCHES Debug) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) ENDIF() # SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(blinking_imx_demo m) -TARGET_LINK_LIBRARIES(blinking_imx_demo c) -TARGET_LINK_LIBRARIES(blinking_imx_demo gcc) -TARGET_LINK_LIBRARIES(blinking_imx_demo nosys) -TARGET_LINK_LIBRARIES(blinking_imx_demo -Wl,--end-group) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt m) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt c) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt gcc) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt nosys) +TARGET_LINK_LIBRARIES(blinking_imx_demo_gpt -Wl,--end-group) # MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/blinking_imx_demo.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/blinking_imx_demo.map") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/blinking_imx_demo_gpt.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/blinking_imx_demo_gpt.map") # BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.hex) -ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo.bin) +ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo_gpt POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.hex) +ADD_CUSTOM_COMMAND(TARGET blinking_imx_demo_gpt POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.elf ${EXECUTABLE_OUTPUT_PATH}/blinking_imx_demo_gpt.bin) diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.cproject index 3a7b18c..34d664f 100644 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.cproject +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.project b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.project index 2e2e6ae..be5ad3f 100644 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.project +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/.project @@ -1,6 +1,6 @@ - blinking_imx_demo_imx7d_val_m4 + blinking_imx_demo_gpt_imx7d_val_m4 @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.csource2virtual:/virtualsource/gpt_timer.h1PARENT-1-PROJECT_LOC/gpt_timer.hsource2virtual:/virtualsource/gpio_ctrl.c1PARENT-1-PROJECT_LOC/gpio_ctrl.csource2virtual:/virtualsource/gpio_ctrl.h1PARENT-1-PROJECT_LOC/gpio_ctrl.hdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.h + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/gpt_timer.c1PARENT-1-PROJECT_LOC/gpt_timer.csource2virtual:/virtualsource/hw_timer.h1PARENT-1-PROJECT_LOC/hw_timer.hsource2virtual:/virtualsource/gpio_ctrl.c1PARENT-1-PROJECT_LOC/gpio_ctrl.csource2virtual:/virtualsource/gpio_ctrl.h1PARENT-1-PROJECT_LOC/gpio_ctrl.hdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/rdc_semaphore.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc_semaphore.cdriver2virtual:/virtualdriver/rdc_semaphore.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_semaphore.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.h diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd deleted file mode 100644 index d5b654b..0000000 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/blinking_imx_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - blinking_imx_demo_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c index 4cd0b7f..45aece0 100644 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpio_ctrl.c @@ -37,6 +37,7 @@ #include #include "FreeRTOS.h" +#include "task.h" #include "semphr.h" #include "gpio_pins.h" #include "board.h" @@ -50,7 +51,7 @@ static SemaphoreHandle_t xSemaphore; static void GPIO_Ctrl_InitLedPin() { #ifdef BOARD_GPIO_LED_CONFIG - gpio_init_t ledInit = { + gpio_init_config_t ledInit = { .pin = BOARD_GPIO_LED_CONFIG->pin, .direction = gpioDigitalOutput, .interruptMode = gpioNoIntmode @@ -69,7 +70,7 @@ static void GPIO_Ctrl_InitLedPin() static void GPIO_Ctrl_InitKeyPin() { #ifdef BOARD_GPIO_KEY_CONFIG - gpio_init_t keyInit = { + gpio_init_config_t keyInit = { .pin = BOARD_GPIO_KEY_CONFIG->pin, .direction = gpioDigitalInput, .interruptMode = gpioIntFallingEdge @@ -116,37 +117,57 @@ void GPIO_Ctrl_ToggleLed() void GPIO_Ctrl_WaitKeyPressed() { - TickType_t ticks; - #ifdef BOARD_GPIO_KEY_CONFIG - RDC_SEMAPHORE_Lock(BOARD_GPIO_KEY_RDC_PDAP); + uint32_t i, debounce; - /* Clear the interrupt state */ - GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - /* Enable GPIO pin interrupt */ - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); + do + { + debounce = 0; - RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); + RDC_SEMAPHORE_Lock(BOARD_GPIO_KEY_RDC_PDAP); - /* Enable the IRQ. */ - NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + /* Clear the interrupt state */ + GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + /* Enable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); - /* We need wait user input for ever */ - ticks = portMAX_DELAY; + RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); - PRINTF("\n\rPress the (%s) key to switch the blinking frequency:\n\r", BOARD_GPIO_KEY_CONFIG->name); + /* Enable the IRQ. */ + NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + + PRINTF("\n\rPress the (%s) key to switch the blinking frequency:\n\r", BOARD_GPIO_KEY_CONFIG->name); + xSemaphoreTake(xSemaphore, portMAX_DELAY); + + for (i = 0; i < 3; i++) + { + /* Susupend Task to wait Key stable. */ + vTaskDelay(5); + + /* Check key value. */ + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + /* Increase debounce counter. */ + debounce ++; + } + } + + if (debounce >= 2) + { + break; + } + } while (1); #else /* Without key on board, we return every 5 seconds */ - ticks = configTICK_RATE_HZ * 5; PRINTF("\n\rWait 5 seconds to switch blinking frequency:\n\r"); + xSemaphoreTake(xSemaphore, configTICK_RATE_HZ * 5); #endif - xSemaphoreTake(xSemaphore, ticks); } #ifdef BOARD_GPIO_KEY_CONFIG void BOARD_GPIO_KEY_HANDLER() { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; /* When user input captured, we disable GPIO interrupt */ NVIC_DisableIRQ(BOARD_GPIO_KEY_IRQ_NUM); @@ -160,7 +181,11 @@ void BOARD_GPIO_KEY_HANDLER() RDC_SEMAPHORE_Unlock(BOARD_GPIO_KEY_RDC_PDAP); + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } #endif diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.c b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.c index 4b035cb..d092c45 100644 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.c +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.c @@ -37,15 +37,15 @@ #include "FreeRTOS.h" #include "semphr.h" -#include "gpt.h" -#include "gpt_timer.h" #include "board.h" +#include "gpt.h" +#include "hw_timer.h" static SemaphoreHandle_t xSemaphore; -void GPT_Timer_Init() +void Hw_Timer_Init(void) { - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, @@ -54,8 +54,6 @@ void GPT_Timer_Init() .enableMode = true }; - xSemaphore = xSemaphoreCreateBinary(); - /* Initialize GPT module */ GPT_Init(BOARD_GPTA_BASEADDR, &config); @@ -67,11 +65,13 @@ void GPT_Timer_Init() /* Enable NVIC interrupt */ NVIC_EnableIRQ(BOARD_GPTA_IRQ_NUM); + + xSemaphore = xSemaphoreCreateBinary(); } -void GPT_Timer_Delay(uint32_t ms) +void Hw_Timer_Delay(uint32_t ms) { - uint64_t counter = 24000 * ms; /* First get the counter needed by delay time */ + uint64_t counter = 24000ULL * ms; /* First get the counter needed by delay time */ uint32_t high; uint32_t div24m, div; @@ -100,16 +100,20 @@ void GPT_Timer_Delay(uint32_t ms) xSemaphoreTake(xSemaphore, portMAX_DELAY); } -void BOARD_GPTA_HANDLER() +void BOARD_GPTA_HANDLER(void) { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; - /* When GPT timeout, we disable GPT to make sure this is a oneshot event */ + /* When GPT time-out, we disable GPT to make sure this is a one-shot event. */ GPT_Disable(BOARD_GPTA_BASEADDR); GPT_SetIntCmd(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1, false); GPT_ClearStatusFlag(BOARD_GPTA_BASEADDR, gptStatusFlagOutputCompare1); + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore, &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } /******************************************************************************* diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.h b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.h deleted file mode 100644 index db19ab6..0000000 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/gpt_timer.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef __GPT_TIMER_H__ -#define __GPT_TIMER_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/*! - * @brief Initialize GPT timer, must be called before GPT_Timer_Delay(). - */ -void GPT_Timer_Init(void); - -/*! - * @brief Block task for some time with GPT, this timer is not multi-thread - * safe and could only called in one task. - * - * @param ms milliseconds to delay - */ -void GPT_Timer_Delay(uint32_t ms); - -#ifdef __cplusplus -} -#endif - -#endif /* __GPT_TIMER_H__ */ -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hardware_init.c b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hardware_init.c index 1fd4936..c8a2caa 100644 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hardware_init.c +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hardware_init.c @@ -67,7 +67,7 @@ void hardware_init(void) CCM_ControlGate(CCM, ccmCcgrGateSema1, ccmClockNeededRunWait); /* Enable gpio clock gate, led and key share same CCGR on this board */ - CCM_ControlGate(CCM, BOARD_GPIO_CCM_CCGR, ccmClockNeededRunWait); + CCM_ControlGate(CCM, BOARD_GPIO_KEY_CCM_CCGR, ccmClockNeededRunWait); /* Configure gpio pin IOMUX */ configure_gpio_pin(BOARD_GPIO_LED_CONFIG); diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hw_timer.h b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hw_timer.h new file mode 100644 index 0000000..5a87819 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/hw_timer.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __HW_TIMER_H__ +#define __HW_TIMER_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/*! + * @brief Initialize hardware timer, must be called before Hardware_Timer_Delay(). + */ +void Hw_Timer_Init(void); + +/*! + * @brief Block task for some time with hardware timer, this timer is not multi-thread + * safe and could only called in one task. + * + * @param ms milliseconds to delay + */ +void Hw_Timer_Delay(uint32_t ms); + +#ifdef __cplusplus +} +#endif + +#endif /* __HW_TIMER_H__ */ +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp deleted file mode 100644 index a792984..0000000 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../gpio_pins.c$PROJ_DIR$/../../../gpio_pins.hsource$PROJ_DIR$/../main.c$PROJ_DIR$/../gpt_timer.c$PROJ_DIR$/../gpt_timer.h$PROJ_DIR$/../gpio_ctrl.c$PROJ_DIR$/../gpio_ctrl.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpio_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpio_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../platform/drivers/src/rdc_semaphore.c$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_semaphore.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww deleted file mode 100644 index fbc2405..0000000 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/iar/blinking_imx_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allblinking_imx_demoReleaseblinking_imx_demoDebugReleaseblinking_imx_demoReleaseDebugblinking_imx_demoDebug -$WS_DIR$/blinking_imx_demo.ewp diff --git a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/main.c b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/main.c index 6547ada..e280647 100644 --- a/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/main.c +++ b/examples/imx7d_val_m4/demo_apps/blinking_imx_demo/main.c @@ -33,11 +33,11 @@ #include "board.h" #include "debug_console_imx.h" #include "gpio_ctrl.h" -#include "gpt_timer.h" +#include "hw_timer.h" -#define BLINKING_FREQ_MIN (100) +#define BLINKING_INTERVAL_MIN (100) -static volatile uint32_t blinkingInterval = BLINKING_FREQ_MIN; +static volatile uint32_t blinkingInterval = BLINKING_INTERVAL_MIN; /****************************************************************************** * @@ -50,8 +50,8 @@ void ToggleTask(void *pvParameters) while (true) { GPIO_Ctrl_ToggleLed(); - /* Use GPT timer to get accurate delay */ - GPT_Timer_Delay(blinkingInterval); + /* Use Hardware timer to get accurate delay */ + Hw_Timer_Delay(blinkingInterval); } } @@ -69,7 +69,7 @@ void SwitchTask(void *pvParameters) GPIO_Ctrl_WaitKeyPressed(); blinkingInterval += 100; if (blinkingInterval > 1000) - blinkingInterval = BLINKING_FREQ_MIN; + blinkingInterval = BLINKING_INTERVAL_MIN; /* Delay for 1 second to avoid glitch */ vTaskDelay(configTICK_RATE_HZ); } @@ -86,7 +86,7 @@ int main(void) /* Initialize board specified hardware. */ hardware_init(); - GPT_Timer_Init(); + Hw_Timer_Init(); GPIO_Ctrl_Init(); PRINTF("\n\r================= Blinking Demo ==================\n\r"); diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..9eadd5f --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 1 +#define configUSE_MUTEXES 1 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 1 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 1 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 1 +#define INCLUDE_uxTaskPriorityGet 1 +#define INCLUDE_vTaskDelete 1 +#define INCLUDE_vTaskCleanUpResources 1 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 1 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/CMakeLists.txt index d57c967..8b15b95 100644 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(ecspi_flash_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../ecspi_xfer.c" "${ProjDirPath}/../ecspi_xfer.h" @@ -111,6 +115,7 @@ ADD_EXECUTABLE(ecspi_flash_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -122,6 +127,7 @@ ADD_EXECUTABLE(ecspi_flash_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.cproject index b0a9673..09762d5 100644 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.cproject +++ b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.project b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.project index 650cdc5..081f262 100644 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.project +++ b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/ecspi_xfer.c1PARENT-1-PROJECT_LOC/ecspi_xfer.csource2virtual:/virtualsource/ecspi_xfer.h1PARENT-1-PROJECT_LOC/ecspi_xfer.hsource2virtual:/virtualsource/spi_memory.c1PARENT-1-PROJECT_LOC/spi_memory.csource2virtual:/virtualsource/spi_memory.h1PARENT-1-PROJECT_LOC/spi_memory.hdriver2virtual:/virtualdriver/ecspi.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/ecspi_xfer.c1PARENT-1-PROJECT_LOC/ecspi_xfer.csource2virtual:/virtualsource/ecspi_xfer.h1PARENT-1-PROJECT_LOC/ecspi_xfer.hsource2virtual:/virtualsource/spi_memory.c1PARENT-1-PROJECT_LOC/spi_memory.csource2virtual:/virtualsource/spi_memory.h1PARENT-1-PROJECT_LOC/spi_memory.hdriver2virtual:/virtualdriver/ecspi.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/ecspi_flash_demo.wsd b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/ecspi_flash_demo.wsd deleted file mode 100644 index eb24cf2..0000000 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/ecspi_flash_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - ecspi_flash_demo_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/makedir.bat b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.c b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.c index f7f4bb9..6a3a7d8 100644 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.c +++ b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.c @@ -54,7 +54,7 @@ static ecspi_state_t ecspiState; * Comments: ECSPI module initialize * ******************************************************************************/ -void ECSPI_XFER_Config(ecspi_init_t* initConfig) +void ECSPI_XFER_Config(const ecspi_init_config_t* initConfig) { /* Initialize ECSPI state structure content. */ ecspiState.txBuffPtr = 0; @@ -215,11 +215,11 @@ void BOARD_ECSPI_HANDLER(void) ECSPI_ClearStatusFlag(BOARD_ECSPI_BASEADDR, ecspiFlagTxfifoTc); ECSPI_ClearStatusFlag(BOARD_ECSPI_BASEADDR, ecspiFlagRxfifoOverflow); + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(ecspiState.xSemaphore, &xHigherPriorityTaskWoken); - if(xHigherPriorityTaskWoken == pdTRUE) - { - portEND_SWITCHING_ISR(xHigherPriorityTaskWoken); - } + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } /******************************************************************************* diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.h b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.h index 6537cb5..f4978a3 100644 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.h +++ b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/ecspi_xfer.h @@ -39,7 +39,7 @@ extern "C" { #endif -void ECSPI_XFER_Config(ecspi_init_t* initConfig); +void ECSPI_XFER_Config(const ecspi_init_config_t* initConfig); bool ECSPI_XFER_TransmitBurst(void); bool ECSPI_XFER_ReceiveBurst(void); bool ECSPI_XFER_TransferBlocking(uint8_t *txBuffer, uint8_t *rxBuffer, uint32_t transferSize); diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewd b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewp b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewp deleted file mode 100644 index e30b1f6..0000000 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.c$PROJ_DIR$/../ecspi_xfer.c$PROJ_DIR$/../ecspi_xfer.h$PROJ_DIR$/../spi_memory.c$PROJ_DIR$/../spi_memory.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/ecspi.c$PROJ_DIR$/../../../../../platform/drivers/inc/ecspi.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.eww b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.eww deleted file mode 100644 index 89018bd..0000000 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/iar/ecspi_flash_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allecspi_flash_demoReleaseecspi_flash_demoDebugReleaseecspi_flash_demoReleaseDebugecspi_flash_demoDebug -$WS_DIR$/ecspi_flash_demo.ewp diff --git a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/main.c b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/main.c index 013ff42..588572e 100644 --- a/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/main.c +++ b/examples/imx7d_val_m4/demo_apps/ecspi_flash_demo/main.c @@ -97,7 +97,7 @@ int main(void) hardware_init(); /* Ecspi module initialize, include configure parameters */ - ecspi_init_t ecspiInitConfig = { + ecspi_init_config_t ecspiInitConfig = { .clockRate = get_ecspi_clock_freq(BOARD_ECSPI_BASEADDR), .baudRate = 500000, .mode = ecspiMasterMode, diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/hello_world/FreeRTOSConfig.h new file mode 100644 index 0000000..fed1edf --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/CMakeLists.txt index 6066a4b..7b23972 100644 --- a/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" @@ -105,6 +109,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -116,6 +121,7 @@ ADD_EXECUTABLE(hello_world "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/hello_world/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.cproject index fc76bc8..23ed81b 100644 --- a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.cproject +++ b/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.project b/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.project index e1e2dde..a4b2f8f 100644 --- a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.project +++ b/examples/imx7d_val_m4/demo_apps/hello_world/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/hello_world.wsd b/examples/imx7d_val_m4/demo_apps/hello_world/ds5/hello_world.wsd deleted file mode 100644 index f4dc313..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/hello_world.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - hello_world_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/makedir.bat b/examples/imx7d_val_m4/demo_apps/hello_world/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewd b/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewp b/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewp deleted file mode 100644 index 4eaffcf..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.eww b/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.eww deleted file mode 100644 index 18d140a..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world/iar/hello_world.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allhello_worldReleasehello_worldDebugReleasehello_worldReleaseDebughello_worldDebug -$WS_DIR$/hello_world.ewp diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h new file mode 100644 index 0000000..fed1edf --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt new file mode 100644 index 0000000..488604b --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/CMakeLists.txt @@ -0,0 +1,162 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(hello_world_ddr + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../../hello_world/main.c" + "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../pin_mux.c" + "${ProjDirPath}/../../../pin_mux.h" + "${ProjDirPath}/../../../board.c" + "${ProjDirPath}/../../../board.h" + "${ProjDirPath}/../../../clock_freq.c" + "${ProjDirPath}/../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" +) +SET_TARGET_PROPERTIES(hello_world_ddr PROPERTIES OUTPUT_NAME "hello_world_ddr.elf") + +TARGET_LINK_LIBRARIES(hello_world_ddr -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(hello_world_ddr m) +TARGET_LINK_LIBRARIES(hello_world_ddr c) +TARGET_LINK_LIBRARIES(hello_world_ddr gcc) +TARGET_LINK_LIBRARIES(hello_world_ddr nosys) +TARGET_LINK_LIBRARIES(hello_world_ddr -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/hello_world_ddr.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/hello_world_ddr.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET hello_world_ddr POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.hex) +ADD_CUSTOM_COMMAND(TARGET hello_world_ddr POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ddr.bin) diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat new file mode 100644 index 0000000..6d41d86 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh new file mode 100755 index 0000000..ebb0c25 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat new file mode 100644 index 0000000..bf3b902 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh new file mode 100755 index 0000000..571868b --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat new file mode 100644 index 0000000..e229a83 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh new file mode 100755 index 0000000..035ce4e --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.cproject new file mode 100644 index 0000000..9e4eea6 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.project b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.project new file mode 100644 index 0000000..89f4fb9 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/ds5/.project @@ -0,0 +1,86 @@ + + + hello_world_ddr_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + + + diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ddr/hardware_init.c b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/hardware_init.c new file mode 100644 index 0000000..6ce266a --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ddr/hardware_init.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFF000; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0xFFF) & 0xFFFFF000; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFF000; + end = ((uint32_t)__FLASH_END + 0xFFF) & 0xFFFFF000; +#endif + + RDC_SetMrAccess(RDC, rdcMrMmdc, start, end, (3 << (BOARD_DOMAIN_ID * 2)), true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the DDR Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt new file mode 100644 index 0000000..469ae23 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/CMakeLists.txt @@ -0,0 +1,162 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(hello_world_ocram + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../../hello_world/main.c" + "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../pin_mux.c" + "${ProjDirPath}/../../../pin_mux.h" + "${ProjDirPath}/../../../board.c" + "${ProjDirPath}/../../../board.h" + "${ProjDirPath}/../../../clock_freq.c" + "${ProjDirPath}/../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" +) +SET_TARGET_PROPERTIES(hello_world_ocram PROPERTIES OUTPUT_NAME "hello_world_ocram.elf") + +TARGET_LINK_LIBRARIES(hello_world_ocram -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(hello_world_ocram m) +TARGET_LINK_LIBRARIES(hello_world_ocram c) +TARGET_LINK_LIBRARIES(hello_world_ocram gcc) +TARGET_LINK_LIBRARIES(hello_world_ocram nosys) +TARGET_LINK_LIBRARIES(hello_world_ocram -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/hello_world_ocram.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/hello_world_ocram.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET hello_world_ocram POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.hex) +ADD_CUSTOM_COMMAND(TARGET hello_world_ocram POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.elf ${EXECUTABLE_OUTPUT_PATH}/hello_world_ocram.bin) diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat new file mode 100644 index 0000000..6d41d86 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh new file mode 100755 index 0000000..ebb0c25 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat new file mode 100644 index 0000000..bf3b902 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh new file mode 100755 index 0000000..571868b --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat new file mode 100644 index 0000000..e229a83 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh new file mode 100755 index 0000000..035ce4e --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.cproject new file mode 100644 index 0000000..de62447 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.project b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.project new file mode 100644 index 0000000..accb11f --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/ds5/.project @@ -0,0 +1,86 @@ + + + hello_world_ocram_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + + + diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_ocram/hardware_init.c b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/hardware_init.c new file mode 100644 index 0000000..598d2de --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_ocram/hardware_init.c @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFFF80; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0x7F) & 0xFFFFFF80; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFFF80; + end = ((uint32_t)__FLASH_END + 0x7F) & 0xFFFFFF80; +#endif + + /* Grant all domains read/write access because in DSM mode Linux need to + * save/restore OCRAM content */ + RDC_SetMrAccess(RDC, rdcMrOcram, start, end, 0xFF, true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the OCRAM Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h new file mode 100644 index 0000000..fb1d76a --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 0 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 0 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt index 181aae7..c61da6e 100644 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/CMakeLists.txt @@ -22,43 +22,44 @@ SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) # DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIB.ld -static") +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspib.ld -static") # RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIB.ld -static") +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspib.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../../hello_world/main.c" "${ProjDirPath}/../../../../../platform/drivers/src/uart_imx.c" "${ProjDirPath}/../../../../../platform/drivers/inc/uart_imx.h" @@ -105,6 +109,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -116,6 +121,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" @@ -130,7 +136,7 @@ ADD_EXECUTABLE(hello_world_qspi "${ProjDirPath}/../../../board.h" "${ProjDirPath}/../../../clock_freq.c" "${ProjDirPath}/../../../clock_freq.h" - "${ProjDirPath}/../../hello_world/hardware_init.c" + "${ProjDirPath}/../hardware_init.c" ) SET_TARGET_PROPERTIES(hello_world_qspi PROPERTIES OUTPUT_NAME "hello_world_qspi.elf") diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.cproject index 0cf95ef..992785d 100644 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.cproject +++ b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.project b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.project index 0b1102b..30c6220 100644 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.project +++ b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-2-PROJECT_LOC/hello_world/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-2-PROJECT_LOC/hello_world/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd deleted file mode 100644 index c5d354a..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/hello_world_qspi.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - hello_world_qspi_imx7d_val_m4.truedebugfalsereleasefalse - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/makedir.bat b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/hardware_init.c b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/hardware_init.c new file mode 100644 index 0000000..e51af28 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/hardware_init.c @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void RDC_memory_init(void) +{ + uint32_t start, end; +#if defined(__CC_ARM) + extern uint32_t Image$$VECTOR_ROM$$Base[]; + extern uint32_t Image$$ER_m_text$$Limit[]; + extern uint32_t Image$$RW_m_data$$Base[]; + extern uint32_t Image$$RW_m_data$$Limit[]; + + start = (uint32_t)Image$$VECTOR_ROM$$Base & 0xFFFFF000; + end = (uint32_t)(Image$$ER_m_text$$Limit + (Image$$RW_m_data$$Limit - Image$$RW_m_data$$Base)); + end = (end + 0xFFF) & 0xFFFFF000; +#else + extern uint32_t __FLASH_START[]; + extern uint32_t __FLASH_END[]; + + start = (uint32_t)__FLASH_START & 0xFFFFF000; + end = ((uint32_t)__FLASH_END + 0xFFF) & 0xFFFFF000; +#endif + + RDC_SetMrAccess(RDC, rdcMrQspi, start, end, (3 << (BOARD_DOMAIN_ID * 2)), true, false); +} + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Bound part of the QPI Memory to M4 Core */ + RDC_memory_init(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Initialize debug uart */ + dbg_uart_init(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp deleted file mode 100644 index 35b61a7..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../../hello_world/hardware_init.csource$PROJ_DIR$/../../hello_world/main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww b/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww deleted file mode 100644 index aeec508..0000000 --- a/examples/imx7d_val_m4/demo_apps/hello_world_qspi/iar/hello_world_qspi.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allhello_world_qspiDebughello_world_qspiReleaseDebughello_world_qspiDebugReleasehello_world_qspiRelease -$WS_DIR$/hello_world_qspi.ewp diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf b/examples/imx7d_val_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf new file mode 100644 index 0000000..39ffe13 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/common/linker/arm/MCIMX7D_M4_tcm_rpmsg.scf @@ -0,0 +1,90 @@ +#! armcc -E +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: ARM C/C++ Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-07-08 +** +** Abstract: +** Linker file for the ARM C/C++ Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + +#define m_interrupts_start 0x1FFF8000 +#define m_interrupts_size 0x00000240 + +#define m_text_start 0x1FFF8240 +#define m_text_size 0x00007DC0 + +#define m_data_start 0x20000000 +#define m_data_size 0x8000 + +/* Sizes */ +#if (defined(__stack_size__)) + #define Stack_Size __stack_size__ +#else + #define Stack_Size 0x0400 +#endif + +#if (defined(__heap_size__)) + #define Heap_Size __heap_size__ +#else + #define Heap_Size 0x4000 +#endif + +LR_m_text m_text_start m_text_size { ; load region size_region + ER_m_text m_text_start m_text_size { ; load address = execution address + * (InRoot$$Sections) + .ANY (+RO) + } + RW_m_data m_data_start m_data_size { ; RW data + .ANY (+RW +ZI) + } + ARM_LIB_HEAP m_data_start+m_data_size-Heap_Size-Stack_Size EMPTY Heap_Size { ; Heap region growing up + } + ARM_LIB_STACK m_data_start+m_data_size EMPTY -Stack_Size { ; Stack region growing down + } +} + +LR_m_interrupts m_interrupts_start m_interrupts_size { + VECTOR_ROM m_interrupts_start m_interrupts_size { ; load address = execution address + * (RESET,+FIRST) + } +} diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt deleted file mode 100644 index e057d9f..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/CMakeLists.txt +++ /dev/null @@ -1,185 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(rpmsg_pingpong_example - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../../pin_mux.c" - "${ProjDirPath}/../../../../pin_mux.h" - "${ProjDirPath}/../../../../board.c" - "${ProjDirPath}/../../../../board.h" - "${ProjDirPath}/../../../../clock_freq.c" - "${ProjDirPath}/../../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" - "${ProjDirPath}/../pingpong.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" -) -SET_TARGET_PROPERTIES(rpmsg_pingpong_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_example.elf") - -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example m) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example c) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example gcc) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example nosys) -TARGET_LINK_LIBRARIES(rpmsg_pingpong_example -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_example.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_example.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.hex) -ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_example.bin) diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat deleted file mode 100755 index 0cf721f..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh deleted file mode 100755 index 3827529..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat deleted file mode 100755 index e9ccfdd..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh deleted file mode 100755 index effd076..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat deleted file mode 100755 index 0759349..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh deleted file mode 100755 index a12067d..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.cproject deleted file mode 100644 index a98e369..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.project b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.project deleted file mode 100644 index aeca1ae..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - rpmsg_pingpong_example_imx7d_val_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.crpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/plat_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/freertos_env.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos_env.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/pingpong.c1PARENT-1-PROJECT_LOC/pingpong.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd deleted file mode 100644 index 576e1c6..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/ds5/rpmsg_pingpong_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - rpmsg_pingpong_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/hardware_init.c b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/hardware_init.c deleted file mode 100644 index aa69475..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/hardware_init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* RDC MU*/ - RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Enable clock gate for MU*/ - CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp deleted file mode 100644 index f7017c4..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hrpmsg$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/env.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.csystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../pingpong.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/mu_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/mu_imx.h diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww deleted file mode 100644 index 748cbcf..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/iar/rpmsg_pingpong_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allrpmsg_pingpong_exampleReleaserpmsg_pingpong_exampleDebugReleaserpmsg_pingpong_exampleReleaseDebugrpmsg_pingpong_exampleDebug -$WS_DIR$/rpmsg_pingpong_example.ewp diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/pingpong.c b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/pingpong.c deleted file mode 100644 index 4b8b82e..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong/pingpong.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "board.h" -#include "rpmsg/rpmsg.h" -#include "debug_console_imx.h" -#include "mu_imx.h" -#include "plat_porting.h" - -/* - * APP decided interrupt priority - */ -#define APP_MU_IRQ_PRIORITY 3 - -/* Internal functions */ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl); -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl); -static void rpmsg_read_cb(struct rpmsg_channel *, void *, int, void *, unsigned long); - -/* Globals */ -static struct remote_device *rdev; -static struct rpmsg_channel *app_chnl; -static uint32_t msg_var; -static SemaphoreHandle_t app_sema; - -/*! - * @brief A basic RPMSG task - */ -void PingPongTask(void *pvParameters) -{ - PRINTF("RPMSG PingPong Demo...\r\n"); - - app_sema = xSemaphoreCreateCounting(2, 0); - - PRINTF("RPMSG Init as Remote\r\n"); - /* - * RPMSG Init as REMOTE - */ - rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); - - /* - * rpmsg_channel_created will post the first semaphore - */ - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); - - - /* - * pingpong demo loop - */ - for (;;) { - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Get Data From A7 : %d\r\n", msg_var); - msg_var++; - rpmsg_send(app_chnl, (void*)&msg_var, sizeof(uint32_t)); - } -} - - -/* - * MU Interrrupt ISR - */ -void BOARD_MU_HANDLER(void) -{ - /* - * calls into rpmsg_handler provided by middleware - */ - rpmsg_handler(); -} - - -int main(void) -{ - hardware_init(); - - /* - * Prepare for the MU Interrupt - * MU must be initialized before rpmsg init is called - */ - MU_Init(BOARD_MU_BASE_ADDR); - NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); - NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); - - // Create a demo task which will print Hello world and echo user's input. - xTaskCreate(PingPongTask, "Ping Pong Task", configMINIMAL_STACK_SIZE, - NULL, tskIDLE_PRIORITY+1, NULL); - - // Start FreeRTOS scheduler. - vTaskStartScheduler(); - - // Should never reach this point. - while (true); -} - -/* rpmsg_rx_callback will call into this for a channel creation event*/ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) -{ - /* - * we should give the created rp_chnl handler to app layer - */ - app_chnl = rp_chnl; - - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} - -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) -{ - rpmsg_destroy_ept(rp_chnl->rp_ept); -} - -static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, - void * priv, unsigned long src) -{ - msg_var = *(uint32_t*)data; - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt new file mode 100644 index 0000000..207d004 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/CMakeLists.txt @@ -0,0 +1,172 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_pingpong_bm_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../pingpong_bm.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_pingpong_bm_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_bm_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example m) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example c) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_bm_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_bm_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_bm_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_bm_example.bin) diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject new file mode 100644 index 0000000..da7829a --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project new file mode 100644 index 0000000..d2cbd55 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_pingpong_bm_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.srpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/pingpong_bm.c1PARENT-1-PROJECT_LOC/pingpong_bm.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c new file mode 100644 index 0000000..2051bc2 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_bm/pingpong_bm.c @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include +#include "rpmsg/rpmsg.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +typedef struct the_message +{ + uint32_t DATA; +} THE_MESSAGE, * THE_MESSAGE_PTR; + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// +/* Globals */ +static volatile struct rpmsg_channel *app_chnl; +static volatile int pingpong_finished = 0; +static THE_MESSAGE msg; + +static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, + void * priv, unsigned long src) +{ + if(len > sizeof(THE_MESSAGE)) + { + PRINTF("Received size %d exceed pingpong buffer size\r\n", len); + return; + } + + /* Drop extra message received after pingpong finished */ + if (pingpong_finished) + return; + + /* Store received message to global buffer */ + memcpy(&msg, data, len); + + PRINTF("Get Data From Master Side : %d\r\n", msg.DATA); + + /* Send the message back to the remoteproc */ + msg.DATA++; + rpmsg_send((struct rpmsg_channel *)app_chnl, &msg, sizeof(THE_MESSAGE)); + + /* Set pingpong_finished to 1 per requirement */ +} + +/* rpmsg_rx_callback will call into this for a channel creation event*/ +static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) +{ + /* We should give the created rp_chnl handler to app layer */ + app_chnl = rp_chnl; + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); +} + +static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) +{ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main (void) +{ + struct remote_device *rdev; + + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Print the initial banner */ + PRINTF("\r\nRPMSG PingPong Bare Metal Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + rpmsg_init(0 /*REMOTE_CPU_ID*/, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); + + /* wait until the pingpong demo finished */ + while (!pingpong_finished) + { + } + + PRINTF("\r\nMessage pingpong finished\r\n"); + + rpmsg_deinit(rdev); + + return 0; +} + +/******************************************************************************* + * EOF + ******************************************************************************/ + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h new file mode 100644 index 0000000..c57902e --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt new file mode 100644 index 0000000..1b91236 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/CMakeLists.txt @@ -0,0 +1,199 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_pingpong_freertos_example + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../pingpong_freertos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_pingpong_freertos_example PROPERTIES OUTPUT_NAME "rpmsg_pingpong_freertos_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example m) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example c) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_pingpong_freertos_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_pingpong_freertos_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_pingpong_freertos_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_pingpong_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_pingpong_freertos_example.bin) diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject new file mode 100644 index 0000000..cfd2cc0 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project new file mode 100644 index 0000000..3f8a28b --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_pingpong_freertos_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/pingpong_freertos.c1PARENT-1-PROJECT_LOC/pingpong_freertos.crpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.crpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c new file mode 100644 index 0000000..6d0c03d --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/pingpong_freertos/pingpong_freertos.c @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include "rpmsg/rpmsg_rtos.h" +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +#define APP_TASK_STACK_SIZE 256 + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +typedef struct the_message +{ + uint32_t DATA; +} THE_MESSAGE, * THE_MESSAGE_PTR; + +//////////////////////////////////////////////////////////////////////////////// +// Code +//////////////////////////////////////////////////////////////////////////////// + +static void PingPongTask (void* param) +{ + int result; + struct remote_device *rdev = NULL; + struct rpmsg_channel *app_chnl = NULL; + THE_MESSAGE msg = {0}; + int len; + + /* Print the initial banner */ + PRINTF("\r\nRPMSG PingPong FreeRTOS RTOS API Demo...\r\n"); + + PRINTF("RPMSG Init as Remote\r\n"); + result = rpmsg_rtos_init(0 /*REMOTE_CPU_ID*/, &rdev, RPMSG_MASTER, &app_chnl); + assert(0 == result); + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); + + while (true) + { + /* receive/send data to channel default ept */ + result = rpmsg_rtos_recv(app_chnl->rp_ept, &msg, &len, sizeof(THE_MESSAGE), NULL, 0xFFFFFFFF); + assert(0 == result); + PRINTF("Get Data From Master Side : %d\r\n", msg.DATA); + msg.DATA++; + result = rpmsg_rtos_send(app_chnl->rp_ept, &msg, sizeof(THE_MESSAGE), app_chnl->dst); + assert(0 == result); + } + + /* If destruction required */ + /* + PRINTF("\r\nMessage pingpong finished\r\n"); + + rpmsg_rtos_deinit(rdev); + */ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main (void) +{ + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Create a demo task. */ + xTaskCreate(PingPongTask, "Ping Pong Task", APP_TASK_STACK_SIZE, NULL, tskIDLE_PRIORITY + 1, NULL); + + /* Start FreeRTOS scheduler. */ + vTaskStartScheduler(); + + /* Should never reach this point. */ + while(true); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt deleted file mode 100644 index cfdf394..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/CMakeLists.txt +++ /dev/null @@ -1,185 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(rpmsg_str_echo_example - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" - "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" - "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../../pin_mux.c" - "${ProjDirPath}/../../../../pin_mux.h" - "${ProjDirPath}/../../../../board.c" - "${ProjDirPath}/../../../../board.h" - "${ProjDirPath}/../../../../clock_freq.c" - "${ProjDirPath}/../../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" - "${ProjDirPath}/../str_echo.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" -) -SET_TARGET_PROPERTIES(rpmsg_str_echo_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_example.elf") - -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example m) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example c) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example gcc) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example nosys) -TARGET_LINK_LIBRARIES(rpmsg_str_echo_example -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_example.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_example.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.hex) -ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_example.bin) diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat deleted file mode 100755 index 0cf721f..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh deleted file mode 100755 index 3827529..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat deleted file mode 100755 index e9ccfdd..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh deleted file mode 100755 index effd076..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat deleted file mode 100755 index 0759349..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh deleted file mode 100755 index a12067d..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.cproject deleted file mode 100644 index 211ff5c..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.project b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.project deleted file mode 100644 index 6d851b5..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - rpmsg_str_echo_example_imx7d_val_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.crpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/plat_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/freertos_env.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos_env.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/str_echo.c1PARENT-1-PROJECT_LOC/str_echo.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd deleted file mode 100644 index 4ccd06e..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/ds5/rpmsg_str_echo_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - rpmsg_str_echo_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/hardware_init.c b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/hardware_init.c deleted file mode 100644 index aa69475..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/hardware_init.c +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* RDC MU*/ - RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Enable clock gate for MU*/ - CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp deleted file mode 100644 index da4e5e6..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hrpmsg$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/env.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/hil/hil.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/llist/llist.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/config/config.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/porting/env/freertos_env.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtio.c$PROJ_DIR$/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.csystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../str_echo.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/mu_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/mu_imx.h diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww deleted file mode 100644 index 16d90b2..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/iar/rpmsg_str_echo_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allrpmsg_str_echo_exampleReleaserpmsg_str_echo_exampleDebugReleaserpmsg_str_echo_exampleReleaseDebugrpmsg_str_echo_exampleDebug -$WS_DIR$/rpmsg_str_echo_example.ewp diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/str_echo.c b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/str_echo.c deleted file mode 100644 index 7a778fc..0000000 --- a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo/str_echo.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" -#include "string.h" -#include "assert.h" -#include "board.h" -#include "rpmsg/rpmsg.h" -#include "debug_console_imx.h" -#include "mu_imx.h" -#include "plat_porting.h" - -/* - * APP decided interrupt priority - */ -#define APP_MU_IRQ_PRIORITY 3 - -#define MAX_STRING_SIZE 496 /* Maximum size to hold the data A7 gives */ - -/* - * For the most worst case, master will send 3 consecutive messages which remote - * do not process. - * The synchronization between remote and master is that each time endpoint callback - * is called, the MU Receive interrupt is temperorily disabled. Until the next time - * remote consumes the message, the interrupt will not be enabled again. - * When the interrupt is not enabled, Master can not send the notify, it will blocks - * there and can not send further message. - * In the worst case, master send the first message, it triggles the ISR in remote - * side, remote ISR clear the MU status bit so master can send the second message - * and notify again, master can continue to send the 3rd message but will blocks - * when trying to notify. Meanwhile, remote side is still in the first ISR which - * has a loop to receive all the 3 messages. - * Master is blocked and can not send the 4th message, remote side ISR copies all - * this 3 message to app buffer and informs the app layer to consume them. After - * a message is consumed, the ISR is enabled again and the second notify is received. - * This unblocks the master to complete the 3rd notify and send the next message. - * The 4th notify will not complete until remote consumes the second message. - * The situation goes on and we can see application layer need a maximum size 3 - * buffer to hold the unconsumed messages. STRING_BUFFER_CNT is therefore set to 3 - */ -#define STRING_BUFFER_CNT 3 - -/* Internal functions */ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl); -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl); -static void rpmsg_read_cb(struct rpmsg_channel *, void *, int, void *, unsigned long); - -/* Globals */ -static struct remote_device *rdev; -static struct rpmsg_channel *app_chnl; -static char strVar[STRING_BUFFER_CNT][MAX_STRING_SIZE + 1]; -static uint8_t app_idx = 0; -static uint8_t handler_idx = 0; -static SemaphoreHandle_t app_sema; - -/*! - * @brief A basic RPMSG task - */ -void StrEchoTask(void *pvParameters) -{ - PRINTF("RPMSG String Echo Demo...\r\n"); - - app_sema = xSemaphoreCreateCounting(STRING_BUFFER_CNT + 1, 0); - - PRINTF("RPMSG Init as Remote\r\n"); - /* - * RPMSG Init as REMOTE - */ - rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); - - /* - * rpmsg_channel_created will post the first semaphore - */ - xSemaphoreTake(app_sema, portMAX_DELAY); - PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); - - - /* - * pingpong demo loop - */ - for (;;) { - xSemaphoreTake(app_sema, portMAX_DELAY); - /* - * Take from next app string buffer - */ - if ((strlen(strVar[app_idx]) == 2) && (strVar[app_idx][0] == 0xd) && (strVar[app_idx][1] == 0xa)) - PRINTF("Get New Line From A7 From Slot %d\r\n", app_idx); - else - PRINTF("Get Message From A7 : \"%s\" [len : %d] from slot %d\r\n", strVar[app_idx], strlen(strVar[app_idx]), app_idx); - - /* - * echo back - */ - rpmsg_send(app_chnl, (void*)strVar[app_idx], strlen(strVar[app_idx])); - app_idx = (app_idx + 1) % STRING_BUFFER_CNT; - /* - * once a message is consumed, the MU receive interrupt can be enabled - * again - */ - MU_EnableRxFullInt(MU0_B, MU_RPMSG_CHANNEL); - } -} - -/* - * MU Interrrupt ISR - */ -void BOARD_MU_HANDLER(void) -{ - /* - * calls into rpmsg_handler provided by middleware - */ - rpmsg_handler(); -} - -int main(void) -{ - hardware_init(); - - /* - * Prepare for the MU Interrupt - * MU must be initialized before rpmsg init is called - */ - MU_Init(BOARD_MU_BASE_ADDR); - NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); - NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); - - // Create a demo task which will print Hello world and echo user's input. - xTaskCreate(StrEchoTask, "String Echo Task", configMINIMAL_STACK_SIZE, - NULL, tskIDLE_PRIORITY+1, NULL); - - // Start FreeRTOS scheduler. - vTaskStartScheduler(); - - // Should never reach this point. - while (true); -} - -/* rpmsg_rx_callback will call into this for a channel creation event*/ -static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) -{ - /* - * we should give the created rp_chnl handler to app layer - */ - app_chnl = rp_chnl; - - /* - * sync to application layer - */ - xSemaphoreGiveFromISR(app_sema, NULL); -} - -static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) -{ - rpmsg_destroy_ept(rp_chnl->rp_ept); -} - -static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, - void * priv, unsigned long src) -{ - /* - * Temperorily Disable MU Receive Interrupt to avoid master - * sending too many messages and remote will fail to keep pace - * to consume - */ - MU_DisableRxFullInt(MU0_B, MU_RPMSG_CHANNEL); - /* - * Copy to next app string buffer - */ - assert(len <= MAX_STRING_SIZE); - memcpy((void*)strVar[handler_idx], data, len); - /* - * Add trailing '\0' - */ - strVar[handler_idx][len] = 0; - handler_idx = (handler_idx + 1) % STRING_BUFFER_CNT; - xSemaphoreGiveFromISR(app_sema, NULL); -} -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt new file mode 100644 index 0000000..eae2fa5 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/CMakeLists.txt @@ -0,0 +1,172 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x4000") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_str_echo_bm_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../str_echo_bm.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_str_echo_bm_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_bm_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example m) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example c) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_bm_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_bm_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_bm_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_bm_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_bm_example.bin) diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject new file mode 100644 index 0000000..5493489 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project new file mode 100644 index 0000000..e5095fd --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_str_echo_bm_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.srpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/str_echo_bm.c1PARENT-1-PROJECT_LOC/str_echo_bm.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c new file mode 100644 index 0000000..c96d505 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_bm/str_echo_bm.c @@ -0,0 +1,205 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "rpmsg/rpmsg_ext.h" +#include "string.h" +#include "assert.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +/* + * For the most worst case, master will send 3 consecutive messages which remote + * do not process. + * The synchronization between remote and master is that each time endpoint callback + * is called, the MU Receive interrupt is temperorily disabled. Until the next time + * remote consumes the message, the interrupt will not be enabled again. + * When the interrupt is not enabled, Master can not send the notify, it will blocks + * there and can not send further message. + * In the worst case, master send the first message, it triggles the ISR in remote + * side, remote ISR clear the MU status bit so master can send the second message + * and notify again, master can continue to send the 3rd message but will blocks + * when trying to notify. Meanwhile, remote side is still in the first ISR which + * has a loop to receive all the 3 messages. + * Master is blocked and can not send the 4th message, remote side ISR stores all + * this 3 messages to app buffer and informs the app layer to consume them. After + * 3 messages are consumed, the ISR is enabled again and the second notify is received. + * This unblocks the master to complete the 3rd notify and send the 4th message. + * The situation goes on and we can see application layer need a maximum size 3 + * buffer to hold the unconsumed messages. STRING_BUFFER_CNT is therefore set to 3 + */ +#define STRING_BUFFER_CNT 3 + +typedef struct +{ + unsigned long src; + void* data; + int len; +} app_message_t; + +/* Globals */ +static struct rpmsg_channel *app_chnl = NULL; +static app_message_t app_msg[STRING_BUFFER_CNT]; +static char app_buf[512]; /* Each RPMSG buffer can carry less than 512 payload */ +static uint8_t app_idx = 0; +static uint8_t handler_idx = 0; +static volatile int32_t msg_count = 0; + +static void rpmsg_enable_rx_int(bool enable) +{ + if (enable) + { + if ((--msg_count) == 0) + MU_EnableRxFullInt(MUB, RPMSG_MU_CHANNEL); + } + else + { + if ((msg_count++) == 0) + MU_DisableRxFullInt(MUB, RPMSG_MU_CHANNEL); + } +} + +static void rpmsg_read_cb(struct rpmsg_channel *rp_chnl, void *data, int len, + void * priv, unsigned long src) +{ + /* + * Temperorily Disable MU Receive Interrupt to avoid master + * sending too many messages and remote will fail to keep pace + * to consume (flow control) + */ + rpmsg_enable_rx_int(false); + + /* Hold the RPMsg rx buffer to be used in main loop */ + rpmsg_hold_rx_buffer(rp_chnl, data); + app_msg[handler_idx].src = src; + app_msg[handler_idx].data = data; + app_msg[handler_idx].len = len; + + /* Move to next free message index */ + handler_idx = (handler_idx + 1) % STRING_BUFFER_CNT; +} + +/* rpmsg_rx_callback will call into this for a channel creation event*/ +static void rpmsg_channel_created(struct rpmsg_channel *rp_chnl) +{ + /* We should give the created rp_chnl handler to app layer */ + app_chnl = rp_chnl; + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); +} + +static void rpmsg_channel_deleted(struct rpmsg_channel *rp_chnl) +{ +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +/*! + * @brief Main function + */ +int main(void) +{ + struct remote_device *rdev; + int len; + void *tx_buf; + unsigned long size; + + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Print the initial banner */ + PRINTF("\r\nRPMSG String Echo Bare Metal Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + rpmsg_init(0, &rdev, rpmsg_channel_created, rpmsg_channel_deleted, rpmsg_read_cb, RPMSG_MASTER); + + /* + * str_echo demo loop + */ + for (;;) + { + /* Wait message to be available */ + while (msg_count == 0) + { + } + + /* Copy string from RPMsg rx buffer */ + len = app_msg[app_idx].len; + assert(len < sizeof(app_buf)); + memcpy(app_buf, app_msg[app_idx].data, len); + app_buf[len] = 0; /* End string by '\0' */ + + if ((len == 2) && (app_buf[0] == 0xd) && (app_buf[1] == 0xa)) + PRINTF("Get New Line From Master Side From Slot %d\r\n", app_idx); + else + PRINTF("Get Message From Master Side : \"%s\" [len : %d] from slot %d\r\n", app_buf, len, app_idx); + + /* Get tx buffer from RPMsg */ + tx_buf = rpmsg_alloc_tx_buffer(app_chnl, &size, RPMSG_TRUE); + assert(tx_buf); + /* Copy string to RPMsg tx buffer */ + memcpy(tx_buf, app_buf, len); + /* Echo back received message with nocopy send */ + rpmsg_sendto_nocopy(app_chnl, tx_buf, len, app_msg[app_idx].src); + + /* Release held RPMsg rx buffer */ + rpmsg_release_rx_buffer(app_chnl, app_msg[app_idx].data); + app_idx = (app_idx + 1) % STRING_BUFFER_CNT; + + /* Once a message is consumed, minus the msg_count and might enable MU interrupt again */ + rpmsg_enable_rx_int(true); + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h new file mode 100644 index 0000000..c57902e --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt new file mode 100644 index 0000000..19eeddc --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/CMakeLists.txt @@ -0,0 +1,199 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -fno-strict-aliasing -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(rpmsg_str_echo_freertos_example + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" + "${ProjDirPath}/../FreeRTOSConfig.h" + "${ProjDirPath}/../str_echo_freertos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/env.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio_ring.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/croutine.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/event_groups.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/list.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/portable.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/projdefs.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/queue.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/semphr.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/StackMacros.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/task.h" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/include/timers.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/hil/hil.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/llist/llist.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/common/shm/sh_mem.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/config/config.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/remote_device.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_ext.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/rpmsg/rpmsg_core.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtio.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/virtio/virtqueue.c" + "${ProjDirPath}/../../../../../../middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/croutine.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/event_groups.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/list.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/queue.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/tasks.c" + "${ProjDirPath}/../../../../../../rtos/FreeRTOS/Source/timers.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/mu_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/mu_imx.h" +) +SET_TARGET_PROPERTIES(rpmsg_str_echo_freertos_example PROPERTIES OUTPUT_NAME "rpmsg_str_echo_freertos_example.elf") + +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example m) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example c) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example gcc) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example nosys) +TARGET_LINK_LIBRARIES(rpmsg_str_echo_freertos_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/rpmsg_str_echo_freertos_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/rpmsg_str_echo_freertos_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.hex) +ADD_CUSTOM_COMMAND(TARGET rpmsg_str_echo_freertos_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.elf ${EXECUTABLE_OUTPUT_PATH}/rpmsg_str_echo_freertos_example.bin) diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject new file mode 100644 index 0000000..3f36df1 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project new file mode 100644 index 0000000..185ea11 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/ds5/.project @@ -0,0 +1,86 @@ + + + rpmsg_str_echo_freertos_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + freertos2virtual:/virtualfreertos/port.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/str_echo_freertos.c1PARENT-1-PROJECT_LOC/str_echo_freertos.crpmsg2virtual:/virtualrpmsg/rpmsg_rtos.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.hrpmsg2virtual:/virtualrpmsg/platform.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.hrpmsg2virtual:/virtualrpmsg/rpmsg_platform_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.hrpmsg2virtual:/virtualrpmsg/rpmsg.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.hrpmsg2virtual:/virtualrpmsg/rpmsg_ext.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.hrpmsg2virtual:/virtualrpmsg/hil.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.hrpmsg2virtual:/virtualrpmsg/llist.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.hrpmsg2virtual:/virtualrpmsg/sh_mem.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.hrpmsg2virtual:/virtualrpmsg/config.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.hrpmsg2virtual:/virtualrpmsg/env.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/env.hrpmsg2virtual:/virtualrpmsg/rpmsg_core.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.hrpmsg2virtual:/virtualrpmsg/virtio.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.hrpmsg2virtual:/virtualrpmsg/virtio_ring.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio_ring.hrpmsg2virtual:/virtualrpmsg/virtqueue.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.hrpmsg2virtual:/virtualrpmsg/rpmsg_porting.h1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hrpmsg2virtual:/virtualrpmsg/rpmsg_rtos.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.crpmsg2virtual:/virtualrpmsg/platform.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform.crpmsg2virtual:/virtualrpmsg/platform_info.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.crpmsg2virtual:/virtualrpmsg/hil.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/hil/hil.crpmsg2virtual:/virtualrpmsg/llist.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/llist/llist.crpmsg2virtual:/virtualrpmsg/sh_mem.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/common/shm/sh_mem.crpmsg2virtual:/virtualrpmsg/config.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/config/config.crpmsg2virtual:/virtualrpmsg/remote_device.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/remote_device.crpmsg2virtual:/virtualrpmsg/rpmsg.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg.crpmsg2virtual:/virtualrpmsg/rpmsg_ext.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_ext.crpmsg2virtual:/virtualrpmsg/rpmsg_core.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/rpmsg/rpmsg_core.crpmsg2virtual:/virtualrpmsg/virtio.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtio.crpmsg2virtual:/virtualrpmsg/virtqueue.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/virtio/virtqueue.crpmsg2virtual:/virtualrpmsg/rpmsg_porting.c1PARENT-6-PROJECT_LOC/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.cfreertos2virtual:/virtualfreertos/croutine.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-6-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.hdriver2virtual:/virtualdriver/mu_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/mu_imx.cdriver2virtual:/virtualdriver/mu_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/mu_imx.h + + + diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c new file mode 100644 index 0000000..aa69475 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/hardware_init.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC MU*/ + RDC_SetPdapAccess(RDC, BOARD_MU_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Enable clock gate for MU*/ + CCM_ControlGate(CCM, BOARD_MU_CCM_CCGR, ccmClockNeededRun); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c new file mode 100644 index 0000000..b34b3d7 --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/rpmsg/str_echo_freertos/str_echo_freertos.c @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "rpmsg/rpmsg_rtos.h" +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "string.h" +#include "board.h" +#include "mu_imx.h" +#include "debug_console_imx.h" + +//////////////////////////////////////////////////////////////////////////////// +// Definitions +//////////////////////////////////////////////////////////////////////////////// +#define APP_TASK_STACK_SIZE 256 + +/* + * APP decided interrupt priority + */ +#define APP_MU_IRQ_PRIORITY 3 + +/* Globals */ +static char app_buf[512]; /* Each RPMSG buffer can carry less than 512 payload */ + +/*! + * @brief A basic RPMSG task + */ +static void StrEchoTask(void *pvParameters) +{ + int result; + struct remote_device *rdev = NULL; + struct rpmsg_channel *app_chnl = NULL; + void *rx_buf; + int len; + unsigned long src; + void *tx_buf; + unsigned long size; + + /* Print the initial banner */ + PRINTF("\r\nRPMSG String Echo FreeRTOS RTOS API Demo...\r\n"); + + /* RPMSG Init as REMOTE */ + PRINTF("RPMSG Init as Remote\r\n"); + result = rpmsg_rtos_init(0 /*REMOTE_CPU_ID*/, &rdev, RPMSG_MASTER, &app_chnl); + assert(result == 0); + + PRINTF("Name service handshake is done, M4 has setup a rpmsg channel [%d ---> %d]\r\n", app_chnl->src, app_chnl->dst); + + /* + * str_echo demo loop + */ + for (;;) + { + /* Get RPMsg rx buffer with message */ + result = rpmsg_rtos_recv_nocopy(app_chnl->rp_ept, &rx_buf, &len, &src, 0xFFFFFFFF); + assert(result == 0); + + /* Copy string from RPMsg rx buffer */ + assert(len < sizeof(app_buf)); + memcpy(app_buf, rx_buf, len); + app_buf[len] = 0; /* End string by '\0' */ + + if ((len == 2) && (app_buf[0] == 0xd) && (app_buf[1] == 0xa)) + PRINTF("Get New Line From Master Side\r\n"); + else + PRINTF("Get Message From Master Side : \"%s\" [len : %d]\r\n", app_buf, len); + + /* Get tx buffer from RPMsg */ + tx_buf = rpmsg_rtos_alloc_tx_buffer(app_chnl->rp_ept, &size); + assert(tx_buf); + /* Copy string to RPMsg tx buffer */ + memcpy(tx_buf, app_buf, len); + /* Echo back received message with nocopy send */ + result = rpmsg_rtos_send_nocopy(app_chnl->rp_ept, tx_buf, len, src); + assert(result == 0); + + /* Release held RPMsg rx buffer */ + result = rpmsg_rtos_recv_nocopy_free(app_chnl->rp_ept, rx_buf); + assert(result == 0); + } +} + +/* + * MU Interrrupt ISR + */ +void BOARD_MU_HANDLER(void) +{ + /* + * calls into rpmsg_handler provided by middleware + */ + rpmsg_handler(); +} + +int main(void) +{ + hardware_init(); + + /* + * Prepare for the MU Interrupt + * MU must be initialized before rpmsg init is called + */ + MU_Init(BOARD_MU_BASE_ADDR); + NVIC_SetPriority(BOARD_MU_IRQ_NUM, APP_MU_IRQ_PRIORITY); + NVIC_EnableIRQ(BOARD_MU_IRQ_NUM); + + /* Create a demo task. */ + xTaskCreate(StrEchoTask, "String Echo Task", APP_TASK_STACK_SIZE, + NULL, tskIDLE_PRIORITY+1, NULL); + + /* Start FreeRTOS scheduler. */ + vTaskStartScheduler(); + + /* Should never reach this point. */ + while (true); +} +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/FreeRTOSConfig.h b/examples/imx7d_val_m4/demo_apps/sema4_demo/FreeRTOSConfig.h new file mode 100644 index 0000000..bd4ca6f --- /dev/null +++ b/examples/imx7d_val_m4/demo_apps/sema4_demo/FreeRTOSConfig.h @@ -0,0 +1,163 @@ +/* + FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. + All rights reserved + + VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. + + *************************************************************************** + * * + * FreeRTOS provides completely free yet professionally developed, * + * robust, strictly quality controlled, supported, and cross * + * platform software that has become a de facto standard. * + * * + * Help yourself get started quickly and support the FreeRTOS * + * project by purchasing a FreeRTOS tutorial book, reference * + * manual, or both from: http://www.FreeRTOS.org/Documentation * + * * + * Thank you! * + * * + *************************************************************************** + + This file is part of the FreeRTOS distribution. + + FreeRTOS is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License (version 2) as published by the + Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. + + >>! NOTE: The modification to the GPL is included to allow you to distribute + >>! a combined work that includes FreeRTOS without being obliged to provide + >>! the source code for proprietary components outside of the FreeRTOS + >>! kernel. + + FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. Full license text is available from the following + link: http://www.freertos.org/a00114.html + + 1 tab == 4 spaces! + + *************************************************************************** + * * + * Having a problem? Start by reading the FAQ "My application does * + * not run, what could be wrong?" * + * * + * http://www.FreeRTOS.org/FAQHelp.html * + * * + *************************************************************************** + + http://www.FreeRTOS.org - Documentation, books, training, latest versions, + license and Real Time Engineers Ltd. contact details. + + http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, + including FreeRTOS+Trace - an indispensable productivity tool, a DOS + compatible FAT file system, and our tiny thread aware UDP/IP stack. + + http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High + Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS + licenses offer ticketed support, indemnification and middleware. + + http://www.SafeRTOS.com - High Integrity Systems also provide a safety + engineered and independently SIL3 certified version for use in safety and + mission critical applications that require provable dependability. + + 1 tab == 4 spaces! +*/ + + +#ifndef FREERTOS_CONFIG_H +#define FREERTOS_CONFIG_H + +/*----------------------------------------------------------- + * Application specific definitions. + * + * These definitions should be adjusted for your particular hardware and + * application requirements. + * + * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE + * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. + * + * See http://www.freertos.org/a00110.html. + *----------------------------------------------------------*/ + +/* Ensure stdint is only used by the compiler, and not the assembler. */ +#ifdef __ICCARM__ + #include +#endif + +#define configUSE_PREEMPTION 1 +#define configUSE_IDLE_HOOK 0 +#define configUSE_TICK_HOOK 0 +#define configCPU_CLOCK_HZ (240000000ul) +#define configTICK_RATE_HZ ((TickType_t)1000) +#define configMAX_PRIORITIES (5) +#define configMINIMAL_STACK_SIZE ((unsigned short)130) +#define configTOTAL_HEAP_SIZE ((size_t)(20 * 1024)) +#define configMAX_TASK_NAME_LEN (10) +#define configUSE_TRACE_FACILITY 0 +#define configUSE_16_BIT_TICKS 0 +#define configIDLE_SHOULD_YIELD 0 +#define configUSE_MUTEXES 0 +#define configQUEUE_REGISTRY_SIZE 8 +#define configCHECK_FOR_STACK_OVERFLOW 0 +#define configUSE_RECURSIVE_MUTEXES 0 +#define configUSE_MALLOC_FAILED_HOOK 0 +#define configUSE_APPLICATION_TASK_TAG 0 +#define configUSE_COUNTING_SEMAPHORES 1 +#define configGENERATE_RUN_TIME_STATS 0 + +/* Co-routine definitions. */ +#define configUSE_CO_ROUTINES 0 +#define configMAX_CO_ROUTINE_PRIORITIES (2) + +/* Software timer definitions. */ +#define configUSE_TIMERS 0 +#define configTIMER_TASK_PRIORITY (2) +#define configTIMER_QUEUE_LENGTH 10 +#define configTIMER_TASK_STACK_DEPTH (configMINIMAL_STACK_SIZE * 2) + +/* Set the following definitions to 1 to include the API function, or zero +to exclude the API function. */ +#define INCLUDE_vTaskPrioritySet 0 +#define INCLUDE_uxTaskPriorityGet 0 +#define INCLUDE_vTaskDelete 0 +#define INCLUDE_vTaskCleanUpResources 0 +#define INCLUDE_vTaskSuspend 1 +#define INCLUDE_vTaskDelayUntil 0 +#define INCLUDE_vTaskDelay 1 + +/* Cortex-M specific definitions. */ +#ifdef __NVIC_PRIO_BITS + /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ + #define configPRIO_BITS __NVIC_PRIO_BITS +#else + #define configPRIO_BITS 4 /* 15 priority levels */ +#endif + +/* The lowest interrupt priority that can be used in a call to a "set priority" +function. */ +#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0xf + +/* The highest interrupt priority that can be used by any interrupt service +routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL +INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER +PRIORITY THAN THIS! (higher priorities are lower numeric values. */ +#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 1 + +/* Interrupt priorities used by the kernel port layer itself. These are generic +to all Cortex-M ports, and do not rely on any particular library functions. */ +#define configKERNEL_INTERRUPT_PRIORITY (configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) +/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!! +See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */ +#define configMAX_SYSCALL_INTERRUPT_PRIORITY (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS)) + +/* Normal assert() semantics without relying on the provision of an assert.h +header file. */ +#define configASSERT(x) if((x) == 0) {taskDISABLE_INTERRUPTS(); for(;;);} + +/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS +standard names. */ +#define vPortSVCHandler SVC_Handler +#define xPortPendSVHandler PendSV_Handler +#define xPortSysTickHandler SysTick_Handler + +#endif /* FREERTOS_CONFIG_H */ diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt index eff480e..517dd77 100644 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/CMakeLists.txt @@ -28,37 +28,38 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO # INCLUDE_DIRECTORIES IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -68,8 +69,10 @@ IF(CMAKE_BUILD_TYPE MATCHES Debug) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/CMSIS/Include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/devices) @@ -79,6 +82,7 @@ ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include) INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../platform/utilities/inc) INCLUDE_DIRECTORIES(${ProjDirPath}/../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/..) ENDIF() # ADD_EXECUTABLE @@ -87,7 +91,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c" - "${ProjDirPath}/../../../FreeRTOSConfig.h" + "${ProjDirPath}/../FreeRTOSConfig.h" "${ProjDirPath}/../main.c" "${ProjDirPath}/../sema4_mutex.c" "${ProjDirPath}/../sema4_mutex.h" @@ -109,6 +113,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/include/timers.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" @@ -120,6 +125,7 @@ ADD_EXECUTABLE(sema4_demo "${ProjDirPath}/../../../../../rtos/FreeRTOS/Source/timers.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/utilities/src/debug_console_imx.c" diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_all.bat b/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_debug.bat b/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_release.bat b/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/clean.bat b/examples/imx7d_val_m4/demo_apps/sema4_demo/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.cproject b/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.cproject index d552235..d5bfbdb 100644 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.cproject +++ b/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - - + + + @@ -63,21 +63,21 @@ - + - + - + - - + + + diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.project b/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.project index eef6f40..6702958 100644 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.project +++ b/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-3-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/sema4_mutex.c1PARENT-1-PROJECT_LOC/sema4_mutex.csource2virtual:/virtualsource/sema4_mutex.h1PARENT-1-PROJECT_LOC/sema4_mutex.hdriver2virtual:/virtualdriver/sema4.c1PARENT-5-PROJECT_LOC/platform/drivers/src/sema4.cdriver2virtual:/virtualdriver/sema4.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/sema4.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c + freertos2virtual:/virtualfreertos/port.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.cfreertos2virtual:/virtualfreertos/portmacro.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.hstartup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sfreertos2virtual:/virtualfreertos/heap_2.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/portable/MemMang/heap_2.cboard2virtual:/virtualboard/FreeRTOSConfig.h1PARENT-1-PROJECT_LOC/FreeRTOSConfig.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.csource2virtual:/virtualsource/sema4_mutex.c1PARENT-1-PROJECT_LOC/sema4_mutex.csource2virtual:/virtualsource/sema4_mutex.h1PARENT-1-PROJECT_LOC/sema4_mutex.hdriver2virtual:/virtualdriver/sema4.c1PARENT-5-PROJECT_LOC/platform/drivers/src/sema4.cdriver2virtual:/virtualdriver/sema4.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/sema4.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.hfreertos2virtual:/virtualfreertos/croutine.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/croutine.hfreertos2virtual:/virtualfreertos/event_groups.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/event_groups.hfreertos2virtual:/virtualfreertos/FreeRTOS.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/FreeRTOS.hfreertos2virtual:/virtualfreertos/list.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/list.hfreertos2virtual:/virtualfreertos/mpu_wrappers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/mpu_wrappers.hfreertos2virtual:/virtualfreertos/portable.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/portable.hfreertos2virtual:/virtualfreertos/projdefs.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/projdefs.hfreertos2virtual:/virtualfreertos/queue.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/queue.hfreertos2virtual:/virtualfreertos/semphr.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/semphr.hfreertos2virtual:/virtualfreertos/StackMacros.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/StackMacros.hfreertos2virtual:/virtualfreertos/task.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/task.hfreertos2virtual:/virtualfreertos/timers.h1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/include/timers.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hfreertos2virtual:/virtualfreertos/croutine.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/croutine.cfreertos2virtual:/virtualfreertos/event_groups.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/event_groups.cfreertos2virtual:/virtualfreertos/list.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/list.cfreertos2virtual:/virtualfreertos/queue.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/queue.cfreertos2virtual:/virtualfreertos/tasks.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/tasks.cfreertos2virtual:/virtualfreertos/timers.c1PARENT-5-PROJECT_LOC/rtos/FreeRTOS/Source/timers.csystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.c diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/makedir.bat b/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd b/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd deleted file mode 100644 index 91c5677..0000000 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/ds5/sema4_demo.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - sema4_demo_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd b/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp b/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp deleted file mode 100644 index 171c428..0000000 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -freertos$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/portable/MemMang/heap_2.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/croutine.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/event_groups.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/FreeRTOS.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/list.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/mpu_wrappers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/portable.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/projdefs.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/queue.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/semphr.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/StackMacros.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/task.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/include/timers.h$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/croutine.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/event_groups.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/list.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/queue.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/tasks.c$PROJ_DIR$/../../../../../rtos/FreeRTOS/Source/timers.cstartup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard$PROJ_DIR$/../../../FreeRTOSConfig.h$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.c$PROJ_DIR$/../sema4_mutex.c$PROJ_DIR$/../sema4_mutex.hdriver$PROJ_DIR$/../../../../../platform/drivers/src/sema4.c$PROJ_DIR$/../../../../../platform/drivers/inc/sema4.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.h diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.eww b/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.eww deleted file mode 100644 index 4bebbae..0000000 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/iar/sema4_demo.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allsema4_demoReleasesema4_demoDebugReleasesema4_demoReleaseDebugsema4_demoDebug -$WS_DIR$/sema4_demo.ewp diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/main.c b/examples/imx7d_val_m4/demo_apps/sema4_demo/main.c index ccf070e..d24111f 100644 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/main.c +++ b/examples/imx7d_val_m4/demo_apps/sema4_demo/main.c @@ -98,7 +98,7 @@ int main(void) // Initialize SEMA4 mutex gate and reset SEMA4_Mutex_Init(SEMA4_DEMO_GATE, true); - // Create a demo task which will print Hello world and echo user's input. + // Create a demo task. xTaskCreate(Sema4Task, "SEMA4 Task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY+1, NULL); diff --git a/examples/imx7d_val_m4/demo_apps/sema4_demo/sema4_mutex.c b/examples/imx7d_val_m4/demo_apps/sema4_demo/sema4_mutex.c index 366f481..a52cfba 100644 --- a/examples/imx7d_val_m4/demo_apps/sema4_demo/sema4_mutex.c +++ b/examples/imx7d_val_m4/demo_apps/sema4_demo/sema4_mutex.c @@ -122,7 +122,7 @@ void SEMA4_Mutex_Unlock(uint32_t gate) void BOARD_SEMA4_HANDLER() { - BaseType_t xHigherPriorityTaskWoken; + BaseType_t xHigherPriorityTaskWoken = pdFALSE; uint32_t i; uint16_t flag; @@ -135,7 +135,12 @@ void BOARD_SEMA4_HANDLER() /* Because the status cannot be cleared manually, we have to disable the gate's * interrupt to avoid endlessly going into ISR */ SEMA4_SetIntCmd(BOARD_SEMA4_BASEADDR, flag, false); + + /* Unlock the task to process the event. */ xSemaphoreGiveFromISR(xSemaphore[i], &xHigherPriorityTaskWoken); + + /* Perform a context switch to wake the higher priority task. */ + portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } } } diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt index c6d27e8..ea6ba4d 100644 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/CMakeLists.txt @@ -28,32 +28,32 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPRINTF_FLOAT_ENABLE") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPRINTF_FLOAT_ENABLE") # CXX MACRO @@ -88,11 +88,13 @@ ADD_EXECUTABLE(adc_imx7d_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/adc_imx7d/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.cproject index fd94414..f9d7185 100644 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.project b/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.project index 38b793a..6b0d660 100644 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/adc_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/adc_imx7d.cdriver2virtual:/virtualdriver/adc_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/adc_imx7d.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/adc_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/adc_imx7d.cdriver2virtual:/virtualdriver/adc_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/adc_imx7d.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd b/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd deleted file mode 100644 index 7de2282..0000000 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/adc_imx7d_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - adc_imx7d_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd b/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp b/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp deleted file mode 100644 index 3e84c94..0000000 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/adc_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/inc/adc_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww b/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww deleted file mode 100644 index b9ee8e1..0000000 --- a/examples/imx7d_val_m4/driver_examples/adc_imx7d/iar/adc_imx7d_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -alladc_imx7d_exampleReleaseadc_imx7d_exampleDebugReleaseadc_imx7d_exampleReleaseDebugadc_imx7d_exampleDebug -$WS_DIR$/adc_imx7d_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt index 15fb520..4137c6e 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(ecspi_interrupt_master_example "${ProjDirPath}/../../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.cproject index 9730f32..fe268f9 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.project b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.project index 4007a1a..9e987b1 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-7-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-7-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-7-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-5-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-5-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-5-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-5-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-5-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-5-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/ecspi.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-7-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-7-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-7-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-7-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-5-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-5-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-5-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-5-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-5-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-5-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/ecspi.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/ecspi_interrupt_master_example.wsd b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/ecspi_interrupt_master_example.wsd deleted file mode 100644 index 0e7677e..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/ecspi_interrupt_master_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - ecspi_interrupt_master_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewd b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewp b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewp deleted file mode 100644 index fceb995..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../../pin_mux.c$PROJ_DIR$/../../../../../pin_mux.h$PROJ_DIR$/../../../../../board.c$PROJ_DIR$/../../../../../board.h$PROJ_DIR$/../../../../../clock_freq.c$PROJ_DIR$/../../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../../platform/drivers/src/ecspi.c$PROJ_DIR$/../../../../../../../platform/drivers/inc/ecspi.h$PROJ_DIR$/../../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.eww b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.eww deleted file mode 100644 index 4a1c9e5..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/iar/ecspi_interrupt_master_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allecspi_interrupt_master_exampleReleaseecspi_interrupt_master_exampleDebugReleaseecspi_interrupt_master_exampleReleaseDebugecspi_interrupt_master_exampleDebug -$WS_DIR$/ecspi_interrupt_master_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/main.c b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/main.c index 67c425d..b6904ac 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/main.c +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/master/main.c @@ -41,18 +41,18 @@ typedef struct EcspiState { - uint8_t* txBuffPtr; /* Pointer to ECSPI Transmission Buffer */ + uint8_t* txBuffPtr; /* Pointer to ECSPI Transmit Buffer */ uint8_t txSize; /* The remaining number of bytes to be transmitted */ uint8_t* rxBuffPtr; /* Pointer to ECSPI Receive Buffer */ - uint8_t rxSize; /* The remaining number of bytes to be transmitted */ - volatile bool isBusy; /* True if there is a acctive transfer */ + uint8_t rxSize; /* The remaining number of bytes to be received */ + volatile bool isBusy; /* True if there is a active transfer */ } ecspi_state_t; /* ECSPI runtime state structure */ static ecspi_state_t ecspiState; /* ECSPI master configure */ -static void ECSPI_MasterConfig(ecspi_init_t* initConfig); +static void ECSPI_MasterConfig(ecspi_init_config_t* initConfig); /* ECSPI data transfer */ static bool ECSPI_MasterTransfer(uint8_t* txBuffer, uint8_t* rxBuffer, uint32_t transferSize); static bool ECSPI_MasterReceiveBurst(void); @@ -60,7 +60,7 @@ static bool ECSPI_MasterTransmitBurst(void); /* ECSPI transfer status */ static bool ECSPI_MasterGetTransferStatus(void); -/* Transfered data */ +/* Transferred data */ static uint8_t txData[1] = {0}; static uint8_t rxData[1] = {0}; @@ -69,7 +69,7 @@ int main(void) uint8_t control_char; uint8_t i; - ecspi_init_t ecspiMasterInitConfig = { + ecspi_init_config_t ecspiMasterInitConfig = { .baudRate = 500000, .mode = ecspiMasterMode, .burstLength = ECSPI_MASTER_BURSTLENGTH, @@ -79,7 +79,7 @@ int main(void) .ecspiAutoStart = ECSPI_MASTER_STARTMODE }; - /* Hardware initialiize, include RDC, CLOCK, IOMUX, ENABLE MODULE */ + /* Hardware initialize, include RDC, CLOCK, IOMUX, ENABLE MODULE */ hardware_init(); /* Update clock frequency of this module */ @@ -117,7 +117,7 @@ int main(void) * * Function Name: ECSPI_MasterTransmitBurst * Comments: Fill the TXFIFO. -* +* ******************************************************************************/ static bool ECSPI_MasterTransmitBurst(void) { @@ -128,7 +128,7 @@ static bool ECSPI_MasterTransmitBurst(void) /* Fill the TXFIFO */ while((ecspiState.txSize > 0) && (ECSPI_GetStatusFlag(BOARD_ECSPI_MASTER_BASEADDR, ecspiFlagTxfifoFull) == 0)) { - bytes = ecspiState.txSize & 0x3; /* first get unaligned part trasmitted */ + bytes = ecspiState.txSize & 0x3; /* first get unaligned part transmitted */ bytes = bytes ? bytes : 4; /* if aligned, then must be 4 */ if(!(ecspiState.txBuffPtr)) @@ -157,7 +157,7 @@ static bool ECSPI_MasterTransmitBurst(void) * * Function Name: ECSPI_MasterReceiveBurst * Comments: Receive data from RXFIFO -* +* ******************************************************************************/ static bool ECSPI_MasterReceiveBurst(void) { @@ -190,12 +190,12 @@ static bool ECSPI_MasterReceiveBurst(void) * Function Name: ECSPI_MasterTransfer * Comments: Transmit and Receive an amount of data in no-blocking mode with * interrupt. -* +* ******************************************************************************/ static bool ECSPI_MasterTransfer(uint8_t* txBuffer, uint8_t* rxBuffer, uint32_t transferSize) { uint32_t len; - + if((ecspiState.isBusy) || (transferSize == 0)) { return false; @@ -222,7 +222,7 @@ static bool ECSPI_MasterTransfer(uint8_t* txBuffer, uint8_t* rxBuffer, uint32_t * * Function Name: ECSPI_MasterGetTransferStatus * Comments: Get transfer status. -* +* ******************************************************************************/ static bool ECSPI_MasterGetTransferStatus(void) { @@ -233,9 +233,9 @@ static bool ECSPI_MasterGetTransferStatus(void) * * Function Name: ECSPI_MasterConfig * Comments: ECSPI module initialize -* +* ******************************************************************************/ -static void ECSPI_MasterConfig(ecspi_init_t* initConfig) +static void ECSPI_MasterConfig(ecspi_init_config_t* initConfig) { /* Initialize ECSPI transfer state. */ ecspiState.isBusy = false; @@ -251,7 +251,7 @@ static void ECSPI_MasterConfig(ecspi_init_t* initConfig) * * Function Name: BOARD_ECSPI_MASTER_HANDLER * Comments: The interrupt service routine triggered by ECSPI interrupt -* +* ******************************************************************************/ void BOARD_ECSPI_MASTER_HANDLER(void) { @@ -264,14 +264,14 @@ void BOARD_ECSPI_MASTER_HANDLER(void) ECSPI_MasterTransmitBurst(); return; } - + /* No data left to push, but still waiting for rx data, enable receive data available interrupt. */ if(ecspiState.rxSize) { ECSPI_SetIntCmd(BOARD_ECSPI_MASTER_BASEADDR, ecspiFlagRxfifoReady, true); return; } - + /* Disable interrupt */ ECSPI_SetIntCmd(BOARD_ECSPI_MASTER_BASEADDR, ecspiFlagTxfifoEmpty, false); ECSPI_SetIntCmd(BOARD_ECSPI_MASTER_BASEADDR, ecspiFlagRxfifoReady, false); diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/CMakeLists.txt index 49aaa01..2ef3fcb 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(ecspi_interrupt_slave_example "${ProjDirPath}/../../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.cproject index 3a71220..df036ae 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.project b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.project index 07ec55d..2b58d11 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-7-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-7-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-7-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-5-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-5-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-5-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-5-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-5-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-5-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/ecspi.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-7-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-7-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-7-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-7-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-5-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-5-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-5-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-5-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-5-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-5-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/ecspi.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/ecspi_interrupt_slave_example.wsd b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/ecspi_interrupt_slave_example.wsd deleted file mode 100644 index 66cbe61..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/ecspi_interrupt_slave_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - ecspi_interrupt_slave_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewd b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewp b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewp deleted file mode 100644 index a57b5a7..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../../pin_mux.c$PROJ_DIR$/../../../../../pin_mux.h$PROJ_DIR$/../../../../../board.c$PROJ_DIR$/../../../../../board.h$PROJ_DIR$/../../../../../clock_freq.c$PROJ_DIR$/../../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../../platform/drivers/src/ecspi.c$PROJ_DIR$/../../../../../../../platform/drivers/inc/ecspi.h$PROJ_DIR$/../../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.eww b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.eww deleted file mode 100644 index 551abea..0000000 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/iar/ecspi_interrupt_slave_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allecspi_interrupt_slave_exampleReleaseecspi_interrupt_slave_exampleDebugReleaseecspi_interrupt_slave_exampleReleaseDebugecspi_interrupt_slave_exampleDebug -$WS_DIR$/ecspi_interrupt_slave_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/main.c b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/main.c index d81a3c4..938cbd0 100644 --- a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/main.c +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_interrupt/slave/main.c @@ -39,7 +39,7 @@ #define FIRST_DATA 0xFF /* ECSPI module slave mode configure */ -static void ECSPI_SlaveConfig(ecspi_init_t* initConfig); +static void ECSPI_SlaveConfig(ecspi_init_config_t* initConfig); /* ECSPI slave mode transfer Status */ static bool ECSPI_SlaveGetTransferStatus(void); @@ -53,7 +53,7 @@ int main(void) { uint8_t i; - ecspi_init_t ecspiSlaveInitConfig = { + ecspi_init_config_t ecspiSlaveInitConfig = { .clockRate = 0, .baudRate = 0, .mode = ecspiSlaveMode, @@ -118,7 +118,7 @@ static bool ECSPI_SlaveGetTransferStatus(void) * Comments: ECSPI slave initialize * ******************************************************************************/ -static void ECSPI_SlaveConfig(ecspi_init_t* initConfig) +static void ECSPI_SlaveConfig(ecspi_init_config_t* initConfig) { /* Initialize ECSPI, parameter configure */ ECSPI_Init(BOARD_ECSPI_SLAVE_BASEADDR, initConfig); diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/CMakeLists.txt new file mode 100644 index 0000000..4f7d875 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/CMakeLists.txt @@ -0,0 +1,134 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(ecspi_polling_master_example + "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../../pin_mux.c" + "${ProjDirPath}/../../../../../pin_mux.h" + "${ProjDirPath}/../../../../../board.c" + "${ProjDirPath}/../../../../../board.h" + "${ProjDirPath}/../../../../../clock_freq.c" + "${ProjDirPath}/../../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/ecspi.c" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/ecspi.h" + "${ProjDirPath}/../../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(ecspi_polling_master_example PROPERTIES OUTPUT_NAME "ecspi_polling_master_example.elf") + +TARGET_LINK_LIBRARIES(ecspi_polling_master_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(ecspi_polling_master_example m) +TARGET_LINK_LIBRARIES(ecspi_polling_master_example c) +TARGET_LINK_LIBRARIES(ecspi_polling_master_example gcc) +TARGET_LINK_LIBRARIES(ecspi_polling_master_example nosys) +TARGET_LINK_LIBRARIES(ecspi_polling_master_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/ecspi_polling_master_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/ecspi_polling_master_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET ecspi_polling_master_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_master_example.elf ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_master_example.hex) +ADD_CUSTOM_COMMAND(TARGET ecspi_polling_master_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_master_example.elf ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_master_example.bin) diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.bat new file mode 100644 index 0000000..1939438 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.sh new file mode 100755 index 0000000..8c5f621 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.bat new file mode 100644 index 0000000..4950fc9 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.sh new file mode 100755 index 0000000..a3a7820 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.bat new file mode 100644 index 0000000..9ec4b80 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.sh new file mode 100755 index 0000000..204a7a1 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.cproject new file mode 100644 index 0000000..79f88a7 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.project b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.project new file mode 100644 index 0000000..771d439 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/ds5/.project @@ -0,0 +1,86 @@ + + + ecspi_polling_master_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-7-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-7-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-7-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-7-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-5-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-5-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-5-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-5-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-5-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-5-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/ecspi.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/hardware_init.c b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/hardware_init.c new file mode 100644 index 0000000..8916b5b --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/hardware_init.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + /* Board specific clock settings */ + BOARD_ClockInit(); + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC ECSPI */ + RDC_SetPdapAccess(RDC, BOARD_ECSPI_MASTER_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + /* Select board ecspi clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_ECSPI_MASTER_CCM_ROOT, ccmRootmuxEcspiOsc24m, 0, 0); + /* Enable ecspi clock gate */ + CCM_EnableRoot(CCM, BOARD_ECSPI_MASTER_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_ECSPI_MASTER_CCM_CCGR, ccmClockNeededRunWait); + /* Configure ecspi pin IOMUX */ + configure_ecspi_pins(BOARD_ECSPI_MASTER_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/main.c b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/main.c new file mode 100644 index 0000000..a933b96 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/master/main.c @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include "board.h" +#include "debug_console_imx.h" +#include "ecspi.h" +#include "clock_freq.h" + +/* define ECSPI master mode parameters configuration. */ +#define ECSPI_MASTER_BURSTLENGTH (7) +#define ECSPI_MASTER_STARTMODE (0) +#define BURST_LENGTH_IN_BYTES(x) ((8 * x) - 1) + +/* ECSPI data transfer */ +static bool ECSPI_MasterTransfer(uint8_t* txBuffer, uint8_t* rxBuffer, uint32_t transferSize); + +int main(void) +{ + uint8_t txData = 0; + uint8_t rxData = 0; + uint8_t control_char; + + ecspi_init_config_t initConfig = { + .baudRate = 500000, + .mode = ecspiMasterMode, + .burstLength = ECSPI_MASTER_BURSTLENGTH, + .channelSelect = BOARD_ECSPI_MASTER_CHANNEL, + .clockPhase = ecspiClockPhaseSecondEdge, + .clockPolarity = ecspiClockPolarityActiveHigh, + .ecspiAutoStart = ECSPI_MASTER_STARTMODE + }; + + /* Hardware initialize, include RDC, CLOCK, IOMUX, ENABLE MODULE */ + hardware_init(); + + /* Update clock frequency of this module */ + initConfig.clockRate = get_ecspi_clock_freq(BOARD_ECSPI_MASTER_BASEADDR); + + PRINTF("\n-------------- ECSPI master driver example --------------\n\n\r"); + PRINTF("This example application demonstrates usage of SPI driver in master mode.\n\r"); + PRINTF("It transfers data to/from remote MCU in SPI slave mode.\n\r"); + + /* Ecspi module initialize, include configure parameters */ + ECSPI_Init(BOARD_ECSPI_MASTER_BASEADDR, &initConfig); + + /* Wait slave ready, then press 's' to start communication. */ + while (true) + { + PRINTF("Press \"s\" when SPI slave is ready.\n\r"); + control_char = GETCHAR(); + if ((control_char == 's') || (control_char == 'S')) + break; + } + + /* Send 1~20 to slave and receive data from slave */ + for (uint8_t i = 0; i < 20; i++) + { + txData++; + ECSPI_MasterTransfer(&txData, &rxData, 1); + PRINTF("MASTER: Transmited data: %d \n\r", txData); + PRINTF(" : Received data: %d \n\r", rxData); + } + + PRINTF("Example finish!!!\n\r"); + while (1) + __WFI(); +} + +/****************************************************************************** +* +* Function Name: ECSPI_MasterTransfer +* Comments: Transmit and Receive an amount of data in no-blocking mode with +* interrupt. +* +******************************************************************************/ +static bool ECSPI_MasterTransfer(uint8_t* txBuffer, uint8_t* rxBuffer, uint32_t transferSize) +{ + if (0 == transferSize) + return false; + + /* Set the burst length to one byte(8 bits) */ + ECSPI_SetBurstLength(BOARD_ECSPI_MASTER_BASEADDR, BURST_LENGTH_IN_BYTES(1)); + + while (transferSize) + { + /* Fill the TXFIFO */ + ECSPI_SendData(BOARD_ECSPI_MASTER_BASEADDR, *txBuffer++); + + /* start transmission */ + ECSPI_StartBurst(BOARD_ECSPI_MASTER_BASEADDR); + + /* Wait transmission finish */ + while (!ECSPI_GetStatusFlag(BOARD_ECSPI_MASTER_BASEADDR, ecspiFlagTxfifoTc)); + ECSPI_ClearStatusFlag(BOARD_ECSPI_MASTER_BASEADDR, ecspiFlagTxfifoTc); + + /* Fill the RXFIFO */ + *rxBuffer = ECSPI_ReceiveData(BOARD_ECSPI_MASTER_BASEADDR); + + transferSize--; + } + + return true; +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/CMakeLists.txt new file mode 100644 index 0000000..9416d9f --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/CMakeLists.txt @@ -0,0 +1,134 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(ecspi_polling_slave_example + "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../../pin_mux.c" + "${ProjDirPath}/../../../../../pin_mux.h" + "${ProjDirPath}/../../../../../board.c" + "${ProjDirPath}/../../../../../board.h" + "${ProjDirPath}/../../../../../clock_freq.c" + "${ProjDirPath}/../../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../../platform/drivers/src/ecspi.c" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/ecspi.h" + "${ProjDirPath}/../../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(ecspi_polling_slave_example PROPERTIES OUTPUT_NAME "ecspi_polling_slave_example.elf") + +TARGET_LINK_LIBRARIES(ecspi_polling_slave_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(ecspi_polling_slave_example m) +TARGET_LINK_LIBRARIES(ecspi_polling_slave_example c) +TARGET_LINK_LIBRARIES(ecspi_polling_slave_example gcc) +TARGET_LINK_LIBRARIES(ecspi_polling_slave_example nosys) +TARGET_LINK_LIBRARIES(ecspi_polling_slave_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/ecspi_polling_slave_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/ecspi_polling_slave_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET ecspi_polling_slave_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_slave_example.elf ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_slave_example.hex) +ADD_CUSTOM_COMMAND(TARGET ecspi_polling_slave_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_slave_example.elf ${EXECUTABLE_OUTPUT_PATH}/ecspi_polling_slave_example.bin) diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.bat new file mode 100644 index 0000000..1939438 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.sh new file mode 100755 index 0000000..8c5f621 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.bat new file mode 100644 index 0000000..4950fc9 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.sh new file mode 100755 index 0000000..a3a7820 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.bat new file mode 100644 index 0000000..9ec4b80 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.sh new file mode 100755 index 0000000..204a7a1 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.sh b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.cproject new file mode 100644 index 0000000..6c89a07 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.project b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.project new file mode 100644 index 0000000..a235859 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/ds5/.project @@ -0,0 +1,86 @@ + + + ecspi_polling_slave_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-7-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-7-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-7-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-7-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-7-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-7-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-5-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-5-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-5-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-5-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-5-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-5-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/ecspi.c1PARENT-7-PROJECT_LOC/platform/drivers/src/ecspi.cdriver2virtual:/virtualdriver/ecspi.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/ecspi.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-7-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-7-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/hardware_init.c b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/hardware_init.c new file mode 100644 index 0000000..1788b10 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/hardware_init.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + /* Board specific clock settings */ + BOARD_ClockInit(); + /* initialize debug uart */ + dbg_uart_init(); + + /* RDC ECSPI */ + RDC_SetPdapAccess(RDC, BOARD_ECSPI_SLAVE_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + /* Select board ecspi clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_ECSPI_SLAVE_CCM_ROOT, ccmRootmuxEcspiOsc24m, 0, 0); + /* Enable ecspi clock gate */ + CCM_EnableRoot(CCM, BOARD_ECSPI_SLAVE_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_ECSPI_SLAVE_CCM_CCGR, ccmClockNeededRunWait); + /* Configure ecspi pin IOMUX */ + configure_ecspi_slave_pins(BOARD_ECSPI_SLAVE_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/main.c b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/main.c new file mode 100644 index 0000000..67785c7 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/ecspi/ecspi_polling/slave/main.c @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include "board.h" +#include "debug_console_imx.h" +#include "ecspi.h" + +/* define ECSPI slave mode burst length */ +#define ECSPI_SLAVE_BURSTLENGTH (7) +#define FIRST_DATA 0xFF + +int main(void) +{ + uint8_t txBuffer[20] = {0}; + uint8_t rxBuffer[20] = {0}; + uint8_t txData = FIRST_DATA; + + ecspi_init_config_t initConfig = { + .clockRate = 0, + .baudRate = 0, + .mode = ecspiSlaveMode, + .burstLength = ECSPI_SLAVE_BURSTLENGTH, + .channelSelect = BOARD_ECSPI_SLAVE_CHANNEL, + .clockPhase = ecspiClockPhaseSecondEdge, + .clockPolarity = ecspiClockPolarityActiveHigh, + .ecspiAutoStart = 0 + }; + + /* Hardware initialize, include RDC, CLOCK, IOMUX, ENABLE MODULE */ + hardware_init(); + + PRINTF("\n-------------- ECSPI slave driver example --------------\n\n\r"); + PRINTF("This example application demonstrates usage of ECSPI slave driver.\n\r"); + PRINTF("It responding to master via SPI bus.\n\n\r"); + + /* Initialize ECSPI, parameter configure */ + ECSPI_Init(BOARD_ECSPI_SLAVE_BASEADDR, &initConfig); + + PRINTF("SLAVE: Initial transmit data: %d\n\n\r", FIRST_DATA); + /* Move first data to tx data register to be ready for first transmission. */ + ECSPI_SendData(BOARD_ECSPI_SLAVE_BASEADDR, txData); + + /* Send data to master and receive data from master */ + txData = 0; + + for(uint8_t i = 0; i < 20; i++) + { + /* Wait for data received */ + while(!ECSPI_GetStatusFlag(BOARD_ECSPI_SLAVE_BASEADDR, ecspiFlagRxfifoReady)); + /* Fill rxBuffer */ + rxBuffer[i] = ECSPI_ReceiveData(BOARD_ECSPI_SLAVE_BASEADDR); + /* Store tx data to tx data register for next transmission */ + ECSPI_SendData(BOARD_ECSPI_SLAVE_BASEADDR, txData); + txBuffer[i] = txData; + txData++; + } + + for(uint8_t i = 0; i < 20; i++) + { + PRINTF("SLAVE: Next step transmit data: %d\n\r", txBuffer[i]); + PRINTF(" : Currently received data: %d\n\n\r", rxBuffer[i]); + } + + PRINTF("Example finish!!!\n\r"); + while(1) + __WFI(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt index 97f64f2..75c6836 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(flexcan_loopback_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject index deedb71..ad43a33 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project index 689b14f..ff6f06e 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd deleted file mode 100644 index 1fb9e33..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/flexcan_loopback_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - flexcan_loopback_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp deleted file mode 100644 index 1c34180..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../../gpio_pins.c$PROJ_DIR$/../../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/flexcan.c$PROJ_DIR$/../../../../../../platform/drivers/inc/flexcan.h$PROJ_DIR$/../../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww deleted file mode 100644 index dec459a..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/iar/flexcan_loopback_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allflexcan_loopback_exampleReleaseflexcan_loopback_exampleDebugReleaseflexcan_loopback_exampleReleaseDebugflexcan_loopback_exampleDebug -$WS_DIR$/flexcan_loopback_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/main.c b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/main.c index b269e92..980e8ea 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/main.c +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_loopback/main.c @@ -115,7 +115,7 @@ void init_flexcan(void) void init_gpt_timer(void) { uint32_t freq; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt index 365d270..a504059 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(flexcan_network_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject index 2d17738..8395cb3 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.project b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.project index 7f3eb61..a723ebe 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-4-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-4-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/flexcan.c1PARENT-6-PROJECT_LOC/platform/drivers/src/flexcan.cdriver2virtual:/virtualdriver/flexcan.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/flexcan.hdriver2virtual:/virtualdriver/gpt.c1PARENT-6-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd deleted file mode 100644 index 6516eb0..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/flexcan_network_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - flexcan_network_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp deleted file mode 100644 index 4359073..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../../gpio_pins.c$PROJ_DIR$/../../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/flexcan.c$PROJ_DIR$/../../../../../../platform/drivers/inc/flexcan.h$PROJ_DIR$/../../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww deleted file mode 100644 index e2faa39..0000000 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/iar/flexcan_network_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allflexcan_network_exampleReleaseflexcan_network_exampleDebugReleaseflexcan_network_exampleReleaseDebugflexcan_network_exampleDebug -$WS_DIR$/flexcan_network_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/main.c b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/main.c index 232b24a..6be1572 100644 --- a/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/main.c +++ b/examples/imx7d_val_m4/driver_examples/flexcan/flexcan_network/main.c @@ -122,7 +122,7 @@ void init_flexcan(void) void init_gpt(void) { uint32_t freq; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt index 259676e..af034fb 100644 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(gpio_imx_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/gpio_imx/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.cproject index d7ca3b0..e225d45 100644 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.project b/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.project index 7439047..36814f0 100644 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.cboard2virtual:/virtualboard/gpio_pins.c1PARENT-3-PROJECT_LOC/gpio_pins.cboard2virtual:/virtualboard/gpio_pins.h1PARENT-3-PROJECT_LOC/gpio_pins.hsource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpio_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpio_imx.cdriver2virtual:/virtualdriver/gpio_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpio_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd b/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd deleted file mode 100644 index 95eb38d..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/gpio_imx_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - gpio_imx_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/hardware_init.c b/examples/imx7d_val_m4/driver_examples/gpio_imx/hardware_init.c index 938e508..20cd026 100644 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/hardware_init.c +++ b/examples/imx7d_val_m4/driver_examples/gpio_imx/hardware_init.c @@ -45,8 +45,8 @@ void hardware_init(void) /* BOARD_GPIO_LED_RDC_PDAP is same as BOARD_GPIO_KEY_RDC_PDAP, so bypass * BOARD_GPIO_KEY_RDC_PDAP setting */ - /* Enable gpio clock gate */ - CCM_ControlGate(CCM, BOARD_GPIO_CCM_CCGR, ccmClockNeededRunWait); + /* Enable gpio clock gate, led and key share same CCGR on this board */ + CCM_ControlGate(CCM, BOARD_GPIO_KEY_CCM_CCGR, ccmClockNeededRunWait); /* Configure gpio pin IOMUX */ configure_gpio_pin(BOARD_GPIO_LED_CONFIG); configure_gpio_pin(BOARD_GPIO_KEY_CONFIG); diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd b/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp b/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp deleted file mode 100644 index 9873a22..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.c$PROJ_DIR$/../../../gpio_pins.c$PROJ_DIR$/../../../gpio_pins.hsource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpio_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpio_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww b/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww deleted file mode 100644 index e6fbb01..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/iar/gpio_imx_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allgpio_imx_exampleReleasegpio_imx_exampleDebugReleasegpio_imx_exampleReleaseDebuggpio_imx_exampleDebug -$WS_DIR$/gpio_imx_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/gpio_imx/main.c b/examples/imx7d_val_m4/driver_examples/gpio_imx/main.c index bc51468..f062aef 100644 --- a/examples/imx7d_val_m4/driver_examples/gpio_imx/main.c +++ b/examples/imx7d_val_m4/driver_examples/gpio_imx/main.c @@ -34,99 +34,243 @@ #include "gpio_imx.h" #include "debug_console_imx.h" +#define GPIO_INTERRUPT (1) +#define GPIO_POLLING (0) +#define GPIO_DEBOUNCE_DELAY (100000) + /* button relevent variables */ -static volatile uint8_t keyPressCount; -static uint8_t keyLastState; -static uint8_t keyState; +static uint8_t keyPressCount; +static bool on = false; +#ifdef BOARD_GPIO_KEY_CONFIG +static volatile uint8_t button_pressed_flag; +#endif + +/*! + * @brief Initialize GPIO_LED controller. + */ +static void GPIO_Ctrl_InitLedPin(void) +{ +#ifdef BOARD_GPIO_LED_CONFIG + /* GPIO module initialize, configure "LED" as output and drive the output high level */ + gpio_init_config_t ledInitConfig = { + .pin = BOARD_GPIO_LED_CONFIG->pin, + .direction = gpioDigitalOutput, + .interruptMode = gpioNoIntmode + }; + GPIO_Init(BOARD_GPIO_LED_CONFIG->base, &ledInitConfig); +#endif +} + +/*! + * @brief Initialize GPIO INT\POLLING controller. + */ +static void GPIO_Ctrl_InitKeyPin(uint32_t gpioMode) +{ +#ifdef BOARD_GPIO_KEY_CONFIG + if (GPIO_INTERRUPT == gpioMode) + { + /* GPIO module initialize, configure button as interrupt mode. */ + gpio_init_config_t keyInitConfig = { + .pin = BOARD_GPIO_KEY_CONFIG->pin, + .direction = gpioDigitalInput, + .interruptMode = gpioIntFallingEdge, + }; + GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + /* Enable interrupt. */ + NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); + } + else + { + /* GPIO module initialize, configure button as GPIO functionality. */ + gpio_init_config_t keyInitConfig = { + .pin = BOARD_GPIO_KEY_CONFIG->pin, + .direction = gpioDigitalInput, + .interruptMode = gpioNoIntmode, + }; + GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + } +#endif +} + +/*! + * @brief Wait user to press key in INT\NOINT mode. + */ +static void GPIO_WaitKeyPressed(uint32_t gpioMode) +{ +#ifdef BOARD_GPIO_KEY_CONFIG + uint32_t i, j, debounce; + + if (GPIO_INTERRUPT == gpioMode) + { + do + { + debounce = 0; + + /* Clear the interrupt state, this operation is necessary, because the GPIO module maybe confuse + the first rising edge as interrupt*/ + GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + /* Enable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); + + /* Waitting for Key pressed. */ + while(button_pressed_flag == 0); + button_pressed_flag = 0; + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } while (1); + } + else + { + /* Wait for Key Released. */ + do + { + debounce = 0; + while (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)); + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (1 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } + while (1); + + /* Wait for Key Pressed. */ + do + { + debounce = 0; + while (1 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)); + + for (i = 0; i < 3; i++) + { + /* Delay to wait key value stable. The cycle number should be changed + * according to M4 Core clock frequncy. + */ + for (j = 0 ; j < GPIO_DEBOUNCE_DELAY; j++) + { + __NOP(); + } + + if (0 == GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin)) + { + debounce++; + } + } + + if (debounce > 2) + { + break; + } + } + while (1); + } +#else + GETCHAR(); +#endif +} + +/*! + * @brief Toggle the led + */ +static void GPIO_LED_Toggle(void) +{ +#ifdef BOARD_GPIO_LED_CONFIG + GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base,BOARD_GPIO_LED_CONFIG->pin, on ? gpioPinSet : gpioPinClear); + keyPressCount++; + PRINTF("Button pressed %d times\n\r", keyPressCount); +#else + PRINTF("%c ", on ? '+' : '-'); +#endif + on = !on; +} /****************************************************************************** * * Function Name: main * Comments: GPIO module initialize, interrupt and IO operation. * This example include 2 step: -* 1)Configure BUTTON1 as interrupt mode, falling edge, and test +* 1)Configure BUTTON1 as interrupt mode, falling edge, and test * by pressing the button 3 times to trigger interrupt. * 2)Configure BUTTON1 as GPIO functionality * and check the button's state(pressed or released) through switch LED * to on or off if this board has LED. * ******************************************************************************/ -int main( void ) +int main(void) { /* hardware initialiize, include RDC, IOMUX, Uart debug initialize */ - hardware_init(); - + hardware_init(); PRINTF("\n\r====================== GPIO Example ========================\n\r"); -#ifdef BOARD_GPIO_LED_CONFIG - /* GPIO module initialize, configure "LED" as output and drive the output high level */ - gpio_init_t ledInitConfig = { - .pin = BOARD_GPIO_LED_CONFIG->pin, - .direction = gpioDigitalOutput, - .interruptMode = gpioNoIntmode - }; - GPIO_Init(BOARD_GPIO_LED_CONFIG->base, &ledInitConfig); - - /* drive the LED output high level. */ - GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base, BOARD_GPIO_LED_CONFIG->pin, gpioPinSet); -#endif + /* GPIO module initialize, configure "LED" as output and button as interrupt mode. */ + GPIO_Ctrl_InitLedPin(); + GPIO_Ctrl_InitKeyPin(GPIO_INTERRUPT); + /* wait for user to press button */ #ifdef BOARD_GPIO_KEY_CONFIG - /* GPIO module initialize, configure button as interrupt mode. */ - gpio_init_t keyInitConfig = { - .pin = BOARD_GPIO_KEY_CONFIG->pin, - .direction = gpioDigitalInput, - .interruptMode = gpioIntFallingEdge - }; - GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); - - NVIC_EnableIRQ(BOARD_GPIO_KEY_IRQ_NUM); - /* Clear the interrupt state, this operation is necessary, because the GPIO module maybe confuse - the first rising edge as interrupt*/ - GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - /* Enable GPIO pin interrupt */ - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, true); - /* press button trigger interrupt */ PRINTF("\n\r=================== GPIO Interrupt =====================\n\r"); - PRINTF("The (%s) button is configured to trigger GPIO interrupt.\n\r", BOARD_GPIO_KEY_CONFIG->name); + PRINTF("The (%s) button is configured to trigger GPIO interrupt\n\r", BOARD_GPIO_KEY_CONFIG->name); PRINTF("Press the (%s) button 3 times to continue.\n\n\r", BOARD_GPIO_KEY_CONFIG->name); +#else + PRINTF("\n\r============ Use key to simulate GPIO button ==============\n\r"); + PRINTF("Input any data from terminal 3 times to continues.\n\n\r"); +#endif + keyPressCount = 0; + while(keyPressCount < 3) + { + GPIO_WaitKeyPressed(GPIO_INTERRUPT); + keyPressCount++; + PRINTF("Button pressed %d time. \n\r", keyPressCount); + } - keyPressCount = 1; - while(keyPressCount < 4); - - /* Now disable the interrupt */ - NVIC_DisableIRQ(BOARD_GPIO_KEY_IRQ_NUM); - GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, false); - - /* GPIO module initialize, configure button as GPIO functionality. */ - keyInitConfig.pin = BOARD_GPIO_KEY_CONFIG->pin; - keyInitConfig.direction = gpioDigitalInput; - keyInitConfig.interruptMode = gpioNoIntmode; - GPIO_Init(BOARD_GPIO_KEY_CONFIG->base, &keyInitConfig); + GPIO_Ctrl_InitKeyPin(GPIO_POLLING); + keyPressCount = 0; /* Configure button as GPIO functionality and check the button's state(pressed or released) to switch LED on or off */ - /* Check the buttion's status(pressed or released) */ PRINTF("\n\r================= GPIO Functionality==================\n\r"); - PRINTF("The (%s) button state is now polled.\n\r", BOARD_GPIO_KEY_CONFIG->name); - PRINTF("Press the (%s) button to switch LED on or off\n\n\r", BOARD_GPIO_KEY_CONFIG->name); - - keyLastState = 1; //initial button released, logic 1 - - for(;;) + PRINTF("The button state is now polled.\n\r"); + PRINTF("Press the button to switch LED on or off\n\n\r"); + while(true) { - keyState = GPIO_ReadPinInput(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); - if(keyState != keyLastState) - { - PRINTF("Button %s\n\r", keyState ? "released" : "pressed"); - keyLastState = keyState; -#ifdef BOARD_GPIO_LED_CONFIG - GPIO_WritePinOutput(BOARD_GPIO_LED_CONFIG->base, BOARD_GPIO_LED_CONFIG->pin, keyState ? gpioPinSet : gpioPinClear); -#endif - } + GPIO_WaitKeyPressed(GPIO_POLLING); + GPIO_LED_Toggle(); } -#endif } /****************************************************************************** @@ -134,13 +278,17 @@ int main( void ) * Comments: The interrupt service routine triggered by gpio * Note: Need to consider how to eliminate the button shake problem ******************************************************************************/ +#ifdef BOARD_GPIO_KEY_CONFIG void BOARD_GPIO_KEY_HANDLER(void) { - PRINTF("Button pressed %d time. \n\r", keyPressCount); - keyPressCount++; + button_pressed_flag = 1; /* clear the interrupt status */ GPIO_ClearStatusFlag(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin); + + /* Disable GPIO pin interrupt */ + GPIO_SetPinIntMode(BOARD_GPIO_KEY_CONFIG->base, BOARD_GPIO_KEY_CONFIG->pin, false); } +#endif /******************************************************************************* * EOF diff --git a/examples/imx7d_val_m4/driver_examples/gpt/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/gpt/armgcc/CMakeLists.txt index 271de2f..eaa052e 100644 --- a/examples/imx7d_val_m4/driver_examples/gpt/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/gpt/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(gpt_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/gpt/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpt/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/gpt/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/gpt/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/gpt/ds5/.cproject index ce17c21..e592e63 100644 --- a/examples/imx7d_val_m4/driver_examples/gpt/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/gpt/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/gpt/ds5/.project b/examples/imx7d_val_m4/driver_examples/gpt/ds5/.project index 5deba40..6d667ff 100644 --- a/examples/imx7d_val_m4/driver_examples/gpt/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/gpt/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/gpt.c1PARENT-5-PROJECT_LOC/platform/drivers/src/gpt.cdriver2virtual:/virtualdriver/gpt.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/gpt.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/gpt/ds5/gpt_example.wsd b/examples/imx7d_val_m4/driver_examples/gpt/ds5/gpt_example.wsd deleted file mode 100644 index e9c1c9b..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpt/ds5/gpt_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - gpt_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/gpt/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/gpt/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpt/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewd b/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewp b/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewp deleted file mode 100644 index 3a2b848..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/gpt.c$PROJ_DIR$/../../../../../platform/drivers/inc/gpt.h$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.eww b/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.eww deleted file mode 100644 index 4e7ff2a..0000000 --- a/examples/imx7d_val_m4/driver_examples/gpt/iar/gpt_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allgpt_exampleReleasegpt_exampleDebugReleasegpt_exampleReleaseDebuggpt_exampleDebug -$WS_DIR$/gpt_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/gpt/main.c b/examples/imx7d_val_m4/driver_examples/gpt/main.c index 8292b03..edf299c 100644 --- a/examples/imx7d_val_m4/driver_examples/gpt/main.c +++ b/examples/imx7d_val_m4/driver_examples/gpt/main.c @@ -40,7 +40,7 @@ static uint32_t counterA, counterB; int main(void) { uint32_t freqA, freqB; - gpt_mode_config_t config = { + gpt_init_config_t config = { .freeRun = false, .waitEnable = true, .stopEnable = true, diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/CMakeLists.txt deleted file mode 100644 index 46f21d9..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/CMakeLists.txt +++ /dev/null @@ -1,132 +0,0 @@ -INCLUDE(CMakeForceCompiler) - -# CROSS COMPILER SETTING -SET(CMAKE_SYSTEM_NAME Generic) -CMAKE_MINIMUM_REQUIRED (VERSION 2.6) - -# THE VERSION NUMBER -SET (Tutorial_VERSION_MAJOR 1) -SET (Tutorial_VERSION_MINOR 0) - -# ENABLE ASM -ENABLE_LANGUAGE(ASM) - -SET(CMAKE_STATIC_LIBRARY_PREFIX) -SET(CMAKE_STATIC_LIBRARY_SUFFIX) - -SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) -SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) - - -# CURRENT DIRECTORY -SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) - -# DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# RELEASE LINK FILE -set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") - -# DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") - -# RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") - -# ASM MACRO -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") - -# C MACRO -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") - -# CXX MACRO - -# INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) -ENDIF() - -# ADD_EXECUTABLE -ADD_EXECUTABLE(i2c_imx_interrupt_example - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" - "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" - "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" - "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" - "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" - "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" - "${ProjDirPath}/../../../../pin_mux.c" - "${ProjDirPath}/../../../../pin_mux.h" - "${ProjDirPath}/../../../../board.c" - "${ProjDirPath}/../../../../board.h" - "${ProjDirPath}/../../../../clock_freq.c" - "${ProjDirPath}/../../../../clock_freq.h" - "${ProjDirPath}/../hardware_init.c" - "${ProjDirPath}/../main.c" - "${ProjDirPath}/../../../../../../platform/drivers/src/i2c_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/i2c_imx.h" - "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" - "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" -) -SET_TARGET_PROPERTIES(i2c_imx_interrupt_example PROPERTIES OUTPUT_NAME "i2c_imx_interrupt_example.elf") - -TARGET_LINK_LIBRARIES(i2c_imx_interrupt_example -Wl,--start-group) -# LIBRARIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - -# SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(i2c_imx_interrupt_example m) -TARGET_LINK_LIBRARIES(i2c_imx_interrupt_example c) -TARGET_LINK_LIBRARIES(i2c_imx_interrupt_example gcc) -TARGET_LINK_LIBRARIES(i2c_imx_interrupt_example nosys) -TARGET_LINK_LIBRARIES(i2c_imx_interrupt_example -Wl,--end-group) - -# MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/i2c_imx_interrupt_example.map") -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/i2c_imx_interrupt_example.map") - -# BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_example.hex) -ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_example.bin) diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.bat deleted file mode 100755 index 0cf721f..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.bat +++ /dev/null @@ -1,5 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.sh deleted file mode 100755 index 3827529..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_all.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.bat deleted file mode 100755 index e9ccfdd..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.sh deleted file mode 100755 index effd076..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.bat deleted file mode 100755 index 0759349..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.sh deleted file mode 100755 index a12067d..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.bat deleted file mode 100755 index ffea088..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.bat +++ /dev/null @@ -1,3 +0,0 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt -pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.sh deleted file mode 100755 index 795ad87..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/armgcc/clean.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.cproject deleted file mode 100644 index ba88236..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.cproject +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.project b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.project deleted file mode 100644 index 0955f49..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/.project +++ /dev/null @@ -1,86 +0,0 @@ - - - i2c_imx_interrupt_example_imx7d_val_m4 - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h - - - diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/i2c_imx_interrupt_example.wsd b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/i2c_imx_interrupt_example.wsd deleted file mode 100644 index b783f76..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/i2c_imx_interrupt_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - i2c_imx_interrupt_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/hardware_init.c b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/hardware_init.c deleted file mode 100644 index 3ffd205..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/hardware_init.c +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "board.h" -#include "pin_mux.h" - -void hardware_init(void) -{ - /* Board specific RDC settings */ - BOARD_RdcInit(); - - /* Board specific clock settings */ - BOARD_ClockInit(); - - /* initialize debug uart */ - dbg_uart_init(); - - /* In this example, we need to grasp board I2C exclusively */ - RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); - - /* Select I2C clock derived from OSC clock(24M) */ - CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); - /* Enable I2C clock */ - CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); - CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); - - /* I2C Pin setting */ - configure_i2c_pins(BOARD_I2C_BASEADDR); -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewd b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewp b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewp deleted file mode 100644 index 99bf4df..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/i2c_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/i2c_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.eww b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.eww deleted file mode 100644 index 4a5ef8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/iar/i2c_imx_interrupt_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -alli2c_imx_interrupt_exampleReleasei2c_imx_interrupt_exampleDebugReleasei2c_imx_interrupt_exampleReleaseDebugi2c_imx_interrupt_exampleDebug -$WS_DIR$/i2c_imx_interrupt_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/main.c b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/main.c deleted file mode 100644 index 15f1c59..0000000 --- a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt/main.c +++ /dev/null @@ -1,388 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Semiconductor, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * o Redistributions of source code must retain the above copyright notice, this list - * of conditions and the following disclaimer. - * - * o Redistributions in binary form must reproduce the above copyright notice, this - * list of conditions and the following disclaimer in the documentation and/or - * other materials provided with the distribution. - * - * o Neither the name of Freescale Semiconductor, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include "board.h" -#include "debug_console_imx.h" -#include "i2c_imx.h" - -#define EEPROM_ADDRESS (0x50) - -typedef struct _i2c_state { - const uint8_t* cmdBuff; /*!< The buffer of I2C command. */ - const uint8_t* txBuff; /*!< The buffer of data being sent.*/ - uint8_t* rxBuff; /*!< The buffer of received data. */ - volatile uint32_t cmdSize; /*!< The remaining number of commands to be transmitted. */ - volatile uint32_t txSize; /*!< The remaining number of bytes to be transmitted. */ - volatile uint32_t rxSize; /*!< The remaining number of bytes to be received. */ - volatile bool isBusy; /*!< True if there is an active transmission. */ - volatile uint32_t operateDir; /*!< Overall I2C bus operating direction. */ - volatile uint32_t currentDir; /*!< Current Data transfer direction. */ - volatile uint32_t currentMode; /*!< Current I2C Bus role of this module. */ -} i2c_state_t; - -/* I2C runtime state structure */ -static i2c_state_t i2cState; - -static bool compare(uint8_t* bufA, uint8_t* bufB, uint32_t length); - -static void I2C_XFER_Config(i2c_init_config_t* initConfig); -static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, const uint8_t* txBuffer, uint32_t txSize); -static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, uint8_t* rxBuffer, uint32_t rxSize); -static bool I2C_XFER_IsBusy(void); - -int main(void) -{ - uint8_t txBuffer[5]; - uint8_t rxBuffer[5]; - uint8_t cmdBuffer[5]; - - /* Setup I2C init structure. */ - i2c_init_config_t i2cInitConfig = { - .clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR), - .baudRate = 400000u, - .slaveAddress = 0x00 - }; - - /* Initialize board specified hardware. */ - hardware_init(); - PRINTF("\n\r++++++++++++++++ I2C Send/Receive Interrupt Driven Example +++++++++++++++++\n\r"); - PRINTF("This example will write data to on board EEPROM through I2C Bus\n\r"); - PRINTF("and read them back to see if the EEPROM is programmed successfully. \n\r\n\r"); - - PRINTF("[1].Initialize the I2C module with initialize structure. \n\r"); - I2C_XFER_Config(&i2cInitConfig); - - PRINTF("[2].Launch a I2C write action to 0x0000 address. \n\r"); - cmdBuffer[0] = EEPROM_ADDRESS << 1; - cmdBuffer[1] = 0x00; - cmdBuffer[2] = 0x00; - - PRINTF("[3].Prepare Data for Sending. \n\r"); - txBuffer[0] = 0x11; - txBuffer[1] = 0x22; - txBuffer[2] = 0x33; - txBuffer[3] = 0x44; - txBuffer[4] = 0x55; - - PRINTF("[4].Write data to EEPROM. \n\r"); - I2C_XFER_Write(cmdBuffer, 3, txBuffer, 5); - PRINTF("[5].Wait until transmission is finished. \n\r"); - while(I2C_XFER_IsBusy()); - - PRINTF("[6].Launch a I2C read action from 0x0000 address. \n\r"); - cmdBuffer[0] = EEPROM_ADDRESS << 1; - cmdBuffer[1] = 0x00; - cmdBuffer[2] = 0x00; - cmdBuffer[3] = (EEPROM_ADDRESS << 1) + 1; - - PRINTF("[7].Read data from EEPROM. \n\r"); - I2C_XFER_Read(cmdBuffer, 4, rxBuffer, 5); - PRINTF("[8].Wait until transmission is finished. \n\r"); - while (I2C_XFER_IsBusy()); - - PRINTF("[9].Compare data between txBuf and rxBuf: \n\r"); - if (compare(txBuffer, rxBuffer, 5)) - PRINTF(" txBuf and rxBuf are same, example passed!!!\n\r"); - else - PRINTF(" txBuf and rxBuf are different, example failed!!! \n\r"); - - while (true); -} - -static bool compare(uint8_t* bufA, uint8_t* bufB, uint32_t length) -{ - for (uint32_t i = 0; i < length; i++) - { - if (bufA[i] != bufB[i]) - return false; - } - - return true; -} - -static void I2C_XFER_Config(i2c_init_config_t* initConfig) -{ - /* Initialize I2C state structure content. */ - i2cState.cmdBuff = 0; - i2cState.txBuff = 0; - i2cState.rxBuff = 0; - i2cState.cmdSize = 0; - i2cState.txSize = 0; - i2cState.rxSize = 0; - i2cState.isBusy = false; - i2cState.operateDir = i2cDirectionReceive; - i2cState.currentDir = i2cDirectionReceive; - i2cState.currentMode = i2cModeSlave; - - /* Initialize I2C baud rate, mode, transfer direction and slave address. */ - I2C_Init(BOARD_I2C_BASEADDR, initConfig); - - /* Set I2C Interrupt priority */ - NVIC_SetPriority(BOARD_I2C_IRQ_NUM, 3); - - /* Call core API to enable the IRQ. */ - NVIC_EnableIRQ(BOARD_I2C_IRQ_NUM); - - /* Finally, enable the I2C module */ - I2C_Enable(BOARD_I2C_BASEADDR); -} - -static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, - const uint8_t* txBuffer, uint32_t txSize) -{ - if ((i2cState.isBusy) || (0 == txSize)) - return false; - - /* Initialize i2c transfer struct */ - i2cState.cmdBuff = cmdBuff; - i2cState.cmdSize = cmdSize; - i2cState.txBuff = txBuffer; - i2cState.txSize = txSize; - i2cState.isBusy = true; - i2cState.operateDir = i2cDirectionTransmit; - - /* Clear I2C interrupt flag to avoid spurious interrupt */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); - - if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) - { - /* Reset i2c transfer state. */ - i2cState.operateDir = i2cDirectionReceive; - i2cState.isBusy = false; - return false; - } - - /* Set I2C work under Tx mode */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; - - /* Switch to Master Mode and Send Start Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); - i2cState.currentMode = i2cModeMaster; - - if (0 != cmdSize) - { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; - } - else - { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); - i2cState.txBuff++; - i2cState.txSize--; - } - - /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); - - return true; -} - -static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, - uint8_t* rxBuffer, uint32_t rxSize) -{ - if ((i2cState.isBusy) || (0 == rxSize)) - return false; - - /* Initialize i2c transfer struct */ - i2cState.cmdBuff = cmdBuff; - i2cState.cmdSize = cmdSize; - i2cState.rxBuff = rxBuffer; - i2cState.rxSize = rxSize; - i2cState.isBusy = true; - i2cState.operateDir = i2cDirectionReceive; - - /* Clear I2C interrupt flag to avoid spurious interrupt */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); - - if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) - { - /* Reset i2c transfer state. */ - i2cState.operateDir = i2cDirectionReceive; - i2cState.isBusy = false; - return false; - } - - /* Set I2C work under Tx mode */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; - - /* Switch to Master Mode and Send Start Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); - i2cState.currentMode = i2cModeMaster; - - /* Is there command to be sent before receive data? */ - if (0 != i2cState.cmdSize) - { - if (1 == i2cState.cmdSize) - I2C_SendRepeatStart(BOARD_I2C_BASEADDR); - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; - } - else - { - /* Change to receive state. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - if (1 == rxSize) - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); - else - /* Send Ack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); - /* dummy read to clock in 1st byte */ - I2C_ReadByte(BOARD_I2C_BASEADDR); - } - - /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); - - return true; -} - -static bool I2C_XFER_IsBusy(void) -{ - return i2cState.isBusy; -} - -void BOARD_I2C_HANDLER(void) -{ - /* Clear interrupt flag. */ - I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); - - /* Exit the ISR if no transfer is happening for this instance. */ - if (!i2cState.isBusy) - return; - - if (i2cModeMaster == i2cState.currentMode) - { - if (i2cDirectionTransmit == i2cState.currentDir) - { - if ((I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck)) || - ((0 == i2cState.txSize) && (0 == i2cState.cmdSize))) - { - if ((i2cDirectionTransmit == i2cState.operateDir) || - (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck))) - { - /* Switch to Slave mode and Generate a Stop Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); - i2cState.currentMode = i2cModeSlave; - - /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - /* Close I2C interrupt. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); - /* Release I2C Bus. */ - i2cState.isBusy = false; - } - else - { - /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - if (1 == i2cState.rxSize) - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); - else - /* Send Ack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); - /* dummy read to clock in 1st byte */ - *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); - } - } - else - { - if (0 != i2cState.cmdSize) - { - if ((1 == i2cState.cmdSize) && (i2cDirectionReceive == i2cState.operateDir)) - I2C_SendRepeatStart(BOARD_I2C_BASEADDR); - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); - i2cState.cmdBuff++; - i2cState.cmdSize--; - } - else - { - I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); - i2cState.txBuff++; - i2cState.txSize--; - } - } - } - else - { - /* Normal read operation. */ - if (2 == i2cState.rxSize) - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, false); - else - /* Send Nack */ - I2C_SetAckBit(BOARD_I2C_BASEADDR, true); - - if (1 == i2cState.rxSize) - { - /* Switch back to Tx direction to avoid additional I2C bus read. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); - i2cState.currentDir = i2cDirectionTransmit; - } - *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); - i2cState.rxBuff++; - i2cState.rxSize--; - - /* receive finished. */ - if (0 == i2cState.rxSize) - { - /* Switch to Slave mode and Generate a Stop Signal. */ - I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); - i2cState.currentMode = i2cModeSlave; - - /* Switch back to Rx direction. */ - I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); - i2cState.currentDir = i2cDirectionReceive; - - /* Close I2C interrupt. */ - I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); - /* Release I2C Bus. */ - i2cState.isBusy = false; - } - } - } -} - -/******************************************************************************* - * EOF - ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/CMakeLists.txt new file mode 100644 index 0000000..75ed945 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/CMakeLists.txt @@ -0,0 +1,134 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(i2c_imx_interrupt_eeprom_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/i2c_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/i2c_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(i2c_imx_interrupt_eeprom_example PROPERTIES OUTPUT_NAME "i2c_imx_interrupt_eeprom_example.elf") + +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_eeprom_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_eeprom_example m) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_eeprom_example c) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_eeprom_example gcc) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_eeprom_example nosys) +TARGET_LINK_LIBRARIES(i2c_imx_interrupt_eeprom_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/i2c_imx_interrupt_eeprom_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/i2c_imx_interrupt_eeprom_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_eeprom_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_eeprom_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_eeprom_example.hex) +ADD_CUSTOM_COMMAND(TARGET i2c_imx_interrupt_eeprom_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_eeprom_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_interrupt_eeprom_example.bin) diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.cproject new file mode 100644 index 0000000..2aa5c96 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.project b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.project new file mode 100644 index 0000000..1574d7d --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/ds5/.project @@ -0,0 +1,86 @@ + + + i2c_imx_interrupt_eeprom_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/hardware_init.c b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/hardware_init.c new file mode 100644 index 0000000..3ffd205 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/hardware_init.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this example, we need to grasp board I2C exclusively */ + RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select I2C clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); + /* Enable I2C clock */ + CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); + + /* I2C Pin setting */ + configure_i2c_pins(BOARD_I2C_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/main.c b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/main.c new file mode 100644 index 0000000..2de3c14 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_interrupt_eeprom/main.c @@ -0,0 +1,390 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "board.h" +#include "debug_console_imx.h" +#include "i2c_imx.h" + +#define EEPROM_ADDRESS (0x50) + +typedef struct _i2c_state { + const uint8_t* cmdBuff; /*!< The buffer of I2C command. */ + const uint8_t* txBuff; /*!< The buffer of data being sent.*/ + uint8_t* rxBuff; /*!< The buffer of received data. */ + volatile uint32_t cmdSize; /*!< The remaining number of commands to be transmitted. */ + volatile uint32_t txSize; /*!< The remaining number of bytes to be transmitted. */ + volatile uint32_t rxSize; /*!< The remaining number of bytes to be received. */ + volatile bool isBusy; /*!< True if there is an active transmission. */ + volatile uint32_t operateDir; /*!< Overall I2C bus operating direction. */ + volatile uint32_t currentDir; /*!< Current Data transfer direction. */ + volatile uint32_t currentMode; /*!< Current I2C Bus role of this module. */ +} i2c_state_t; + +/* I2C runtime state structure */ +static i2c_state_t i2cState; + +static bool compare(uint8_t* bufA, uint8_t* bufB, uint32_t length); + +static void I2C_XFER_Config(i2c_init_config_t* initConfig); +static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, const uint8_t* txBuffer, uint32_t txSize); +static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, uint8_t* rxBuffer, uint32_t rxSize); +static bool I2C_XFER_IsBusy(void); + +int main(void) +{ + /* Setup I2C init structure. */ + i2c_init_config_t i2cInitConfig = { + .baudRate = 400000u, + .slaveAddress = 0x00 + }; + uint8_t txBuffer[5]; + uint8_t rxBuffer[5]; + uint8_t cmdBuffer[5]; + + /* Initialize board specified hardware. */ + hardware_init(); + + /* Get current module clock frequency. */ + i2cInitConfig.clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR); + + PRINTF("\n\r++++++++++++++++ I2C Send/Receive Interrupt Driven Example +++++++++++++++++\n\r"); + PRINTF("This example will write data to on board EEPROM through I2C Bus\n\r"); + PRINTF("and read them back to see if the EEPROM is programmed successfully. \n\r\n\r"); + + PRINTF("[1].Initialize the I2C module with initialize structure. \n\r"); + I2C_XFER_Config(&i2cInitConfig); + + PRINTF("[2].Launch a I2C write action to 0x0000 address. \n\r"); + cmdBuffer[0] = EEPROM_ADDRESS << 1; + cmdBuffer[1] = 0x00; + cmdBuffer[2] = 0x00; + + PRINTF("[3].Prepare Data for Sending. \n\r"); + txBuffer[0] = 0x11; + txBuffer[1] = 0x22; + txBuffer[2] = 0x33; + txBuffer[3] = 0x44; + txBuffer[4] = 0x55; + + PRINTF("[4].Write data to EEPROM. \n\r"); + I2C_XFER_Write(cmdBuffer, 3, txBuffer, 5); + PRINTF("[5].Wait until transmission is finished. \n\r"); + while(I2C_XFER_IsBusy()); + + PRINTF("[6].Launch a I2C read action from 0x0000 address. \n\r"); + cmdBuffer[0] = EEPROM_ADDRESS << 1; + cmdBuffer[1] = 0x00; + cmdBuffer[2] = 0x00; + cmdBuffer[3] = (EEPROM_ADDRESS << 1) + 1; + + PRINTF("[7].Read data from EEPROM. \n\r"); + I2C_XFER_Read(cmdBuffer, 4, rxBuffer, 5); + PRINTF("[8].Wait until transmission is finished. \n\r"); + while (I2C_XFER_IsBusy()); + + PRINTF("[9].Compare data between txBuf and rxBuf: \n\r"); + if (compare(txBuffer, rxBuffer, 5)) + PRINTF(" txBuf and rxBuf are same, example passed!!!\n\r"); + else + PRINTF(" txBuf and rxBuf are different, example failed!!! \n\r"); + + while (true); +} + +static bool compare(uint8_t* bufA, uint8_t* bufB, uint32_t length) +{ + for (uint32_t i = 0; i < length; i++) + { + if (bufA[i] != bufB[i]) + return false; + } + + return true; +} + +static void I2C_XFER_Config(i2c_init_config_t* initConfig) +{ + /* Initialize I2C state structure content. */ + i2cState.cmdBuff = 0; + i2cState.txBuff = 0; + i2cState.rxBuff = 0; + i2cState.cmdSize = 0; + i2cState.txSize = 0; + i2cState.rxSize = 0; + i2cState.isBusy = false; + i2cState.operateDir = i2cDirectionReceive; + i2cState.currentDir = i2cDirectionReceive; + i2cState.currentMode = i2cModeSlave; + + /* Initialize I2C baud rate, mode, transfer direction and slave address. */ + I2C_Init(BOARD_I2C_BASEADDR, initConfig); + + /* Set I2C Interrupt priority */ + NVIC_SetPriority(BOARD_I2C_IRQ_NUM, 3); + + /* Call core API to enable the IRQ. */ + NVIC_EnableIRQ(BOARD_I2C_IRQ_NUM); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); +} + +static bool I2C_XFER_Write(const uint8_t* cmdBuff, uint32_t cmdSize, + const uint8_t* txBuffer, uint32_t txSize) +{ + if ((i2cState.isBusy) || (0 == txSize)) + return false; + + /* Initialize i2c transfer struct */ + i2cState.cmdBuff = cmdBuff; + i2cState.cmdSize = cmdSize; + i2cState.txBuff = txBuffer; + i2cState.txSize = txSize; + i2cState.isBusy = true; + i2cState.operateDir = i2cDirectionTransmit; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + { + /* Reset i2c transfer state. */ + i2cState.operateDir = i2cDirectionReceive; + i2cState.isBusy = false; + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); + i2cState.currentMode = i2cModeMaster; + + if (0 != cmdSize) + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); + i2cState.txBuff++; + i2cState.txSize--; + } + + /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + + return true; +} + +static bool I2C_XFER_Read(const uint8_t* cmdBuff, uint32_t cmdSize, + uint8_t* rxBuffer, uint32_t rxSize) +{ + if ((i2cState.isBusy) || (0 == rxSize)) + return false; + + /* Initialize i2c transfer struct */ + i2cState.cmdBuff = cmdBuff; + i2cState.cmdSize = cmdSize; + i2cState.rxBuff = rxBuffer; + i2cState.rxSize = rxSize; + i2cState.isBusy = true; + i2cState.operateDir = i2cDirectionReceive; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusBusBusy)) + { + /* Reset i2c transfer state. */ + i2cState.operateDir = i2cDirectionReceive; + i2cState.isBusy = false; + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeMaster); + i2cState.currentMode = i2cModeMaster; + + /* Is there command to be sent before receive data? */ + if (0 != i2cState.cmdSize) + { + if (1 == i2cState.cmdSize) + I2C_SendRepeatStart(BOARD_I2C_BASEADDR); + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Ack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + /* dummy read to clock in 1st byte */ + I2C_ReadByte(BOARD_I2C_BASEADDR); + } + + /* Enable I2C interrupt, subsequent data transfer will be handled in ISR. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, true); + + return true; +} + +static bool I2C_XFER_IsBusy(void) +{ + return i2cState.isBusy; +} + +void BOARD_I2C_HANDLER(void) +{ + /* Clear interrupt flag. */ + I2C_ClearStatusFlag(BOARD_I2C_BASEADDR, i2cStatusInterrupt); + + /* Exit the ISR if no transfer is happening for this instance. */ + if (!i2cState.isBusy) + return; + + if (i2cModeMaster == i2cState.currentMode) + { + if (i2cDirectionTransmit == i2cState.currentDir) + { + if ((I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck)) || + ((0 == i2cState.txSize) && (0 == i2cState.cmdSize))) + { + if ((i2cDirectionTransmit == i2cState.operateDir) || + (I2C_GetStatusFlag(BOARD_I2C_BASEADDR, i2cStatusReceivedAck))) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); + i2cState.currentMode = i2cModeSlave; + + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + /* Close I2C interrupt. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + /* Release I2C Bus. */ + i2cState.isBusy = false; + } + else + { + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + if (1 == i2cState.rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Ack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + /* dummy read to clock in 1st byte */ + *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); + } + } + else + { + if (0 != i2cState.cmdSize) + { + if ((1 == i2cState.cmdSize) && (i2cDirectionReceive == i2cState.operateDir)) + I2C_SendRepeatStart(BOARD_I2C_BASEADDR); + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.cmdBuff); + i2cState.cmdBuff++; + i2cState.cmdSize--; + } + else + { + I2C_WriteByte(BOARD_I2C_BASEADDR, *i2cState.txBuff); + i2cState.txBuff++; + i2cState.txSize--; + } + } + } + else + { + /* Normal read operation. */ + if (2 == i2cState.rxSize) + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, false); + else + /* Send Nack */ + I2C_SetAckBit(BOARD_I2C_BASEADDR, true); + + if (1 == i2cState.rxSize) + { + /* Switch back to Tx direction to avoid additional I2C bus read. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionTransmit); + i2cState.currentDir = i2cDirectionTransmit; + } + *i2cState.rxBuff = I2C_ReadByte(BOARD_I2C_BASEADDR); + i2cState.rxBuff++; + i2cState.rxSize--; + + /* receive finished. */ + if (0 == i2cState.rxSize) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(BOARD_I2C_BASEADDR, i2cModeSlave); + i2cState.currentMode = i2cModeSlave; + + /* Switch back to Rx direction. */ + I2C_SetDirMode(BOARD_I2C_BASEADDR, i2cDirectionReceive); + i2cState.currentDir = i2cDirectionReceive; + + /* Close I2C interrupt. */ + I2C_SetIntCmd(BOARD_I2C_BASEADDR, false); + /* Release I2C Bus. */ + i2cState.isBusy = false; + } + } + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/CMakeLists.txt new file mode 100644 index 0000000..fa17877 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/CMakeLists.txt @@ -0,0 +1,134 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(i2c_imx_polling_eeprom_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/i2c_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/i2c_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(i2c_imx_polling_eeprom_example PROPERTIES OUTPUT_NAME "i2c_imx_polling_eeprom_example.elf") + +TARGET_LINK_LIBRARIES(i2c_imx_polling_eeprom_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(i2c_imx_polling_eeprom_example m) +TARGET_LINK_LIBRARIES(i2c_imx_polling_eeprom_example c) +TARGET_LINK_LIBRARIES(i2c_imx_polling_eeprom_example gcc) +TARGET_LINK_LIBRARIES(i2c_imx_polling_eeprom_example nosys) +TARGET_LINK_LIBRARIES(i2c_imx_polling_eeprom_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/i2c_imx_polling_eeprom_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/i2c_imx_polling_eeprom_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET i2c_imx_polling_eeprom_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_eeprom_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_eeprom_example.hex) +ADD_CUSTOM_COMMAND(TARGET i2c_imx_polling_eeprom_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_eeprom_example.elf ${EXECUTABLE_OUTPUT_PATH}/i2c_imx_polling_eeprom_example.bin) diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.sh b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.cproject new file mode 100644 index 0000000..e0f1138 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.project b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.project new file mode 100644 index 0000000..d36b108 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/ds5/.project @@ -0,0 +1,86 @@ + + + i2c_imx_polling_eeprom_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/i2c_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/i2c_imx.cdriver2virtual:/virtualdriver/i2c_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/i2c_imx.hdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/hardware_init.c b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/hardware_init.c new file mode 100644 index 0000000..3ffd205 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/hardware_init.c @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* initialize debug uart */ + dbg_uart_init(); + + /* In this example, we need to grasp board I2C exclusively */ + RDC_SetPdapAccess(RDC, BOARD_I2C_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Select I2C clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_I2C_CCM_ROOT, ccmRootmuxI2cOsc24m, 0, 0); + /* Enable I2C clock */ + CCM_EnableRoot(CCM, BOARD_I2C_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_I2C_CCM_CCGR, ccmClockNeededRunWait); + + /* I2C Pin setting */ + configure_i2c_pins(BOARD_I2C_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/main.c b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/main.c new file mode 100644 index 0000000..459e702 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/i2c_imx/i2c_polling_eeprom/main.c @@ -0,0 +1,310 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include +#include "board.h" +#include "debug_console_imx.h" +#include "i2c_imx.h" + +#define EEPROM_ADDRESS (0x50) + +static bool compare(uint8_t* bufA, uint8_t* bufB, uint32_t length); + +static bool I2C_MasterSendDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + const uint8_t *txBuff, + uint32_t txSize); +static bool I2C_MasterReceiveDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + uint8_t *rxBuff, + uint32_t rxSize); + +int main(void) +{ + /* Setup I2C init structure. */ + i2c_init_config_t i2cInitConfig = { + .baudRate = 400000u, + .slaveAddress = 0x00 + }; + uint8_t txBuffer[5]; + uint8_t rxBuffer[5]; + uint8_t cmdBuffer[5]; + + /* Initialize board specified hardware. */ + hardware_init(); + + /* Get current module clock frequency. */ + i2cInitConfig.clockRate = get_i2c_clock_freq(BOARD_I2C_BASEADDR); + + PRINTF("\n\r++++++++++++++++ I2C Send/Receive polling Example ++++++++++++++++\n\r"); + PRINTF("This example will write data to on board EEPROM through I2C Bus\n\r"); + PRINTF("and read them back to see if the EEPROM is programmed successfully. \n\r\n\r"); + + PRINTF("[1].Initialize the I2C module with initialize structure. \n\r"); + I2C_Init(BOARD_I2C_BASEADDR, &i2cInitConfig); + + /* Finally, enable the I2C module */ + I2C_Enable(BOARD_I2C_BASEADDR); + + PRINTF("[2].Launch a I2C write action to 0x0000 address. \n\r"); + cmdBuffer[0] = EEPROM_ADDRESS << 1; + cmdBuffer[1] = 0x00; + cmdBuffer[2] = 0x00; + + PRINTF("[3].Prepare Data for Sending. \n\r"); + txBuffer[0] = 0x11; + txBuffer[1] = 0x22; + txBuffer[2] = 0x33; + txBuffer[3] = 0x44; + txBuffer[4] = 0x55; + + PRINTF("[4].Write data to EEPROM and wait until transmission finished. \n\r"); + I2C_MasterSendDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 3, txBuffer, 5); + + PRINTF("[5].Launch a I2C read action from 0x0000 address. \n\r"); + cmdBuffer[0] = EEPROM_ADDRESS << 1; + cmdBuffer[1] = 0x00; + cmdBuffer[2] = 0x00; + cmdBuffer[3] = (EEPROM_ADDRESS << 1) + 1; + + PRINTF("[6].Read data from EEPROM and wait until transmission finished. \n\r"); + I2C_MasterReceiveDataPolling(BOARD_I2C_BASEADDR, cmdBuffer, 4, rxBuffer, 5); + + PRINTF("[7].Compare data between txBuf and rxBuf: \n\r"); + if (compare(txBuffer, rxBuffer, 5)) + PRINTF(" txBuf and rxBuf are same, example passed!!!\n\r"); + else + PRINTF(" txBuf and rxBuf are different, example failed!!! \n\r"); + + while (true) + __WFI(); +} + +static bool compare(uint8_t* bufA, uint8_t* bufB, uint32_t length) +{ + for (uint32_t i = 0; i < length; i++) + { + if (bufA[i] != bufB[i]) + return false; + } + + return true; +} + +static bool I2C_MasterSendDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + const uint8_t *txBuff, + uint32_t txSize) +{ + if (I2C_GetStatusFlag(base, i2cStatusBusBusy)) + return false; + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(base, i2cDirectionTransmit); + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(base, i2cModeMaster); + + /* Send first byte */ + if (0 != cmdSize) + { + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + I2C_WriteByte(base, *txBuff++); + txSize--; + } + + while (1) + { + /* Wait I2C transmission status flag assert. */ + while (!I2C_GetStatusFlag(base, i2cStatusInterrupt)); + + /* Clear I2C transmission status flag. */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + /* Transmit complete. */ + if ((I2C_GetStatusFlag(base, i2cStatusReceivedAck)) || + ((0 == txSize) && (0 == cmdSize))) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + return true; + } + else + { + if (0 != cmdSize) + { + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + I2C_WriteByte(base, *txBuff++); + txSize--; + } + } + } +} + +static bool I2C_MasterReceiveDataPolling(I2C_Type *base, + const uint8_t *cmdBuff, + uint32_t cmdSize, + uint8_t *rxBuff, + uint32_t rxSize) +{ + uint32_t currentDir = i2cDirectionReceive; + + /* Clear I2C interrupt flag to avoid spurious interrupt */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + if (I2C_GetStatusFlag(base, i2cStatusBusBusy)) + { + return false; + } + + /* Set I2C work under Tx mode */ + I2C_SetDirMode(base, i2cDirectionTransmit); + + /* Switch to Master Mode and Send Start Signal. */ + I2C_SetWorkMode(base, i2cModeMaster); + + if (0 != cmdSize) + { + currentDir = i2cDirectionTransmit; + if (1 == cmdSize) + I2C_SendRepeatStart(base); + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(base, i2cDirectionReceive); + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Ack */ + I2C_SetAckBit(base, true); + /* dummy read to clock in 1st byte */ + *rxBuff = I2C_ReadByte(base); + } + + while (1) + { + /* Wait I2C transmission status flag assert. */ + while (!I2C_GetStatusFlag(base, i2cStatusInterrupt)); + + /* Clear I2C transmission status flag. */ + I2C_ClearStatusFlag(base, i2cStatusInterrupt); + + if (i2cDirectionTransmit == currentDir) + { + if (0 < cmdSize) + { + if (I2C_GetStatusFlag(base, i2cStatusReceivedAck)) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + return false; + } + else + { + if (1 == cmdSize) + I2C_SendRepeatStart(base); + I2C_WriteByte(base, *cmdBuff++); + cmdSize--; + } + } + else + { + /* Change to receive state. */ + I2C_SetDirMode(base, i2cDirectionReceive); + currentDir = i2cDirectionReceive; + + if (1 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Ack */ + I2C_SetAckBit(base, true); + /* dummy read to clock in 1st byte */ + *rxBuff = I2C_ReadByte(base); + } + } + else + { + /* Normal read operation. */ + if (2 == rxSize) + /* Send Nack */ + I2C_SetAckBit(base, false); + else + /* Send Nack */ + I2C_SetAckBit(base, true); + + if (1 == rxSize) + /* Switch back to Tx direction to avoid additional I2C bus read. */ + I2C_SetDirMode(base, i2cDirectionTransmit); + *rxBuff = I2C_ReadByte(base); + rxBuff++; + rxSize--; + + /* receive finished. */ + if (0 == rxSize) + { + /* Switch to Slave mode and Generate a Stop Signal. */ + I2C_SetWorkMode(base, i2cModeSlave); + + /* Switch back to Rx direction. */ + I2C_SetDirMode(base, i2cDirectionReceive); + + return true; + } + } + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt index 82ecfcc..a9a2980 100644 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(uart_imx_interrupt_example "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject index 01e8f9e..daa6c26 100644 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project index 31063be..0022145 100644 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd deleted file mode 100644 index 2f7a3da..0000000 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/ds5/uart_imx_interrupt_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - uart_imx_interrupt_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp deleted file mode 100644 index e481dee..0000000 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../../pin_mux.c$PROJ_DIR$/../../../../pin_mux.h$PROJ_DIR$/../../../../board.c$PROJ_DIR$/../../../../board.h$PROJ_DIR$/../../../../clock_freq.c$PROJ_DIR$/../../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww deleted file mode 100644 index 479e121..0000000 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/iar/uart_imx_interrupt_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -alluart_imx_interrupt_exampleReleaseuart_imx_interrupt_exampleDebugReleaseuart_imx_interrupt_exampleReleaseDebuguart_imx_interrupt_exampleDebug -$WS_DIR$/uart_imx_interrupt_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/main.c b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/main.c index 5cef7aa..9b22f1f 100644 --- a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/main.c +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_interrupt/main.c @@ -56,22 +56,24 @@ static uint32_t UART_XFER_GetReadStatus(void); int main(void) { - uint8_t rxChar, txChar; - // Setup UART init structure. - uart_init_config_t uart_init_str = { - .clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR), + uart_init_config_t initConfig = { .baudRate = 115200u, .wordLength = uartWordLength8Bits, .stopBitNum = uartStopBitNumOne, .parity = uartParityDisable, .direction = uartDirectionTxRx }; + uint8_t rxChar, txChar; // Initialize board specified hardware. hardware_init(); + + // Get current module clock frequency. + initConfig.clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR); + // Initialize the uart module with initialize structure. - UART_XFER_Config(&uart_init_str); + UART_XFER_Config(&initConfig); // Inform to start non blocking example. UART_XFER_Write((uint8_t*)buffStart, sizeof(buffStart)); diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt new file mode 100644 index 0000000..97d1f98 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/CMakeLists.txt @@ -0,0 +1,132 @@ +INCLUDE(CMakeForceCompiler) + +# CROSS COMPILER SETTING +SET(CMAKE_SYSTEM_NAME Generic) +CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + +# THE VERSION NUMBER +SET (Tutorial_VERSION_MAJOR 1) +SET (Tutorial_VERSION_MINOR 0) + +# ENABLE ASM +ENABLE_LANGUAGE(ASM) + +SET(CMAKE_STATIC_LIBRARY_PREFIX) +SET(CMAKE_STATIC_LIBRARY_SUFFIX) + +SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX) +SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX) + + +# CURRENT DIRECTORY +SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) + +# DEBUG LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# RELEASE LINK FILE +set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") + +# DEBUG ASM FLAGS +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG C FLAGS +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# DEBUG LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# RELEASE ASM FLAGS +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE C FLAGS +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") + +# RELEASE LD FLAGS +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") + +# ASM MACRO +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") + +# C MACRO +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") + +# CXX MACRO + +# INCLUDE_DIRECTORIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/CMSIS/Include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/include) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/drivers/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../../../platform/utilities/inc) + INCLUDE_DIRECTORIES(${ProjDirPath}/../../../..) +ENDIF() + +# ADD_EXECUTABLE +ADD_EXECUTABLE(uart_imx_polling_example + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" + "${ProjDirPath}/../../../../../../platform/utilities/src/debug_console_imx.c" + "${ProjDirPath}/../../../../../../platform/utilities/inc/debug_console_imx.h" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.c" + "${ProjDirPath}/../../../../../../platform/utilities/src/print_scan.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_analog_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/lmem.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/rdc_defs_imx7d.h" + "${ProjDirPath}/../../../../../../platform/drivers/inc/wdog_imx.h" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_analog_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/lmem.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/rdc.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/wdog_imx.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" + "${ProjDirPath}/../../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.h" + "${ProjDirPath}/../../../../pin_mux.c" + "${ProjDirPath}/../../../../pin_mux.h" + "${ProjDirPath}/../../../../board.c" + "${ProjDirPath}/../../../../board.h" + "${ProjDirPath}/../../../../clock_freq.c" + "${ProjDirPath}/../../../../clock_freq.h" + "${ProjDirPath}/../hardware_init.c" + "${ProjDirPath}/../main.c" + "${ProjDirPath}/../../../../../../platform/drivers/src/uart_imx.c" + "${ProjDirPath}/../../../../../../platform/drivers/inc/uart_imx.h" +) +SET_TARGET_PROPERTIES(uart_imx_polling_example PROPERTIES OUTPUT_NAME "uart_imx_polling_example.elf") + +TARGET_LINK_LIBRARIES(uart_imx_polling_example -Wl,--start-group) +# LIBRARIES +IF(CMAKE_BUILD_TYPE MATCHES Debug) +ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) +ENDIF() + +# SYSTEM LIBRARIES +TARGET_LINK_LIBRARIES(uart_imx_polling_example m) +TARGET_LINK_LIBRARIES(uart_imx_polling_example c) +TARGET_LINK_LIBRARIES(uart_imx_polling_example gcc) +TARGET_LINK_LIBRARIES(uart_imx_polling_example nosys) +TARGET_LINK_LIBRARIES(uart_imx_polling_example -Wl,--end-group) + +# MAP FILE +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -Xlinker -Map=debug/uart_imx_polling_example.map") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -Xlinker -Map=release/uart_imx_polling_example.map") + +# BIN AND HEX +ADD_CUSTOM_COMMAND(TARGET uart_imx_polling_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.elf ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.hex) +ADD_CUSTOM_COMMAND(TARGET uart_imx_polling_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.elf ${EXECUTABLE_OUTPUT_PATH}/uart_imx_polling_example.bin) diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat new file mode 100644 index 0000000..0cf721f --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.bat @@ -0,0 +1,5 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh new file mode 100755 index 0000000..3827529 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_all.sh @@ -0,0 +1,5 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat new file mode 100644 index 0000000..e9ccfdd --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh new file mode 100755 index 0000000..effd076 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat new file mode 100644 index 0000000..0759349 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . +mingw32-make -j4 +pause diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh new file mode 100755 index 0000000..a12067d --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . +make -j4 diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat new file mode 100644 index 0000000..ffea088 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.bat @@ -0,0 +1,3 @@ +RD /s /Q Debug Release CMakeFiles +DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +pause diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh new file mode 100755 index 0000000..795ad87 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/armgcc/clean.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf debug release CMakeFiles +rm -rf Makefile cmake_install.cmake CMakeCache.txt diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject new file mode 100644 index 0000000..870d070 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.cproject @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.project b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.project new file mode 100644 index 0000000..a2c6889 --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/ds5/.project @@ -0,0 +1,86 @@ + + + uart_imx_polling_example_imx7d_val_m4 + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-6-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-6-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-6-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-6-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-6-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-6-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-6-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-4-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-4-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-4-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-4-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-4-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-4-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-6-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-6-PROJECT_LOC/platform/drivers/inc/uart_imx.h + + + diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/hardware_init.c b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/hardware_init.c new file mode 100644 index 0000000..b9efeaf --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/hardware_init.c @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "board.h" +#include "pin_mux.h" + +void hardware_init(void) +{ + /* Board specific RDC settings */ + BOARD_RdcInit(); + + /* In this example, we need to grasp board debug uart exclusively */ + RDC_SetPdapAccess(RDC, BOARD_DEBUG_UART_RDC_PDAP, 3 << (BOARD_DOMAIN_ID * 2), false, false); + + /* Board specific clock settings */ + BOARD_ClockInit(); + + /* Select board debug clock derived from OSC clock(24M) */ + CCM_UpdateRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT, ccmRootmuxUartOsc24m, 0, 0); + /* Enable debug uart clock */ + CCM_EnableRoot(CCM, BOARD_DEBUG_UART_CCM_ROOT); + CCM_ControlGate(CCM, BOARD_DEBUG_UART_CCM_CCGR, ccmClockNeededRunWait); + + /* UART Pin setting */ + configure_uart_pins(BOARD_DEBUG_UART_BASEADDR); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/main.c b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/main.c new file mode 100644 index 0000000..5888f6f --- /dev/null +++ b/examples/imx7d_val_m4/driver_examples/uart_imx/uart_polling/main.c @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/////////////////////////////////////////////////////////////////////////////// +// Includes +/////////////////////////////////////////////////////////////////////////////// +#include +#include +#include "uart_imx.h" +#include "board.h" + +/////////////////////////////////////////////////////////////////////////////// +// Consts +/////////////////////////////////////////////////////////////////////////////// +const uint8_t bufferData1[] = "\n\r++++++++++++++++ UART Send/Receive Polling Example +++++++++++++++++\n\r"; +const uint8_t bufferData2[] = "\n\rType characters from keyboard, the board will receive and then echo them to terminal screen\n\r"; + +static void UART_SendDataPolling(UART_Type *base, const uint8_t *txBuff, uint32_t txSize); +static void UART_ReceiveDataPolling(UART_Type *base, uint8_t *rxBuff, uint32_t rxSize); + +int main(void) +{ + // Setup UART init structure. + uart_init_config_t initConfig = { + .baudRate = 115200u, + .wordLength = uartWordLength8Bits, + .stopBitNum = uartStopBitNumOne, + .parity = uartParityDisable, + .direction = uartDirectionTxRx + }; + uint8_t rxChar = 0; + uint32_t byteCount = 0; + + /* Initialize board specified hardware. */ + hardware_init(); + + // Get current module clock frequency. + initConfig.clockRate = get_uart_clock_freq(BOARD_DEBUG_UART_BASEADDR); + + /* Initialize UART baud rate, bit count, parity, stop bit and direction. */ + UART_Init(BOARD_DEBUG_UART_BASEADDR, &initConfig); + + /* Set UART build-in hardware FIFO Watermark. */ + UART_SetTxFifoWatermark(BOARD_DEBUG_UART_BASEADDR, 16); + UART_SetRxFifoWatermark(BOARD_DEBUG_UART_BASEADDR, 1); + + /* Finally, enable the UART module */ + UART_Enable(BOARD_DEBUG_UART_BASEADDR); + + byteCount = sizeof(bufferData1); + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, bufferData1, byteCount); + + byteCount = sizeof(bufferData2); + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, bufferData2, byteCount); + + while (true) + { + /* Wait to receive input data */ + UART_ReceiveDataPolling(BOARD_DEBUG_UART_BASEADDR, &rxChar, 1u); + + /* Send any character that received */ + UART_SendDataPolling(BOARD_DEBUG_UART_BASEADDR, &rxChar, 1u); + } +} + +static void UART_SendDataPolling(UART_Type *base, const uint8_t *txBuff, uint32_t txSize) +{ + while (txSize--) + { + while (!UART_GetStatusFlag(base, uartStatusTxComplete)); + UART_Putchar(base, *txBuff++); + } +} + +static void UART_ReceiveDataPolling(UART_Type *base, uint8_t *rxBuff, uint32_t rxSize) +{ + while (rxSize--) + { + while (!UART_GetStatusFlag(base, uartStatusRxReady)); + *rxBuff = UART_Getchar(base); + rxBuff++; + + if (UART_GetStatusFlag(base, uartStatusRxOverrun)) + UART_ClearStatusFlag(base, uartStatusRxOverrun); + } +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt b/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt index 3e9f4f0..cda6351 100644 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt +++ b/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/CMakeLists.txt @@ -28,31 +28,31 @@ set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -T${ProjDirPat set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -T${ProjDirPath}/../../../../../platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") # DEBUG ASM FLAGS -SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG C FLAGS -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O0 -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEBUG LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -g -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # RELEASE ASM FLAGS -SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE C FLAGS -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mapcs -std=gnu99") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # RELEASE LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs -Xlinker --defsym=__stack_size__=0x400 -Xlinker --defsym=__heap_size__=0x200") +SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -lm -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -Os -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") # ASM MACRO SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") -SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_IMX7D_M4") +SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DCPU_MCIMX7D_M4") # CXX MACRO @@ -86,11 +86,13 @@ ADD_EXECUTABLE(wdog_imx_example "${ProjDirPath}/../../../../../platform/utilities/src/print_scan.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_analog_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/ccm_imx7d.h" + "${ProjDirPath}/../../../../../platform/drivers/inc/lmem.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc.h" "${ProjDirPath}/../../../../../platform/drivers/inc/rdc_defs_imx7d.h" "${ProjDirPath}/../../../../../platform/drivers/inc/wdog_imx.h" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_analog_imx7d.c" "${ProjDirPath}/../../../../../platform/drivers/src/ccm_imx7d.c" + "${ProjDirPath}/../../../../../platform/drivers/src/lmem.c" "${ProjDirPath}/../../../../../platform/drivers/src/rdc.c" "${ProjDirPath}/../../../../../platform/drivers/src/wdog_imx.c" "${ProjDirPath}/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c" diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_all.bat b/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_all.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_debug.bat b/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_debug.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_release.bat b/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/build_release.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/clean.bat b/examples/imx7d_val_m4/driver_examples/wdog_imx/armgcc/clean.bat old mode 100755 new mode 100644 diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.cproject b/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.cproject index fead39f..865aa32 100644 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.cproject +++ b/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.cproject @@ -3,21 +3,21 @@ - + - + - + - + + @@ -63,21 +63,21 @@ - + - + - + - + + diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.project b/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.project index 7c07b11..22924fc 100644 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.project +++ b/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/.project @@ -80,7 +80,7 @@ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h + startup2virtual:/virtualstartup/startup_MCIMX7D_M4.s1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.sutilities2virtual:/virtualutilities/debug_console_imx.c1PARENT-5-PROJECT_LOC/platform/utilities/src/debug_console_imx.cutilities2virtual:/virtualutilities/debug_console_imx.h1PARENT-5-PROJECT_LOC/platform/utilities/inc/debug_console_imx.hutilities2virtual:/virtualutilities/print_scan.c1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.cutilities2virtual:/virtualutilities/print_scan.h1PARENT-5-PROJECT_LOC/platform/utilities/src/print_scan.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_analog_imx7d.hsystem2virtual:/virtualsystem/ccm_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/ccm_imx7d.hsystem2virtual:/virtualsystem/lmem.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/lmem.hsystem2virtual:/virtualsystem/rdc.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc.hsystem2virtual:/virtualsystem/rdc_defs_imx7d.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/rdc_defs_imx7d.hsystem2virtual:/virtualsystem/wdog_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/wdog_imx.hsystem2virtual:/virtualsystem/ccm_analog_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_analog_imx7d.csystem2virtual:/virtualsystem/ccm_imx7d.c1PARENT-5-PROJECT_LOC/platform/drivers/src/ccm_imx7d.csystem2virtual:/virtualsystem/lmem.c1PARENT-5-PROJECT_LOC/platform/drivers/src/lmem.csystem2virtual:/virtualsystem/rdc.c1PARENT-5-PROJECT_LOC/platform/drivers/src/rdc.csystem2virtual:/virtualsystem/wdog_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/wdog_imx.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.c1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.cstartup2virtual:/virtualstartup/system_MCIMX7D_M4.h1PARENT-5-PROJECT_LOC/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hboard2virtual:/virtualboard/pin_mux.c1PARENT-3-PROJECT_LOC/pin_mux.cboard2virtual:/virtualboard/pin_mux.h1PARENT-3-PROJECT_LOC/pin_mux.hboard2virtual:/virtualboard/board.c1PARENT-3-PROJECT_LOC/board.cboard2virtual:/virtualboard/board.h1PARENT-3-PROJECT_LOC/board.hboard2virtual:/virtualboard/clock_freq.c1PARENT-3-PROJECT_LOC/clock_freq.cboard2virtual:/virtualboard/clock_freq.h1PARENT-3-PROJECT_LOC/clock_freq.hboard2virtual:/virtualboard/hardware_init.c1PARENT-1-PROJECT_LOC/hardware_init.csource2virtual:/virtualsource/main.c1PARENT-1-PROJECT_LOC/main.cdriver2virtual:/virtualdriver/uart_imx.c1PARENT-5-PROJECT_LOC/platform/drivers/src/uart_imx.cdriver2virtual:/virtualdriver/uart_imx.h1PARENT-5-PROJECT_LOC/platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/makedir.bat b/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/makedir.bat deleted file mode 100755 index 4860035..0000000 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/makedir.bat +++ /dev/null @@ -1 +0,0 @@ -IF NOT EXIST "%1" mkdir "%1" diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd b/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd deleted file mode 100644 index 4caf8db..0000000 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/ds5/wdog_imx_example.wsd +++ /dev/null @@ -1,9 +0,0 @@ - - - - wdog_imx_example_imx7d_val_m4.truereleasefalsedebugfalse - - - - - diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd b/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd deleted file mode 100644 index 7f9ea8c..0000000 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewd +++ /dev/null @@ -1,9419 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash SramData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Flash DDRData Release - - ARM - - 0 - - C-SPY - 2 - - 26 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 0 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 0 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 0 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 0 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 0 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 0 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - - Int Ram Debug - - ARM - - 1 - - C-SPY - 2 - - 26 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ARMSIM_ID - 2 - - 1 - 1 - 1 - - - - - - - - ANGEL_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - - CMSISDAP_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GDBSERVER_ID - 2 - - 0 - 1 - 1 - - - - - - - - - - - IARROM_ID - 2 - - 1 - 1 - 1 - - - - - - - - - IJET_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JLINK_ID - 2 - - 15 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMIFTDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - MACRAIGOR_ID - 2 - - 3 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - PEMICRO_ID - 2 - - 1 - 1 - 1 - - - - - - - - - - - - - - - - - - - RDI_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - - - - STLINK_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - THIRDPARTY_ID - 2 - - 0 - 1 - 1 - - - - - - - - XDS100_ID - 2 - - 2 - 1 - 1 - - - - - - - - - - - - - $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin - 1 - - - $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin - 0 - - - $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin - 0 - - - $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin - 0 - - - $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin - 1 - - - $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin - 0 - - - - diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp b/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp deleted file mode 100644 index 27da58b..0000000 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.ewp +++ /dev/null @@ -1,1891 +0,0 @@ - - - 2 - - Debug - - ARM - - 1 - - General - 3 - - 22 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 1 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 1 - - - - - - - BILINK - 0 - - - - - Release - - ARM - - 0 - - General - 3 - - 22 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ICCARM - 2 - - 31 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AARM - 2 - - 9 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OBJCOPY - 0 - - 1 - 1 - 0 - - - - - - - - - CUSTOM - 3 - - - - - - - BICOMP - 0 - - - - BUILDACTION - 1 - - - - - - - ILINK - 0 - - 16 - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IARCHIVE - 0 - - 0 - 1 - 0 - - - - - - - BILINK - 0 - - - - - - - - -startup$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c$PROJ_DIR$/../../../../../platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.hutilities$PROJ_DIR$/../../../../../platform/utilities/src/debug_console_imx.c$PROJ_DIR$/../../../../../platform/utilities/inc/debug_console_imx.h$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.c$PROJ_DIR$/../../../../../platform/utilities/src/print_scan.hsystem$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_analog_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/ccm_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc.h$PROJ_DIR$/../../../../../platform/drivers/inc/rdc_defs_imx7d.h$PROJ_DIR$/../../../../../platform/drivers/inc/wdog_imx.h$PROJ_DIR$/../../../../../platform/drivers/src/ccm_analog_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/ccm_imx7d.c$PROJ_DIR$/../../../../../platform/drivers/src/rdc.c$PROJ_DIR$/../../../../../platform/drivers/src/wdog_imx.cboard$PROJ_DIR$/../../../pin_mux.c$PROJ_DIR$/../../../pin_mux.h$PROJ_DIR$/../../../board.c$PROJ_DIR$/../../../board.h$PROJ_DIR$/../../../clock_freq.c$PROJ_DIR$/../../../clock_freq.h$PROJ_DIR$/../hardware_init.csource$PROJ_DIR$/../main.cdriver$PROJ_DIR$/../../../../../platform/drivers/src/uart_imx.c$PROJ_DIR$/../../../../../platform/drivers/inc/uart_imx.h diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww b/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww deleted file mode 100644 index d58e53d..0000000 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/iar/wdog_imx_example.eww +++ /dev/null @@ -1,4 +0,0 @@ - - -allwdog_imx_exampleReleasewdog_imx_exampleDebugReleasewdog_imx_exampleReleaseDebugwdog_imx_exampleDebug -$WS_DIR$/wdog_imx_example.ewp diff --git a/examples/imx7d_val_m4/driver_examples/wdog_imx/main.c b/examples/imx7d_val_m4/driver_examples/wdog_imx/main.c index 53c0756..af29975 100644 --- a/examples/imx7d_val_m4/driver_examples/wdog_imx/main.c +++ b/examples/imx7d_val_m4/driver_examples/wdog_imx/main.c @@ -37,11 +37,11 @@ static uint32_t num = 5; int main(void) { - wdog_mode_config_t config = { - .wdw = true, /*!< true: suspend in low power wait, false: not suspend */ + wdog_init_config_t config = { + .wdw = false, /*!< true: suspend in low power wait, false: not suspend */ .wdt = true, /*!< true: assert WDOG_B when timeout, false: not assert WDOG_B */ .wdbg = true, /*!< true: suspend in debug mode, false: not suspend */ - .wdzst = true /*!< true: suspend in doze and stop mode, false: not suspend */ + .wdzst = false /*!< true: suspend in doze and stop mode, false: not suspend */ }; hardware_init(); @@ -51,6 +51,8 @@ int main(void) /* Enable WDOG interrupt 0.5 second before WDOG timeout */ NVIC_SetPriority(BOARD_WDOG_IRQ_NUM, 3); NVIC_EnableIRQ(BOARD_WDOG_IRQ_NUM); + /* Refresh WDOG to reload counter */ + WDOG_Refresh(BOARD_WDOG_BASEADDR); WDOG_EnableInt(BOARD_WDOG_BASEADDR, 1); PRINTF("WDOG with timeout 1.5 seconds will now start\n\r"); diff --git a/middleware/multicore/open-amp/common/hil/hil.c b/middleware/multicore/open-amp/common/hil/hil.c index e4b0bf3..31e1a71 100644 --- a/middleware/multicore/open-amp/common/hil/hil.c +++ b/middleware/multicore/open-amp/common/hil/hil.c @@ -291,7 +291,7 @@ int hil_enable_vring_notifications(int vring_index, struct virtqueue *vq) { vring_hw->vq = vq; if (proc_hw->ops->enable_interrupt) { - proc_hw->ops->enable_interrupt(vring_hw); /*_enable_interrupt*/ + proc_hw->ops->enable_interrupt(vring_hw); } return 0; @@ -312,7 +312,7 @@ void hil_vring_notify(struct virtqueue *vq) { struct proc_vring *vring_hw = &proc_hw->vdev.vring_info[vq->vq_queue_index]; if (proc_hw->ops->notify) { - proc_hw->ops->notify(proc_hw->cpu_id, &vring_hw->intr_info); /*_notify*/ + proc_hw->ops->notify(proc_hw->cpu_id, &vring_hw->intr_info); } } diff --git a/middleware/multicore/open-amp/common/shm/sh_mem.h b/middleware/multicore/open-amp/common/shm/sh_mem.h index 4ba830b..abfe6b7 100644 --- a/middleware/multicore/open-amp/common/shm/sh_mem.h +++ b/middleware/multicore/open-amp/common/shm/sh_mem.h @@ -1,6 +1,7 @@ /* * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -75,7 +76,7 @@ struct sh_mem_pool { int total_buffs; int used_buffs; int bmp_size; - unsigned long bitmap[0]; + unsigned long bitmap[1]; }; /* APIs */ diff --git a/middleware/multicore/open-amp/docs/openamp_perf_meas_gd.pdf b/middleware/multicore/open-amp/docs/openamp_perf_meas_gd.pdf new file mode 100644 index 0000000..882442a Binary files /dev/null and b/middleware/multicore/open-amp/docs/openamp_perf_meas_gd.pdf differ diff --git a/middleware/multicore/open-amp/porting/config/config.c b/middleware/multicore/open-amp/porting/config/config.c index fe29d72..bdee597 100644 --- a/middleware/multicore/open-amp/porting/config/config.c +++ b/middleware/multicore/open-amp/porting/config/config.c @@ -43,6 +43,20 @@ #include "config.h" +/** + * config_get_firmware + * + * Searches the given firmware in firmware table list and provides + * it to caller. + * + * @param fw_name - name of the firmware + * @param start_addr - pointer t hold start address of firmware + * @param size - pointer to hold size of firmware + * + * returns - status of function execution + * + */ + int config_get_firmware(char *fw_name, unsigned int *start_addr, unsigned int *size) { return -1; } diff --git a/middleware/multicore/open-amp/porting/config/config.h b/middleware/multicore/open-amp/porting/config/config.h index 23bc36f..6bba03e 100644 --- a/middleware/multicore/open-amp/porting/config/config.h +++ b/middleware/multicore/open-amp/porting/config/config.h @@ -33,8 +33,10 @@ #include "../env/env.h" /* Max supprted ISR counts */ -#define ISR_COUNT 2 +#define ISR_COUNT 4 +/* Max supported firmwares */ +#define FW_COUNT 4 /** * Structure to keep track of registered ISR's. */ @@ -46,6 +48,12 @@ struct isr_info { void (*isr)(int vector, void *data); }; +struct firmware_info { + char name[32]; + unsigned int start_addr; + unsigned int end_addr; +}; + int config_get_firmware(char *fw_name, unsigned int *start_addr, unsigned int *size); #endif diff --git a/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c b/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c new file mode 100644 index 0000000..cb778b2 --- /dev/null +++ b/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.c @@ -0,0 +1,489 @@ +/* + * Copyright (c) 2014, Mentor Graphics Corporation + * All rights reserved. + * Copyright (c) 2015 Xilinx, Inc. All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Mentor Graphics Corporation nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/************************************************************************** + * FILE NAME + * + * bm_env.c + * + * + * DESCRIPTION + * + * This file is Bare Metal Implementation of env layer for OpenAMP. + * + * + **************************************************************************/ + +#include +#include +#include + +#include "porting/env/env.h" +#include "porting/config/config.h" +#include "platform.h" + +#if (defined(__CC_ARM)) +#define MEM_BARRIER() __schedule_barrier() +#elif (defined(__GNUC__)) +#define MEM_BARRIER() asm volatile("" ::: "memory") +#else +#define MEM_BARRIER() +#endif + +static int env_init_counter = 0; +static struct isr_info isr_table[ISR_COUNT]; + +/** + * env_in_isr + * + * @returns - true, if currently in ISR + * + */ +inline int env_in_isr(void) +{ + return platform_in_isr(); +} + +/** + * env_init + * + * Initializes environment. + * + */ +int env_init() { + // verify 'env_init_counter' + assert(env_init_counter >= 0); + if (env_init_counter < 0) + return -1; + env_init_counter++; + // multiple call of 'env_init' - return ok + if (1 < env_init_counter) + return 0; + // first call + memset(isr_table, 0, sizeof(isr_table)); + return platform_init(); +} + +/** + * env_deinit + * + * Uninitializes environment. + * + * @returns - execution status + */ +int env_deinit() { + // verify 'env_init_counter' + assert(env_init_counter > 0); + if (env_init_counter <= 0) + return -1; + // counter on zero - call platform deinit + env_init_counter--; + // multiple call of 'env_deinit' - return ok + if (0 < env_init_counter) + return 0; + // last call + return platform_deinit(); +} + +/** + * env_allocate_memory - implementation + * + * @param size + */ +void *env_allocate_memory(unsigned int size) +{ + return (malloc(size)); +} + +/** + * env_free_memory - implementation + * + * @param ptr + */ +void env_free_memory(void *ptr) +{ + if (ptr != NULL) + { + free(ptr); + } +} + +/** + * + * env_memset - implementation + * + * @param ptr + * @param value + * @param size + */ +void env_memset(void *ptr, int value, unsigned long size) +{ + memset(ptr, value, size); +} + +/** + * + * env_memcpy - implementation + * + * @param dst + * @param src + * @param len + */ +void env_memcpy(void *dst, void const * src, unsigned long len) { + memcpy(dst,src,len); +} + +/** + * + * env_strcmp - implementation + * + * @param dst + * @param src + */ + +int env_strcmp(const char *dst, const char *src){ + return (strcmp(dst, src)); +} + +/** + * + * env_strncpy - implementation + * + * @param dest + * @param src + * @param len + */ +void env_strncpy(char * dest, const char *src, unsigned long len) +{ + strncpy(dest, src, len); +} + +/** + * + * env_strncmp - implementation + * + * @param dest + * @param src + * @param len + */ +int env_strncmp(char * dest, const char *src, unsigned long len) +{ + return (strncmp(dest, src, len)); +} + +/** + * + * env_mb - implementation + * + */ +void env_mb() +{ + MEM_BARRIER(); +} + +/** + * osalr_mb - implementation + */ +void env_rmb() +{ + MEM_BARRIER(); +} + +/** + * env_wmb - implementation + */ +void env_wmb() +{ + MEM_BARRIER(); +} + +/** + * env_map_vatopa - implementation + * + * @param address + */ +unsigned long env_map_vatopa(void *address) +{ + return platform_vatopa(address); +} + +/** + * env_map_patova - implementation + * + * @param address + */ +void *env_map_patova(unsigned long address) +{ + return platform_patova(address); +} + +/** + * env_create_mutex + * + * Creates a mutex with the given initial count. + * + */ +int env_create_mutex(void **lock, int count) +{ + return 0; +} + +/** + * env_delete_mutex + * + * Deletes the given lock + * + */ +void env_delete_mutex(void *lock) +{ +} + +/** + * env_lock_mutex + * + * Tries to acquire the lock, if lock is not available then call to + * this function will suspend. + */ +void env_lock_mutex(void *lock) +{ + platform_interrupt_disable_all(); +} + +/** + * env_unlock_mutex + * + * Releases the given lock. + */ +void env_unlock_mutex(void *lock) +{ + platform_interrupt_enable_all(); +} + + +/** + * env_create_sync_lock + * + * Creates a synchronization lock primitive. It is used + * when signal has to be sent from the interrupt context to main + * thread context. + */ +int env_create_sync_lock(void **lock , int state) { + /* TODO */ + return 0; +} + +/** + * env_delete_sync_lock + * + * Deletes the given lock + * + */ +void env_delete_sync_lock(void *lock){ + /* TODO */ +} + +/** + * env_acquire_sync_lock + * + * Tries to acquire the lock, if lock is not available then call to + * this function waits for lock to become available. + */ +void env_acquire_sync_lock(void *lock){ + /* TODO */ +} + +/** + * env_release_sync_lock + * + * Releases the given lock. + */ +void env_release_sync_lock(void *lock){ + /* TODO */ +} + +/** + * env_sleep_msec + * + * Suspends the calling thread for given time , in msecs. + */ +void env_sleep_msec(int num_msec) +{ + platform_time_delay(num_msec); +} + +/** + * env_disable_interrupts + * + * Disables system interrupts + * + */ +void env_disable_interrupts() +{ + platform_interrupt_disable_all(); +} + +/** + * env_restore_interrupts + * + * Enables system interrupts + * + */ +void env_restore_interrupts() +{ + platform_interrupt_enable_all(); +} + +/** + * env_register_isr + * + * Registers interrupt handler for the given interrupt vector. + * + * @param vector - interrupt vector number + * @param isr - interrupt handler + */ +void env_register_isr(int vector , void *data , + void (*isr)(int vector , void *data)) +{ + assert(vector < ISR_COUNT); + if(vector < ISR_COUNT) + { + /* Save interrupt data */ + isr_table[vector].data = data; + isr_table[vector].isr = isr; + } +} + +void env_update_isr(int vector , void *data , + void (*isr)(int vector , void *data)) +{ + assert(vector < ISR_COUNT); + if(vector < ISR_COUNT) + { + isr_table[vector].data = data; + isr_table[vector].isr = isr; + } +} + +/** + * env_enable_interrupt + * + * Enables the given interrupt + * + * @param vector - interrupt vector number + * @param priority - interrupt priority + * @param polarity - interrupt polarity + */ + +void env_enable_interrupt(unsigned int vector , unsigned int priority , + unsigned int polarity) +{ + assert(vector < ISR_COUNT); + if (vector < ISR_COUNT) + { + isr_table[vector].priority = priority; + isr_table[vector].type = polarity; + platform_interrupt_enable(vector, polarity, priority); + } +} + +/** + * env_disable_interrupt + * + * Disables the given interrupt + * + * @param vector - interrupt vector number + */ + +void env_disable_interrupt(unsigned int vector) +{ + platform_interrupt_disable(vector); +} + +/** + * env_map_memory + * + * Enables memory mapping for given memory region. + * + * @param pa - physical address of memory + * @param va - logical address of memory + * @param size - memory size + * param flags - flags for cache/uncached and access type + */ + +void env_map_memory(unsigned int pa, unsigned int va, unsigned int size, + unsigned int flags) { + platform_map_mem_region(va, pa, size, flags); +} + +/** + * env_disable_cache + * + * Disables system caches. + * + */ + +void env_disable_cache() { + platform_cache_all_flush_invalidate(); + platform_cache_disable(); +} + +/** + * + * env_get_timestamp + * + * Returns a 64 bit time stamp. + * + * + */ +unsigned long long env_get_timestamp(void) { + + /* TODO: Provide implementation for baremetal*/ + return 0; +} + +/*========================================================= */ +/* Util data / functions for BM */ + + +void env_isr(int vector) { + struct isr_info *info; + + assert(vector < ISR_COUNT); + if (vector < ISR_COUNT) + { + info = &isr_table[vector]; + assert(NULL != info->isr); + if (NULL != info->isr) + { + info->isr(vector, info->data); + } + } +} diff --git a/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h b/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h new file mode 100644 index 0000000..0a6a7b2 --- /dev/null +++ b/middleware/multicore/open-amp/porting/env/bm/rpmsg_porting.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Freescale Semiconductor nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/************************************************************************** + * FILE NAME + * + * rpmsg_porting.h + * + * DESCRIPTION + * + * This file contains enviroment specific settings + * + **************************************************************************/ +#ifndef RPMSG_PORTING_H_ +#define RPMSG_PORTING_H_ + +#include "rpmsg_platform_porting.h" + +#endif /* PRMSG_PORTING_H_ */ diff --git a/middleware/multicore/open-amp/porting/env/env.h b/middleware/multicore/open-amp/porting/env/env.h index 05b9e62..cfbbbb6 100644 --- a/middleware/multicore/open-amp/porting/env/env.h +++ b/middleware/multicore/open-amp/porting/env/env.h @@ -2,6 +2,7 @@ * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. * Copyright (c) 2015 Xilinx, Inc. All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -68,15 +69,18 @@ * env_sleep_msec * env_disable_interrupts * env_restore_interrupts + * env_create_queue + * env_delete_queue + * env_put_queue + * env_get_queue * **************************************************************************/ #ifndef _ENV_H_ #define _ENV_H_ -#include -#include -#include "device_imx.h" -#include "debug_console_imx.h" +#include +#include "rpmsg_porting.h" + /** * env_init * @@ -140,7 +144,8 @@ void env_strcpy(char *, const char *); int env_strcmp(const char *, const char *); void env_strncpy(char *, const char *, unsigned long); int env_strncmp(char *, const char *, unsigned long); -#define env_print(...) PRINTF(__VA_ARGS__) +//#define env_print(...) printf(__VA_ARGS__) +#define env_print(...) /** *----------------------------------------------------------------------------- @@ -428,4 +433,65 @@ void env_disable_cache(void); typedef void LOCK; +/** + * env_create_queue + * + * Creates a message queue. + * + * @param queue - pointer to created queue + * @param length - maximum number of elements in the queue + * @param item_size - queue element size in bytes + * + * @return - status of function execution + */ +int env_create_queue(void **queue, int length , int element_size); + +/** + * env_delete_queue + * + * Deletes the message queue. + * + * @param queue - queue to delete + */ + +void env_delete_queue(void *queue); + +/** + * env_put_queue + * + * Put an element in a queue. + * + * @param queue - queue to put element in + * @param msg - pointer to the message to be put into the queue + * @param timeout_ms - timeout in ms + * + * @return - status of function execution + */ + +int env_put_queue(void *queue, void* msg, int timeout_ms); + +/** + * env_get_queue + * + * Get an element out of a queue. + * + * @param queue - queue to get element from + * @param msg - pointer to a memory to save the message + * @param timeout_ms - timeout in ms + * + * @return - status of function execution + */ + +int env_get_queue(void *queue, void* msg, int timeout_ms); + +/** + * env_isr + * + * Invoke RPMSG/IRQ callback + * + * @param vector - RPMSG IRQ vector ID. + */ + +void env_isr(int vector); + #endif /* _ENV_H_ */ diff --git a/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c b/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c new file mode 100644 index 0000000..54c8054 --- /dev/null +++ b/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.c @@ -0,0 +1,640 @@ +/* + * Copyright (c) 2014, Mentor Graphics Corporation + * All rights reserved. + * Copyright (c) 2015 Xilinx, Inc. All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Mentor Graphics Corporation nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/************************************************************************** + * FILE NAME + * + * freertos_env.c + * + * + * DESCRIPTION + * + * This file is FreeRTOS Implementation of env layer for OpenAMP. + * + * + **************************************************************************/ + +#include +#include +#include + +#include "porting/env/env.h" +#include "porting/config/config.h" +#include "FreeRTOS.h" +#include "task.h" +#include "semphr.h" +#include "platform.h" + +#if (defined(__CC_ARM)) +#define MEM_BARRIER() __schedule_barrier() +#elif (defined(__GNUC__)) +#define MEM_BARRIER() asm volatile("" ::: "memory") +#else +#define MEM_BARRIER() +#endif + +static int env_init_counter = 0; +static struct isr_info isr_table[ISR_COUNT]; + + +/** + * env_in_isr + * + * @returns - true, if currently in ISR + * + */ +int env_in_isr(void) +{ + return platform_in_isr(); +} + +/** + * env_init + * + * Initializes environment. + * + */ +int env_init() { + // verify 'env_init_counter' + assert(env_init_counter >= 0); + if (env_init_counter < 0) + return -1; + env_init_counter++; + // multiple call of 'env_init' - return ok + if (1 < env_init_counter) + return 0; + // first call + memset(isr_table, 0, sizeof(isr_table)); + return platform_init(); +} + +/** + * env_deinit + * + * Uninitializes environment. + * + * @returns - execution status + */ +int env_deinit() { + // verify 'env_init_counter' + assert(env_init_counter > 0); + if (env_init_counter <= 0) + return -1; + // counter on zero - call platform deinit + env_init_counter--; + // multiple call of 'env_deinit' - return ok + if (0 < env_init_counter) + return 0; + // last call + memset(isr_table, 0, sizeof(isr_table)); + return platform_deinit(); +} +/** + * env_allocate_memory - implementation + * + * @param size + */ +void *env_allocate_memory(unsigned int size) +{ + return (pvPortMalloc(size)); +} + +/** + * env_free_memory - implementation + * + * @param ptr + */ +void env_free_memory(void *ptr) +{ + vPortFree(ptr); +} + +/** + * + * env_memset - implementation + * + * @param ptr + * @param value + * @param size + */ +void env_memset(void *ptr, int value, unsigned long size) +{ + memset(ptr, value, size); +} + +/** + * + * env_memcpy - implementation + * + * @param dst + * @param src + * @param len + */ +void env_memcpy(void *dst, void const * src, unsigned long len) { + memcpy(dst,src,len); +} + +/** + * + * env_strcmp - implementation + * + * @param dst + * @param src + */ + +int env_strcmp(const char *dst, const char *src){ + return (strcmp(dst, src)); +} + +/** + * + * env_strncpy - implementation + * + * @param dest + * @param src + * @param len + */ +void env_strncpy(char * dest, const char *src, unsigned long len) +{ + strncpy(dest, src, len); +} + +/** + * + * env_strncmp - implementation + * + * @param dest + * @param src + * @param len + */ +int env_strncmp(char * dest, const char *src, unsigned long len) +{ + return (strncmp(dest, src, len)); +} + +/** + * + * env_mb - implementation + * + */ +void env_mb() +{ + MEM_BARRIER(); +} + +/** + * osalr_mb - implementation + */ +void env_rmb() +{ + MEM_BARRIER(); +} + +/** + * env_wmb - implementation + */ +void env_wmb() +{ + MEM_BARRIER(); +} + +/** + * env_map_vatopa - implementation + * + * @param address + */ +unsigned long env_map_vatopa(void *address) +{ + return platform_vatopa(address); +} + +/** + * env_map_patova - implementation + * + * @param address + */ +void *env_map_patova(unsigned long address) +{ + return platform_patova(address); +} + +/** + * env_create_mutex + * + * Creates a mutex with the given initial count. + * + */ +int env_create_mutex(void **lock, int count) +{ + *lock = xSemaphoreCreateCounting(10, count); + if(*lock) + { + return 0; + } + else + { + return -1; + } +} + +/** + * env_delete_mutex + * + * Deletes the given lock + * + */ +void env_delete_mutex(void *lock) +{ + vSemaphoreDelete(lock); +} + +/** + * env_lock_mutex + * + * Tries to acquire the lock, if lock is not available then call to + * this function will suspend. + */ +void env_lock_mutex(void *lock) +{ + SemaphoreHandle_t xSemaphore = (SemaphoreHandle_t)lock; + if(!env_in_isr()) + { + xSemaphoreTake( xSemaphore, portMAX_DELAY); + platform_interrupt_disable_all(); + } +} + +/** + * env_unlock_mutex + * + * Releases the given lock. + */ +void env_unlock_mutex(void *lock) +{ + SemaphoreHandle_t xSemaphore = (SemaphoreHandle_t)lock; + if(!env_in_isr()) + { + platform_interrupt_enable_all(); + xSemaphoreGive( xSemaphore); + } +} + + +/** + * env_create_sync_lock + * + * Creates a synchronization lock primitive. It is used + * when signal has to be sent from the interrupt context to main + * thread context. + */ +int env_create_sync_lock(void **lock , int state) { + return env_create_mutex(lock, state); /* state=1 .. initially free */ +} + +/** + * env_delete_sync_lock + * + * Deletes the given lock + * + */ +void env_delete_sync_lock(void *lock){ + if(lock) + env_delete_mutex(lock); +} + +/** + * env_acquire_sync_lock + * + * Tries to acquire the lock, if lock is not available then call to + * this function waits for lock to become available. + */ +void env_acquire_sync_lock(void *lock) +{ + BaseType_t xTaskWokenByReceive = pdFALSE; + SemaphoreHandle_t xSemaphore = (SemaphoreHandle_t)lock; + if(env_in_isr()) + { + xSemaphoreTakeFromISR(xSemaphore, &xTaskWokenByReceive); + portEND_SWITCHING_ISR( xTaskWokenByReceive ); + } + else + { + xSemaphoreTake( xSemaphore, portMAX_DELAY); + } +} + +/** + * env_release_sync_lock + * + * Releases the given lock. + */ +void env_release_sync_lock(void *lock) +{ + BaseType_t xTaskWokenByReceive = pdFALSE; + SemaphoreHandle_t xSemaphore = (SemaphoreHandle_t)lock; + if(env_in_isr()) + { + xSemaphoreGiveFromISR(xSemaphore, &xTaskWokenByReceive); + portEND_SWITCHING_ISR( xTaskWokenByReceive ); + } + else + { + xSemaphoreGive( xSemaphore); + } +} + +/** + * env_sleep_msec + * + * Suspends the calling thread for given time , in msecs. + */ +void env_sleep_msec(int num_msec) +{ + vTaskDelay(num_msec / portTICK_PERIOD_MS); +} + +/** + * env_disable_interrupts + * + * Disables system interrupts + * + */ +void env_disable_interrupts() +{ + platform_interrupt_disable_all(); +} + +/** + * env_restore_interrupts + * + * Enables system interrupts + * + */ +void env_restore_interrupts() +{ + platform_interrupt_enable_all(); +} + +/** + * env_register_isr + * + * Registers interrupt handler for the given interrupt vector. + * + * @param vector - interrupt vector number + * @param isr - interrupt handler + */ +void env_register_isr(int vector , void *data , + void (*isr)(int vector , void *data)) +{ + assert(vector < ISR_COUNT); + if(vector < ISR_COUNT) + { + /* Save interrupt data */ + isr_table[vector].data = data; + isr_table[vector].isr = isr; + } +} + +void env_update_isr(int vector , void *data , + void (*isr)(int vector , void *data)) +{ + assert(vector < ISR_COUNT); + if(vector < ISR_COUNT) + { + isr_table[vector].data = data; + isr_table[vector].isr = isr; + } +} + +/** + * env_enable_interrupt + * + * Enables the given interrupt + * + * @param vector - interrupt vector number + * @param priority - interrupt priority + * @param polarity - interrupt polarity + */ + +void env_enable_interrupt(unsigned int vector , unsigned int priority , + unsigned int polarity) +{ + assert(vector < ISR_COUNT); + if (vector < ISR_COUNT) + { + isr_table[vector].priority = priority; + isr_table[vector].type = polarity; + platform_interrupt_enable(vector, polarity, priority); + } +} + +/** + * env_disable_interrupt + * + * Disables the given interrupt + * + * @param vector - interrupt vector number + */ + +void env_disable_interrupt(unsigned int vector) +{ + platform_interrupt_disable(vector); +} + +/** + * env_map_memory + * + * Enables memory mapping for given memory region. + * + * @param pa - physical address of memory + * @param va - logical address of memory + * @param size - memory size + * param flags - flags for cache/uncached and access type + */ + +void env_map_memory(unsigned int pa, unsigned int va, unsigned int size, + unsigned int flags) { + platform_map_mem_region(va, pa, size, flags); +} + +/** + * env_disable_cache + * + * Disables system caches. + * + */ + +void env_disable_cache() { + platform_cache_all_flush_invalidate(); + platform_cache_disable(); +} + +/** + * + * env_get_timestamp + * + * Returns a 64 bit time stamp. + * + * + */ +unsigned long long env_get_timestamp(void) { + if(env_in_isr()) + { + return (unsigned long long) xTaskGetTickCountFromISR(); + } + else + { + return (unsigned long long) xTaskGetTickCount(); + } +} + +/*========================================================= */ +/* Util data / functions */ + +void env_isr(int vector) { + struct isr_info *info; + + assert(vector < ISR_COUNT); + if (vector < ISR_COUNT) + { + info = &isr_table[vector]; + assert(NULL != info->isr); + if (NULL != info->isr) + { + env_disable_interrupt(vector); + info->isr(vector, info->data); + env_enable_interrupt(vector, info->priority, info->type); + } + } +} + +/* + * env_create_queue + * + * Creates a message queue. + * + * @param queue - pointer to created queue + * @param length - maximum number of elements in the queue + * @param item_size - queue element size in bytes + * + * @return - status of function execution + */ +int env_create_queue(void **queue, int length , int element_size) +{ + *queue = xQueueCreate(length, element_size); + if(*queue) + { + return 0; + } + else + { + return -1; + } +} + +/** + * env_delete_queue + * + * Deletes the message queue. + * + * @param queue - queue to delete + */ + +void env_delete_queue(void *queue) +{ + vQueueDelete(queue); +} + +/** + * env_put_queue + * + * Put an element in a queue. + * + * @param queue - queue to put element in + * @param msg - pointer to the message to be put into the queue + * @param timeout_ms - timeout in ms + * + * @return - status of function execution + */ + +int env_put_queue(void *queue, void* msg, int timeout_ms) +{ + BaseType_t xHigherPriorityTaskWoken; + if(env_in_isr()) + { + if(xQueueSendFromISR(queue, msg, &xHigherPriorityTaskWoken) == pdPASS) + { + portEND_SWITCHING_ISR( xHigherPriorityTaskWoken ); + return 1; + } + } + else + { + if(xQueueSend(queue, msg, ((portMAX_DELAY == timeout_ms) ? portMAX_DELAY : timeout_ms / portTICK_PERIOD_MS)) == pdPASS) + { + return 1; + } + } + return 0; +} + +/** + * env_get_queue + * + * Get an element out of a queue. + * + * @param queue - queue to get element from + * @param msg - pointer to a memory to save the message + * @param timeout_ms - timeout in ms + * + * @return - status of function execution + */ + +int env_get_queue(void *queue, void* msg, int timeout_ms) +{ + BaseType_t xHigherPriorityTaskWoken; + if(env_in_isr()) + { + if(xQueueReceiveFromISR(queue, msg, &xHigherPriorityTaskWoken) == pdPASS) + { + portEND_SWITCHING_ISR( xHigherPriorityTaskWoken ); + return 1; + } + } + else + { + if(xQueueReceive(queue, msg, ((portMAX_DELAY == timeout_ms) ? portMAX_DELAY : timeout_ms / portTICK_PERIOD_MS)) == pdPASS) + { + return 1; + } + } + return 0; +} diff --git a/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h b/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h new file mode 100644 index 0000000..0a6a7b2 --- /dev/null +++ b/middleware/multicore/open-amp/porting/env/freertos/rpmsg_porting.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Freescale Semiconductor nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/************************************************************************** + * FILE NAME + * + * rpmsg_porting.h + * + * DESCRIPTION + * + * This file contains enviroment specific settings + * + **************************************************************************/ +#ifndef RPMSG_PORTING_H_ +#define RPMSG_PORTING_H_ + +#include "rpmsg_platform_porting.h" + +#endif /* PRMSG_PORTING_H_ */ diff --git a/middleware/multicore/open-amp/porting/env/freertos_env.c b/middleware/multicore/open-amp/porting/env/freertos_env.c deleted file mode 100644 index 18c2afc..0000000 --- a/middleware/multicore/open-amp/porting/env/freertos_env.c +++ /dev/null @@ -1,461 +0,0 @@ -/* - * Copyright (c) 2014, Mentor Graphics Corporation - * All rights reserved. - * Copyright (c) 2015 Xilinx, Inc. All rights reserved. - * Copyright (c) 2015 Freescale, Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of Mentor Graphics Corporation nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/************************************************************************** - * FILE NAME - * - * freertos_env.c - * - * - * DESCRIPTION - * - * This file is Free RTOS Implementation of env layer for OpenAMP. - * - * - **************************************************************************/ - -#include "env.h" -#include "../config/config.h" - -#include -#include - -#if (defined(__CC_ARM)) -#define MEM_BARRIER() __schedule_barrier() -#elif (defined(__GNUC__)) -#define MEM_BARRIER() asm volatile("" ::: "memory") -#else -#define MEM_BARRIER() -#endif - -/* - * function decalaration for platform provided facility - */ -extern void platform_interrupt_enable(void); -extern void platform_interrupt_disable(void); - -/** - * Structure to keep track of registered ISR's. - */ -struct isr_info isr_table[ISR_COUNT]; -int Intr_Count = 0; - -/** - * env_init - * - * Initializes OS/BM environment. - * - */ -int env_init() { - return 0; -} - -/** - * env_deinit - * - * Uninitializes OS/BM environment. - * - * @returns - execution status - */ - -int env_deinit() { - return 0; -} -/** - * env_allocate_memory - implementation - * - * @param size - */ -void *env_allocate_memory(unsigned int size) -{ - return (pvPortMalloc(size)); -} - -/** - * env_free_memory - implementation - * - * @param ptr - */ -void env_free_memory(void *ptr) -{ - if (ptr != NULL) - { - vPortFree(ptr); - } -} - -/** - * - * env_memset - implementation - * - * @param ptr - * @param value - * @param size - */ -void env_memset(void *ptr, int value, unsigned long size) -{ - memset(ptr, value, size); -} - -/** - * - * env_memcpy - implementation - * - * @param dst - * @param src - * @param len - */ -void env_memcpy(void *dst, void const * src, unsigned long len) { - memcpy(dst,src,len); -} - -/** - * - * env_strcmp - implementation - * - * @param dst - * @param src - */ - -int env_strcmp(const char *dst, const char *src){ - return (strcmp(dst, src)); -} - -/** - * - * env_strncpy - implementation - * - * @param dest - * @param src - * @param len - */ -void env_strncpy(char * dest, const char *src, unsigned long len) -{ - strncpy(dest, src, len); -} - -/** - * - * env_strncmp - implementation - * - * @param dest - * @param src - * @param len - */ -int env_strncmp(char * dest, const char *src, unsigned long len) -{ - return (strncmp(dest, src, len)); -} - -/** - * - * env_mb - implementation - * - */ -void env_mb() -{ - MEM_BARRIER(); -} - -/** - * osalr_mb - implementation - */ -void env_rmb() -{ - MEM_BARRIER(); -} - -/** - * env_wmb - implementation - */ -void env_wmb() -{ - MEM_BARRIER(); -} - -/** - * env_map_vatopa - implementation - * - * @param address - */ -unsigned long env_map_vatopa(void *address) -{ - return (unsigned long)address; -} - -/** - * env_map_patova - implementation - * - * @param address - */ -void *env_map_patova(unsigned long address) -{ - return ((void *)address); -} - -/** - * env_create_mutex - * - * Creates a mutex with the given initial count. - * - */ -int env_create_mutex(void **lock, int count) -{ - return 0; -} - -/** - * env_delete_mutex - * - * Deletes the given lock - * - */ -void env_delete_mutex(void *lock) -{ -} - -/** - * env_lock_mutex - * - * Tries to acquire the lock, if lock is not available then call to - * this function will suspend. - * - * system level interrupt is disabled to avoid race condition, this has the same effect of a lock - * - */ -void env_lock_mutex(void *lock) -{ - env_disable_interrupts(); -} - -/** - * env_unlock_mutex - * - * Releases the given lock. - * - * system level interrupt is disabled to avoid race condition, this has the same effect of a lock - * - */ - -void env_unlock_mutex(void *lock) -{ - env_restore_interrupts(); -} - - -/** - * env_create_sync_lock - * - * Creates a synchronization lock primitive. It is used - * when signal has to be sent from the interrupt context to main - * thread context. - */ -int env_create_sync_lock(void **lock , int state) -{ - return 0; -} - -/** - * env_delete_sync_lock - * - * Deletes the given lock - * - */ -void env_delete_sync_lock(void *lock) -{ -} - -/** - * env_acquire_sync_lock - * - * Tries to acquire the lock, if lock is not available then call to - * this function waits for lock to become available. - */ -void env_acquire_sync_lock(void *lock) -{ -} - -/** - * env_release_sync_lock - * - * Releases the given lock. - */ - -void env_release_sync_lock(void *lock) -{ -} - -/** - * env_sleep_msec - * - * Suspends the calling thread for given time , in msecs. - */ - -void env_sleep_msec(int num_msec) -{ - /* portSUPPRESS_TICKS_AND_SLEEP */ - vTaskDelay(num_msec * portTICK_PERIOD_MS); -} - -/** - * env_disable_interrupts - * - * Disables system interrupts - * - */ -void env_disable_interrupts() -{ - taskDISABLE_INTERRUPTS(); -} - -/** - * env_restore_interrupts - * - * Enables system interrupts - * - */ -void env_restore_interrupts() -{ - taskENABLE_INTERRUPTS(); -} - -/** - * env_register_isr - * - * Registers interrupt handler for the given interrupt vector. - * - * @param vector - vring index - * @param isr - interrupt handler - */ -void env_register_isr(int vector , void *data , - void (*isr)(int vector , void *data)) -{ - env_disable_interrupts(); - - if(Intr_Count < ISR_COUNT) - { - /* Save interrupt data */ - isr_table[Intr_Count].vector = vector; - isr_table[Intr_Count].data = data; - isr_table[Intr_Count++].isr = isr; - } - - env_restore_interrupts(); -} - -/** - * env_enable_interrupt - * - * Enables the given interrupt - * - * @param vector - vring index - * @param priority - interrupt priority - * @param polarity - interrupt polarity - */ - -void env_enable_interrupt(unsigned int vector , unsigned int priority , - unsigned int polarity) -{ - platform_interrupt_enable(); -} - -/** - * env_disable_interrupt - * - * Disables the given interrupt - * - * @param vector - interrupt vector number - */ - -void env_disable_interrupt(unsigned int vector) -{ - platform_interrupt_disable(); -} - -/** - * env_map_memory - * - * Enables memory mapping for given memory region. - * - * @param pa - physical address of memory - * @param va - logical address of memory - * @param size - memory size - * param flags - flags for cache/uncached and access type - */ - -void env_map_memory(unsigned int pa, unsigned int va, unsigned int size, - unsigned int flags) -{ -} - -/** - * env_disable_cache - * - * Disables system caches. - * - */ - -void env_disable_cache() -{ -} - -/** - * - * env_get_timestamp - * - * Returns a 64 bit time stamp. - * - * - */ -unsigned long long env_get_timestamp(void) -{ - return 0; -} - -/*========================================================= */ -/* Util data / functions for MQX */ - -void freertos_env_isr(int vector) { - int idx; - struct isr_info *info; - - env_disable_interrupt(vector); - for(idx = 0; idx < ISR_COUNT; idx++) - { - info = &isr_table[idx]; - if(info->vector == vector) - { - info->isr(info->vector , info->data); /*platform_isr*/ - env_enable_interrupt(info->vector , info->priority, info->type); - break; - } - } -} diff --git a/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h b/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h deleted file mode 100644 index 4c25960..0000000 --- a/middleware/multicore/open-amp/porting/imx7d_m4/plat_porting.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2015, Freescale Corporation - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. Neither the name of Mentor Graphics Corporation nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -/************************************************************************** - * FILE NAME - * - * plat_porting.h - * - * DESCRIPTION - * - * This file contains the declaration of porting related function - * and macros - * - **************************************************************************/ -#ifndef PLAT_PORTING_H_ -#define PLAT_PORTING_H_ - -/* MU_RPMSG_CHANNEL is the MU channel used for master and remote to notify each other*/ -#define MU_RPMSG_CHANNEL 1 - -/* platform specific rpmsg handler which is invoked when a notification is received from peer*/ -void rpmsg_handler(void); - -#endif /* PLAT_PORTING_H_ */ diff --git a/middleware/multicore/open-amp/porting/imx7d_m4/platform.c b/middleware/multicore/open-amp/porting/imx7d_m4/platform.c index 6b1fc8f..c682fc6 100644 --- a/middleware/multicore/open-amp/porting/imx7d_m4/platform.c +++ b/middleware/multicore/open-amp/porting/imx7d_m4/platform.c @@ -1,6 +1,5 @@ /* - * Copyright (c) 2015, Freescale Corporation - * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -10,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * 3. Neither the name of Mentor Graphics Corporation nor the names of its + * 3. Neither the name of Freescale Semiconductor nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * @@ -35,81 +34,285 @@ * DESCRIPTION * * This file is the Implementation of IPC hardware layer interface - * for Freescale i.MX7 Dual platform. + * for Freescale i.MX 7Dual platform. * **************************************************************************/ -#include "device_imx.h" +#include #include "platform.h" -#include "plat_porting.h" #include "mu_imx.h" +#include "common/hil/hil.h" +#include "porting/env/env.h" -extern void freertos_env_isr(int vector); +static int _enable_interrupt(struct proc_vring *vring_hw) +{ + /* Register ISR*/ + env_register_isr(vring_hw->intr_info.vect_id, vring_hw, platform_isr); + + /* Prepare the MU Hardware, enable channel 1 interrupt */ + MU_EnableRxFullInt(MUB, RPMSG_MU_CHANNEL); + + return 0; +} + +static void _notify(int cpu_id, struct proc_intr *intr_info) +{ + /* As Linux suggests, use MU->Data Channle 1 as communication channel */ + uint32_t msg = (intr_info->vect_id) << 16; + MU_SendMsg(MUB, RPMSG_MU_CHANNEL, msg); +} + +static int _boot_cpu(int cpu_id, unsigned int load_addr) +{ + /* not imlemented */ + assert(0); + return 0; +} -// uint32_t channel_id; -/*--------------------------- Globals ---------------------------------- */ +static void _shutdown_cpu(int cpu_id) +{ + /* not imlemented */ + assert(0); +} struct hil_platform_ops proc_ops = { - .enable_interrupt = _enable_interrupt, + .enable_interrupt = _enable_interrupt, .notify = _notify, .boot_cpu = _boot_cpu, .shutdown_cpu = _shutdown_cpu, }; +/** + * rpmsg_handler + * + * Called directly from ISR. Convert IRQ number to channel + * number and invoke 'env_isr'. + * + */ void rpmsg_handler(void) { uint32_t msg, channel; - if (MU_TryReceiveMsg(MU0_B, MU_RPMSG_CHANNEL, &msg) == kStatus_MU_Success) { + if (MU_TryReceiveMsg(MUB, RPMSG_MU_CHANNEL, &msg) == kStatus_MU_Success) + { channel = msg >> 16; - freertos_env_isr(channel); + env_isr(channel); } return; } -int _enable_interrupt(struct proc_vring *vring_hw) { /*enable_interrupt*/ - /* Register ISR*/ - env_register_isr(vring_hw->intr_info.vect_id, vring_hw, platform_isr); +#define PLATFORM_DISABLE_COUNTERS 2 +static int disable_counters[PLATFORM_DISABLE_COUNTERS] = {0}; +static int disable_counter_all = 0; - /* - * Prepare the MU Hardware, enable channel 1 interrupt - */ - MU_EnableRxFullInt(MU0_B, MU_RPMSG_CHANNEL); +/** + * platform_time_delay + * + * @param num_msec - delay time in ms. + * + * This is not an accurate delay, it ensures at least num_msec passed when return. + */ +void platform_time_delay(int num_msec) +{ + uint32_t loop; - return 0; + /* Recalculate the CPU frequency */ + SystemCoreClockUpdate(); + + /* Calculate the CPU loops to delay, each loop has 3 cycles */ + loop = SystemCoreClock / 3 / 1000 * num_msec; + + /* There's some difference among toolchains, 3 or 4 cycles each loop */ + while (loop) + { + __NOP(); + loop--; + } } -void _notify(int cpu_id, struct proc_intr *intr_info) +/** + * platform_isr + * + * RPMSG platform IRQ callback + * + */ +void platform_isr(int vect_id, void *data) { - /* - * As Linux suggests, use MU->Data Channle 1 as communication channel - */ - uint32_t msg = (intr_info->vect_id) << 16; - MU_SendMsg(MU0_B, MU_RPMSG_CHANNEL, msg); + hil_isr(((struct proc_vring *) data)); } +/** + * platform_in_isr + * + * Return whether CPU is processing IRQ + * + * @return - true for IRQ, false otherwise. + * + */ +int platform_in_isr(void) +{ + return ((SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0); +} -int _boot_cpu(int cpu_id, unsigned int load_addr) +/** + * platform_interrupt_enable + * + * Enable peripheral-related interrupt with passed priority and type. + * + * @param vector_id - vector ID that need to be converted to IRQ number + * @param trigger_type - IRQ active level + * @param trigger_type - IRQ priority + * + * @return - vector_id. Return value is never checked.. + * + */ +int platform_interrupt_enable(unsigned int vector_id, unsigned int trigger_type, + unsigned int priority) { - return 0; + assert(vector_id < PLATFORM_DISABLE_COUNTERS); + assert(0 < disable_counters[vector_id]); + disable_counters[vector_id]--; + // channels use the same NVIC vector + // enable only if all counters are zero + for (int i = 0; i < PLATFORM_DISABLE_COUNTERS; i++) + { + if (disable_counters[i]) + return (vector_id); + } + NVIC_EnableIRQ(MU_M4_IRQn); + return (vector_id); +} + +/** + * platform_interrupt_disable + * + * Disable peripheral-related interrupt. + * + * @param vector_id - vector ID that need to be converted to IRQ number + * + * @return - vector_id. Return value is never checked. + * + */ +int platform_interrupt_disable(unsigned int vector_id) +{ + assert(vector_id < PLATFORM_DISABLE_COUNTERS); + assert(0 <= disable_counters[vector_id]); + int disabled = 0; + // channels use the same NVIC vector + // if one counter is set - the interrupts are disabled + for (int i = 0; i < PLATFORM_DISABLE_COUNTERS; i++) + { + if (disable_counters[i]) + { + disabled = 1; + break; + } + } + // if not disabled - disable interrutps + if (!disabled) + NVIC_DisableIRQ(MU_M4_IRQn); + disable_counters[vector_id]++; + return (vector_id); } -void _shutdown_cpu(int cpu_id) +/** + * platform_interrupt_enable_all + * + * Enable all platform-related interrupts. + * + */ +void platform_interrupt_enable_all(void) { + assert(0 < disable_counter_all); + disable_counter_all--; + if (0 == disable_counter_all) + platform_interrupt_enable(0, 0, 0); } -void platform_isr(int vect_id, void *data) +/** + * platform_interrupt_disable_all + * + * Enable all platform-related interrupts. + * + */ +void platform_interrupt_disable_all(void) { - hil_isr(((struct proc_vring *) data)); + assert(0 <= disable_counter_all); + if (0 == disable_counter_all) + platform_interrupt_disable(0); + disable_counter_all++; } -void platform_interrupt_enable() +/** + * platform_map_mem_region + * + * Dummy implementation + * + */ +void platform_map_mem_region(unsigned int vrt_addr, unsigned int phy_addr, + unsigned int size, unsigned int flags) { - NVIC_EnableIRQ(MU_INT_M4_IRQn); } -void platform_interrupt_disable() +/** + * platform_cache_all_flush_invalidate + * + * Dummy implementation + * + */ +void platform_cache_all_flush_invalidate() { - NVIC_DisableIRQ(MU_INT_M4_IRQn); +} + +/** + * platform_cache_disable + * + * Dummy implementation + * + */ +void platform_cache_disable() +{ +} + +/** + * platform_vatopa + * + * Dummy implementation + * + */ +unsigned long platform_vatopa(void *addr) +{ + return ((unsigned long)addr); +} + +/** + * platform_patova + * + * Dummy implementation + * + */ +void *platform_patova(unsigned long addr) +{ + return ((void *)addr); +} + +/** + * platform_init + * + * platform/environment init + */ +int platform_init(void) +{ + return 0; +} + +/** + * platform_deinit + * + * platform/environment deinit process + */ +int platform_deinit(void) +{ + return 0; } diff --git a/middleware/multicore/open-amp/porting/imx7d_m4/platform.h b/middleware/multicore/open-amp/porting/imx7d_m4/platform.h index 14a92cc..53bed56 100644 --- a/middleware/multicore/open-amp/porting/imx7d_m4/platform.h +++ b/middleware/multicore/open-amp/porting/imx7d_m4/platform.h @@ -1,6 +1,5 @@ /* - * Copyright (c) 2014, Mentor Graphics Corporation - * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -10,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * 3. Neither the name of Mentor Graphics Corporation nor the names of its + * 3. Neither the name of Freescale Semiconductor nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * @@ -27,15 +26,45 @@ * POSSIBILITY OF SUCH DAMAGE. */ +/************************************************************************** + * FILE NAME + * + * platform.h + * + * COMPONENT + * + * OpenAMP + * + * DESCRIPTION + * + * This file provides function prototypes of platform.c. + * + **************************************************************************/ + #ifndef PLATFORM_H_ #define PLATFORM_H_ -#include "../../common/hil/hil.h" +/* + * 32 MSG (16 rx, 16 tx), 512 bytes each, it is only used when RPMSG driver is working in master mode, otherwise + * the share memory is managed by the other side. + * When working with Linux, SHM_ADDR and SHM_SIZE is not used + */ +#define SHM_ADDR (0) +#define SHM_SIZE (0) -int _enable_interrupt(struct proc_vring *vring_hw); -void _notify(int cpu_id, struct proc_intr *intr_info); -int _boot_cpu(int cpu_id, unsigned int load_addr); -void _shutdown_cpu(int cpu_id); +void platform_time_delay(int num_msec); +int platform_in_isr(void); +int platform_interrupt_enable(unsigned int vector_id, unsigned int trigger_type, unsigned int priority); +int platform_interrupt_disable(unsigned int vector_id); +void platform_interrupt_enable_all(void); +void platform_interrupt_disable_all(void); +void platform_map_mem_region(unsigned int va,unsigned int pa, unsigned int size, unsigned int flags); +void platform_cache_all_flush_invalidate(void); +void platform_cache_disable(void); +unsigned long platform_vatopa(void *addr); +void *platform_patova(unsigned long addr); void platform_isr(int vect_id, void *data); +int platform_init(void); +int platform_deinit(void); #endif /* PLATFORM_H_ */ diff --git a/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c b/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c index aaef04f..4aa2c4a 100644 --- a/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c +++ b/middleware/multicore/open-amp/porting/imx7d_m4/platform_info.c @@ -1,6 +1,5 @@ /* - * Copyright (c) 2015, Freescale Corporation - * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -10,7 +9,7 @@ * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. - * 3. Neither the name of Mentor Graphics Corporation nor the names of its + * 3. Neither the name of Freescale Semiconductor nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * @@ -35,20 +34,20 @@ * DESCRIPTION * * This file implements APIs to get platform specific - * information for OpenAMP. + * information for OpenAMP. * **************************************************************************/ #include "platform.h" -#include "../../rpmsg/rpmsg.h" +#include "rpmsg/rpmsg.h" -/* Reference implementation that show cases platform_get_cpu_info and +/* Reference implementation that show cases platform_get_cpu_info and platform_get_for_firmware API implementation for Bare metal environment */ extern struct hil_platform_ops proc_ops; /* - * Linux requirems the ALIGN to 0x1000 instead of 0x80 + * Linux requires the ALIGN to 0x1000(4KB) instead of 0x80 */ #define VRING_ALIGN 0x1000 @@ -58,14 +57,6 @@ extern struct hil_platform_ops proc_ops; #define VRING0_BASE 0xBFFF0000 #define VRING1_BASE 0xBFFF8000 -/* - * 32 MSG (16 rx, 16 tx), 512 bytes each, it is only used when RPMSG driver is working in master mode, otherwise - * the share memory is managed by the other side. - * When working with Linux, SHM_ADDR and SHM_SIZE is not used - */ -#define SHM_ADDR 0 -#define SHM_SIZE 0 - /* IPI_VECT here defines VRING index in MU */ #define VRING0_IPI_VECT 0 #define VRING1_IPI_VECT 1 @@ -74,10 +65,10 @@ extern struct hil_platform_ops proc_ops; #define REMOTE_CPU_ID 1 /** - * This array provdes defnition of CPU nodes for master and remote - * context. It contains two nodes beacuse the same file is intended + * This array provides definition of CPU nodes for master and remote + * context. It contains two nodes because the same file is intended * to use with both master and remote configurations. On zynq platform - * only one node defintion is required for master/remote as there + * only one node definition is required for master/remote as there * are only two cores present in the platform. * * Only platform specific info is populated here. Rest of information @@ -90,7 +81,7 @@ extern struct hil_platform_ops proc_ops; * -Channel info. * * Although the channel info is not platform specific information - * but it is conveneient to keep it in HIL so that user can easily + * but it is convenient to keep it in HIL so that user can easily * provide it without modifying the generic part. * * It is good idea to define hil_proc structure with platform @@ -108,10 +99,10 @@ extern struct hil_platform_ops proc_ops; * * 2)Second node is required by the master and it defines remote CPU ID, * shared memory and interrupts info. In general no channel info is required by the - * Master node, however in baremetal master and linux remote case the linux + * Master node, however in bare-metal master and linux remote case the linux * rpmsg bus driver behaves as master so the rpmsg driver on linux side still needs - * channel info. This information is not required by the masters for baremetal - * remotes. + * channel info. This information is not required by the masters for bare-metal + * remotes. * */ struct hil_proc proc_table []= @@ -133,7 +124,7 @@ struct hil_proc proc_table []= /* Vring info */ /*struct proc_vring*/ { /*[0]*/ - { /* TX */ + { /* TX */ NULL, (void*)VRING0_BASE/*phy_addr*/, 256/*num_descs*/, VRING_ALIGN/*align*/, /*struct virtqueue, phys_addr, num_descs, align*/ { @@ -228,10 +219,13 @@ struct hil_proc proc_table []= * * return - status of execution */ -int platform_get_processor_info(struct hil_proc *proc , int cpu_id) { +int platform_get_processor_info(struct hil_proc *proc , int cpu_id) +{ int idx; - for(idx = 0; idx < sizeof(proc_table)/sizeof(struct hil_proc); idx++) { - if((cpu_id == HIL_RSVD_CPU_ID) || (proc_table[idx].cpu_id == cpu_id) ) { + for(idx = 0; idx < sizeof(proc_table)/sizeof(struct hil_proc); idx++) + { + if((cpu_id == HIL_RSVD_CPU_ID) || (proc_table[idx].cpu_id == cpu_id)) + { env_memcpy(proc,&proc_table[idx], sizeof(struct hil_proc)); return 0; } @@ -239,7 +233,7 @@ int platform_get_processor_info(struct hil_proc *proc , int cpu_id) { return -1; } -int platform_get_processor_for_fw(char *fw_name) { - +int platform_get_processor_for_fw(char *fw_name) +{ return 1; } diff --git a/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h b/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h new file mode 100644 index 0000000..9bcac32 --- /dev/null +++ b/middleware/multicore/open-amp/porting/imx7d_m4/rpmsg_platform_porting.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Freescale Semiconductor nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/************************************************************************** + * FILE NAME + * + * rpmsg_platform_porting.h + * + * DESCRIPTION + * + * This file contains enviroment specific settings + * + **************************************************************************/ +#ifndef RPMSG_PLATFORM_PORTING_H_ +#define RPMSG_PLATFORM_PORTING_H_ + +/* RPMSG MU channel index */ +#define RPMSG_MU_CHANNEL (1) + +/* RPMSG ISR handler to be called in Application */ +extern void rpmsg_handler(void); + +#endif /* RPMSG_PLATFORM_PORTING_H_ */ diff --git a/middleware/multicore/open-amp/rpmsg/remote_device.c b/middleware/multicore/open-amp/rpmsg/remote_device.c index f07faab..4635a50 100644 --- a/middleware/multicore/open-amp/rpmsg/remote_device.c +++ b/middleware/multicore/open-amp/rpmsg/remote_device.c @@ -2,6 +2,7 @@ * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. * Copyright (c) 2015 Xilinx, Inc. All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -132,18 +133,15 @@ int rpmsg_rdev_init(struct remote_device **rdev, int dev_id, int role, virt_dev->device = proc; virt_dev->func = &rpmsg_rdev_config_ops; if (virt_dev->func->set_features != RPMSG_NULL) { - virt_dev->func->set_features(virt_dev, proc->vdev.dfeatures); /* rpmsg_rdev_set_feature */ + virt_dev->func->set_features(virt_dev, proc->vdev.dfeatures); } - /* - * Linux don't use this way to manage memory pool - */ if (rdev_loc->role == RPMSG_REMOTE) { /* * Since device is RPMSG Remote so we need to manage the * shared buffers. Create shared memory pool to handle buffers. */ - shm = hil_get_shm_info(proc); /*proc_table*/ + shm = hil_get_shm_info(proc); rdev_loc->mem_pool = sh_mem_create_pool(shm->start_addr, shm->size, RPMSG_BUFFER_SIZE); @@ -195,7 +193,7 @@ void rpmsg_rdev_deinit(struct remote_device *rdev) { /* Delete default endpoint for channel */ if (rp_chnl->rp_ept) { - rpmsg_destroy_ept(rp_chnl->rp_ept); + rpmsg_destroy_ept(rp_chnl->rp_ept); } _rpmsg_delete_channel(rp_chnl); @@ -342,7 +340,7 @@ int rpmsg_rdev_notify(struct remote_device *rdev) { * communication. */ if (!status) - virtqueue_kick(rdev->rvq); /*will triggle rpmsg_tx_callback in the REMOTE side*/ + virtqueue_kick(rdev->rvq); } else { status = hil_set_status(rdev->proc); @@ -372,24 +370,22 @@ int rpmsg_rdev_init_channels(struct remote_device *rdev) { if (rdev->role == RPMSG_MASTER) { - chnl_info = hil_get_chnl_info(rdev->proc, &num_chnls); /*proc_table*/ + chnl_info = hil_get_chnl_info(rdev->proc, &num_chnls); for (idx = 0; idx < num_chnls; idx++) { rp_chnl = _rpmsg_create_channel(rdev, chnl_info[idx].name, 0x00, - RPMSG_NS_EPT_ADDR); /*the channel is put to "rp_channels" field of remote_device data structure*/ + RPMSG_NS_EPT_ADDR); if (!rp_chnl) { return RPMSG_ERR_NO_MEM; } - rp_chnl->rp_ept = rpmsg_create_ept(rp_chnl, rdev->default_cb, rdev, - RPMSG_ADDR_ANY); /*the endpoint is put ot "rp_endpoints" field of remote_device data structure*/ + rp_chnl->rp_ept = rpmsg_create_ept(rp_chnl, rdev->default_cb, rdev, RPMSG_ADDR_ANY); if (!rp_chnl->rp_ept) { return RPMSG_ERR_NO_MEM; } - rp_chnl->src = rp_chnl->rp_ept->addr; /*channel source is the default endpoint address, destination is NS endpoint address*/ - + rp_chnl->src = rp_chnl->rp_ept->addr; } } @@ -402,7 +398,7 @@ int rpmsg_rdev_init_channels(struct remote_device *rdev) { * by the virtio.h file. *------------------------------------------------------------------------ */ -int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, // invoked by virtio_device->create_virtqueues +int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, const char *names[], vq_callback *callbacks[], struct virtqueue *vqs_[]) { struct remote_device *rdev; @@ -419,7 +415,6 @@ int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, vring_table = hil_get_vring_info(&rdev->proc->vdev, &num_vrings); - if (num_vrings > nvqs) { return RPMSG_ERR_MAX_VQ; } @@ -427,13 +422,7 @@ int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, /* Create virtqueue for each vring. */ for (idx = 0; idx < num_vrings; idx++) { - INIT_VRING_ALLOC_INFO( ring_info, vring_table[idx]); /*ring_info comes from proc_table*/ - - /* - * - phy_addr - * - align - * - num_descs - */ + INIT_VRING_ALLOC_INFO( ring_info, vring_table[idx]); if (rdev->role == RPMSG_REMOTE) { env_memset((void*) ring_info.phy_addr, 0x00, @@ -441,9 +430,6 @@ int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, vring_table[idx].align)); } - /* - * created virtqueue should be in vqs[0], vqs[1] - */ status = virtqueue_create(dev, idx, (char *) names[idx], &ring_info, callbacks[idx], hil_vring_notify, &vqs[idx]); @@ -454,11 +440,6 @@ int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, } //FIXME - a better way to handle this , tx for master is rx for remote and vice versa. - /* - * MASTER REMOTE - * vqs[0] RX TX - * vqs[1] TX RX - */ if (rdev->role == RPMSG_MASTER) { rdev->tvq = vqs[0]; rdev->rvq = vqs[1]; @@ -472,7 +453,6 @@ int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, && (idx < rdev->mem_pool->total_buffs / 2)); idx++) { - /* Initialize TX virtqueue buffers for remote device */ buffer = sh_mem_get_buffer(rdev->mem_pool); @@ -485,7 +465,7 @@ int rpmsg_rdev_create_virtqueues(struct virtio_device *dev, int flags, int nvqs, node.next = RPMSG_NULL; env_memset(buffer, 0x00, RPMSG_BUFFER_SIZE); - status = virtqueue_add_buffer(rdev->rvq, &node, 0, 1, buffer); /* this is where vq_ring.avial.idx is updated by "vq_ring_update_avail"*/ + status = virtqueue_add_buffer(rdev->rvq, &node, 0, 1, buffer); if (status != RPMSG_SUCCESS) { return status; @@ -509,7 +489,7 @@ uint32_t rpmsg_rdev_get_feature(struct virtio_device *dev) { } void rpmsg_rdev_set_feature(struct virtio_device *dev, uint32_t feature) { - dev->features |= feature; /*refer to name service endpoint creation logic in the caller rpmsg_start_ipc*/ + dev->features |= feature; } uint32_t rpmsg_rdev_negotiate_feature(struct virtio_device *dev, diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg.c b/middleware/multicore/open-amp/rpmsg/rpmsg.c index 66db1ad..59149a6 100644 --- a/middleware/multicore/open-amp/rpmsg/rpmsg.c +++ b/middleware/multicore/open-amp/rpmsg/rpmsg.c @@ -1,6 +1,7 @@ /* * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -44,7 +45,7 @@ * RPMSG driver represents each processor/core to which it communicates with * remote_device control block. * Each remote device(processor) defines its role in the communication i.e - * whether it is RPMSG Master or Remote. If the device (processor) to which + * whether it is RPMSG Master or Remote. If the device(processor) to which * driver is talking is RPMSG master then RPMSG driver implicitly behaves as * Remote and vice versa. * RPMSG Master is responsible for initiating communications with the Remote @@ -80,7 +81,6 @@ int rpmsg_init(int dev_id, struct remote_device **rdev, rpmsg_rx_cb_t default_cb, int role) { int status; - PRINTF("init M4 as %s\r\n", role?"REMOTE":"MASTER"); /* Initialize IPC environment */ status = env_init(); if (status == RPMSG_SUCCESS) { @@ -194,6 +194,7 @@ int rpmsg_send_offchannel_raw(struct rpmsg_channel *rp_chnl, unsigned long src, rp_hdr->dst = dst; rp_hdr->src = src; rp_hdr->len = size; + rp_hdr->flags = 0; /* Copy data to rpmsg buffer. */ env_memcpy(rp_hdr->data, data, size); @@ -214,6 +215,21 @@ int rpmsg_send_offchannel_raw(struct rpmsg_channel *rp_chnl, unsigned long src, /* Do cleanup in case of error.*/ if (status != RPMSG_SUCCESS) { rpmsg_free_buffer(rdev, buffer); + // in case of error ask master + // to release buffer + if (rdev->role == RPMSG_MASTER && status == RPMSG_ERR_BUFF_SIZE) + { + rp_hdr = (struct rpmsg_hdr *) buffer; + rp_hdr->dst = dst; + rp_hdr->src = src; + rp_hdr->len = 0; + rp_hdr->flags = RPMSG_DROP_HDR_FLAG; + int tmp_status = rpmsg_enqueue_buffer(rdev, buffer, buff_len, idx); + if (tmp_status == RPMSG_SUCCESS) { + /* Let the other side know that there is a job to process. */ + virtqueue_kick(rdev->tvq); + } + } } return status; @@ -283,15 +299,6 @@ int rpmsg_get_buffer_size(struct rpmsg_channel *rp_chnl) { struct rpmsg_endpoint *rpmsg_create_ept(struct rpmsg_channel *rp_chnl, rpmsg_rx_cb_t cb, void *priv, unsigned long addr) { - /* - * Note : When calling rpmsg_create_ept to a channel, the endpoint - * is put into info field of remote_device, not the channel - * - * - * CHANNEL ---> RDEV ---> CHANNELs - * - * EPT ---> RDEV ---> EPTs - */ struct remote_device *rdev = RPMSG_NULL; struct rpmsg_endpoint *rp_ept = RPMSG_NULL; @@ -365,8 +372,7 @@ struct rpmsg_channel *rpmsg_create_channel(struct remote_device *rdev, } /* Create default endpoint for the channel */ - rp_ept = rpmsg_create_ept(rp_chnl , rdev->default_cb, rdev, - RPMSG_ADDR_ANY); + rp_ept = rpmsg_create_ept(rp_chnl , rdev->default_cb, rdev, RPMSG_ADDR_ANY); if (!rp_ept) { _rpmsg_delete_channel(rp_chnl); diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg.h b/middleware/multicore/open-amp/rpmsg/rpmsg.h index 746b792..c6783db 100644 --- a/middleware/multicore/open-amp/rpmsg/rpmsg.h +++ b/middleware/multicore/open-amp/rpmsg/rpmsg.h @@ -4,6 +4,7 @@ * Copyright (C) 2011 Texas Instruments, Inc. * Copyright (C) 2011 Google, Inc. * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -41,6 +42,9 @@ #define VIRTIO_RPMSG_F_NS 0 /* RP supports name service notifications */ #define RPMSG_NAME_SIZE 32 +#if defined(__IAR_SYSTEMS_ICC__) +__packed +#endif /** * struct rpmsg_hdr - common header for all rpmsg messages * @src: source address @@ -53,14 +57,33 @@ * Every message sent(/received) on the rpmsg bus begins with this header. */ struct rpmsg_hdr { - unsigned long src; - unsigned long dst; - unsigned long reserved; - unsigned short len; - unsigned short flags; - unsigned char data[0]; -} /*__attribute__((packed))*/; + unsigned long src; + unsigned long dst; + unsigned long reserved; + unsigned short len; + unsigned short flags; + unsigned char data[1]; +#if defined(__IAR_SYSTEMS_ICC__) +}; +#else +}__attribute__((packed)); +#endif + +#define RPMSG_DROP_HDR_FLAG 1 + + +struct rpmsg_hdr_reserved +{ + short int idx; + short int totlen; +}; + +#define RPMSG_BUF_HELD (1U << 31) + +#if defined(__IAR_SYSTEMS_ICC__) +__packed +#endif /** * struct rpmsg_ns_msg - dynamic name service announcement message * @name: name of remote service that is published @@ -77,7 +100,11 @@ struct rpmsg_ns_msg { char name[RPMSG_NAME_SIZE]; unsigned long addr; unsigned long flags; -} /*__attribute__((packed))*/; +#if defined(__IAR_SYSTEMS_ICC__) +}; +#else +}__attribute__((packed)); +#endif /** * enum rpmsg_ns_flags - dynamic name service announcement flags @@ -399,13 +426,4 @@ struct rpmsg_channel *rpmsg_create_channel(struct remote_device *rdev, char *nam */ void rpmsg_delete_channel(struct rpmsg_channel *rp_chnl); -/** - * - * rpmsg_handler - * - * Provide platform specific interrupt handler to application layer - * - */ -void rpmsg_handler(void); - #endif /* _RPMSG_H_ */ diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg_core.c b/middleware/multicore/open-amp/rpmsg/rpmsg_core.c index c8cb82f..1553280 100644 --- a/middleware/multicore/open-amp/rpmsg/rpmsg_core.c +++ b/middleware/multicore/open-amp/rpmsg/rpmsg_core.c @@ -2,6 +2,7 @@ * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. * Copyright (c) 2015 Xilinx, Inc. All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -46,6 +47,7 @@ * **************************************************************************/ #include "rpmsg.h" +#include /* Internal functions */ static void rpmsg_rx_callback(struct virtqueue *vq); @@ -75,12 +77,6 @@ int rpmsg_start_ipc(struct remote_device *rdev) { virt_dev = &rdev->virt_dev; /* Initialize names and callbacks based on the device role */ - /* - * virtqueue[0] virtqueue[1] - * MASTER "tx_vq", "rpmsg_tx_callback" "rx_vq", "rpmsg_rx_callback" - * - * REMOTE "rx_vq", "rpmsg_rx_callback" "tx_vq", "rpmsg_tx_callback" - */ if (rdev->role == RPMSG_MASTER) { vq_names[0] = "tx_vq"; vq_names[1] = "rx_vq"; @@ -94,30 +90,21 @@ int rpmsg_start_ipc(struct remote_device *rdev) { } /* Create virtqueues for remote device */ - /* - * the 2 created virtqueues are assigned to rdev's tvq and rvq respectively - * regarding on the MATER/REMOTE role - * - * REMOTE: proc_table.vring_info[0] "tx_vq" "rpmsg_tx_callback" "rdev->tvq" -> "vqs[0]" - * proc_table.vring_info[1] "rx_vq" "rpmsg_rx_callback" "rdev->rvq" -> "vqs[1]" - * MASTER: proc_table.vring_info[0] "rx_vq" "rpmsg_rx_callback" "rdev->rvq" -> "vqs[0]" - * proc_table.vring_info[1] "tx_vq" "rpmsg_tx_callback" "rdev->tvq" -> "vqs[1]" - */ - status = virt_dev->func->create_virtqueues(virt_dev, 0, /*rpmsg_rdev_create_virtqueues*/ + status = virt_dev->func->create_virtqueues(virt_dev, 0, RPMSG_MAX_VQ_PER_RDEV, vq_names, callback, RPMSG_NULL); if (status != RPMSG_SUCCESS) { return status; } - dev_features = virt_dev->func->get_features(virt_dev); /*rpmsg_rdev_get_feature*/ + dev_features = virt_dev->func->get_features(virt_dev); /* * Create name service announcement endpoint if device supports name * service announcement feature. */ - if ((dev_features & (1<support_ns = RPMSG_TRUE; - ns_ept = _create_endpoint(rdev, rpmsg_ns_callback, rdev, /* Is this necessary for a remote? */ + if ((dev_features & (1 << VIRTIO_RPMSG_F_NS))) { + rdev->support_ns = RPMSG_TRUE; + ns_ept = _create_endpoint(rdev, rpmsg_ns_callback, rdev, RPMSG_NS_EPT_ADDR); if (!ns_ept) { return RPMSG_ERR_NO_MEM; @@ -177,7 +164,7 @@ struct rpmsg_channel *_rpmsg_create_channel(struct remote_device *rdev, } node->data = rp_chnl; env_lock_mutex(rdev->lock); - add_to_list(&rdev->rp_channels , node); + add_to_list(&rdev->rp_channels, node); env_unlock_mutex(rdev->lock); } @@ -231,6 +218,7 @@ struct rpmsg_endpoint *_create_endpoint(struct remote_device *rdev, if (!rp_ept) { return RPMSG_NULL ; } + env_memset(rp_ept, 0x00, sizeof(struct rpmsg_endpoint)); node = env_allocate_memory(sizeof(struct llist)); if (!node) { @@ -325,7 +313,10 @@ void rpmsg_send_ns_message(struct remote_device *rdev, /* Get Tx buffer. */ rp_hdr = (struct rpmsg_hdr *) rpmsg_get_tx_buffer(rdev, &len, &idx); if (!rp_hdr) + { + env_unlock_mutex(rdev->lock); return; + } /* Fill out name service data. */ rp_hdr->dst = RPMSG_NS_EPT_ADDR; @@ -369,10 +360,8 @@ int rpmsg_enqueue_buffer(struct remote_device *rdev, void *buffer, node.prev = RPMSG_NULL; if (rdev->role == RPMSG_REMOTE) { - /*MASTER*/ status = virtqueue_add_buffer(rdev->tvq, &node, 0, 1, buffer); } else { - /*REMOTE*/ status = virtqueue_add_consumed_buffer(rdev->tvq, idx, len); } @@ -401,10 +390,8 @@ void rpmsg_return_buffer(struct remote_device *rdev, void *buffer, node.prev = RPMSG_NULL; if (rdev->role == RPMSG_REMOTE) { - /*master*/ virtqueue_add_buffer(rdev->rvq, &node, 0, 1, buffer); } else { - /*remote*/ virtqueue_add_consumed_buffer(rdev->rvq, idx, len); } } @@ -425,19 +412,16 @@ void *rpmsg_get_tx_buffer(struct remote_device *rdev, int *len, void *data; if (rdev->role == RPMSG_REMOTE) { - /* MASTER */ data = virtqueue_get_buffer(rdev->tvq, (uint32_t *) len); if (data == RPMSG_NULL) { - /*Here is why Master don't need to pre link memory to vring*/ data = sh_mem_get_buffer(rdev->mem_pool); *len = RPMSG_BUFFER_SIZE; } } else { - /* REMOTE */ data = virtqueue_get_available_buffer(rdev->tvq, idx, (uint32_t *) len); } - return ((void *) env_map_vatopa(data)); + return ((void*) env_map_vatopa(data)); } /** @@ -457,11 +441,9 @@ void *rpmsg_get_rx_buffer(struct remote_device *rdev, unsigned long *len, void *data; if (rdev->role == RPMSG_REMOTE) { - /*MASTER*/ - data = virtqueue_get_buffer(rdev->rvq, (uint32_t *)len); + data = virtqueue_get_buffer(rdev->rvq, (uint32_t*)len); } else { - /*REMOTE*/ - data = virtqueue_get_available_buffer(rdev->rvq, idx, (uint32_t *)len); + data = virtqueue_get_available_buffer(rdev->rvq, idx, (uint32_t*)len); } return ((void *) env_map_vatopa(data)); } @@ -477,7 +459,7 @@ void *rpmsg_get_rx_buffer(struct remote_device *rdev, unsigned long *len, */ void rpmsg_free_buffer(struct remote_device *rdev, void *buffer) { if (rdev->role == RPMSG_REMOTE) { - sh_mem_free_buffer(rdev->mem_pool, buffer); + sh_mem_free_buffer(buffer, rdev->mem_pool); } } @@ -512,20 +494,16 @@ static void rpmsg_tx_callback(struct virtqueue *vq) { */ while (chnl_hd != RPMSG_NULL) { rp_chnl = (struct rpmsg_channel *) chnl_hd->data; - if (rp_chnl->state == RPMSG_CHNL_STATE_IDLE) { - if (rdev->support_ns) { rp_chnl->state = RPMSG_CHNL_STATE_NS; } else { rp_chnl->state = RPMSG_CHNL_STATE_ACTIVE; } - if (rp_chnl->state == RPMSG_CHNL_STATE_NS) { rpmsg_send_ns_message(rdev, rp_chnl, RPMSG_NS_CREATE); } } - chnl_hd = chnl_hd->next; } } @@ -555,16 +533,16 @@ void rpmsg_rx_callback(struct virtqueue *vq) { chnl_hd = rdev->rp_channels; if ((chnl_hd != RPMSG_NULL) && (rdev->role == RPMSG_MASTER)) { - rp_chnl = (struct rpmsg_channel *) chnl_hd->data; - if (rp_chnl->state == RPMSG_CHNL_STATE_IDLE) { - if (rdev->support_ns) { - rp_chnl->state = RPMSG_CHNL_STATE_NS; - rpmsg_send_ns_message(rdev, rp_chnl, RPMSG_NS_CREATE); - } else { - rp_chnl->state = RPMSG_CHNL_STATE_ACTIVE; - } - return; - } + rp_chnl = (struct rpmsg_channel *) chnl_hd->data; + if (rp_chnl->state == RPMSG_CHNL_STATE_IDLE) { + if (rdev->support_ns) { + rp_chnl->state = RPMSG_CHNL_STATE_NS; + rpmsg_send_ns_message(rdev, rp_chnl, RPMSG_NS_CREATE); + } else { + rp_chnl->state = RPMSG_CHNL_STATE_ACTIVE; + } + return; + } } env_lock_mutex(rdev->lock); @@ -574,10 +552,12 @@ void rpmsg_rx_callback(struct virtqueue *vq) { env_unlock_mutex(rdev->lock); - while(rp_hdr) { - + while(rp_hdr) { + /* Clear 'rp_hdr->reserved' field that is used as 'callback' output */ + rp_hdr->reserved = 0; + /* Get the channel node from the remote device channels list. */ - node = rpmsg_rdev_get_endpoint_from_addr(rdev, rp_hdr->dst); /*in the "rp_endpoints" list, find the node whose addr equal"rp_hdr->dst"*/ + node = rpmsg_rdev_get_endpoint_from_addr(rdev, rp_hdr->dst); if (!node) /* Fatal error no endpoint for the given dst addr. */ @@ -587,10 +567,6 @@ void rpmsg_rx_callback(struct virtqueue *vq) { rp_chnl = rp_ept->rp_chnl; - /* - * Linux will not send the null message, so the first message not only - * update the state machine, and the callback is called as well - */ if ((rp_chnl) && (rp_chnl->state == RPMSG_CHNL_STATE_NS)) { /* First message from RPMSG Master, update channel * destination address and state */ @@ -602,18 +578,32 @@ void rpmsg_rx_callback(struct virtqueue *vq) { /* Notify channel creation to application */ if (rdev->channel_created) { - rdev->channel_created(rp_chnl); /* assigned by rpmsg_rdev_init*/ + rdev->channel_created(rp_chnl); + } + } else if(len <= 0xFFFF) { + if (!(rp_hdr->flags & RPMSG_DROP_HDR_FLAG)) + { + rp_ept->cb(rp_chnl, rp_hdr->data, rp_hdr->len, + rp_ept->priv, rp_hdr->src); } + } else { + /* Any message with totlen > 65535 are dropped, no way to notify the user about it */ } - rp_ept->cb(rp_chnl, rp_hdr->data, rp_hdr->len, rp_ept->priv, // for NS message, this will triggle rpmsg_ns_callback /*not the case*/ - rp_hdr->src); // for none NS message, this will triggle APP registered callback "rpmsg_read_cb" - env_lock_mutex(rdev->lock); - - /* Return used buffers. */ - rpmsg_return_buffer(rdev, rp_hdr, len, idx); - + /* Check whether callback wants to hold buffer */ + if (rp_hdr->reserved & RPMSG_BUF_HELD) + { + /* 'rp_hdr->reserved' field is now used as storage for + * 'idx' and 'len' to release buffer later */ + ((struct rpmsg_hdr_reserved*)&rp_hdr->reserved)->idx = idx; + ((struct rpmsg_hdr_reserved*)&rp_hdr->reserved)->totlen = len; + } + else + { + /* Return used buffers. */ + rpmsg_return_buffer(rdev, rp_hdr, len, idx); + } rp_hdr = (struct rpmsg_hdr *) rpmsg_get_rx_buffer(rdev, &len, &idx); env_unlock_mutex(rdev->lock); } @@ -631,7 +621,7 @@ void rpmsg_rx_callback(struct virtqueue *vq) { * @param priv - any private data * @param src - source address * - * @return - none + * @return void */ void rpmsg_ns_callback(struct rpmsg_channel *server_chnl, void *data, int len, void *priv, unsigned long src) { @@ -656,17 +646,18 @@ void rpmsg_ns_callback(struct rpmsg_channel *server_chnl, void *data, int len, if (rdev->channel_destroyed) { rdev->channel_destroyed(rp_chnl); } + rpmsg_destroy_ept(rp_chnl->rp_ept); _rpmsg_delete_channel(rp_chnl); } } else { - /*RPMSG_NS_CREATE*/ rp_chnl = _rpmsg_create_channel(rdev, ns_msg->name, 0x00, ns_msg->addr); if (rp_chnl) { rp_chnl->state = RPMSG_CHNL_STATE_ACTIVE; /* Create default endpoint for channel */ rp_chnl->rp_ept = rpmsg_create_ept(rp_chnl, rdev->default_cb, rdev, RPMSG_ADDR_ANY); + if (rp_chnl->rp_ept) { rp_chnl->src = rp_chnl->rp_ept->addr; /* @@ -676,7 +667,7 @@ void rpmsg_ns_callback(struct rpmsg_channel *server_chnl, void *data, int len, * message without waiting for any application level message from * master. */ - rpmsg_send(rp_chnl,data,len); /*Is this necessary? Infinite Echo Back ? */ + rpmsg_send(rp_chnl,data,len); if (rdev->channel_created) { rdev->channel_created(rp_chnl); } @@ -704,7 +695,7 @@ int rpmsg_get_address(unsigned long *bitmap, int size) { tmp32 = get_first_zero_bit(bitmap[i]); if (tmp32 < 32) { - addr = tmp32 + i + 1; /*This is strange*/ + addr = tmp32 + (i*32); bitmap[i] |= (1 << tmp32); break; } diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg_core.h b/middleware/multicore/open-amp/rpmsg/rpmsg_core.h index e70fd5c..10f4d44 100644 --- a/middleware/multicore/open-amp/rpmsg/rpmsg_core.h +++ b/middleware/multicore/open-amp/rpmsg/rpmsg_core.h @@ -1,6 +1,7 @@ /* * Copyright (c) 2014, Mentor Graphics Corporation * All rights reserved. + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -31,6 +32,7 @@ #ifndef _RPMSG_CORE_H_ #define _RPMSG_CORE_H_ +#include #include "../porting/env/env.h" #include "../virtio/virtio.h" #include "../common/hil/hil.h" @@ -78,6 +80,9 @@ #define RPMSG_ERR_DEV_ID (RPMSG_ERRORS_BASE - 7) #define RPMSG_ERR_DEV_ADDR (RPMSG_ERRORS_BASE - 8) +/* Zero-Copy extension macros */ +#define RPMSG_HDR_FROM_BUF(buf) (struct rpmsg_hdr *)((char*)buf - \ + offsetof(struct rpmsg_hdr, data)) struct rpmsg_channel; typedef void (*rpmsg_rx_cb_t)(struct rpmsg_channel *, void *, int, void *, unsigned long); typedef void (*rpmsg_chnl_cb_t)(struct rpmsg_channel *rp_chl); diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg_ext.c b/middleware/multicore/open-amp/rpmsg/rpmsg_ext.c new file mode 100644 index 0000000..dd6fefb --- /dev/null +++ b/middleware/multicore/open-amp/rpmsg/rpmsg_ext.c @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Freescale Semiconductor nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/************************************************************************** + * FILE NAME + * + * rpmsg_ext.c + * + * COMPONENT + * + * OpenAMP + * + * DESCRIPTION + * + * Main file for the RPMSG driver extension. This file implements APIs for + * achieving zero copy received message process and zero copy message + * transmission. + * + **************************************************************************/ +#include "rpmsg_ext.h" + +/*! + * @brief Holds the rx buffer for usage outside the receive callback. + * + * Calling this function prevents the RPMsg receive buffer from being released back to the pool + * of shmem buffers. This API can only be called at rx callback context (rpmsg_rx_cb_t). With this API, + * the application doesn't need to copy the message in rx callback. Instead, the rx buffer base address + * is saved in application context and further processed in application process. After the message + * is processed, the application can release the rx buffer for future reuse in vring by calling the + * rpmsg_release_rx_buffer() function. + * + * @param[in] rpdev The rpmsg channel + * @param[in] rxbuf RX buffer with message payload + * + * @see rpmsg_release_rx_buffer +*/ +void rpmsg_hold_rx_buffer(struct rpmsg_channel *rpdev, void *rxbuf) { + struct rpmsg_hdr *rp_hdr = NULL; + if (!rpdev || !rxbuf) + return; + + rp_hdr = RPMSG_HDR_FROM_BUF(rxbuf); + + /* set held status to keep buffer */ + rp_hdr->reserved |= RPMSG_BUF_HELD; +} + +/*! + * @brief Releases the rx buffer for future reuse in vring. + * + * This API can be called at process context when the message in rx buffer is processed. + * + * @param rpdev - the rpmsg channel + * @param rxbuf - rx buffer with message payload + * + * @see rpmsg_hold_rx_buffer + */ +void rpmsg_release_rx_buffer(struct rpmsg_channel *rpdev, void *rxbuf) { + struct rpmsg_hdr *hdr; + struct remote_device *rdev; + struct rpmsg_hdr_reserved * reserved = NULL; + + if (!rpdev || !rxbuf) + return; + + rdev = rpdev->rdev; + hdr = RPMSG_HDR_FROM_BUF(rxbuf); + + /* Get the pointer to the reserved field that contains buffer size and the index */ + reserved = (struct rpmsg_hdr_reserved*)&hdr->reserved; + + env_lock_mutex(rdev->lock); + + /* Return used buffer, with total length (header length + buffer size). */ + rpmsg_return_buffer(rdev, hdr, (unsigned long)reserved->totlen, reserved->idx); + + env_unlock_mutex(rdev->lock); +} + +/*! + * @brief Allocates the tx buffer for message payload. + * + * This API can only be called at process context to get the tx buffer in vring. By this way, the + * application can directly put its message into the vring tx buffer without copy from an application buffer. + * It is the application responsibility to correctly fill the allocated tx buffer by data and passing correct + * parameters to the rpmsg_send_nocopy() or rpmsg_sendto_nocopy() function to perform data no-copy-send mechanism. + * + * @param[in] rpdev Pointer to rpmsg channel + * @param[in] size Pointer to store tx buffer size + * @param[in] wait Boolean, wait or not for buffer to become available + * + * @return The tx buffer address on success and NULL on failure + * + * @see rpmsg_send_offchannel_nocopy + * @see rpmsg_sendto_nocopy + * @see rpmsg_send_nocopy + */ +void *rpmsg_alloc_tx_buffer(struct rpmsg_channel *rpdev, unsigned long *size, int wait) { + struct rpmsg_hdr *hdr; + struct remote_device *rdev; + unsigned short idx; + int buff_len, tick_count = 0; + + if (!rpdev || !size) + return NULL; + + rdev = rpdev->rdev; + + env_lock_mutex(rdev->lock); + + /* Get tx buffer from vring */ + hdr = (struct rpmsg_hdr *) rpmsg_get_tx_buffer(rdev, &buff_len, &idx); + + env_unlock_mutex(rdev->lock); + + if (!hdr && !wait) { + return NULL; + } else { + while (!hdr) { + /* + * Wait parameter is true - pool the buffer for + * 15 secs as defined by the APIs. + */ + env_sleep_msec(RPMSG_TICKS_PER_INTERVAL); + env_lock_mutex(rdev->lock); + hdr = (struct rpmsg_hdr *) rpmsg_get_tx_buffer(rdev, &buff_len, &idx); + env_unlock_mutex(rdev->lock); + tick_count += RPMSG_TICKS_PER_INTERVAL; + if (tick_count >= (RPMSG_TICK_COUNT / RPMSG_TICKS_PER_INTERVAL)) { + return NULL; + } + } + + /* Store buffer size and the index into the reserved field to be used when sending */ + ((struct rpmsg_hdr_reserved*)&hdr->reserved)->idx = idx; + ((struct rpmsg_hdr_reserved*)&hdr->reserved)->totlen = buff_len; + + /* Actual data buffer size is vring buffer size minus rpmsg header length */ + *size = buff_len - offsetof(struct rpmsg_hdr, data); + return hdr->data; + } +} + +/*! + * @brief Sends a message in tx buffer allocated by rpmsg_alloc_tx_buffer() + * using explicit src/dst addresses. + * + * This function sends txbuf of length len to the remote dst address, + * and uses src as the source address. + * The message will be sent to the remote processor which the rpdev + * channel belongs to. + * The application has to take the responsibility for: + * 1. tx buffer allocation (rpmsg_alloc_tx_buffer() ) + * 2. filling the data to be sent into the pre-allocated tx buffer + * 3. not exceeding the buffer size when filling the data + * 4. data cache coherency + * + * After the rpmsg_send_offchannel_nocopy() function is issued the tx buffer is no more owned + * by the sending task and must not be touched anymore unless the rpmsg_send_offchannel_nocopy() + * function fails and returns an error. In that case the application should try + * to re-issue the rpmsg_send_offchannel_nocopy() again and if it is still not possible to send + * the message and the application wants to give it up from whatever reasons + * the rpmsg_release_rx_buffer function could be called, + * passing the pointer to the tx buffer to be released as a parameter. + * + * @param[in] rpdev The rpmsg channel + * @param[in] src Source address + * @param[in] dst Destination address + * @param[in] txbuf TX buffer with message filled + * @param[in] len Length of payload + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_alloc_tx_buffer + * @see rpmsg_sendto_nocopy + * @see rpmsg_send_nocopy + */ +int rpmsg_send_offchannel_nocopy(struct rpmsg_channel *rpdev, unsigned long src, unsigned long dst, + void *txbuf, int len) { + struct rpmsg_hdr *hdr; + struct remote_device *rdev; + struct rpmsg_hdr_reserved * reserved = NULL; + int status; + + if (!rpdev || !txbuf) + return RPMSG_ERR_PARAM; + + rdev = rpdev->rdev; + hdr = RPMSG_HDR_FROM_BUF(txbuf); + + /* Initialize RPMSG header. */ + hdr->dst = dst; + hdr->src = src; + hdr->len = len; + hdr->flags = 0; + + /* Get the pointer to the reserved field that contains buffer size and the index */ + reserved = (struct rpmsg_hdr_reserved*)&hdr->reserved; + + env_lock_mutex(rdev->lock); + + status = rpmsg_enqueue_buffer(rdev, hdr, (unsigned long)reserved->totlen, reserved->idx); + if (status == RPMSG_SUCCESS) { + /* Let the other side know that there is a job to process. */ + virtqueue_kick(rdev->tvq); + } + + env_unlock_mutex(rdev->lock); + + return status; +} diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg_ext.h b/middleware/multicore/open-amp/rpmsg/rpmsg_ext.h new file mode 100644 index 0000000..546ad99 --- /dev/null +++ b/middleware/multicore/open-amp/rpmsg/rpmsg_ext.h @@ -0,0 +1,229 @@ +/* + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Freescale Semiconductor nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + + /************************************************************************** + * FILE NAME + * + * rpmsg_ext.h + * + * COMPONENT + * + * OpenAMP stack. + * + * DESCRIPTION + * + * This file provides RPMsg extension that allows: + * - allocation/release of the virtio tx buffer + * - zero-copy send functionality + * + * DATA STRUCTURES + * + * none + * + * FUNCTIONS + * + * rpmsg_hold_rx_buffer + * rpmsg_release_rx_buffer + * rpmsg_alloc_tx_buffer + * rpmsg_sendto_nocopy + * rpmsg_send_nocopy + * + **************************************************************************/ +#ifndef _RPMSG_EXT_H_ +#define _RPMSG_EXT_H_ + +#include "../rpmsg/rpmsg.h" + +//! @addtogroup rpmsg_ext +//! @{ + +/*! + * @brief Holds the rx buffer for usage outside the receive callback. + * + * Calling this function prevents the RPMsg receive buffer from being released back to the pool + * of shmem buffers. This API can only be called at rx callback context (rpmsg_rx_cb_t). With this API, + * the application doesn't need to copy the message in rx callback. Instead, the rx buffer base address + * is saved in application context and further processed in application process. After the message + * is processed, the application can release the rx buffer for future reuse in vring by calling the + * rpmsg_release_rx_buffer() function. + * + * @param[in] rpdev The rpmsg channel + * @param[in] rxbuf RX buffer with message payload + * + * @see rpmsg_release_rx_buffer +*/ +void rpmsg_hold_rx_buffer(struct rpmsg_channel *rpdev, void *rxbuf); + +/*! + * @brief Releases the rx buffer for future reuse in vring. + * + * This API can be called at process context when the message in rx buffer is processed. + * + * @param rpdev - the rpmsg channel + * @param rxbuf - rx buffer with message payload + * + * @see rpmsg_hold_rx_buffer + */ +void rpmsg_release_rx_buffer(struct rpmsg_channel *rpdev, void *rxbuf); + +/*! + * @brief Allocates the tx buffer for message payload. + * + * This API can only be called at process context to get the tx buffer in vring. By this way, the + * application can directly put its message into the vring tx buffer without copy from an application buffer. + * It is the application responsibility to correctly fill the allocated tx buffer by data and passing correct + * parameters to the rpmsg_send_nocopy() or rpmsg_sendto_nocopy() function to perform data no-copy-send mechanism. + * + * @param[in] rpdev Pointer to rpmsg channel + * @param[in] size Pointer to store tx buffer size + * @param[in] wait Boolean, wait or not for buffer to become available + * + * @return The tx buffer address on success and NULL on failure + * + * @see rpmsg_send_offchannel_nocopy + * @see rpmsg_sendto_nocopy + * @see rpmsg_send_nocopy + */ +void *rpmsg_alloc_tx_buffer(struct rpmsg_channel *rpdev, unsigned long *size, int wait); + +/*! + * @brief Sends a message in tx buffer allocated by rpmsg_alloc_tx_buffer() + * using explicit src/dst addresses. + * + * This function sends txbuf of length len to the remote dst address, + * and uses src as the source address. + * The message will be sent to the remote processor which the rpdev + * channel belongs to. + * The application has to take the responsibility for: + * 1. tx buffer allocation (rpmsg_alloc_tx_buffer() ) + * 2. filling the data to be sent into the pre-allocated tx buffer + * 3. not exceeding the buffer size when filling the data + * 4. data cache coherency + * + * After the rpmsg_send_offchannel_nocopy() function is issued the tx buffer is no more owned + * by the sending task and must not be touched anymore unless the rpmsg_send_offchannel_nocopy() + * function fails and returns an error. In that case the application should try + * to re-issue the rpmsg_send_offchannel_nocopy() again and if it is still not possible to send + * the message and the application wants to give it up from whatever reasons + * the rpmsg_release_rx_buffer function could be called, + * passing the pointer to the tx buffer to be released as a parameter. + * + * @param[in] rpdev The rpmsg channel + * @param[in] src Source address + * @param[in] dst Destination address + * @param[in] txbuf TX buffer with message filled + * @param[in] len Length of payload + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_alloc_tx_buffer + * @see rpmsg_sendto_nocopy + * @see rpmsg_send_nocopy + */ +int rpmsg_send_offchannel_nocopy(struct rpmsg_channel *rpdev, unsigned long src, unsigned long dst, + void *txbuf, int len); + +/*! + * @brief Sends a message in tx buffer allocated by rpmsg_alloc_tx_buffer() + * across to the remote processor, specify dst. + * + * This function sends txbuf of length len to the remote dst address. + * The message will be sent to the remote processor which the rpdev + * channel belongs to, using rpdev's source address. + * The application has to take the responsibility for: + * 1. tx buffer allocation (rpmsg_alloc_tx_buffer() ) + * 2. filling the data to be sent into the pre-allocated tx buffer + * 3. not exceeding the buffer size when filling the data + * 4. data cache coherency + * + * After the rpmsg_sendto_nocopy() function is issued the tx buffer is no more owned + * by the sending task and must not be touched anymore unless the rpmsg_sendto_nocopy() + * function fails and returns an error. In that case the application should try + * to re-issue the rpmsg_sendto_nocopy() again and if it is still not possible to send + * the message and the application wants to give it up from whatever reasons + * the rpmsg_release_rx_buffer function could be called, + * passing the pointer to the tx buffer to be released as a parameter. + * + * @param[in] rpdev The rpmsg channel + * @param[in] txbuf TX buffer with message filled + * @param[in] len Length of payload + * @param[in] dst Destination address + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_alloc_tx_buffer + * @see rpmsg_send_offchannel_nocopy + * @see rpmsg_send_nocopy + */ +static inline +int rpmsg_sendto_nocopy(struct rpmsg_channel *rpdev, void *txbuf, int len, unsigned long dst) +{ + return rpmsg_send_offchannel_nocopy(rpdev, rpdev->src, dst, txbuf, len); +} + +/*! + * @brief Sends a message in tx buffer allocated by rpmsg_alloc_tx_buffer() + * across to the remote processor. + * + * This function sends txbuf of length len on the rpdev channel. + * The message will be sent to the remote processor which the rpdev + * channel belongs to, using rpdev's source and destination addresses. + * The application has to take the responsibility for: + * 1. tx buffer allocation (rpmsg_alloc_tx_buffer() ) + * 2. filling the data to be sent into the pre-allocated tx buffer + * 3. not exceeding the buffer size when filling the data + * 4. data cache coherency + * + * After the rpmsg_send_nocopy() function is issued the tx buffer is no more owned + * by the sending task and must not be touched anymore unless the rpmsg_send_nocopy() + * function fails and returns an error. In that case the application should try + * to re-issue the rpmsg_send_nocopy() again and if it is still not possible to send + * the message and the application wants to give it up from whatever reasons + * the rpmsg_release_rx_buffer function could be called, + * passing the pointer to the tx buffer to be released as a parameter. + * + * @param[in] rpdev The rpmsg channel + * @param[in] txbuf TX buffer with message filled + * @param[in] len Length of payload + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_alloc_tx_buffer + * @see rpmsg_send_offchannel_nocopy + * @see rpmsg_sendto_nocopy + */ +static inline +int rpmsg_send_nocopy(struct rpmsg_channel *rpdev, void *txbuf, int len) +{ + return rpmsg_send_offchannel_nocopy(rpdev, rpdev->src, rpdev->dst, txbuf, len); +} + +//! @} + + +#endif /* _RPMSG_EXT_H_ */ diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c b/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c new file mode 100644 index 0000000..eff0d67 --- /dev/null +++ b/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.c @@ -0,0 +1,615 @@ +/* + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Freescale Semiconductor nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/************************************************************************** + * FILE NAME + * + * rpmsg_rtos.c + * + * COMPONENT + * + * OpenAMP + * + * DESCRIPTION + * + * This file provides RTOS adaptation layer that allows: + * - handling of received messages outside the interrupt context + * - the implementation of blocking API for the RPMsg receive side + * - provides zero-copy receive functionality + * - provides zero-copy send functionality + * + **************************************************************************/ + +#include +#include +#include +#include +#include +#include "rpmsg.h" +#include "rpmsg_ext.h" +#include "rpmsg_rtos.h" + +#define RPMSG_RECV_NOCOPY_CHECK_PTRS (0) + +typedef struct +{ + unsigned long src; + void* data; + short int len; +} rpmsg_callback_message_t; + +#if RPMSG_RECV_NOCOPY_CHECK_PTRS + +typedef struct rpmsg_ptr_llist +{ + void* ptr; + struct rpmsg_ptr_llist* next; + +} rpmsg_ptr_llist_t; + +static rpmsg_ptr_llist_t* rpmsg_in_app_buffers_head = NULL; +static rpmsg_ptr_llist_t* rpmsg_in_app_buffers_tail = NULL; + +#endif + +static struct rpmsg_channel *default_chnl = NULL; +static void *default_q = NULL; +static void *callback_sync = NULL; +static int rpmsg_queue_size; + +extern int platform_get_processor_info(struct hil_proc *proc, int cpu_id); + +/* This callback gets invoked when the remote chanl is created */ +static void rpmsg_channel_created_rtos(struct rpmsg_channel *rp_chnl) +{ + assert(rp_chnl && rp_chnl->rp_ept); + /* message queue for channel default endpoint should be available */ + assert(default_q); + rp_chnl->rp_ept->priv = default_q; + + default_chnl = rp_chnl; + + /* Unblock the task by releasing the semaphore. */ + env_release_sync_lock(callback_sync); +} + +/* This callback gets invoked when the remote channel is deleted */ +static void rpmsg_channel_deleted_rtos(struct rpmsg_channel *rp_chnl) +{ + assert(rp_chnl); + + default_chnl = NULL; +} + +/** + * rpmsg_read_rtos_cb + * + * This is the RPMsg receive callback function used in an RTOS environment. + * + * @param rp_chnl - pointer to the RPMsg channel on which data is received + * @param data - pointer to the buffer containing received data + * @param len - size of data received, in bytes + * @param priv - private data provided during endpoint creation + * @param src - pointer to address of the endpoint from which data is received + * + * @return void + */ +static void rpmsg_read_rtos_cb(struct rpmsg_channel *rp_chnl, void *data, int len, + void * priv, unsigned long src) +{ + rpmsg_callback_message_t msg; + + assert(priv); + assert(rp_chnl); + + msg.data = data; + msg.len = len; + msg.src = src; + + /* if message is successfully added into queue then hold rpmsg buffer */ + if(env_put_queue(priv, &msg, 0)) + { + /* hold the rx buffer */ + rpmsg_hold_rx_buffer(rp_chnl, data); + } +} + +/*! + * @brief + * This function allocates and initializes the rpmsg driver resources for + * given device ID (cpu id). The successful return from this function leaves + * fully enabled IPC link. RTOS aware version. + * + * @param[in] dev_id Remote device for which driver is to be initialized + * @param[out] rdev Pointer to newly created remote device + * @param[in] role Role of the other device, Master or Remote + * @param[out] def_chnl Pointer to rpmsg channel + * + * @return Status of function execution + * + * @see rpmsg_rtos_deinit + */ +int rpmsg_rtos_init(int dev_id, struct remote_device **rdev, int role, struct rpmsg_channel **def_chnl) +{ + int status; + struct hil_proc proc; + + /* single instance allowed! */ + if(callback_sync != NULL) + { + return RPMSG_ERR_NO_MEM; + } + + /* get HW specific info */ + status = platform_get_processor_info(&proc, dev_id); + if(status) + { + return RPMSG_ERR_DEV_ID; + } + + /* create synchronization object used during the initialization process */ + status = env_create_sync_lock(&callback_sync, 0); + if((status) || (callback_sync == NULL)) + { + return RPMSG_ERR_NO_MEM; + } + + /* get rpmsg vring rx buffer count */ + rpmsg_queue_size = role == RPMSG_MASTER ? proc.vdev.vring_info[1].num_descs : proc.vdev.vring_info[0].num_descs; + /* create message queue for channel default endpoint */ + status = env_create_queue(&default_q, rpmsg_queue_size, sizeof(rpmsg_callback_message_t)); + if((status) || (default_q == NULL)) + { + env_delete_sync_lock(callback_sync); + return RPMSG_ERR_NO_MEM; + } + +#if RPMSG_RECV_NOCOPY_CHECK_PTRS + rpmsg_in_app_buffers_head = (rpmsg_ptr_llist_t*)env_allocate_memory(sizeof(rpmsg_ptr_llist_t)); + assert(rpmsg_in_app_buffers_head != NULL); + memset((void*)rpmsg_in_app_buffers_head, 0, sizeof(rpmsg_ptr_llist_t)); + rpmsg_in_app_buffers_tail = rpmsg_in_app_buffers_head; +#endif + + /* initialize the RPMsg communication */ + status = rpmsg_init(dev_id, rdev, rpmsg_channel_created_rtos, rpmsg_channel_deleted_rtos, rpmsg_read_rtos_cb, role); + + /* wait until the channel is established (rpmsg_channel_created callback is issued) */ + env_acquire_sync_lock(callback_sync); + + /* delete synchronization object used during the initialization process */ + env_delete_sync_lock(callback_sync); + callback_sync = NULL; + + if(default_chnl == NULL) + { + return RPMSG_ERR_NO_MEM; + } + else + { + *def_chnl = default_chnl; + return status; + } +} + +/*! + * @brief + * This function frees rpmsg driver resources for given remote device. RTOS aware version. + * + * @param[in] rdev Pointer to device to de-init + * + * @see rpmsg_rtos_init + */ +void rpmsg_rtos_deinit(struct remote_device *rdev) +{ + assert(rdev != NULL); + +#if RPMSG_RECV_NOCOPY_CHECK_PTRS + rpmsg_ptr_llist_t * iterator = NULL; + rpmsg_ptr_llist_t * next = NULL; + + env_lock_mutex(rdev->lock); + + assert(rpmsg_in_app_buffers_head != NULL); + + for(iterator = rpmsg_in_app_buffers_head; iterator != NULL; iterator = next) + { + next = iterator->next; + env_free_memory((void*)iterator); + } + + rpmsg_in_app_buffers_head = NULL; + rpmsg_in_app_buffers_tail = NULL; + + env_unlock_mutex(rdev->lock); +#endif + /* de-initialize the RPMsg communication */ + rpmsg_deinit(rdev); + + /* delete message queue used by the channel default endpoint */ + if (default_q) + { + env_delete_queue(default_q); + default_q = NULL; + } +} + +/*! + * @brief + * This function creates rpmsg endpoint for the rpmsg channel. RTOS aware version. + * + * @param[in] rp_chnl Pointer to rpmsg channel + * @param[in] addr Endpoint src address + * + * @return Pointer to endpoint control block + * + * @see rpmsg_rtos_destroy_ept + */ +struct rpmsg_endpoint * rpmsg_rtos_create_ept(struct rpmsg_channel *rp_chnl, unsigned long addr) +{ + struct rpmsg_endpoint * retval; + void *q = NULL; + + if (!rp_chnl) return NULL; + if (!rp_chnl->rdev) return NULL; + + /* create message queue for the specified endpoint */ + env_create_queue(&q, rpmsg_queue_size, sizeof(rpmsg_callback_message_t)); + if(q == NULL) + { + return NULL; + } + + /* create the RPMsg endpoint */ + retval = rpmsg_create_ept(rp_chnl, rpmsg_read_rtos_cb, (void*)q, addr); + + if(retval == NULL) + { + env_delete_queue(q); + return NULL; + } + else + { + return retval; + } +} + +/*! + * @brief + * This function deletes rpmsg endpoint and performs cleanup. RTOS aware version. + * + * @param[in] rp_ept Pointer to endpoint to destroy + * + * @see rpmsg_rtos_create_ept + */ +void rpmsg_rtos_destroy_ept(struct rpmsg_endpoint *rp_ept) +{ + void *q = rp_ept->priv; + + /* delete the RPMsg endpoint */ + rpmsg_destroy_ept(rp_ept); + + /* delete message queue used by the specified endpoint */ + env_delete_queue(q); +} + +/*! + * @brief + * RTOS receive function - blocking version of the received function that can be called from an RTOS task. + * The data is copied from the receive buffer into the user supplied buffer. + * + * This is the "receive with copy" version of the RPMsg receive function. This version is simple + * to use but it requires copying data from shared memory into the user space buffer. + * The user has no obligation or burden to manage the shared memory buffers. + * + * @param[in] ept Pointer to the RPMsg endpoint on which data is received + * @param[in] data Pointer to the user buffer the received data are copied to + * @param[out] len Pointer to an int variable that will contain the number of bytes actually copied into the buffer + * @param[in] maxlen Maximum number of bytes to copy (received buffer size) + * @param[out] src Pointer to address of the endpoint from which data is received + * @param[in] timeout_ms Timeout, in milliseconds, to wait for a message. A value of 0 means don't wait (non-blocking call). + * A value of 0xffffffff means wait forever (blocking call). + * + * @return Status of function execution + * + * @see rpmsg_rtos_recv_nocopy + */ +int rpmsg_rtos_recv(struct rpmsg_endpoint *ept, void *data, int* len, int maxlen, unsigned long* src, int timeout_ms) +{ + rpmsg_callback_message_t msg; + int retval = RPMSG_SUCCESS; + + if (!data) return RPMSG_ERR_PARAM; + if (!ept) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl->rdev) return RPMSG_ERR_PARAM; + + /* Get an element out of the message queue for the selected endpoint */ + if(env_get_queue(ept->priv, &msg, timeout_ms)) + { + if(src != NULL) *src = msg.src; + if(len != NULL) *len = msg.len; + + if(maxlen >= msg.len) + { + memcpy(data, msg.data, maxlen); + } + else + { + retval = RPMSG_ERR_BUFF_SIZE; + } + + /* Return used buffers. */ + rpmsg_release_rx_buffer(ept->rp_chnl, msg.data); + + return retval; + } + else + { + return RPMSG_ERR_NO_BUFF; /* failed */ + } +} + +/*! + * @brief + * RTOS receive function - blocking version of the received function that can be called from an RTOS task. + * The data is NOT copied into the user-app. buffer. + * + * This is the "zero-copy receive" version of the RPMsg receive function. No data is copied. + * Only the pointer to the data is returned. This version is fast, but it requires the user to manage + * buffer allocation. Specifically, the user must decide when a buffer is no longer in use and + * make the appropriate API call to free it, see rpmsg_rtos_recv_nocopy_free(). + * + * @param[in] ept Pointer to the RPMsg endpoint on which data is received + * @param[out] data Pointer to the RPMsg buffer of the shared memory where the received data is stored + * @param[out] len Pointer to an int variable that that will contain the number of valid bytes in the RPMsg buffer + * @param[out] src Pointer to address of the endpoint from which data is received + * @param[in] timeout_ms Timeout, in milliseconds, to wait for a message. A value of 0 means don't wait (non-blocking call). + * A value of 0xffffffff means wait forever (blocking call). + * + * @return Status of function execution + * + * @see rpmsg_rtos_recv_nocopy_free + * @see rpmsg_rtos_recv + */ +int rpmsg_rtos_recv_nocopy(struct rpmsg_endpoint *ept, void **data, int* len, unsigned long* src, int timeout_ms) +{ + rpmsg_callback_message_t msg; + + if (!data) return RPMSG_ERR_PARAM; + if (!ept) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl->rdev) return RPMSG_ERR_PARAM; + + /* Get an element out of the message queue for the selected endpoint */ + if(env_get_queue(ept->priv, &msg, timeout_ms)) + { + if(src != NULL) *src = msg.src; + if(len != NULL) *len = msg.len; + + *data = msg.data; + +#if RPMSG_RECV_NOCOPY_CHECK_PTRS + { + struct remote_device * rdev = NULL; + + if (!ept->rp_chnl->rdev) return RPMSG_ERR_PARAM; + rdev = ept->rp_chnl->rdev; + + env_lock_mutex(rdev->lock); + assert(rpmsg_in_app_buffers_tail != NULL); + assert(msg.data != NULL); + rpmsg_in_app_buffers_tail->ptr = msg.data; + rpmsg_in_app_buffers_tail->next = (rpmsg_ptr_llist_t*)env_allocate_memory(sizeof(rpmsg_ptr_llist_t)); + assert(rpmsg_in_app_buffers_tail->next); + rpmsg_in_app_buffers_tail = rpmsg_in_app_buffers_tail->next; + memset((void*)rpmsg_in_app_buffers_tail, 0, sizeof(rpmsg_ptr_llist_t)); + env_unlock_mutex(rdev->lock); + } +#endif + + return RPMSG_SUCCESS; /* success */ + + } + + return RPMSG_ERR_NO_BUFF; /* failed */ +} + +/*! + * @brief This function frees a buffer previously returned by rpmsg_rtos_recv_nocopy(). + * + * Once the zero-copy mechanism of receiving data is used, this function + * has to be called to free a buffer and to make it available for the next data + * transfer. + * + * @param[in] ept Pointer to the RPMsg endpoint that has consumed received data + * @param[in] data Pointer to the RPMsg buffer of the shared memory that has to be freed + * + * @return Status of function execution + * + * @see rpmsg_rtos_recv_nocopy + */ +int rpmsg_rtos_recv_nocopy_free(struct rpmsg_endpoint *ept, void* data) +{ + if (!data) return RPMSG_ERR_PARAM; + if (!ept) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl->rdev) return RPMSG_ERR_PARAM; + +#if RPMSG_RECV_NOCOPY_CHECK_PTRS + { + /* Allow only previously allocated buffers to be freed, + * invalid pointer values could influence the destination core, + * which is a security issue. */ + struct remote_device * rdev = NULL; + rpmsg_ptr_llist_t * iterator = NULL; + rpmsg_ptr_llist_t * prev = NULL; + + if (!ept->rp_chnl->rdev) return RPMSG_ERR_PARAM; + rdev = ept->rp_chnl->rdev; + + env_lock_mutex(rdev->lock); + + assert(rpmsg_in_app_buffers_head != NULL); + + for(iterator = rpmsg_in_app_buffers_head, prev = NULL; iterator->ptr != NULL; iterator = iterator->next) + { + if(iterator->ptr == data) + { + assert(iterator->next != NULL); + if(prev != NULL) + { + prev->next = iterator->next; + if(prev->next->ptr == NULL) + { + rpmsg_in_app_buffers_tail = prev->next; + } + } + else + { + rpmsg_in_app_buffers_head = iterator->next; + if(rpmsg_in_app_buffers_head->ptr == NULL) + { + rpmsg_in_app_buffers_tail = rpmsg_in_app_buffers_head; + } + } + + env_unlock_mutex(rdev->lock); + + env_free_memory((void*)iterator); + + /* Return used buffer. */ + rpmsg_release_rx_buffer(ept->rp_chnl, data); + + return RPMSG_SUCCESS; + } + prev = iterator; + } + + env_unlock_mutex(rdev->lock); + } + return RPMSG_ERR_PARAM; +#else + + /* Return used buffer. */ + rpmsg_release_rx_buffer(ept->rp_chnl, data); + + return RPMSG_SUCCESS; +#endif +} + +/*! + * @brief Allocates the tx buffer for message payload. + * + * This API can only be called at process context to get the tx buffer in vring. By this way, the + * application can directly put its message into the vring tx buffer without copy from an application buffer. + * It is the application responsibility to correctly fill the allocated tx buffer by data and passing correct + * parameters to the rpmsg_rtos_send_nocopy() function to perform data no-copy-send mechanism. + * + * @param[in] ept Pointer to the RPMsg endpoint that requests tx buffer allocation + * @param[out] size Pointer to store tx buffer size + * + * @return The tx buffer address on success and NULL on failure + * + * @see rpmsg_rtos_send_nocopy + */ +void *rpmsg_rtos_alloc_tx_buffer(struct rpmsg_endpoint *ept, unsigned long *size) +{ + if (!size) return NULL; + if (!ept) return NULL; + if (!ept->rp_chnl) return NULL; + if (!ept->rp_chnl->rdev) return NULL; + + return rpmsg_alloc_tx_buffer(ept->rp_chnl, size, RPMSG_TRUE); +} + +/*! + * @brief Sends a message across to the remote processor. + * + * This function sends data of length len to the remote dst address. + * In case there are no TX buffers available, the function will block until + * one becomes available, or a timeout of 15 seconds elapses. When the latter + * happens, -ERESTARTSYS is returned. + * + * @param[in] ept Pointer to the RPMsg endpoint + * @param[in] data Pointer to the application buffer containing data to be sent + * @param[in] len Size of the data, in bytes, to transmit + * @param[in] dst Destination address of the message + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_rtos_send_nocopy + */ +int rpmsg_rtos_send(struct rpmsg_endpoint *ept, void *data, int len, unsigned long dst) +{ + if (!data) return RPMSG_ERR_PARAM; + if (!ept) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl->rdev) return RPMSG_ERR_PARAM; + + return rpmsg_send_offchannel_raw(ept->rp_chnl, ept->addr, dst, (char *)data, len, RPMSG_TRUE); +} + +/*! + * @brief Sends a message in tx buffer allocated by rpmsg_rtos_alloc_tx_buffer() + * to the remote processor. + * + * This function sends txbuf of length len to the remote dst address. + * The application has to take the responsibility for: + * 1. tx buffer allocation (rpmsg_rtos_alloc_tx_buffer() ) + * 2. filling the data to be sent into the pre-allocated tx buffer + * 3. not exceeding the buffer size when filling the data + * 4. data cache coherency + * + * After the rpmsg_rtos_send_nocopy() function is issued the tx buffer is no more owned + * by the sending task and must not be touched anymore unless the rpmsg_rtos_send_nocopy() + * function fails and returns an error. In that case the application should try + * to re-issue the rpmsg_rtos_send_nocopy() again and if it is still not possible to send + * the message and the application wants to give it up from whatever reasons + * the rpmsg_rtos_recv_nocopy_free function could be called, + * passing the pointer to the tx buffer to be released as a parameter. + * + * @param[in] ept Pointer to the RPMsg endpoint + * @param[in] txbuf Tx buffer with message filled + * @param[in] len Size of the data, in bytes, to transmit + * @param[in] dst Destination address of the message + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_rtos_alloc_tx_buffer + * @see rpmsg_rtos_send + */ +int rpmsg_rtos_send_nocopy(struct rpmsg_endpoint *ept, void *txbuf, int len, unsigned long dst) +{ + if (!txbuf) return RPMSG_ERR_PARAM; + if (!ept) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl) return RPMSG_ERR_PARAM; + if (!ept->rp_chnl->rdev) return RPMSG_ERR_PARAM; + + return rpmsg_send_offchannel_nocopy(ept->rp_chnl, ept->addr, dst, txbuf, len); +} diff --git a/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h b/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h new file mode 100644 index 0000000..6a01d65 --- /dev/null +++ b/middleware/multicore/open-amp/rpmsg/rpmsg_rtos.h @@ -0,0 +1,254 @@ +/* + * Copyright (c) 2015 Freescale Semiconductor, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of Freescale Semiconductor nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + + /************************************************************************** + * FILE NAME + * + * rpmsg_rtos.h + * + * COMPONENT + * + * OpenAMP stack. + * + * DESCRIPTION + * + * This file provides RTOS adaptation layer that allows: + * - handling of received messages outside the interrupt context + * - the implementation of blocking API for the RPMsg receive side + * - provides zero-copy receive functionality + * - provides zero-copy send functionality + * + * DATA STRUCTURES + * + * none + * + * FUNCTIONS + * + * rpmsg_rtos_init + * rpmsg_rtos_deinit + * rpmsg_rtos_create_ept + * rpmsg_rtos_destroy_ept + * rpmsg_rtos_recv + * rpmsg_rtos_recv_nocopy + * rpmsg_rtos_recv_nocopy_free + * rpmsg_rtos_alloc_tx_buffer + * rpmsg_rtos_send + * rpmsg_rtos_send_nocopy + * + **************************************************************************/ +#ifndef __RPMSG_RTOS_H +#define __RPMSG_RTOS_H + +#include "../rpmsg/rpmsg.h" + +//! @addtogroup rpmsg_rtos +//! @{ + +/*! + * @brief + * This function allocates and initializes the rpmsg driver resources for + * given device ID (cpu id). The successful return from this function leaves + * fully enabled IPC link. RTOS aware version. + * + * @param[in] dev_id Remote device for which driver is to be initialized + * @param[out] rdev Pointer to newly created remote device + * @param[in] role Role of the other device, Master or Remote + * @param[out] def_chnl Pointer to rpmsg channel + * + * @return Status of function execution + * + * @see rpmsg_rtos_deinit + */ +int rpmsg_rtos_init(int dev_id, struct remote_device **rdev, int role, struct rpmsg_channel **def_chnl); + +/*! + * @brief + * This function frees rpmsg driver resources for given remote device. RTOS aware version. + * + * @param[in] rdev Pointer to device to de-init + * + * @see rpmsg_rtos_init + */ +void rpmsg_rtos_deinit(struct remote_device *rdev); + +/*! + * @brief + * This function creates rpmsg endpoint for the rpmsg channel. RTOS aware version. + * + * @param[in] rp_chnl Pointer to rpmsg channel + * @param[in] addr Endpoint src address + * + * @return Pointer to endpoint control block + * + * @see rpmsg_rtos_destroy_ept + */ +struct rpmsg_endpoint * rpmsg_rtos_create_ept(struct rpmsg_channel *rp_chnl, unsigned long addr); + +/*! + * @brief + * This function deletes rpmsg endpoint and performs cleanup. RTOS aware version. + * + * @param[in] rp_ept Pointer to endpoint to destroy + * + * @see rpmsg_rtos_create_ept + */ +void rpmsg_rtos_destroy_ept(struct rpmsg_endpoint *rp_ept); + +/*! + * @brief + * RTOS receive function - blocking version of the received function that can be called from an RTOS task. + * The data is copied from the receive buffer into the user supplied buffer. + * + * This is the "receive with copy" version of the RPMsg receive function. This version is simple + * to use but it requires copying data from shared memory into the user space buffer. + * The user has no obligation or burden to manage the shared memory buffers. + * + * @param[in] ept Pointer to the RPMsg endpoint on which data is received + * @param[in] data Pointer to the user buffer the received data are copied to + * @param[out] len Pointer to an int variable that will contain the number of bytes actually copied into the buffer + * @param[in] maxlen Maximum number of bytes to copy (received buffer size) + * @param[out] src Pointer to address of the endpoint from which data is received + * @param[in] timeout_ms Timeout, in milliseconds, to wait for a message. A value of 0 means don't wait (non-blocking call). + * A value of 0xffffffff means wait forever (blocking call). + * + * @return Status of function execution + * + * @see rpmsg_rtos_recv_nocopy + */ +int rpmsg_rtos_recv(struct rpmsg_endpoint *ept, void *data, int* len, int maxlen, unsigned long* src, int timeout_ms); + +/*! + * @brief + * RTOS receive function - blocking version of the received function that can be called from an RTOS task. + * The data is NOT copied into the user-app. buffer. + * + * This is the "zero-copy receive" version of the RPMsg receive function. No data is copied. + * Only the pointer to the data is returned. This version is fast, but it requires the user to manage + * buffer allocation. Specifically, the user must decide when a buffer is no longer in use and + * make the appropriate API call to free it, see rpmsg_rtos_recv_nocopy_free(). + * + * @param[in] ept Pointer to the RPMsg endpoint on which data is received + * @param[out] data Pointer to the RPMsg buffer of the shared memory where the received data is stored + * @param[out] len Pointer to an int variable that that will contain the number of valid bytes in the RPMsg buffer + * @param[out] src Pointer to address of the endpoint from which data is received + * @param[in] timeout_ms Timeout, in milliseconds, to wait for a message. A value of 0 means don't wait (non-blocking call). + * A value of 0xffffffff means wait forever (blocking call). + * + * @return Status of function execution + * + * @see rpmsg_rtos_recv_nocopy_free + * @see rpmsg_rtos_recv + */ +int rpmsg_rtos_recv_nocopy(struct rpmsg_endpoint *ept, void **data, int* len, unsigned long* src, int timeout_ms); + +/*! + * @brief This function frees a buffer previously returned by rpmsg_rtos_recv_nocopy(). + * + * Once the zero-copy mechanism of receiving data is used, this function + * has to be called to free a buffer and to make it available for the next data + * transfer. + * + * @param[in] ept Pointer to the RPMsg endpoint that has consumed received data + * @param[in] data Pointer to the RPMsg buffer of the shared memory that has to be freed + * + * @return Status of function execution + * + * @see rpmsg_rtos_recv_nocopy + */ +int rpmsg_rtos_recv_nocopy_free(struct rpmsg_endpoint *ept, void* data); + +/*! + * @brief Allocates the tx buffer for message payload. + * + * This API can only be called at process context to get the tx buffer in vring. By this way, the + * application can directly put its message into the vring tx buffer without copy from an application buffer. + * It is the application responsibility to correctly fill the allocated tx buffer by data and passing correct + * parameters to the rpmsg_rtos_send_nocopy() function to perform data no-copy-send mechanism. + * + * @param[in] ept Pointer to the RPMsg endpoint that requests tx buffer allocation + * @param[out] size Pointer to store tx buffer size + * + * @return The tx buffer address on success and NULL on failure + * + * @see rpmsg_rtos_send_nocopy + */ +void *rpmsg_rtos_alloc_tx_buffer(struct rpmsg_endpoint *ept, unsigned long *size); + +/*! + * @brief Sends a message across to the remote processor. + * + * This function sends data of length len to the remote dst address. + * In case there are no TX buffers available, the function will block until + * one becomes available, or a timeout of 15 seconds elapses. When the latter + * happens, -ERESTARTSYS is returned. + * + * @param[in] ept Pointer to the RPMsg endpoint + * @param[in] data Pointer to the application buffer containing data to be sent + * @param[in] len Size of the data, in bytes, to transmit + * @param[in] dst Destination address of the message + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_rtos_send_nocopy + */ +int rpmsg_rtos_send(struct rpmsg_endpoint *ept, void *data, int len, unsigned long dst); + +/*! + * @brief Sends a message in tx buffer allocated by rpmsg_rtos_alloc_tx_buffer() + * to the remote processor. + * + * This function sends txbuf of length len to the remote dst address. + * The application has to take the responsibility for: + * 1. tx buffer allocation (rpmsg_rtos_alloc_tx_buffer() ) + * 2. filling the data to be sent into the pre-allocated tx buffer + * 3. not exceeding the buffer size when filling the data + * 4. data cache coherency + * + * After the rpmsg_rtos_send_nocopy() function is issued the tx buffer is no more owned + * by the sending task and must not be touched anymore unless the rpmsg_rtos_send_nocopy() + * function fails and returns an error. In that case the application should try + * to re-issue the rpmsg_rtos_send_nocopy() again and if it is still not possible to send + * the message and the application wants to give it up from whatever reasons + * the rpmsg_rtos_recv_nocopy_free function could be called, + * passing the pointer to the tx buffer to be released as a parameter. + * + * @param[in] ept Pointer to the RPMsg endpoint + * @param[in] txbuf Tx buffer with message filled + * @param[in] len Size of the data, in bytes, to transmit + * @param[in] dst Destination address of the message + * + * @return 0 on success and an appropriate error value on failure + * + * @see rpmsg_rtos_alloc_tx_buffer + * @see rpmsg_rtos_send + */ +int rpmsg_rtos_send_nocopy(struct rpmsg_endpoint *ept, void *txbuf, int len, unsigned long dst); + +//! @} + +#endif /* __RPMSG_RTOS_H */ diff --git a/middleware/multicore/open-amp/virtio/virtio_ring.h b/middleware/multicore/open-amp/virtio/virtio_ring.h index 5bea08b..3f1cf50 100644 --- a/middleware/multicore/open-amp/virtio/virtio_ring.h +++ b/middleware/multicore/open-amp/virtio/virtio_ring.h @@ -38,7 +38,7 @@ /* This marks a buffer as write-only (otherwise read-only). */ #define VRING_DESC_F_WRITE 2 /* This means the buffer contains a list of buffer descriptors. */ -#define VRING_DESC_F_INDIRECT 4 /*not used?*/ +#define VRING_DESC_F_INDIRECT 4 /* The Host uses this in used->flags to advise the Guest: don't kick me * when you add a buffer. It's unreliable, so it's simply an @@ -65,7 +65,7 @@ struct vring_desc { struct vring_avail { uint16_t flags; uint16_t idx; - uint16_t ring[0]; + uint16_t ring[1]; }; /* uint32_t is used here for ids for padding reasons. */ @@ -79,7 +79,7 @@ struct vring_used_elem { struct vring_used { uint16_t flags; uint16_t idx; - struct vring_used_elem ring[0]; + struct vring_used_elem ring[1]; }; struct vring { @@ -145,7 +145,7 @@ vring_init(struct vring *vr, unsigned int num, uint8_t *p, vr->desc = (struct vring_desc *) p; vr->avail = (struct vring_avail *) (p + num * sizeof(struct vring_desc)); - vr->used = (void *) + vr->used = (struct vring_used *) (((unsigned long) &vr->avail->ring[num] + align-1) & ~(align-1)); } diff --git a/middleware/multicore/open-amp/virtio/virtqueue.c b/middleware/multicore/open-amp/virtio/virtqueue.c index 2ea87cd..46b2af7 100644 --- a/middleware/multicore/open-amp/virtio/virtqueue.c +++ b/middleware/multicore/open-amp/virtio/virtqueue.c @@ -74,22 +74,20 @@ int virtqueue_create(struct virtio_device *virt_dev, unsigned short id, char *na + (ring->num_descs) * sizeof(struct vq_desc_extra); vq = (struct virtqueue *) env_allocate_memory(vq_size); - if (vq == VQ_NULL) { return (ERROR_NO_MEM); } env_memset(vq, 0x00, vq_size); - vq->vq_dev = virt_dev; env_strncpy(vq->vq_name, name, VIRTQUEUE_MAX_NAME_SZ); vq->vq_queue_index = id; - vq->vq_alignment = ring->align; /*ring info comes from proc_table*/ + vq->vq_alignment = ring->align; vq->vq_nentries = ring->num_descs; vq->vq_free_cnt = vq->vq_nentries; - vq->callback = callback; /*rpmsg_tx_callback, rpmsg_rx_callback*/ - vq->notify = notify; /*hil_vring_notify*/ + vq->callback = callback; + vq->notify = notify; //TODO : Whether we want to support indirect addition or not. vq->vq_ring_size = vring_size(ring->num_descs, ring->align); @@ -134,7 +132,7 @@ int virtqueue_add_buffer(struct virtqueue *vq, struct llist *buffer, uint16_t idx; int needed; - needed = readable + writable; /*only one can be set to 1*/ + needed = readable + writable; VQ_PARAM_CHK(vq == VQ_NULL, status, ERROR_VQUEUE_INVLD_PARAM); VQ_PARAM_CHK(needed < 1, status, ERROR_VQUEUE_INVLD_PARAM); @@ -160,7 +158,7 @@ int virtqueue_add_buffer(struct virtqueue *vq, struct llist *buffer, dxp->ndescs = needed; /* Enqueue buffer onto the ring. */ - idx = vq_ring_add_buffer(vq, vq->vq_ring.desc, head_idx, buffer, /*idx now "desc.next"*/ + idx = vq_ring_add_buffer(vq, vq->vq_ring.desc, head_idx, buffer, readable, writable); vq->vq_desc_head_idx = idx; @@ -196,7 +194,7 @@ int virtqueue_add_buffer(struct virtqueue *vq, struct llist *buffer, * * @return - Function status */ -int virtqueue_add_single_buffer(struct virtqueue *vq, void *cookie, /*this function is not used at all*/ +int virtqueue_add_single_buffer(struct virtqueue *vq, void *cookie, void *buffer_addr, uint_t len, int writable, boolean has_next) { struct vq_desc_extra *dxp; @@ -326,7 +324,8 @@ void *virtqueue_get_available_buffer(struct virtqueue *vq, uint16_t *avail_idx, uint16_t head_idx = 0; void *buffer; - if (vq->vq_available_idx == vq->vq_ring.avail->idx) { /*vq->vq_ring.avial->idx is updated in "rpmsg_rdev_create_virtqueues" "virtqueue_add_buffer" */ + /*vq->vq_ring.avial->idx is updated in "rpmsg_rdev_create_virtqueues" "virtqueue_add_buffer" */ + if (vq->vq_available_idx == vq->vq_ring.avail->idx) { return (VQ_NULL); } @@ -673,7 +672,7 @@ static int vq_ring_must_notify_host(struct virtqueue *vq) { static void vq_ring_notify_host(struct virtqueue *vq) { if (vq->notify != VQ_NULL) - vq->notify(vq); /*hil_vring_notify*/ + vq->notify(vq); } /** diff --git a/middleware/multicore/open-amp/virtio/virtqueue.h b/middleware/multicore/open-amp/virtio/virtqueue.h index 4671f6e..3e11d39 100644 --- a/middleware/multicore/open-amp/virtio/virtqueue.h +++ b/middleware/multicore/open-amp/virtio/virtqueue.h @@ -95,7 +95,7 @@ struct virtqueue { uint16_t vq_nentries; uint32_t vq_flags; int vq_alignment; - int vq_ring_size; /*Seems not used at all*/ + int vq_ring_size; boolean vq_inuse; void *vq_ring_mem; void (*callback)(struct virtqueue *vq); @@ -138,7 +138,7 @@ struct virtqueue { struct vring_desc *indirect; uint32_t indirect_paddr; uint16_t ndescs; - } vq_descx[0]; + } vq_descx[1]; }; /* struct to hold vring specific information */ diff --git a/platform/devices/MCIMX7D/include/MCIMX7D_M4.h b/platform/devices/MCIMX7D/include/MCIMX7D_M4.h index 87670aa..7bb2f15 100644 --- a/platform/devices/MCIMX7D/include/MCIMX7D_M4.h +++ b/platform/devices/MCIMX7D/include/MCIMX7D_M4.h @@ -9,11 +9,11 @@ ** IAR ANSI C/C++ Compiler for ARM ** ** Reference manual: -** Version: rev. 1.0, 2015-04-23 -** Build: b150423 +** Version: rev. 1.0, 2015-07-15 +** Build: b150715 ** ** Abstract: -** CMSIS Peripheral Access Layer for iMX7D +** CMSIS Peripheral Access Layer for MCIMX7D_M4 ** ** Copyright (c) 1997 - 2015 Freescale Semiconductor, Inc. ** All rights reserved. @@ -47,8 +47,8 @@ ** mail: support@freescale.com ** ** Revisions: -** - rev. 1.0 (2015-04-23) -** Initial version by Wang Ge. +** - rev. 1.0 (2015-07-15) +** Initial version . ** ** ################################################################### */ @@ -56,7 +56,7 @@ /*! * @file MCIMX7D_M4.h * @version 1.0 - * @date 2015-04-23 + * @date 2015-07-15 * @brief CMSIS Peripheral Access Layer for MCIMX7D_M4 * * CMSIS Peripheral Access Layer for MCIMX7D_M4 @@ -86,6 +86,7 @@ /** Memory map minor version */ #define MCU_MEM_MAP_VERSION_MINOR 0x0000u + /* ---------------------------------------------------------------------------- -- Interrupt vector numbers ---------------------------------------------------------------------------- */ @@ -96,7 +97,7 @@ */ /** Interrupt Number Definitions */ -#define NUMBER_OF_INT_VECTORS 16 /**< Number of interrupts in the Vector table */ +#define NUMBER_OF_INT_VECTORS 144 /**< Number of interrupts in the Vector table */ typedef enum IRQn { /* Auxiliary constants */ @@ -118,14 +119,14 @@ typedef enum IRQn { DAP_IRQn = 1, /**< DAP Interrupt */ SDMA_IRQn = 2, /**< AND of all 48 SDMA interrupts (events) from all the channels */ DBGMON_IRQn = 3, /**< DBGMON Sync Interrupt */ - SNVS_IRQn = 4, /**< WRAPPER ON-OFF button press shorter than 5 seconds (pulse event) */ + SNVS_IRQn = 4, /**< ON-OFF button press shorter than 5 seconds (pulse event) */ LCDIF_IRQn = 5, /**< LCDIF Sync Interrupt */ SIM2_IRQn = 6, /**< SIM Interrupt */ CSI_IRQn = 7, /**< CSI Interrupt */ PXP1_IRQn = 8, /**< PXP Interrupt */ Reserved_IRQn = 9, /**< Reserved */ WDOG3_IRQn = 10, /**< Watchdog Timer reset */ - HS1_IRQn = 11, /**< SEMA4-HS M4 Interrupt Request */ + SEMA4_HS_M4_IRQn = 11, /**< SEMA4-HS M4 Interrupt Request */ APBHDMA_IRQn = 12, /**< GPMI operation channel 0 description complete interrupt */ EIM_IRQn = 13, /**< EIM Interrupt */ BCH_IRQn = 14, /**< BCH operation complete interrupt */ @@ -136,9 +137,9 @@ typedef enum IRQn { SNVS_CONSOLIDATED_IRQn = 19, /**< SRTC Consolidated Interrupt. Non TZ. */ SNVS_SECURITY_IRQn = 20, /**< SRTC Security Interrupt. TZ. */ CSU_IRQn = 21, /**< CSU Interrupt Request. Indicates to the processor that one or more alarm inputs were asserted */ - USDHC1_IRQn = 22, /**< uSDHC1 Enhanced SDHC Interrupt Request */ - USDHC2_IRQn = 23, /**< uSDHC2 Enhanced SDHC Interrupt Request */ - USDHC3_IRQn = 24, /**< uSDHC3 Enhanced SDHC Interrupt Request */ + uSDHC1_IRQn = 22, /**< uSDHC1 Enhanced SDHC Interrupt Request */ + uSDHC2_IRQn = 23, /**< uSDHC2 Enhanced SDHC Interrupt Request */ + uSDHC3_IRQn = 24, /**< uSDHC3 Enhanced SDHC Interrupt Request */ MIPI_CSI_IRQn = 25, /**< MIPI CSI interrupt */ UART1_IRQn = 26, /**< UART-1 ORed interrupt */ UART2_IRQn = 27, /**< UART-2 ORed interrupt */ @@ -199,21 +200,21 @@ typedef enum IRQn { PWM2_IRQn = 82, /**< Cumulative interrupt line. OR of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line */ PWM3_IRQn = 83, /**< Cumulative interrupt line. OR of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line */ PWM4_IRQn = 84, /**< Cumulative interrupt line. OR of Rollover Interrupt line, Compare Interrupt line and FIFO Waterlevel crossing interrupt line */ - CCM_INT1_IRQn = 85, /**< CCM, Interrupt Request 1 */ - CCM_INT2_IRQn = 86, /**< CCM, Interrupt Request 2 */ + CCM1_IRQn = 85, /**< CCM, Interrupt Request 1 */ + CCM2_IRQn = 86, /**< CCM, Interrupt Request 2 */ GPC_IRQn = 87, /**< GPC Interrupt Request 1 */ - MU_IRQn = 88, /**< Interrupt to A7 */ + MU_A7_IRQn = 88, /**< Interrupt to A7 */ SRC_IRQn = 89, /**< SRC interrupt request */ SIM1_IRQn = 90, /**< Sim Interrupt */ RTIC_IRQn = 91, /**< RTIC Interrupt */ - CPU_IRQn = 92, /**< Performance Unit Interrupts from Cheetah (interrnally: PMUIRQ[0]) */ - /**< Performance Unit Interrupts from Cheetah (interrnally: PMUIRQ[1]) */ - CPU_CTI_IRQn = 93, /**< CTI trigger outputs (internal: nCTIIRQ[0]) */ - /**< CTI trigger outputs (internal: nCTIIRQ[1]) */ + CPU_IRQn = 92, /**< Performance Unit Interrupts from Cheetah (interrnally: PMUIRQ[0]) + Performance Unit Interrupts from Cheetah (interrnally: PMUIRQ[1]) */ + CPU_CTI_IRQn = 93, /**< CTI trigger outputs (internal: nCTIIRQ[0]) + CTI trigger outputs (internal: nCTIIRQ[1]) */ CCM_SRC_GPC_IRQn = 94, /**< SRC GPC Combined CPU wdog interrupts (4x) out of SRC. */ SAI1_IRQn = 95, /**< SAI1 Receive / Transmit Interrupt */ SAI2_IRQn = 96, /**< SAI2 Receive / Transmit Interrupt */ - MU_INT_M4_IRQn = 97, /**< Interrupt to M4 */ + MU_M4_IRQn = 97, /**< Interrupt to M4 */ ADC1_IRQn = 98, /**< ADC-1 Interrupt */ ADC2_IRQn = 99, /**< ADC-2 Interrupt */ ENET2_MAC0_TRANS1_IRQn = 100, /**< MAC 0 Receive / Transmit Frame / Buffer Done */ @@ -232,7 +233,7 @@ typedef enum IRQn { PERFMON2_IRQn = 113, /**< General interrupt */ CAAM_WRAPPER1_IRQn = 114, /**< CAAM interrupt queue for JQ */ CAAM_WRAPPER2_IRQn = 115, /**< Recoverable error interrupt */ - HS0_IRQn = 116, /**< SEMA4-HS processor A7 Interrupt Request */ + SEMA4_HS_A7_IRQn = 116, /**< SEMA4-HS processor A7 Interrupt Request */ EPDC_IRQn = 117, /**< EPDC Interrupt */ ENET1_MAC0_TRANS1_IRQn = 118, /**< MAC 0 Receive / Trasmit Frame / Buffer Done */ ENET1_MAC0_TRANS2_IRQn = 119, /**< MAC 0 Receive / Trasmit Frame / Buffer Done */ @@ -250,7 +251,6 @@ typedef enum IRQn { * @} */ /* end of group Interrupt_vector_numbers */ - /* ---------------------------------------------------------------------------- -- Cortex M4 Core Configuration ---------------------------------------------------------------------------- */ @@ -260,7 +260,7 @@ typedef enum IRQn { * @{ */ -#define __MPU_PRESENT 0 /**< Defines if an MPU is present or not */ +#define __MPU_PRESENT 1 /**< Defines if an MPU is present or not */ #define __NVIC_PRIO_BITS 4 /**< Number of priority bits implemented in the NVIC */ #define __Vendor_SysTickConfig 0 /**< Vendor specific implementation of SysTickConfig is defined */ #define __FPU_PRESENT 1 /**< Defines if an FPU is present or not */ @@ -271,8 +271,8 @@ typedef enum IRQn { /*! * @} */ /* end of group Cortex_Core_Configuration */ - - + + /* ---------------------------------------------------------------------------- -- Device Peripheral Access Layer ---------------------------------------------------------------------------- */ @@ -290,9 +290,6 @@ typedef enum IRQn { #if defined(__ARMCC_VERSION) #pragma push #pragma anon_unions -#elif defined(__CWCC__) - #pragma push - #pragma cpp_extensions on #elif defined(__GNUC__) /* anonymous unions are enabled by default */ #elif defined(__IAR_SYSTEMS_ICC__) @@ -300,7 +297,6 @@ typedef enum IRQn { #else #error Not supported compiler type #endif - /* ---------------------------------------------------------------------------- -- ADC Peripheral Access Layer ---------------------------------------------------------------------------- */ @@ -352,7 +348,6 @@ typedef struct { uint8_t RESERVED_18[12]; __IO uint32_t ADC_CFG; /**< ADC Configuration, offset: 0x130 */ } ADC_Type, *ADC_MemMapPtr; - /* ---------------------------------------------------------------------------- -- ADC - Register accessor macros ---------------------------------------------------------------------------- */ @@ -388,8 +383,6 @@ typedef struct { /*! * @} */ /* end of group ADC_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- ADC Register Masks ---------------------------------------------------------------------------- */ @@ -706,7 +699,6 @@ typedef struct { * @} */ /* end of group ADC_Register_Masks */ - /* ADC - Peripheral instance base addresses */ /** Peripheral ADC1 base address */ #define ADC1_BASE (0x30610000u) @@ -718,11 +710,12 @@ typedef struct { /** Peripheral ADC2 base pointer */ #define ADC2 ((ADC_Type *)ADC2_BASE) #define ADC2_BASE_PTR (ADC2) -/** Array initializer of ADC peripheral base adresses */ +/** Array initializer of ADC peripheral base addresses */ #define ADC_BASE_ADDRS { ADC1_BASE, ADC2_BASE } /** Array initializer of ADC peripheral base pointers */ #define ADC_BASE_PTRS { ADC1, ADC2 } - +/** Interrupt vectors for the ADC peripheral type */ +#define ADC_IRQS { ADC1_IRQn, ADC2_IRQn } /* ---------------------------------------------------------------------------- -- ADC - Register accessor macros ---------------------------------------------------------------------------- */ @@ -776,7 +769,6 @@ typedef struct { #define ADC2_CH_SW_CNV_RSLT ADC_CH_SW_CNV_RSLT_REG(ADC2_BASE_PTR) #define ADC2_DMA_FIFO_DAT ADC_DMA_FIFO_DAT_REG(ADC2_BASE_PTR) #define ADC2_ADC_CFG ADC_ADC_CFG_REG(ADC2_BASE_PTR) - /*! * @} */ /* end of group ADC_Register_Accessor_Macros */ @@ -786,7 +778,6 @@ typedef struct { * @} */ /* end of group ADC_Peripheral */ - /* ---------------------------------------------------------------------------- -- APBH Peripheral Access Layer ---------------------------------------------------------------------------- */ @@ -835,10 +826,9 @@ typedef struct { uint8_t RESERVED_5[12]; __IO uint32_t CH_DEBUG2; /**< AHB to APBH DMA Channel n Debug Information, array offset: 0x160, array step: 0x70 */ uint8_t RESERVED_6[12]; - } CH_[16]; + } CH[16]; __IO uint32_t VERSION; /**< APBH Bridge Version Register, offset: 0x800 */ } APBH_Type, *APBH_MemMapPtr; - /* ---------------------------------------------------------------------------- -- APBH - Register accessor macros ---------------------------------------------------------------------------- */ @@ -869,20 +859,18 @@ typedef struct { #define APBH_DEVSEL_REG(base) ((base)->DEVSEL) #define APBH_DMA_BURST_SIZE_REG(base) ((base)->DMA_BURST_SIZE) #define APBH_DEBUG_REG(base) ((base)->DEBUG) -#define APBH_CH_CURCMDAR_REG(base,index) ((base)->CH_[index].CH_CURCMDAR) -#define APBH_CH_NXTCMDAR_REG(base,index) ((base)->CH_[index].CH_NXTCMDAR) -#define APBH_CH_CMD_REG(base,index) ((base)->CH_[index].CH_CMD) -#define APBH_CH_BAR_REG(base,index) ((base)->CH_[index].CH_BAR) -#define APBH_CH_SEMA_REG(base,index) ((base)->CH_[index].CH_SEMA) -#define APBH_CH_DEBUG1_REG(base,index) ((base)->CH_[index].CH_DEBUG1) -#define APBH_CH_DEBUG2_REG(base,index) ((base)->CH_[index].CH_DEBUG2) +#define APBH_CH_CURCMDAR_REG(base,index) ((base)->CH[index].CH_CURCMDAR) +#define APBH_CH_NXTCMDAR_REG(base,index) ((base)->CH[index].CH_NXTCMDAR) +#define APBH_CH_CMD_REG(base,index) ((base)->CH[index].CH_CMD) +#define APBH_CH_BAR_REG(base,index) ((base)->CH[index].CH_BAR) +#define APBH_CH_SEMA_REG(base,index) ((base)->CH[index].CH_SEMA) +#define APBH_CH_DEBUG1_REG(base,index) ((base)->CH[index].CH_DEBUG1) +#define APBH_CH_DEBUG2_REG(base,index) ((base)->CH[index].CH_DEBUG2) #define APBH_VERSION_REG(base) ((base)->VERSION) /*! * @} */ /* end of group APBH_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- APBH Register Masks ---------------------------------------------------------------------------- */ @@ -1697,18 +1685,18 @@ typedef struct { * @} */ /* end of group APBH_Register_Masks */ - /* APBH - Peripheral instance base addresses */ /** Peripheral APBH base address */ #define APBH_BASE (0x33000000u) /** Peripheral APBH base pointer */ #define APBH ((APBH_Type *)APBH_BASE) #define APBH_BASE_PTR (APBH) -/** Array initializer of APBH peripheral base adresses */ +/** Array initializer of APBH peripheral base addresses */ #define APBH_BASE_ADDRS { APBH_BASE } /** Array initializer of APBH peripheral base pointers */ #define APBH_BASE_PTRS { APBH } - +/** Interrupt vectors for the APBH peripheral type */ +#define APBH_IRQS { APBHDMA_IRQn } /* ---------------------------------------------------------------------------- -- APBH - Register accessor macros ---------------------------------------------------------------------------- */ @@ -1853,7 +1841,6 @@ typedef struct { #define APBH_CH15_DEBUG1 APBH_CH_DEBUG1_REG(APBH_BASE_PTR,15) #define APBH_CH15_DEBUG2 APBH_CH_DEBUG2_REG(APBH_BASE_PTR,15) #define APBH_VERSION APBH_VERSION_REG(APBH_BASE_PTR) - /* APBH - Register array accessors */ #define APBH_CH_CURCMDAR(index) APBH_CH_CURCMDAR_REG(APBH_BASE_PTR,index) #define APBH_CH_NXTCMDAR(index) APBH_CH_NXTCMDAR_REG(APBH_BASE_PTR,index) @@ -1862,7 +1849,6 @@ typedef struct { #define APBH_CH_SEMA(index) APBH_CH_SEMA_REG(APBH_BASE_PTR,index) #define APBH_CH_DEBUG1(index) APBH_CH_DEBUG1_REG(APBH_BASE_PTR,index) #define APBH_CH_DEBUG2(index) APBH_CH_DEBUG2_REG(APBH_BASE_PTR,index) - /*! * @} */ /* end of group APBH_Register_Accessor_Macros */ @@ -1872,7 +1858,6 @@ typedef struct { * @} */ /* end of group APBH_Peripheral */ - /* ---------------------------------------------------------------------------- -- BCH Peripheral Access Layer ---------------------------------------------------------------------------- */ @@ -1973,12 +1958,11 @@ typedef struct { __I uint32_t VERSION_SET; /**< BCH Version Register, offset: 0x164 */ __I uint32_t VERSION_CLR; /**< BCH Version Register, offset: 0x168 */ __I uint32_t VERSION_TOG; /**< BCH Version Register, offset: 0x16C */ - __IO uint32_t DEBUG1; /**< Hardware BCH ECC Debug Register 1, offset: 0x170 */ - __IO uint32_t DEBUG1_SET; /**< Hardware BCH ECC Debug Register 1, offset: 0x174 */ - __IO uint32_t DEBUG1_CLR; /**< Hardware BCH ECC Debug Register 1, offset: 0x178 */ - __IO uint32_t DEBUG1_TOG; /**< Hardware BCH ECC Debug Register 1, offset: 0x17C */ + __IO uint32_t DEBUG1; /**< Hardware BCH ECC Debug Register 1 , offset: 0x170 */ + __IO uint32_t DEBUG1_SET; /**< Hardware BCH ECC Debug Register 1 , offset: 0x174 */ + __IO uint32_t DEBUG1_CLR; /**< Hardware BCH ECC Debug Register 1 , offset: 0x178 */ + __IO uint32_t DEBUG1_TOG; /**< Hardware BCH ECC Debug Register 1 , offset: 0x17C */ } BCH_Type, *BCH_MemMapPtr; - /* ---------------------------------------------------------------------------- -- BCH - Register accessor macros ---------------------------------------------------------------------------- */ @@ -2086,8 +2070,6 @@ typedef struct { /*! * @} */ /* end of group BCH_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- BCH Register Masks ---------------------------------------------------------------------------- */ @@ -3326,18 +3308,18 @@ typedef struct { * @} */ /* end of group BCH_Register_Masks */ - /* BCH - Peripheral instance base addresses */ /** Peripheral BCH base address */ #define BCH_BASE (0x33004000u) /** Peripheral BCH base pointer */ #define BCH ((BCH_Type *)BCH_BASE) #define BCH_BASE_PTR (BCH) -/** Array initializer of BCH peripheral base adresses */ +/** Array initializer of BCH peripheral base addresses */ #define BCH_BASE_ADDRS { BCH_BASE } /** Array initializer of BCH peripheral base pointers */ #define BCH_BASE_PTRS { BCH } - +/** Interrupt vectors for the BCH peripheral type */ +#define BCH_IRQS { BCH_IRQn } /* ---------------------------------------------------------------------------- -- BCH - Register accessor macros ---------------------------------------------------------------------------- */ @@ -3442,7 +3424,6 @@ typedef struct { #define BCH_DEBUG1_SET BCH_DEBUG1_SET_REG(BCH_BASE_PTR) #define BCH_DEBUG1_CLR BCH_DEBUG1_CLR_REG(BCH_BASE_PTR) #define BCH_DEBUG1_TOG BCH_DEBUG1_TOG_REG(BCH_BASE_PTR) - /*! * @} */ /* end of group BCH_Register_Accessor_Macros */ @@ -3452,7 +3433,6 @@ typedef struct { * @} */ /* end of group BCH_Peripheral */ - /* ---------------------------------------------------------------------------- -- CAN Peripheral Access Layer ---------------------------------------------------------------------------- */ @@ -3464,40 +3444,39 @@ typedef struct { /** CAN - Register Layout Typedef */ typedef struct { - __IO uint32_t MCR; /**< Module Configuration Register, offset: 0x0 */ - __IO uint32_t CTRL1; /**< Control 1 Register, offset: 0x4 */ - __IO uint32_t TIMER; /**< Free Running Timer Register, offset: 0x8 */ - uint8_t RESERVED_0[4]; - __IO uint32_t RXMGMASK; /**< Rx Mailboxes Global Mask Register, offset: 0x10 */ - __IO uint32_t RX14MASK; /**< Rx Buffer 14 Mask Register, offset: 0x14 */ - __IO uint32_t RX15MASK; /**< Rx Buffer 15 Mask Register, offset: 0x18 */ - __IO uint32_t ECR; /**< Error Counter Register, offset: 0x1C */ - __IO uint32_t ESR1; /**< Error and Status 1 Register, offset: 0x20 */ - __IO uint32_t IMASK2; /**< Interrupt Masks 2 Register, offset: 0x24 */ - __IO uint32_t IMASK1; /**< Interrupt Masks 1 Register, offset: 0x28 */ - __IO uint32_t IFLAG2; /**< Interrupt Flags 2 Register, offset: 0x2C */ - __IO uint32_t IFLAG1; /**< Interrupt Flags 1 Register, offset: 0x30 */ - __IO uint32_t CTRL2; /**< Control 2 Register, offset: 0x34 */ - __I uint32_t ESR2; /**< Error and Status 2 Register, offset: 0x38 */ - uint8_t RESERVED_1[8]; - __I uint32_t CRCR; /**< CRC Register, offset: 0x44 */ - __IO uint32_t RXFGMASK; /**< Rx FIFO Global Mask Register, offset: 0x48 */ - __I uint32_t RXFIR; /**< Rx FIFO Information Register, offset: 0x4C */ - uint8_t RESERVED_2[48]; - struct { /**< offset: 0x80, array step: 0x10 */ - __IO uint32_t CS; /**< Message Buffer 0 CS Register..Message Buffer 63 CS Register, array offset: 0x80, array step: 0x10 */ - __IO uint32_t ID; /**< Message Buffer 0 ID Register..Message Buffer 63 ID Register, array offset: 0x84, array step: 0x10 */ - __IO uint32_t WORD0; /**< Message Buffer 0 WORD0 Register..Message Buffer 63 WORD0 Register, array offset: 0x88, array step: 0x10 */ - __IO uint32_t WORD1; /**< Message Buffer 0 WORD1 Register..Message Buffer 63 WORD1 Register, array offset: 0x8C, array step: 0x10 */ - } MB[64]; - uint8_t RESERVED_3[1024]; - __IO uint32_t RXIMR[64]; /**< RX Individual Mask Registers, array offset: 0x880, array step: 0x4 */ - uint8_t RESERVED_4[96]; - __IO uint32_t GFWR; /**< Glitch Filter Width Registers, Address: Base address + 9E0h offset */ + __IO uint32_t MCR; /**< Module Configuration Register, offset: 0x0 */ + __IO uint32_t CTRL1; /**< Control 1 Register, offset: 0x4 */ + __IO uint32_t TIMER; /**< Free Running Timer Register, offset: 0x8 */ + uint8_t RESERVED_0[4]; + __IO uint32_t RXMGMASK; /**< Rx Mailboxes Global Mask Register, offset: 0x10 */ + __IO uint32_t RX14MASK; /**< Rx Buffer 14 Mask Register, offset: 0x14 */ + __IO uint32_t RX15MASK; /**< Rx Buffer 15 Mask Register, offset: 0x18 */ + __IO uint32_t ECR; /**< Error Counter Register, offset: 0x1C */ + __IO uint32_t ESR1; /**< Error and Status 1 Register, offset: 0x20 */ + __IO uint32_t IMASK2; /**< Interrupt Masks 2 Register, offset: 0x24 */ + __IO uint32_t IMASK1; /**< Interrupt Masks 1 Register, offset: 0x28 */ + __IO uint32_t IFLAG2; /**< Interrupt Flags 2 Register, offset: 0x2C */ + __IO uint32_t IFLAG1; /**< Interrupt Flags 1 Register, offset: 0x30 */ + __IO uint32_t CTRL2; /**< Control 2 Register, offset: 0x34 */ + __I uint32_t ESR2; /**< Error and Status 2 Register, offset: 0x38 */ + uint8_t RESERVED_1[8]; + __I uint32_t CRCR; /**< CRC Register, offset: 0x44 */ + __IO uint32_t RXFGMASK; /**< Rx FIFO Global Mask Register, offset: 0x48 */ + __I uint32_t RXFIR; /**< Rx FIFO Information Register, offset: 0x4C */ + uint8_t RESERVED_2[48]; + struct { /* offset: 0x80, array step: 0x10 */ + __IO uint32_t CS; /**< Message Buffer 0 CS Register..Message Buffer 63 CS Register, array offset: 0x80, array step: 0x10 */ + __IO uint32_t ID; /**< Message Buffer 0 ID Register..Message Buffer 63 ID Register, array offset: 0x84, array step: 0x10 */ + __IO uint32_t WORD0; /**< Message Buffer 0 WORD0 Register..Message Buffer 63 WORD0 Register, array offset: 0x88, array step: 0x10 */ + __IO uint32_t WORD1; /**< Message Buffer 0 WORD1 Register..Message Buffer 63 WORD1 Register, array offset: 0x8C, array step: 0x10 */ + } MB[64]; + uint8_t RESERVED_3[1024]; + __IO uint32_t RXIMR[64]; /**< Rx Individual Mask Registers, array offset: 0x880, array step: 0x4 */ + uint8_t RESERVED_4[96]; + __IO uint32_t GFWR; /**< Glitch Filter Width Registers, offset: 0x9E0 */ } CAN_Type, *CAN_MemMapPtr; - /* ---------------------------------------------------------------------------- - -- FLEXCAN - Register accessor macros + -- CAN - Register accessor macros ---------------------------------------------------------------------------- */ /*! @@ -3506,7 +3485,7 @@ typedef struct { */ -/* FLEXCAN - Register accessors */ +/* CAN - Register accessors */ #define CAN_MCR_REG(base) ((base)->MCR) #define CAN_CTRL1_REG(base) ((base)->CTRL1) #define CAN_TIMER_REG(base) ((base)->TIMER) @@ -3539,8 +3518,6 @@ typedef struct { /*! * @} */ /* end of group CAN_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- CAN Register Masks ---------------------------------------------------------------------------- */ @@ -3816,7 +3793,6 @@ typedef struct { * @} */ /* end of group CAN_Register_Masks */ - /* CAN - Peripheral instance base addresses */ /** Peripheral CAN1 base address */ #define CAN1_BASE (0x30A00000u) @@ -3832,7 +3808,8 @@ typedef struct { #define CAN_BASE_ADDRS { CAN1_BASE, CAN2_BASE } /** Array initializer of CAN peripheral base pointers */ #define CAN_BASE_PTRS { CAN1, CAN2 } - +/** Interrupt vectors for the CAN peripheral type */ +#define CAN_IRQS { FLEXCAN1_IRQn, FLEXCAN2_IRQn } /* ---------------------------------------------------------------------------- -- CAN - Register accessor macros ---------------------------------------------------------------------------- */ @@ -3843,7 +3820,7 @@ typedef struct { */ -/* FLEXCAN - Register instance definitions */ +/* CAN - Register instance definitions */ /* CAN1 */ #define CAN1_MCR CAN_MCR_REG(CAN1_BASE_PTR) #define CAN1_CTRL1 CAN_CTRL1_REG(CAN1_BASE_PTR) @@ -3862,11 +3839,326 @@ typedef struct { #define CAN1_CRCR CAN_CRCR_REG(CAN1_BASE_PTR) #define CAN1_RXFGMASK CAN_RXFGMASK_REG(CAN1_BASE_PTR) #define CAN1_RXFIR CAN_RXFIR_REG(CAN1_BASE_PTR) -#define CAN1_CS(index) CAN_CS_REG(CAN1,index) -#define CAN1_ID(index) CAN_ID_REG(CAN1,index) -#define CAN1_WORD0(index) CAN_WORD0_REG(CAN1,index) -#define CAN1_WORD1(index) CAN_WORD1_REG(CAN1,index) -#define CAN1_RXIMR(index) CAN_RXIMR_REG(CAN1,index) +#define CAN1_CS0 CAN_CS_REG(CAN1_BASE_PTR,0) +#define CAN1_ID0 CAN_ID_REG(CAN1_BASE_PTR,0) +#define CAN1_WORD00 CAN_WORD0_REG(CAN1_BASE_PTR,0) +#define CAN1_WORD10 CAN_WORD1_REG(CAN1_BASE_PTR,0) +#define CAN1_CS1 CAN_CS_REG(CAN1_BASE_PTR,1) +#define CAN1_ID1 CAN_ID_REG(CAN1_BASE_PTR,1) +#define CAN1_WORD01 CAN_WORD0_REG(CAN1_BASE_PTR,1) +#define CAN1_WORD11 CAN_WORD1_REG(CAN1_BASE_PTR,1) +#define CAN1_CS2 CAN_CS_REG(CAN1_BASE_PTR,2) +#define CAN1_ID2 CAN_ID_REG(CAN1_BASE_PTR,2) +#define CAN1_WORD02 CAN_WORD0_REG(CAN1_BASE_PTR,2) +#define CAN1_WORD12 CAN_WORD1_REG(CAN1_BASE_PTR,2) +#define CAN1_CS3 CAN_CS_REG(CAN1_BASE_PTR,3) +#define CAN1_ID3 CAN_ID_REG(CAN1_BASE_PTR,3) +#define CAN1_WORD03 CAN_WORD0_REG(CAN1_BASE_PTR,3) +#define CAN1_WORD13 CAN_WORD1_REG(CAN1_BASE_PTR,3) +#define CAN1_CS4 CAN_CS_REG(CAN1_BASE_PTR,4) +#define CAN1_ID4 CAN_ID_REG(CAN1_BASE_PTR,4) +#define CAN1_WORD04 CAN_WORD0_REG(CAN1_BASE_PTR,4) +#define CAN1_WORD14 CAN_WORD1_REG(CAN1_BASE_PTR,4) +#define CAN1_CS5 CAN_CS_REG(CAN1_BASE_PTR,5) +#define CAN1_ID5 CAN_ID_REG(CAN1_BASE_PTR,5) +#define CAN1_WORD05 CAN_WORD0_REG(CAN1_BASE_PTR,5) +#define CAN1_WORD15 CAN_WORD1_REG(CAN1_BASE_PTR,5) +#define CAN1_CS6 CAN_CS_REG(CAN1_BASE_PTR,6) +#define CAN1_ID6 CAN_ID_REG(CAN1_BASE_PTR,6) +#define CAN1_WORD06 CAN_WORD0_REG(CAN1_BASE_PTR,6) +#define CAN1_WORD16 CAN_WORD1_REG(CAN1_BASE_PTR,6) +#define CAN1_CS7 CAN_CS_REG(CAN1_BASE_PTR,7) +#define CAN1_ID7 CAN_ID_REG(CAN1_BASE_PTR,7) +#define CAN1_WORD07 CAN_WORD0_REG(CAN1_BASE_PTR,7) +#define CAN1_WORD17 CAN_WORD1_REG(CAN1_BASE_PTR,7) +#define CAN1_CS8 CAN_CS_REG(CAN1_BASE_PTR,8) +#define CAN1_ID8 CAN_ID_REG(CAN1_BASE_PTR,8) +#define CAN1_WORD08 CAN_WORD0_REG(CAN1_BASE_PTR,8) +#define CAN1_WORD18 CAN_WORD1_REG(CAN1_BASE_PTR,8) +#define CAN1_CS9 CAN_CS_REG(CAN1_BASE_PTR,9) +#define CAN1_ID9 CAN_ID_REG(CAN1_BASE_PTR,9) +#define CAN1_WORD09 CAN_WORD0_REG(CAN1_BASE_PTR,9) +#define CAN1_WORD19 CAN_WORD1_REG(CAN1_BASE_PTR,9) +#define CAN1_CS10 CAN_CS_REG(CAN1_BASE_PTR,10) +#define CAN1_ID10 CAN_ID_REG(CAN1_BASE_PTR,10) +#define CAN1_WORD010 CAN_WORD0_REG(CAN1_BASE_PTR,10) +#define CAN1_WORD110 CAN_WORD1_REG(CAN1_BASE_PTR,10) +#define CAN1_CS11 CAN_CS_REG(CAN1_BASE_PTR,11) +#define CAN1_ID11 CAN_ID_REG(CAN1_BASE_PTR,11) +#define CAN1_WORD011 CAN_WORD0_REG(CAN1_BASE_PTR,11) +#define CAN1_WORD111 CAN_WORD1_REG(CAN1_BASE_PTR,11) +#define CAN1_CS12 CAN_CS_REG(CAN1_BASE_PTR,12) +#define CAN1_ID12 CAN_ID_REG(CAN1_BASE_PTR,12) +#define CAN1_WORD012 CAN_WORD0_REG(CAN1_BASE_PTR,12) +#define CAN1_WORD112 CAN_WORD1_REG(CAN1_BASE_PTR,12) +#define CAN1_CS13 CAN_CS_REG(CAN1_BASE_PTR,13) +#define CAN1_ID13 CAN_ID_REG(CAN1_BASE_PTR,13) +#define CAN1_WORD013 CAN_WORD0_REG(CAN1_BASE_PTR,13) +#define CAN1_WORD113 CAN_WORD1_REG(CAN1_BASE_PTR,13) +#define CAN1_CS14 CAN_CS_REG(CAN1_BASE_PTR,14) +#define CAN1_ID14 CAN_ID_REG(CAN1_BASE_PTR,14) +#define CAN1_WORD014 CAN_WORD0_REG(CAN1_BASE_PTR,14) +#define CAN1_WORD114 CAN_WORD1_REG(CAN1_BASE_PTR,14) +#define CAN1_CS15 CAN_CS_REG(CAN1_BASE_PTR,15) +#define CAN1_ID15 CAN_ID_REG(CAN1_BASE_PTR,15) +#define CAN1_WORD015 CAN_WORD0_REG(CAN1_BASE_PTR,15) +#define CAN1_WORD115 CAN_WORD1_REG(CAN1_BASE_PTR,15) +#define CAN1_CS16 CAN_CS_REG(CAN1_BASE_PTR,16) +#define CAN1_ID16 CAN_ID_REG(CAN1_BASE_PTR,16) +#define CAN1_WORD016 CAN_WORD0_REG(CAN1_BASE_PTR,16) +#define CAN1_WORD116 CAN_WORD1_REG(CAN1_BASE_PTR,16) +#define CAN1_CS17 CAN_CS_REG(CAN1_BASE_PTR,17) +#define CAN1_ID17 CAN_ID_REG(CAN1_BASE_PTR,17) +#define CAN1_WORD017 CAN_WORD0_REG(CAN1_BASE_PTR,17) +#define CAN1_WORD117 CAN_WORD1_REG(CAN1_BASE_PTR,17) +#define CAN1_CS18 CAN_CS_REG(CAN1_BASE_PTR,18) +#define CAN1_ID18 CAN_ID_REG(CAN1_BASE_PTR,18) +#define CAN1_WORD018 CAN_WORD0_REG(CAN1_BASE_PTR,18) +#define CAN1_WORD118 CAN_WORD1_REG(CAN1_BASE_PTR,18) +#define CAN1_CS19 CAN_CS_REG(CAN1_BASE_PTR,19) +#define CAN1_ID19 CAN_ID_REG(CAN1_BASE_PTR,19) +#define CAN1_WORD019 CAN_WORD0_REG(CAN1_BASE_PTR,19) +#define CAN1_WORD119 CAN_WORD1_REG(CAN1_BASE_PTR,19) +#define CAN1_CS20 CAN_CS_REG(CAN1_BASE_PTR,20) +#define CAN1_ID20 CAN_ID_REG(CAN1_BASE_PTR,20) +#define CAN1_WORD020 CAN_WORD0_REG(CAN1_BASE_PTR,20) +#define CAN1_WORD120 CAN_WORD1_REG(CAN1_BASE_PTR,20) +#define CAN1_CS21 CAN_CS_REG(CAN1_BASE_PTR,21) +#define CAN1_ID21 CAN_ID_REG(CAN1_BASE_PTR,21) +#define CAN1_WORD021 CAN_WORD0_REG(CAN1_BASE_PTR,21) +#define CAN1_WORD121 CAN_WORD1_REG(CAN1_BASE_PTR,21) +#define CAN1_CS22 CAN_CS_REG(CAN1_BASE_PTR,22) +#define CAN1_ID22 CAN_ID_REG(CAN1_BASE_PTR,22) +#define CAN1_WORD022 CAN_WORD0_REG(CAN1_BASE_PTR,22) +#define CAN1_WORD122 CAN_WORD1_REG(CAN1_BASE_PTR,22) +#define CAN1_CS23 CAN_CS_REG(CAN1_BASE_PTR,23) +#define CAN1_ID23 CAN_ID_REG(CAN1_BASE_PTR,23) +#define CAN1_WORD023 CAN_WORD0_REG(CAN1_BASE_PTR,23) +#define CAN1_WORD123 CAN_WORD1_REG(CAN1_BASE_PTR,23) +#define CAN1_CS24 CAN_CS_REG(CAN1_BASE_PTR,24) +#define CAN1_ID24 CAN_ID_REG(CAN1_BASE_PTR,24) +#define CAN1_WORD024 CAN_WORD0_REG(CAN1_BASE_PTR,24) +#define CAN1_WORD124 CAN_WORD1_REG(CAN1_BASE_PTR,24) +#define CAN1_CS25 CAN_CS_REG(CAN1_BASE_PTR,25) +#define CAN1_ID25 CAN_ID_REG(CAN1_BASE_PTR,25) +#define CAN1_WORD025 CAN_WORD0_REG(CAN1_BASE_PTR,25) +#define CAN1_WORD125 CAN_WORD1_REG(CAN1_BASE_PTR,25) +#define CAN1_CS26 CAN_CS_REG(CAN1_BASE_PTR,26) +#define CAN1_ID26 CAN_ID_REG(CAN1_BASE_PTR,26) +#define CAN1_WORD026 CAN_WORD0_REG(CAN1_BASE_PTR,26) +#define CAN1_WORD126 CAN_WORD1_REG(CAN1_BASE_PTR,26) +#define CAN1_CS27 CAN_CS_REG(CAN1_BASE_PTR,27) +#define CAN1_ID27 CAN_ID_REG(CAN1_BASE_PTR,27) +#define CAN1_WORD027 CAN_WORD0_REG(CAN1_BASE_PTR,27) +#define CAN1_WORD127 CAN_WORD1_REG(CAN1_BASE_PTR,27) +#define CAN1_CS28 CAN_CS_REG(CAN1_BASE_PTR,28) +#define CAN1_ID28 CAN_ID_REG(CAN1_BASE_PTR,28) +#define CAN1_WORD028 CAN_WORD0_REG(CAN1_BASE_PTR,28) +#define CAN1_WORD128 CAN_WORD1_REG(CAN1_BASE_PTR,28) +#define CAN1_CS29 CAN_CS_REG(CAN1_BASE_PTR,29) +#define CAN1_ID29 CAN_ID_REG(CAN1_BASE_PTR,29) +#define CAN1_WORD029 CAN_WORD0_REG(CAN1_BASE_PTR,29) +#define CAN1_WORD129 CAN_WORD1_REG(CAN1_BASE_PTR,29) +#define CAN1_CS30 CAN_CS_REG(CAN1_BASE_PTR,30) +#define CAN1_ID30 CAN_ID_REG(CAN1_BASE_PTR,30) +#define CAN1_WORD030 CAN_WORD0_REG(CAN1_BASE_PTR,30) +#define CAN1_WORD130 CAN_WORD1_REG(CAN1_BASE_PTR,30) +#define CAN1_CS31 CAN_CS_REG(CAN1_BASE_PTR,31) +#define CAN1_ID31 CAN_ID_REG(CAN1_BASE_PTR,31) +#define CAN1_WORD031 CAN_WORD0_REG(CAN1_BASE_PTR,31) +#define CAN1_WORD131 CAN_WORD1_REG(CAN1_BASE_PTR,31) +#define CAN1_CS32 CAN_CS_REG(CAN1_BASE_PTR,32) +#define CAN1_ID32 CAN_ID_REG(CAN1_BASE_PTR,32) +#define CAN1_WORD032 CAN_WORD0_REG(CAN1_BASE_PTR,32) +#define CAN1_WORD132 CAN_WORD1_REG(CAN1_BASE_PTR,32) +#define CAN1_CS33 CAN_CS_REG(CAN1_BASE_PTR,33) +#define CAN1_ID33 CAN_ID_REG(CAN1_BASE_PTR,33) +#define CAN1_WORD033 CAN_WORD0_REG(CAN1_BASE_PTR,33) +#define CAN1_WORD133 CAN_WORD1_REG(CAN1_BASE_PTR,33) +#define CAN1_CS34 CAN_CS_REG(CAN1_BASE_PTR,34) +#define CAN1_ID34 CAN_ID_REG(CAN1_BASE_PTR,34) +#define CAN1_WORD034 CAN_WORD0_REG(CAN1_BASE_PTR,34) +#define CAN1_WORD134 CAN_WORD1_REG(CAN1_BASE_PTR,34) +#define CAN1_CS35 CAN_CS_REG(CAN1_BASE_PTR,35) +#define CAN1_ID35 CAN_ID_REG(CAN1_BASE_PTR,35) +#define CAN1_WORD035 CAN_WORD0_REG(CAN1_BASE_PTR,35) +#define CAN1_WORD135 CAN_WORD1_REG(CAN1_BASE_PTR,35) +#define CAN1_CS36 CAN_CS_REG(CAN1_BASE_PTR,36) +#define CAN1_ID36 CAN_ID_REG(CAN1_BASE_PTR,36) +#define CAN1_WORD036 CAN_WORD0_REG(CAN1_BASE_PTR,36) +#define CAN1_WORD136 CAN_WORD1_REG(CAN1_BASE_PTR,36) +#define CAN1_CS37 CAN_CS_REG(CAN1_BASE_PTR,37) +#define CAN1_ID37 CAN_ID_REG(CAN1_BASE_PTR,37) +#define CAN1_WORD037 CAN_WORD0_REG(CAN1_BASE_PTR,37) +#define CAN1_WORD137 CAN_WORD1_REG(CAN1_BASE_PTR,37) +#define CAN1_CS38 CAN_CS_REG(CAN1_BASE_PTR,38) +#define CAN1_ID38 CAN_ID_REG(CAN1_BASE_PTR,38) +#define CAN1_WORD038 CAN_WORD0_REG(CAN1_BASE_PTR,38) +#define CAN1_WORD138 CAN_WORD1_REG(CAN1_BASE_PTR,38) +#define CAN1_CS39 CAN_CS_REG(CAN1_BASE_PTR,39) +#define CAN1_ID39 CAN_ID_REG(CAN1_BASE_PTR,39) +#define CAN1_WORD039 CAN_WORD0_REG(CAN1_BASE_PTR,39) +#define CAN1_WORD139 CAN_WORD1_REG(CAN1_BASE_PTR,39) +#define CAN1_CS40 CAN_CS_REG(CAN1_BASE_PTR,40) +#define CAN1_ID40 CAN_ID_REG(CAN1_BASE_PTR,40) +#define CAN1_WORD040 CAN_WORD0_REG(CAN1_BASE_PTR,40) +#define CAN1_WORD140 CAN_WORD1_REG(CAN1_BASE_PTR,40) +#define CAN1_CS41 CAN_CS_REG(CAN1_BASE_PTR,41) +#define CAN1_ID41 CAN_ID_REG(CAN1_BASE_PTR,41) +#define CAN1_WORD041 CAN_WORD0_REG(CAN1_BASE_PTR,41) +#define CAN1_WORD141 CAN_WORD1_REG(CAN1_BASE_PTR,41) +#define CAN1_CS42 CAN_CS_REG(CAN1_BASE_PTR,42) +#define CAN1_ID42 CAN_ID_REG(CAN1_BASE_PTR,42) +#define CAN1_WORD042 CAN_WORD0_REG(CAN1_BASE_PTR,42) +#define CAN1_WORD142 CAN_WORD1_REG(CAN1_BASE_PTR,42) +#define CAN1_CS43 CAN_CS_REG(CAN1_BASE_PTR,43) +#define CAN1_ID43 CAN_ID_REG(CAN1_BASE_PTR,43) +#define CAN1_WORD043 CAN_WORD0_REG(CAN1_BASE_PTR,43) +#define CAN1_WORD143 CAN_WORD1_REG(CAN1_BASE_PTR,43) +#define CAN1_CS44 CAN_CS_REG(CAN1_BASE_PTR,44) +#define CAN1_ID44 CAN_ID_REG(CAN1_BASE_PTR,44) +#define CAN1_WORD044 CAN_WORD0_REG(CAN1_BASE_PTR,44) +#define CAN1_WORD144 CAN_WORD1_REG(CAN1_BASE_PTR,44) +#define CAN1_CS45 CAN_CS_REG(CAN1_BASE_PTR,45) +#define CAN1_ID45 CAN_ID_REG(CAN1_BASE_PTR,45) +#define CAN1_WORD045 CAN_WORD0_REG(CAN1_BASE_PTR,45) +#define CAN1_WORD145 CAN_WORD1_REG(CAN1_BASE_PTR,45) +#define CAN1_CS46 CAN_CS_REG(CAN1_BASE_PTR,46) +#define CAN1_ID46 CAN_ID_REG(CAN1_BASE_PTR,46) +#define CAN1_WORD046 CAN_WORD0_REG(CAN1_BASE_PTR,46) +#define CAN1_WORD146 CAN_WORD1_REG(CAN1_BASE_PTR,46) +#define CAN1_CS47 CAN_CS_REG(CAN1_BASE_PTR,47) +#define CAN1_ID47 CAN_ID_REG(CAN1_BASE_PTR,47) +#define CAN1_WORD047 CAN_WORD0_REG(CAN1_BASE_PTR,47) +#define CAN1_WORD147 CAN_WORD1_REG(CAN1_BASE_PTR,47) +#define CAN1_CS48 CAN_CS_REG(CAN1_BASE_PTR,48) +#define CAN1_ID48 CAN_ID_REG(CAN1_BASE_PTR,48) +#define CAN1_WORD048 CAN_WORD0_REG(CAN1_BASE_PTR,48) +#define CAN1_WORD148 CAN_WORD1_REG(CAN1_BASE_PTR,48) +#define CAN1_CS49 CAN_CS_REG(CAN1_BASE_PTR,49) +#define CAN1_ID49 CAN_ID_REG(CAN1_BASE_PTR,49) +#define CAN1_WORD049 CAN_WORD0_REG(CAN1_BASE_PTR,49) +#define CAN1_WORD149 CAN_WORD1_REG(CAN1_BASE_PTR,49) +#define CAN1_CS50 CAN_CS_REG(CAN1_BASE_PTR,50) +#define CAN1_ID50 CAN_ID_REG(CAN1_BASE_PTR,50) +#define CAN1_WORD050 CAN_WORD0_REG(CAN1_BASE_PTR,50) +#define CAN1_WORD150 CAN_WORD1_REG(CAN1_BASE_PTR,50) +#define CAN1_CS51 CAN_CS_REG(CAN1_BASE_PTR,51) +#define CAN1_ID51 CAN_ID_REG(CAN1_BASE_PTR,51) +#define CAN1_WORD051 CAN_WORD0_REG(CAN1_BASE_PTR,51) +#define CAN1_WORD151 CAN_WORD1_REG(CAN1_BASE_PTR,51) +#define CAN1_CS52 CAN_CS_REG(CAN1_BASE_PTR,52) +#define CAN1_ID52 CAN_ID_REG(CAN1_BASE_PTR,52) +#define CAN1_WORD052 CAN_WORD0_REG(CAN1_BASE_PTR,52) +#define CAN1_WORD152 CAN_WORD1_REG(CAN1_BASE_PTR,52) +#define CAN1_CS53 CAN_CS_REG(CAN1_BASE_PTR,53) +#define CAN1_ID53 CAN_ID_REG(CAN1_BASE_PTR,53) +#define CAN1_WORD053 CAN_WORD0_REG(CAN1_BASE_PTR,53) +#define CAN1_WORD153 CAN_WORD1_REG(CAN1_BASE_PTR,53) +#define CAN1_CS54 CAN_CS_REG(CAN1_BASE_PTR,54) +#define CAN1_ID54 CAN_ID_REG(CAN1_BASE_PTR,54) +#define CAN1_WORD054 CAN_WORD0_REG(CAN1_BASE_PTR,54) +#define CAN1_WORD154 CAN_WORD1_REG(CAN1_BASE_PTR,54) +#define CAN1_CS55 CAN_CS_REG(CAN1_BASE_PTR,55) +#define CAN1_ID55 CAN_ID_REG(CAN1_BASE_PTR,55) +#define CAN1_WORD055 CAN_WORD0_REG(CAN1_BASE_PTR,55) +#define CAN1_WORD155 CAN_WORD1_REG(CAN1_BASE_PTR,55) +#define CAN1_CS56 CAN_CS_REG(CAN1_BASE_PTR,56) +#define CAN1_ID56 CAN_ID_REG(CAN1_BASE_PTR,56) +#define CAN1_WORD056 CAN_WORD0_REG(CAN1_BASE_PTR,56) +#define CAN1_WORD156 CAN_WORD1_REG(CAN1_BASE_PTR,56) +#define CAN1_CS57 CAN_CS_REG(CAN1_BASE_PTR,57) +#define CAN1_ID57 CAN_ID_REG(CAN1_BASE_PTR,57) +#define CAN1_WORD057 CAN_WORD0_REG(CAN1_BASE_PTR,57) +#define CAN1_WORD157 CAN_WORD1_REG(CAN1_BASE_PTR,57) +#define CAN1_CS58 CAN_CS_REG(CAN1_BASE_PTR,58) +#define CAN1_ID58 CAN_ID_REG(CAN1_BASE_PTR,58) +#define CAN1_WORD058 CAN_WORD0_REG(CAN1_BASE_PTR,58) +#define CAN1_WORD158 CAN_WORD1_REG(CAN1_BASE_PTR,58) +#define CAN1_CS59 CAN_CS_REG(CAN1_BASE_PTR,59) +#define CAN1_ID59 CAN_ID_REG(CAN1_BASE_PTR,59) +#define CAN1_WORD059 CAN_WORD0_REG(CAN1_BASE_PTR,59) +#define CAN1_WORD159 CAN_WORD1_REG(CAN1_BASE_PTR,59) +#define CAN1_CS60 CAN_CS_REG(CAN1_BASE_PTR,60) +#define CAN1_ID60 CAN_ID_REG(CAN1_BASE_PTR,60) +#define CAN1_WORD060 CAN_WORD0_REG(CAN1_BASE_PTR,60) +#define CAN1_WORD160 CAN_WORD1_REG(CAN1_BASE_PTR,60) +#define CAN1_CS61 CAN_CS_REG(CAN1_BASE_PTR,61) +#define CAN1_ID61 CAN_ID_REG(CAN1_BASE_PTR,61) +#define CAN1_WORD061 CAN_WORD0_REG(CAN1_BASE_PTR,61) +#define CAN1_WORD161 CAN_WORD1_REG(CAN1_BASE_PTR,61) +#define CAN1_CS62 CAN_CS_REG(CAN1_BASE_PTR,62) +#define CAN1_ID62 CAN_ID_REG(CAN1_BASE_PTR,62) +#define CAN1_WORD062 CAN_WORD0_REG(CAN1_BASE_PTR,62) +#define CAN1_WORD162 CAN_WORD1_REG(CAN1_BASE_PTR,62) +#define CAN1_CS63 CAN_CS_REG(CAN1_BASE_PTR,63) +#define CAN1_ID63 CAN_ID_REG(CAN1_BASE_PTR,63) +#define CAN1_WORD063 CAN_WORD0_REG(CAN1_BASE_PTR,63) +#define CAN1_WORD163 CAN_WORD1_REG(CAN1_BASE_PTR,63) +#define CAN1_RXIMR0 CAN_RXIMR_REG(CAN1_BASE_PTR,0) +#define CAN1_RXIMR1 CAN_RXIMR_REG(CAN1_BASE_PTR,1) +#define CAN1_RXIMR2 CAN_RXIMR_REG(CAN1_BASE_PTR,2) +#define CAN1_RXIMR3 CAN_RXIMR_REG(CAN1_BASE_PTR,3) +#define CAN1_RXIMR4 CAN_RXIMR_REG(CAN1_BASE_PTR,4) +#define CAN1_RXIMR5 CAN_RXIMR_REG(CAN1_BASE_PTR,5) +#define CAN1_RXIMR6 CAN_RXIMR_REG(CAN1_BASE_PTR,6) +#define CAN1_RXIMR7 CAN_RXIMR_REG(CAN1_BASE_PTR,7) +#define CAN1_RXIMR8 CAN_RXIMR_REG(CAN1_BASE_PTR,8) +#define CAN1_RXIMR9 CAN_RXIMR_REG(CAN1_BASE_PTR,9) +#define CAN1_RXIMR10 CAN_RXIMR_REG(CAN1_BASE_PTR,10) +#define CAN1_RXIMR11 CAN_RXIMR_REG(CAN1_BASE_PTR,11) +#define CAN1_RXIMR12 CAN_RXIMR_REG(CAN1_BASE_PTR,12) +#define CAN1_RXIMR13 CAN_RXIMR_REG(CAN1_BASE_PTR,13) +#define CAN1_RXIMR14 CAN_RXIMR_REG(CAN1_BASE_PTR,14) +#define CAN1_RXIMR15 CAN_RXIMR_REG(CAN1_BASE_PTR,15) +#define CAN1_RXIMR16 CAN_RXIMR_REG(CAN1_BASE_PTR,16) +#define CAN1_RXIMR17 CAN_RXIMR_REG(CAN1_BASE_PTR,17) +#define CAN1_RXIMR18 CAN_RXIMR_REG(CAN1_BASE_PTR,18) +#define CAN1_RXIMR19 CAN_RXIMR_REG(CAN1_BASE_PTR,19) +#define CAN1_RXIMR20 CAN_RXIMR_REG(CAN1_BASE_PTR,20) +#define CAN1_RXIMR21 CAN_RXIMR_REG(CAN1_BASE_PTR,21) +#define CAN1_RXIMR22 CAN_RXIMR_REG(CAN1_BASE_PTR,22) +#define CAN1_RXIMR23 CAN_RXIMR_REG(CAN1_BASE_PTR,23) +#define CAN1_RXIMR24 CAN_RXIMR_REG(CAN1_BASE_PTR,24) +#define CAN1_RXIMR25 CAN_RXIMR_REG(CAN1_BASE_PTR,25) +#define CAN1_RXIMR26 CAN_RXIMR_REG(CAN1_BASE_PTR,26) +#define CAN1_RXIMR27 CAN_RXIMR_REG(CAN1_BASE_PTR,27) +#define CAN1_RXIMR28 CAN_RXIMR_REG(CAN1_BASE_PTR,28) +#define CAN1_RXIMR29 CAN_RXIMR_REG(CAN1_BASE_PTR,29) +#define CAN1_RXIMR30 CAN_RXIMR_REG(CAN1_BASE_PTR,30) +#define CAN1_RXIMR31 CAN_RXIMR_REG(CAN1_BASE_PTR,31) +#define CAN1_RXIMR32 CAN_RXIMR_REG(CAN1_BASE_PTR,32) +#define CAN1_RXIMR33 CAN_RXIMR_REG(CAN1_BASE_PTR,33) +#define CAN1_RXIMR34 CAN_RXIMR_REG(CAN1_BASE_PTR,34) +#define CAN1_RXIMR35 CAN_RXIMR_REG(CAN1_BASE_PTR,35) +#define CAN1_RXIMR36 CAN_RXIMR_REG(CAN1_BASE_PTR,36) +#define CAN1_RXIMR37 CAN_RXIMR_REG(CAN1_BASE_PTR,37) +#define CAN1_RXIMR38 CAN_RXIMR_REG(CAN1_BASE_PTR,38) +#define CAN1_RXIMR39 CAN_RXIMR_REG(CAN1_BASE_PTR,39) +#define CAN1_RXIMR40 CAN_RXIMR_REG(CAN1_BASE_PTR,40) +#define CAN1_RXIMR41 CAN_RXIMR_REG(CAN1_BASE_PTR,41) +#define CAN1_RXIMR42 CAN_RXIMR_REG(CAN1_BASE_PTR,42) +#define CAN1_RXIMR43 CAN_RXIMR_REG(CAN1_BASE_PTR,43) +#define CAN1_RXIMR44 CAN_RXIMR_REG(CAN1_BASE_PTR,44) +#define CAN1_RXIMR45 CAN_RXIMR_REG(CAN1_BASE_PTR,45) +#define CAN1_RXIMR46 CAN_RXIMR_REG(CAN1_BASE_PTR,46) +#define CAN1_RXIMR47 CAN_RXIMR_REG(CAN1_BASE_PTR,47) +#define CAN1_RXIMR48 CAN_RXIMR_REG(CAN1_BASE_PTR,48) +#define CAN1_RXIMR49 CAN_RXIMR_REG(CAN1_BASE_PTR,49) +#define CAN1_RXIMR50 CAN_RXIMR_REG(CAN1_BASE_PTR,50) +#define CAN1_RXIMR51 CAN_RXIMR_REG(CAN1_BASE_PTR,51) +#define CAN1_RXIMR52 CAN_RXIMR_REG(CAN1_BASE_PTR,52) +#define CAN1_RXIMR53 CAN_RXIMR_REG(CAN1_BASE_PTR,53) +#define CAN1_RXIMR54 CAN_RXIMR_REG(CAN1_BASE_PTR,54) +#define CAN1_RXIMR55 CAN_RXIMR_REG(CAN1_BASE_PTR,55) +#define CAN1_RXIMR56 CAN_RXIMR_REG(CAN1_BASE_PTR,56) +#define CAN1_RXIMR57 CAN_RXIMR_REG(CAN1_BASE_PTR,57) +#define CAN1_RXIMR58 CAN_RXIMR_REG(CAN1_BASE_PTR,58) +#define CAN1_RXIMR59 CAN_RXIMR_REG(CAN1_BASE_PTR,59) +#define CAN1_RXIMR60 CAN_RXIMR_REG(CAN1_BASE_PTR,60) +#define CAN1_RXIMR61 CAN_RXIMR_REG(CAN1_BASE_PTR,61) +#define CAN1_RXIMR62 CAN_RXIMR_REG(CAN1_BASE_PTR,62) +#define CAN1_RXIMR63 CAN_RXIMR_REG(CAN1_BASE_PTR,63) #define CAN1_GFWR CAN_GFWR_REG(CAN1_BASE_PTR) /* CAN2 */ #define CAN2_MCR CAN_MCR_REG(CAN2_BASE_PTR) @@ -3886,14 +4178,338 @@ typedef struct { #define CAN2_CRCR CAN_CRCR_REG(CAN2_BASE_PTR) #define CAN2_RXFGMASK CAN_RXFGMASK_REG(CAN2_BASE_PTR) #define CAN2_RXFIR CAN_RXFIR_REG(CAN2_BASE_PTR) -#define CAN2_RXFIR CAN_RXFIR_REG(CAN2_BASE_PTR) -#define CAN2_CS(index) CAN_CS_REG(CAN2,index) -#define CAN2_ID(index) CAN_ID_REG(CAN2,index) -#define CAN2_WORD0(index) CAN_WORD0_REG(CAN2,index) -#define CAN2_WORD1(index) CAN_WORD1_REG(CAN2,index) -#define CAN2_RXIMR(index) CAN_RXIMR_REG(CAN2,index) +#define CAN2_CS0 CAN_CS_REG(CAN2_BASE_PTR,0) +#define CAN2_ID0 CAN_ID_REG(CAN2_BASE_PTR,0) +#define CAN2_WORD00 CAN_WORD0_REG(CAN2_BASE_PTR,0) +#define CAN2_WORD10 CAN_WORD1_REG(CAN2_BASE_PTR,0) +#define CAN2_CS1 CAN_CS_REG(CAN2_BASE_PTR,1) +#define CAN2_ID1 CAN_ID_REG(CAN2_BASE_PTR,1) +#define CAN2_WORD01 CAN_WORD0_REG(CAN2_BASE_PTR,1) +#define CAN2_WORD11 CAN_WORD1_REG(CAN2_BASE_PTR,1) +#define CAN2_CS2 CAN_CS_REG(CAN2_BASE_PTR,2) +#define CAN2_ID2 CAN_ID_REG(CAN2_BASE_PTR,2) +#define CAN2_WORD02 CAN_WORD0_REG(CAN2_BASE_PTR,2) +#define CAN2_WORD12 CAN_WORD1_REG(CAN2_BASE_PTR,2) +#define CAN2_CS3 CAN_CS_REG(CAN2_BASE_PTR,3) +#define CAN2_ID3 CAN_ID_REG(CAN2_BASE_PTR,3) +#define CAN2_WORD03 CAN_WORD0_REG(CAN2_BASE_PTR,3) +#define CAN2_WORD13 CAN_WORD1_REG(CAN2_BASE_PTR,3) +#define CAN2_CS4 CAN_CS_REG(CAN2_BASE_PTR,4) +#define CAN2_ID4 CAN_ID_REG(CAN2_BASE_PTR,4) +#define CAN2_WORD04 CAN_WORD0_REG(CAN2_BASE_PTR,4) +#define CAN2_WORD14 CAN_WORD1_REG(CAN2_BASE_PTR,4) +#define CAN2_CS5 CAN_CS_REG(CAN2_BASE_PTR,5) +#define CAN2_ID5 CAN_ID_REG(CAN2_BASE_PTR,5) +#define CAN2_WORD05 CAN_WORD0_REG(CAN2_BASE_PTR,5) +#define CAN2_WORD15 CAN_WORD1_REG(CAN2_BASE_PTR,5) +#define CAN2_CS6 CAN_CS_REG(CAN2_BASE_PTR,6) +#define CAN2_ID6 CAN_ID_REG(CAN2_BASE_PTR,6) +#define CAN2_WORD06 CAN_WORD0_REG(CAN2_BASE_PTR,6) +#define CAN2_WORD16 CAN_WORD1_REG(CAN2_BASE_PTR,6) +#define CAN2_CS7 CAN_CS_REG(CAN2_BASE_PTR,7) +#define CAN2_ID7 CAN_ID_REG(CAN2_BASE_PTR,7) +#define CAN2_WORD07 CAN_WORD0_REG(CAN2_BASE_PTR,7) +#define CAN2_WORD17 CAN_WORD1_REG(CAN2_BASE_PTR,7) +#define CAN2_CS8 CAN_CS_REG(CAN2_BASE_PTR,8) +#define CAN2_ID8 CAN_ID_REG(CAN2_BASE_PTR,8) +#define CAN2_WORD08 CAN_WORD0_REG(CAN2_BASE_PTR,8) +#define CAN2_WORD18 CAN_WORD1_REG(CAN2_BASE_PTR,8) +#define CAN2_CS9 CAN_CS_REG(CAN2_BASE_PTR,9) +#define CAN2_ID9 CAN_ID_REG(CAN2_BASE_PTR,9) +#define CAN2_WORD09 CAN_WORD0_REG(CAN2_BASE_PTR,9) +#define CAN2_WORD19 CAN_WORD1_REG(CAN2_BASE_PTR,9) +#define CAN2_CS10 CAN_CS_REG(CAN2_BASE_PTR,10) +#define CAN2_ID10 CAN_ID_REG(CAN2_BASE_PTR,10) +#define CAN2_WORD010 CAN_WORD0_REG(CAN2_BASE_PTR,10) +#define CAN2_WORD110 CAN_WORD1_REG(CAN2_BASE_PTR,10) +#define CAN2_CS11 CAN_CS_REG(CAN2_BASE_PTR,11) +#define CAN2_ID11 CAN_ID_REG(CAN2_BASE_PTR,11) +#define CAN2_WORD011 CAN_WORD0_REG(CAN2_BASE_PTR,11) +#define CAN2_WORD111 CAN_WORD1_REG(CAN2_BASE_PTR,11) +#define CAN2_CS12 CAN_CS_REG(CAN2_BASE_PTR,12) +#define CAN2_ID12 CAN_ID_REG(CAN2_BASE_PTR,12) +#define CAN2_WORD012 CAN_WORD0_REG(CAN2_BASE_PTR,12) +#define CAN2_WORD112 CAN_WORD1_REG(CAN2_BASE_PTR,12) +#define CAN2_CS13 CAN_CS_REG(CAN2_BASE_PTR,13) +#define CAN2_ID13 CAN_ID_REG(CAN2_BASE_PTR,13) +#define CAN2_WORD013 CAN_WORD0_REG(CAN2_BASE_PTR,13) +#define CAN2_WORD113 CAN_WORD1_REG(CAN2_BASE_PTR,13) +#define CAN2_CS14 CAN_CS_REG(CAN2_BASE_PTR,14) +#define CAN2_ID14 CAN_ID_REG(CAN2_BASE_PTR,14) +#define CAN2_WORD014 CAN_WORD0_REG(CAN2_BASE_PTR,14) +#define CAN2_WORD114 CAN_WORD1_REG(CAN2_BASE_PTR,14) +#define CAN2_CS15 CAN_CS_REG(CAN2_BASE_PTR,15) +#define CAN2_ID15 CAN_ID_REG(CAN2_BASE_PTR,15) +#define CAN2_WORD015 CAN_WORD0_REG(CAN2_BASE_PTR,15) +#define CAN2_WORD115 CAN_WORD1_REG(CAN2_BASE_PTR,15) +#define CAN2_CS16 CAN_CS_REG(CAN2_BASE_PTR,16) +#define CAN2_ID16 CAN_ID_REG(CAN2_BASE_PTR,16) +#define CAN2_WORD016 CAN_WORD0_REG(CAN2_BASE_PTR,16) +#define CAN2_WORD116 CAN_WORD1_REG(CAN2_BASE_PTR,16) +#define CAN2_CS17 CAN_CS_REG(CAN2_BASE_PTR,17) +#define CAN2_ID17 CAN_ID_REG(CAN2_BASE_PTR,17) +#define CAN2_WORD017 CAN_WORD0_REG(CAN2_BASE_PTR,17) +#define CAN2_WORD117 CAN_WORD1_REG(CAN2_BASE_PTR,17) +#define CAN2_CS18 CAN_CS_REG(CAN2_BASE_PTR,18) +#define CAN2_ID18 CAN_ID_REG(CAN2_BASE_PTR,18) +#define CAN2_WORD018 CAN_WORD0_REG(CAN2_BASE_PTR,18) +#define CAN2_WORD118 CAN_WORD1_REG(CAN2_BASE_PTR,18) +#define CAN2_CS19 CAN_CS_REG(CAN2_BASE_PTR,19) +#define CAN2_ID19 CAN_ID_REG(CAN2_BASE_PTR,19) +#define CAN2_WORD019 CAN_WORD0_REG(CAN2_BASE_PTR,19) +#define CAN2_WORD119 CAN_WORD1_REG(CAN2_BASE_PTR,19) +#define CAN2_CS20 CAN_CS_REG(CAN2_BASE_PTR,20) +#define CAN2_ID20 CAN_ID_REG(CAN2_BASE_PTR,20) +#define CAN2_WORD020 CAN_WORD0_REG(CAN2_BASE_PTR,20) +#define CAN2_WORD120 CAN_WORD1_REG(CAN2_BASE_PTR,20) +#define CAN2_CS21 CAN_CS_REG(CAN2_BASE_PTR,21) +#define CAN2_ID21 CAN_ID_REG(CAN2_BASE_PTR,21) +#define CAN2_WORD021 CAN_WORD0_REG(CAN2_BASE_PTR,21) +#define CAN2_WORD121 CAN_WORD1_REG(CAN2_BASE_PTR,21) +#define CAN2_CS22 CAN_CS_REG(CAN2_BASE_PTR,22) +#define CAN2_ID22 CAN_ID_REG(CAN2_BASE_PTR,22) +#define CAN2_WORD022 CAN_WORD0_REG(CAN2_BASE_PTR,22) +#define CAN2_WORD122 CAN_WORD1_REG(CAN2_BASE_PTR,22) +#define CAN2_CS23 CAN_CS_REG(CAN2_BASE_PTR,23) +#define CAN2_ID23 CAN_ID_REG(CAN2_BASE_PTR,23) +#define CAN2_WORD023 CAN_WORD0_REG(CAN2_BASE_PTR,23) +#define CAN2_WORD123 CAN_WORD1_REG(CAN2_BASE_PTR,23) +#define CAN2_CS24 CAN_CS_REG(CAN2_BASE_PTR,24) +#define CAN2_ID24 CAN_ID_REG(CAN2_BASE_PTR,24) +#define CAN2_WORD024 CAN_WORD0_REG(CAN2_BASE_PTR,24) +#define CAN2_WORD124 CAN_WORD1_REG(CAN2_BASE_PTR,24) +#define CAN2_CS25 CAN_CS_REG(CAN2_BASE_PTR,25) +#define CAN2_ID25 CAN_ID_REG(CAN2_BASE_PTR,25) +#define CAN2_WORD025 CAN_WORD0_REG(CAN2_BASE_PTR,25) +#define CAN2_WORD125 CAN_WORD1_REG(CAN2_BASE_PTR,25) +#define CAN2_CS26 CAN_CS_REG(CAN2_BASE_PTR,26) +#define CAN2_ID26 CAN_ID_REG(CAN2_BASE_PTR,26) +#define CAN2_WORD026 CAN_WORD0_REG(CAN2_BASE_PTR,26) +#define CAN2_WORD126 CAN_WORD1_REG(CAN2_BASE_PTR,26) +#define CAN2_CS27 CAN_CS_REG(CAN2_BASE_PTR,27) +#define CAN2_ID27 CAN_ID_REG(CAN2_BASE_PTR,27) +#define CAN2_WORD027 CAN_WORD0_REG(CAN2_BASE_PTR,27) +#define CAN2_WORD127 CAN_WORD1_REG(CAN2_BASE_PTR,27) +#define CAN2_CS28 CAN_CS_REG(CAN2_BASE_PTR,28) +#define CAN2_ID28 CAN_ID_REG(CAN2_BASE_PTR,28) +#define CAN2_WORD028 CAN_WORD0_REG(CAN2_BASE_PTR,28) +#define CAN2_WORD128 CAN_WORD1_REG(CAN2_BASE_PTR,28) +#define CAN2_CS29 CAN_CS_REG(CAN2_BASE_PTR,29) +#define CAN2_ID29 CAN_ID_REG(CAN2_BASE_PTR,29) +#define CAN2_WORD029 CAN_WORD0_REG(CAN2_BASE_PTR,29) +#define CAN2_WORD129 CAN_WORD1_REG(CAN2_BASE_PTR,29) +#define CAN2_CS30 CAN_CS_REG(CAN2_BASE_PTR,30) +#define CAN2_ID30 CAN_ID_REG(CAN2_BASE_PTR,30) +#define CAN2_WORD030 CAN_WORD0_REG(CAN2_BASE_PTR,30) +#define CAN2_WORD130 CAN_WORD1_REG(CAN2_BASE_PTR,30) +#define CAN2_CS31 CAN_CS_REG(CAN2_BASE_PTR,31) +#define CAN2_ID31 CAN_ID_REG(CAN2_BASE_PTR,31) +#define CAN2_WORD031 CAN_WORD0_REG(CAN2_BASE_PTR,31) +#define CAN2_WORD131 CAN_WORD1_REG(CAN2_BASE_PTR,31) +#define CAN2_CS32 CAN_CS_REG(CAN2_BASE_PTR,32) +#define CAN2_ID32 CAN_ID_REG(CAN2_BASE_PTR,32) +#define CAN2_WORD032 CAN_WORD0_REG(CAN2_BASE_PTR,32) +#define CAN2_WORD132 CAN_WORD1_REG(CAN2_BASE_PTR,32) +#define CAN2_CS33 CAN_CS_REG(CAN2_BASE_PTR,33) +#define CAN2_ID33 CAN_ID_REG(CAN2_BASE_PTR,33) +#define CAN2_WORD033 CAN_WORD0_REG(CAN2_BASE_PTR,33) +#define CAN2_WORD133 CAN_WORD1_REG(CAN2_BASE_PTR,33) +#define CAN2_CS34 CAN_CS_REG(CAN2_BASE_PTR,34) +#define CAN2_ID34 CAN_ID_REG(CAN2_BASE_PTR,34) +#define CAN2_WORD034 CAN_WORD0_REG(CAN2_BASE_PTR,34) +#define CAN2_WORD134 CAN_WORD1_REG(CAN2_BASE_PTR,34) +#define CAN2_CS35 CAN_CS_REG(CAN2_BASE_PTR,35) +#define CAN2_ID35 CAN_ID_REG(CAN2_BASE_PTR,35) +#define CAN2_WORD035 CAN_WORD0_REG(CAN2_BASE_PTR,35) +#define CAN2_WORD135 CAN_WORD1_REG(CAN2_BASE_PTR,35) +#define CAN2_CS36 CAN_CS_REG(CAN2_BASE_PTR,36) +#define CAN2_ID36 CAN_ID_REG(CAN2_BASE_PTR,36) +#define CAN2_WORD036 CAN_WORD0_REG(CAN2_BASE_PTR,36) +#define CAN2_WORD136 CAN_WORD1_REG(CAN2_BASE_PTR,36) +#define CAN2_CS37 CAN_CS_REG(CAN2_BASE_PTR,37) +#define CAN2_ID37 CAN_ID_REG(CAN2_BASE_PTR,37) +#define CAN2_WORD037 CAN_WORD0_REG(CAN2_BASE_PTR,37) +#define CAN2_WORD137 CAN_WORD1_REG(CAN2_BASE_PTR,37) +#define CAN2_CS38 CAN_CS_REG(CAN2_BASE_PTR,38) +#define CAN2_ID38 CAN_ID_REG(CAN2_BASE_PTR,38) +#define CAN2_WORD038 CAN_WORD0_REG(CAN2_BASE_PTR,38) +#define CAN2_WORD138 CAN_WORD1_REG(CAN2_BASE_PTR,38) +#define CAN2_CS39 CAN_CS_REG(CAN2_BASE_PTR,39) +#define CAN2_ID39 CAN_ID_REG(CAN2_BASE_PTR,39) +#define CAN2_WORD039 CAN_WORD0_REG(CAN2_BASE_PTR,39) +#define CAN2_WORD139 CAN_WORD1_REG(CAN2_BASE_PTR,39) +#define CAN2_CS40 CAN_CS_REG(CAN2_BASE_PTR,40) +#define CAN2_ID40 CAN_ID_REG(CAN2_BASE_PTR,40) +#define CAN2_WORD040 CAN_WORD0_REG(CAN2_BASE_PTR,40) +#define CAN2_WORD140 CAN_WORD1_REG(CAN2_BASE_PTR,40) +#define CAN2_CS41 CAN_CS_REG(CAN2_BASE_PTR,41) +#define CAN2_ID41 CAN_ID_REG(CAN2_BASE_PTR,41) +#define CAN2_WORD041 CAN_WORD0_REG(CAN2_BASE_PTR,41) +#define CAN2_WORD141 CAN_WORD1_REG(CAN2_BASE_PTR,41) +#define CAN2_CS42 CAN_CS_REG(CAN2_BASE_PTR,42) +#define CAN2_ID42 CAN_ID_REG(CAN2_BASE_PTR,42) +#define CAN2_WORD042 CAN_WORD0_REG(CAN2_BASE_PTR,42) +#define CAN2_WORD142 CAN_WORD1_REG(CAN2_BASE_PTR,42) +#define CAN2_CS43 CAN_CS_REG(CAN2_BASE_PTR,43) +#define CAN2_ID43 CAN_ID_REG(CAN2_BASE_PTR,43) +#define CAN2_WORD043 CAN_WORD0_REG(CAN2_BASE_PTR,43) +#define CAN2_WORD143 CAN_WORD1_REG(CAN2_BASE_PTR,43) +#define CAN2_CS44 CAN_CS_REG(CAN2_BASE_PTR,44) +#define CAN2_ID44 CAN_ID_REG(CAN2_BASE_PTR,44) +#define CAN2_WORD044 CAN_WORD0_REG(CAN2_BASE_PTR,44) +#define CAN2_WORD144 CAN_WORD1_REG(CAN2_BASE_PTR,44) +#define CAN2_CS45 CAN_CS_REG(CAN2_BASE_PTR,45) +#define CAN2_ID45 CAN_ID_REG(CAN2_BASE_PTR,45) +#define CAN2_WORD045 CAN_WORD0_REG(CAN2_BASE_PTR,45) +#define CAN2_WORD145 CAN_WORD1_REG(CAN2_BASE_PTR,45) +#define CAN2_CS46 CAN_CS_REG(CAN2_BASE_PTR,46) +#define CAN2_ID46 CAN_ID_REG(CAN2_BASE_PTR,46) +#define CAN2_WORD046 CAN_WORD0_REG(CAN2_BASE_PTR,46) +#define CAN2_WORD146 CAN_WORD1_REG(CAN2_BASE_PTR,46) +#define CAN2_CS47 CAN_CS_REG(CAN2_BASE_PTR,47) +#define CAN2_ID47 CAN_ID_REG(CAN2_BASE_PTR,47) +#define CAN2_WORD047 CAN_WORD0_REG(CAN2_BASE_PTR,47) +#define CAN2_WORD147 CAN_WORD1_REG(CAN2_BASE_PTR,47) +#define CAN2_CS48 CAN_CS_REG(CAN2_BASE_PTR,48) +#define CAN2_ID48 CAN_ID_REG(CAN2_BASE_PTR,48) +#define CAN2_WORD048 CAN_WORD0_REG(CAN2_BASE_PTR,48) +#define CAN2_WORD148 CAN_WORD1_REG(CAN2_BASE_PTR,48) +#define CAN2_CS49 CAN_CS_REG(CAN2_BASE_PTR,49) +#define CAN2_ID49 CAN_ID_REG(CAN2_BASE_PTR,49) +#define CAN2_WORD049 CAN_WORD0_REG(CAN2_BASE_PTR,49) +#define CAN2_WORD149 CAN_WORD1_REG(CAN2_BASE_PTR,49) +#define CAN2_CS50 CAN_CS_REG(CAN2_BASE_PTR,50) +#define CAN2_ID50 CAN_ID_REG(CAN2_BASE_PTR,50) +#define CAN2_WORD050 CAN_WORD0_REG(CAN2_BASE_PTR,50) +#define CAN2_WORD150 CAN_WORD1_REG(CAN2_BASE_PTR,50) +#define CAN2_CS51 CAN_CS_REG(CAN2_BASE_PTR,51) +#define CAN2_ID51 CAN_ID_REG(CAN2_BASE_PTR,51) +#define CAN2_WORD051 CAN_WORD0_REG(CAN2_BASE_PTR,51) +#define CAN2_WORD151 CAN_WORD1_REG(CAN2_BASE_PTR,51) +#define CAN2_CS52 CAN_CS_REG(CAN2_BASE_PTR,52) +#define CAN2_ID52 CAN_ID_REG(CAN2_BASE_PTR,52) +#define CAN2_WORD052 CAN_WORD0_REG(CAN2_BASE_PTR,52) +#define CAN2_WORD152 CAN_WORD1_REG(CAN2_BASE_PTR,52) +#define CAN2_CS53 CAN_CS_REG(CAN2_BASE_PTR,53) +#define CAN2_ID53 CAN_ID_REG(CAN2_BASE_PTR,53) +#define CAN2_WORD053 CAN_WORD0_REG(CAN2_BASE_PTR,53) +#define CAN2_WORD153 CAN_WORD1_REG(CAN2_BASE_PTR,53) +#define CAN2_CS54 CAN_CS_REG(CAN2_BASE_PTR,54) +#define CAN2_ID54 CAN_ID_REG(CAN2_BASE_PTR,54) +#define CAN2_WORD054 CAN_WORD0_REG(CAN2_BASE_PTR,54) +#define CAN2_WORD154 CAN_WORD1_REG(CAN2_BASE_PTR,54) +#define CAN2_CS55 CAN_CS_REG(CAN2_BASE_PTR,55) +#define CAN2_ID55 CAN_ID_REG(CAN2_BASE_PTR,55) +#define CAN2_WORD055 CAN_WORD0_REG(CAN2_BASE_PTR,55) +#define CAN2_WORD155 CAN_WORD1_REG(CAN2_BASE_PTR,55) +#define CAN2_CS56 CAN_CS_REG(CAN2_BASE_PTR,56) +#define CAN2_ID56 CAN_ID_REG(CAN2_BASE_PTR,56) +#define CAN2_WORD056 CAN_WORD0_REG(CAN2_BASE_PTR,56) +#define CAN2_WORD156 CAN_WORD1_REG(CAN2_BASE_PTR,56) +#define CAN2_CS57 CAN_CS_REG(CAN2_BASE_PTR,57) +#define CAN2_ID57 CAN_ID_REG(CAN2_BASE_PTR,57) +#define CAN2_WORD057 CAN_WORD0_REG(CAN2_BASE_PTR,57) +#define CAN2_WORD157 CAN_WORD1_REG(CAN2_BASE_PTR,57) +#define CAN2_CS58 CAN_CS_REG(CAN2_BASE_PTR,58) +#define CAN2_ID58 CAN_ID_REG(CAN2_BASE_PTR,58) +#define CAN2_WORD058 CAN_WORD0_REG(CAN2_BASE_PTR,58) +#define CAN2_WORD158 CAN_WORD1_REG(CAN2_BASE_PTR,58) +#define CAN2_CS59 CAN_CS_REG(CAN2_BASE_PTR,59) +#define CAN2_ID59 CAN_ID_REG(CAN2_BASE_PTR,59) +#define CAN2_WORD059 CAN_WORD0_REG(CAN2_BASE_PTR,59) +#define CAN2_WORD159 CAN_WORD1_REG(CAN2_BASE_PTR,59) +#define CAN2_CS60 CAN_CS_REG(CAN2_BASE_PTR,60) +#define CAN2_ID60 CAN_ID_REG(CAN2_BASE_PTR,60) +#define CAN2_WORD060 CAN_WORD0_REG(CAN2_BASE_PTR,60) +#define CAN2_WORD160 CAN_WORD1_REG(CAN2_BASE_PTR,60) +#define CAN2_CS61 CAN_CS_REG(CAN2_BASE_PTR,61) +#define CAN2_ID61 CAN_ID_REG(CAN2_BASE_PTR,61) +#define CAN2_WORD061 CAN_WORD0_REG(CAN2_BASE_PTR,61) +#define CAN2_WORD161 CAN_WORD1_REG(CAN2_BASE_PTR,61) +#define CAN2_CS62 CAN_CS_REG(CAN2_BASE_PTR,62) +#define CAN2_ID62 CAN_ID_REG(CAN2_BASE_PTR,62) +#define CAN2_WORD062 CAN_WORD0_REG(CAN2_BASE_PTR,62) +#define CAN2_WORD162 CAN_WORD1_REG(CAN2_BASE_PTR,62) +#define CAN2_CS63 CAN_CS_REG(CAN2_BASE_PTR,63) +#define CAN2_ID63 CAN_ID_REG(CAN2_BASE_PTR,63) +#define CAN2_WORD063 CAN_WORD0_REG(CAN2_BASE_PTR,63) +#define CAN2_WORD163 CAN_WORD1_REG(CAN2_BASE_PTR,63) +#define CAN2_RXIMR0 CAN_RXIMR_REG(CAN2_BASE_PTR,0) +#define CAN2_RXIMR1 CAN_RXIMR_REG(CAN2_BASE_PTR,1) +#define CAN2_RXIMR2 CAN_RXIMR_REG(CAN2_BASE_PTR,2) +#define CAN2_RXIMR3 CAN_RXIMR_REG(CAN2_BASE_PTR,3) +#define CAN2_RXIMR4 CAN_RXIMR_REG(CAN2_BASE_PTR,4) +#define CAN2_RXIMR5 CAN_RXIMR_REG(CAN2_BASE_PTR,5) +#define CAN2_RXIMR6 CAN_RXIMR_REG(CAN2_BASE_PTR,6) +#define CAN2_RXIMR7 CAN_RXIMR_REG(CAN2_BASE_PTR,7) +#define CAN2_RXIMR8 CAN_RXIMR_REG(CAN2_BASE_PTR,8) +#define CAN2_RXIMR9 CAN_RXIMR_REG(CAN2_BASE_PTR,9) +#define CAN2_RXIMR10 CAN_RXIMR_REG(CAN2_BASE_PTR,10) +#define CAN2_RXIMR11 CAN_RXIMR_REG(CAN2_BASE_PTR,11) +#define CAN2_RXIMR12 CAN_RXIMR_REG(CAN2_BASE_PTR,12) +#define CAN2_RXIMR13 CAN_RXIMR_REG(CAN2_BASE_PTR,13) +#define CAN2_RXIMR14 CAN_RXIMR_REG(CAN2_BASE_PTR,14) +#define CAN2_RXIMR15 CAN_RXIMR_REG(CAN2_BASE_PTR,15) +#define CAN2_RXIMR16 CAN_RXIMR_REG(CAN2_BASE_PTR,16) +#define CAN2_RXIMR17 CAN_RXIMR_REG(CAN2_BASE_PTR,17) +#define CAN2_RXIMR18 CAN_RXIMR_REG(CAN2_BASE_PTR,18) +#define CAN2_RXIMR19 CAN_RXIMR_REG(CAN2_BASE_PTR,19) +#define CAN2_RXIMR20 CAN_RXIMR_REG(CAN2_BASE_PTR,20) +#define CAN2_RXIMR21 CAN_RXIMR_REG(CAN2_BASE_PTR,21) +#define CAN2_RXIMR22 CAN_RXIMR_REG(CAN2_BASE_PTR,22) +#define CAN2_RXIMR23 CAN_RXIMR_REG(CAN2_BASE_PTR,23) +#define CAN2_RXIMR24 CAN_RXIMR_REG(CAN2_BASE_PTR,24) +#define CAN2_RXIMR25 CAN_RXIMR_REG(CAN2_BASE_PTR,25) +#define CAN2_RXIMR26 CAN_RXIMR_REG(CAN2_BASE_PTR,26) +#define CAN2_RXIMR27 CAN_RXIMR_REG(CAN2_BASE_PTR,27) +#define CAN2_RXIMR28 CAN_RXIMR_REG(CAN2_BASE_PTR,28) +#define CAN2_RXIMR29 CAN_RXIMR_REG(CAN2_BASE_PTR,29) +#define CAN2_RXIMR30 CAN_RXIMR_REG(CAN2_BASE_PTR,30) +#define CAN2_RXIMR31 CAN_RXIMR_REG(CAN2_BASE_PTR,31) +#define CAN2_RXIMR32 CAN_RXIMR_REG(CAN2_BASE_PTR,32) +#define CAN2_RXIMR33 CAN_RXIMR_REG(CAN2_BASE_PTR,33) +#define CAN2_RXIMR34 CAN_RXIMR_REG(CAN2_BASE_PTR,34) +#define CAN2_RXIMR35 CAN_RXIMR_REG(CAN2_BASE_PTR,35) +#define CAN2_RXIMR36 CAN_RXIMR_REG(CAN2_BASE_PTR,36) +#define CAN2_RXIMR37 CAN_RXIMR_REG(CAN2_BASE_PTR,37) +#define CAN2_RXIMR38 CAN_RXIMR_REG(CAN2_BASE_PTR,38) +#define CAN2_RXIMR39 CAN_RXIMR_REG(CAN2_BASE_PTR,39) +#define CAN2_RXIMR40 CAN_RXIMR_REG(CAN2_BASE_PTR,40) +#define CAN2_RXIMR41 CAN_RXIMR_REG(CAN2_BASE_PTR,41) +#define CAN2_RXIMR42 CAN_RXIMR_REG(CAN2_BASE_PTR,42) +#define CAN2_RXIMR43 CAN_RXIMR_REG(CAN2_BASE_PTR,43) +#define CAN2_RXIMR44 CAN_RXIMR_REG(CAN2_BASE_PTR,44) +#define CAN2_RXIMR45 CAN_RXIMR_REG(CAN2_BASE_PTR,45) +#define CAN2_RXIMR46 CAN_RXIMR_REG(CAN2_BASE_PTR,46) +#define CAN2_RXIMR47 CAN_RXIMR_REG(CAN2_BASE_PTR,47) +#define CAN2_RXIMR48 CAN_RXIMR_REG(CAN2_BASE_PTR,48) +#define CAN2_RXIMR49 CAN_RXIMR_REG(CAN2_BASE_PTR,49) +#define CAN2_RXIMR50 CAN_RXIMR_REG(CAN2_BASE_PTR,50) +#define CAN2_RXIMR51 CAN_RXIMR_REG(CAN2_BASE_PTR,51) +#define CAN2_RXIMR52 CAN_RXIMR_REG(CAN2_BASE_PTR,52) +#define CAN2_RXIMR53 CAN_RXIMR_REG(CAN2_BASE_PTR,53) +#define CAN2_RXIMR54 CAN_RXIMR_REG(CAN2_BASE_PTR,54) +#define CAN2_RXIMR55 CAN_RXIMR_REG(CAN2_BASE_PTR,55) +#define CAN2_RXIMR56 CAN_RXIMR_REG(CAN2_BASE_PTR,56) +#define CAN2_RXIMR57 CAN_RXIMR_REG(CAN2_BASE_PTR,57) +#define CAN2_RXIMR58 CAN_RXIMR_REG(CAN2_BASE_PTR,58) +#define CAN2_RXIMR59 CAN_RXIMR_REG(CAN2_BASE_PTR,59) +#define CAN2_RXIMR60 CAN_RXIMR_REG(CAN2_BASE_PTR,60) +#define CAN2_RXIMR61 CAN_RXIMR_REG(CAN2_BASE_PTR,61) +#define CAN2_RXIMR62 CAN_RXIMR_REG(CAN2_BASE_PTR,62) +#define CAN2_RXIMR63 CAN_RXIMR_REG(CAN2_BASE_PTR,63) #define CAN2_GFWR CAN_GFWR_REG(CAN2_BASE_PTR) - +/* CAN - Register array accessors */ +#define CAN1_CS(index) CAN_CS_REG(CAN1_BASE_PTR,index) +#define CAN2_CS(index) CAN_CS_REG(CAN2_BASE_PTR,index) +#define CAN1_ID(index) CAN_ID_REG(CAN1_BASE_PTR,index) +#define CAN2_ID(index) CAN_ID_REG(CAN2_BASE_PTR,index) +#define CAN1_WORD0(index) CAN_WORD0_REG(CAN1_BASE_PTR,index) +#define CAN2_WORD0(index) CAN_WORD0_REG(CAN2_BASE_PTR,index) +#define CAN1_WORD1(index) CAN_WORD1_REG(CAN1_BASE_PTR,index) +#define CAN2_WORD1(index) CAN_WORD1_REG(CAN2_BASE_PTR,index) +#define CAN1_RXIMR(index) CAN_RXIMR_REG(CAN1_BASE_PTR,index) +#define CAN2_RXIMR(index) CAN_RXIMR_REG(CAN2_BASE_PTR,index) /*! * @} */ /* end of group CAN_Register_Accessor_Macros */ @@ -3903,7 +4519,6 @@ typedef struct { * @} */ /* end of group CAN_Peripheral */ - /* ---------------------------------------------------------------------------- -- CCM Peripheral Access Layer ---------------------------------------------------------------------------- */ @@ -3919,3085 +4534,45 @@ typedef struct { __IO uint32_t GPR0_SET; /**< General Purpose Register, offset: 0x4 */ __IO uint32_t GPR0_CLR; /**< General Purpose Register, offset: 0x8 */ __IO uint32_t GPR0_TOG; /**< General Purpose Register, offset: 0xC */ - uint8_t RESERVED[2032]; - __IO uint32_t PLL_CTRL0; /**< CCM PLL Control Register, offset: 0x800 */ - __IO uint32_t PLL_CTRL0_SET; /**< CCM PLL Control Register, offset: 0x804 */ - __IO uint32_t PLL_CTRL0_CLR; /**< CCM PLL Control Register, offset: 0x808 */ - __IO uint32_t PLL_CTRL0_TOG; /**< CCM PLL Control Register, offset: 0x80C */ - __IO uint32_t PLL_CTRL1; /**< CCM PLL Control Register, offset: 0x810 */ - __IO uint32_t PLL_CTRL1_SET; /**< CCM PLL Control Register, offset: 0x814 */ - __IO uint32_t PLL_CTRL1_CLR; /**< CCM PLL Control Register, offset: 0x818 */ - __IO uint32_t PLL_CTRL1_TOG; /**< CCM PLL Control Register, offset: 0x81C */ - __IO uint32_t PLL_CTRL2; /**< CCM PLL Control Register, offset: 0x820 */ - __IO uint32_t PLL_CTRL2_SET; /**< CCM PLL Control Register, offset: 0x824 */ - __IO uint32_t PLL_CTRL2_CLR; /**< CCM PLL Control Register, offset: 0x828 */ - __IO uint32_t PLL_CTRL2_TOG; /**< CCM PLL Control Register, offset: 0x82C */ - __IO uint32_t PLL_CTRL3; /**< CCM PLL Control Register, offset: 0x830 */ - __IO uint32_t PLL_CTRL3_SET; /**< CCM PLL Control Register, offset: 0x834 */ - __IO uint32_t PLL_CTRL3_CLR; /**< CCM PLL Control Register, offset: 0x838 */ - __IO uint32_t PLL_CTRL3_TOG; /**< CCM PLL Control Register, offset: 0x83C */ - __IO uint32_t PLL_CTRL4; /**< CCM PLL Control Register, offset: 0x840 */ - __IO uint32_t PLL_CTRL4_SET; /**< CCM PLL Control Register, offset: 0x844 */ - __IO uint32_t PLL_CTRL4_CLR; /**< CCM PLL Control Register, offset: 0x848 */ - __IO uint32_t PLL_CTRL4_TOG; /**< CCM PLL Control Register, offset: 0x84C */ - __IO uint32_t PLL_CTRL5; /**< CCM PLL Control Register, offset: 0x850 */ - __IO uint32_t PLL_CTRL5_SET; /**< CCM PLL Control Register, offset: 0x854 */ - __IO uint32_t PLL_CTRL5_CLR; /**< CCM PLL Control Register, offset: 0x858 */ - __IO uint32_t PLL_CTRL5_TOG; /**< CCM PLL Control Register, offset: 0x85C */ - __IO uint32_t PLL_CTRL6; /**< CCM PLL Control Register, offset: 0x860 */ - __IO uint32_t PLL_CTRL6_SET; /**< CCM PLL Control Register, offset: 0x864 */ - __IO uint32_t PLL_CTRL6_CLR; /**< CCM PLL Control Register, offset: 0x868 */ - __IO uint32_t PLL_CTRL6_TOG; /**< CCM PLL Control Register, offset: 0x86C */ - __IO uint32_t PLL_CTRL7; /**< CCM PLL Control Register, offset: 0x870 */ - __IO uint32_t PLL_CTRL7_SET; /**< CCM PLL Control Register, offset: 0x874 */ - __IO uint32_t PLL_CTRL7_CLR; /**< CCM PLL Control Register, offset: 0x878 */ - __IO uint32_t PLL_CTRL7_TOG; /**< CCM PLL Control Register, offset: 0x87C */ - __IO uint32_t PLL_CTRL8; /**< CCM PLL Control Register, offset: 0x880 */ - __IO uint32_t PLL_CTRL8_SET; /**< CCM PLL Control Register, offset: 0x884 */ - __IO uint32_t PLL_CTRL8_CLR; /**< CCM PLL Control Register, offset: 0x888 */ - __IO uint32_t PLL_CTRL8_TOG; /**< CCM PLL Control Register, offset: 0x88C */ - __IO uint32_t PLL_CTRL9; /**< CCM PLL Control Register, offset: 0x890 */ - __IO uint32_t PLL_CTRL9_SET; /**< CCM PLL Control Register, offset: 0x894 */ - __IO uint32_t PLL_CTRL9_CLR; /**< CCM PLL Control Register, offset: 0x898 */ - __IO uint32_t PLL_CTRL9_TOG; /**< CCM PLL Control Register, offset: 0x89C */ - __IO uint32_t PLL_CTRL10; /**< CCM PLL Control Register, offset: 0x8A0 */ - __IO uint32_t PLL_CTRL10_SET; /**< CCM PLL Control Register, offset: 0x8A4 */ - __IO uint32_t PLL_CTRL10_CLR; /**< CCM PLL Control Register, offset: 0x8A8 */ - __IO uint32_t PLL_CTRL10_TOG; /**< CCM PLL Control Register, offset: 0x8AC */ - __IO uint32_t PLL_CTRL11; /**< CCM PLL Control Register, offset: 0x8B0 */ - __IO uint32_t PLL_CTRL11_SET; /**< CCM PLL Control Register, offset: 0x8B4 */ - __IO uint32_t PLL_CTRL11_CLR; /**< CCM PLL Control Register, offset: 0x8B8 */ - __IO uint32_t PLL_CTRL11_TOG; /**< CCM PLL Control Register, offset: 0x8BC */ - __IO uint32_t PLL_CTRL12; /**< CCM PLL Control Register, offset: 0x8C0 */ - __IO uint32_t PLL_CTRL12_SET; /**< CCM PLL Control Register, offset: 0x8C4 */ - __IO uint32_t PLL_CTRL12_CLR; /**< CCM PLL Control Register, offset: 0x8C8 */ - __IO uint32_t PLL_CTRL12_TOG; /**< CCM PLL Control Register, offset: 0x8CC */ - __IO uint32_t PLL_CTRL13; /**< CCM PLL Control Register, offset: 0x8D0 */ - __IO uint32_t PLL_CTRL13_SET; /**< CCM PLL Control Register, offset: 0x8D4 */ - __IO uint32_t PLL_CTRL13_CLR; /**< CCM PLL Control Register, offset: 0x8D8 */ - __IO uint32_t PLL_CTRL13_TOG; /**< CCM PLL Control Register, offset: 0x8DC */ - __IO uint32_t PLL_CTRL14; /**< CCM PLL Control Register, offset: 0x8E0 */ - __IO uint32_t PLL_CTRL14_SET; /**< CCM PLL Control Register, offset: 0x8E4 */ - __IO uint32_t PLL_CTRL14_CLR; /**< CCM PLL Control Register, offset: 0x8E8 */ - __IO uint32_t PLL_CTRL14_TOG; /**< CCM PLL Control Register, offset: 0x8EC */ - __IO uint32_t PLL_CTRL15; /**< CCM PLL Control Register, offset: 0x8F0 */ - __IO uint32_t PLL_CTRL15_SET; /**< CCM PLL Control Register, offset: 0x8F4 */ - __IO uint32_t PLL_CTRL15_CLR; /**< CCM PLL Control Register, offset: 0x8F8 */ - __IO uint32_t PLL_CTRL15_TOG; /**< CCM PLL Control Register, offset: 0x8FC */ - __IO uint32_t PLL_CTRL16; /**< CCM PLL Control Register, offset: 0x900 */ - __IO uint32_t PLL_CTRL16_SET; /**< CCM PLL Control Register, offset: 0x904 */ - __IO uint32_t PLL_CTRL16_CLR; /**< CCM PLL Control Register, offset: 0x908 */ - __IO uint32_t PLL_CTRL16_TOG; /**< CCM PLL Control Register, offset: 0x90C */ - __IO uint32_t PLL_CTRL17; /**< CCM PLL Control Register, offset: 0x910 */ - __IO uint32_t PLL_CTRL17_SET; /**< CCM PLL Control Register, offset: 0x914 */ - __IO uint32_t PLL_CTRL17_CLR; /**< CCM PLL Control Register, offset: 0x918 */ - __IO uint32_t PLL_CTRL17_TOG; /**< CCM PLL Control Register, offset: 0x91C */ - __IO uint32_t PLL_CTRL18; /**< CCM PLL Control Register, offset: 0x920 */ - __IO uint32_t PLL_CTRL18_SET; /**< CCM PLL Control Register, offset: 0x924 */ - __IO uint32_t PLL_CTRL18_CLR; /**< CCM PLL Control Register, offset: 0x928 */ - __IO uint32_t PLL_CTRL18_TOG; /**< CCM PLL Control Register, offset: 0x92C */ - __IO uint32_t PLL_CTRL19; /**< CCM PLL Control Register, offset: 0x930 */ - __IO uint32_t PLL_CTRL19_SET; /**< CCM PLL Control Register, offset: 0x934 */ - __IO uint32_t PLL_CTRL19_CLR; /**< CCM PLL Control Register, offset: 0x938 */ - __IO uint32_t PLL_CTRL19_TOG; /**< CCM PLL Control Register, offset: 0x93C */ - __IO uint32_t PLL_CTRL20; /**< CCM PLL Control Register, offset: 0x940 */ - __IO uint32_t PLL_CTRL20_SET; /**< CCM PLL Control Register, offset: 0x944 */ - __IO uint32_t PLL_CTRL20_CLR; /**< CCM PLL Control Register, offset: 0x948 */ - __IO uint32_t PLL_CTRL20_TOG; /**< CCM PLL Control Register, offset: 0x94C */ - __IO uint32_t PLL_CTRL21; /**< CCM PLL Control Register, offset: 0x950 */ - __IO uint32_t PLL_CTRL21_SET; /**< CCM PLL Control Register, offset: 0x954 */ - __IO uint32_t PLL_CTRL21_CLR; /**< CCM PLL Control Register, offset: 0x958 */ - __IO uint32_t PLL_CTRL21_TOG; /**< CCM PLL Control Register, offset: 0x95C */ - __IO uint32_t PLL_CTRL22; /**< CCM PLL Control Register, offset: 0x960 */ - __IO uint32_t PLL_CTRL22_SET; /**< CCM PLL Control Register, offset: 0x964 */ - __IO uint32_t PLL_CTRL22_CLR; /**< CCM PLL Control Register, offset: 0x968 */ - __IO uint32_t PLL_CTRL22_TOG; /**< CCM PLL Control Register, offset: 0x96C */ - __IO uint32_t PLL_CTRL23; /**< CCM PLL Control Register, offset: 0x970 */ - __IO uint32_t PLL_CTRL23_SET; /**< CCM PLL Control Register, offset: 0x974 */ - __IO uint32_t PLL_CTRL23_CLR; /**< CCM PLL Control Register, offset: 0x978 */ - __IO uint32_t PLL_CTRL23_TOG; /**< CCM PLL Control Register, offset: 0x97C */ - __IO uint32_t PLL_CTRL24; /**< CCM PLL Control Register, offset: 0x980 */ - __IO uint32_t PLL_CTRL24_SET; /**< CCM PLL Control Register, offset: 0x984 */ - __IO uint32_t PLL_CTRL24_CLR; /**< CCM PLL Control Register, offset: 0x988 */ - __IO uint32_t PLL_CTRL24_TOG; /**< CCM PLL Control Register, offset: 0x98C */ - __IO uint32_t PLL_CTRL25; /**< CCM PLL Control Register, offset: 0x990 */ - __IO uint32_t PLL_CTRL25_SET; /**< CCM PLL Control Register, offset: 0x994 */ - __IO uint32_t PLL_CTRL25_CLR; /**< CCM PLL Control Register, offset: 0x998 */ - __IO uint32_t PLL_CTRL25_TOG; /**< CCM PLL Control Register, offset: 0x99C */ - __IO uint32_t PLL_CTRL26; /**< CCM PLL Control Register, offset: 0x9A0 */ - __IO uint32_t PLL_CTRL26_SET; /**< CCM PLL Control Register, offset: 0x9A4 */ - __IO uint32_t PLL_CTRL26_CLR; /**< CCM PLL Control Register, offset: 0x9A8 */ - __IO uint32_t PLL_CTRL26_TOG; /**< CCM PLL Control Register, offset: 0x9AC */ - __IO uint32_t PLL_CTRL27; /**< CCM PLL Control Register, offset: 0x9B0 */ - __IO uint32_t PLL_CTRL27_SET; /**< CCM PLL Control Register, offset: 0x9B4 */ - __IO uint32_t PLL_CTRL27_CLR; /**< CCM PLL Control Register, offset: 0x9B8 */ - __IO uint32_t PLL_CTRL27_TOG; /**< CCM PLL Control Register, offset: 0x9BC */ - __IO uint32_t PLL_CTRL28; /**< CCM PLL Control Register, offset: 0x9C0 */ - __IO uint32_t PLL_CTRL28_SET; /**< CCM PLL Control Register, offset: 0x9C4 */ - __IO uint32_t PLL_CTRL28_CLR; /**< CCM PLL Control Register, offset: 0x9C8 */ - __IO uint32_t PLL_CTRL28_TOG; /**< CCM PLL Control Register, offset: 0x9CC */ - __IO uint32_t PLL_CTRL29; /**< CCM PLL Control Register, offset: 0x9D0 */ - __IO uint32_t PLL_CTRL29_SET; /**< CCM PLL Control Register, offset: 0x9D4 */ - __IO uint32_t PLL_CTRL29_CLR; /**< CCM PLL Control Register, offset: 0x9D8 */ - __IO uint32_t PLL_CTRL29_TOG; /**< CCM PLL Control Register, offset: 0x9DC */ - __IO uint32_t PLL_CTRL30; /**< CCM PLL Control Register, offset: 0x9E0 */ - __IO uint32_t PLL_CTRL30_SET; /**< CCM PLL Control Register, offset: 0x9E4 */ - __IO uint32_t PLL_CTRL30_CLR; /**< CCM PLL Control Register, offset: 0x9E8 */ - __IO uint32_t PLL_CTRL30_TOG; /**< CCM PLL Control Register, offset: 0x9EC */ - __IO uint32_t PLL_CTRL31; /**< CCM PLL Control Register, offset: 0x9F0 */ - __IO uint32_t PLL_CTRL31_SET; /**< CCM PLL Control Register, offset: 0x9F4 */ - __IO uint32_t PLL_CTRL31_CLR; /**< CCM PLL Control Register, offset: 0x9F8 */ - __IO uint32_t PLL_CTRL31_TOG; /**< CCM PLL Control Register, offset: 0x9FC */ - __IO uint32_t PLL_CTRL32; /**< CCM PLL Control Register, offset: 0xA00 */ - __IO uint32_t PLL_CTRL32_SET; /**< CCM PLL Control Register, offset: 0xA04 */ - __IO uint32_t PLL_CTRL32_CLR; /**< CCM PLL Control Register, offset: 0xA08 */ - __IO uint32_t PLL_CTRL32_TOG; /**< CCM PLL Control Register, offset: 0xA0C */ - uint8_t RESERVED_0[13808]; - __IO uint32_t CCGR0; /**< CCM Clock Gating Register, offset: 0x4000 */ - __IO uint32_t CCGR0_SET; /**< CCM Clock Gating Register, offset: 0x4004 */ - __IO uint32_t CCGR0_CLR; /**< CCM Clock Gating Register, offset: 0x4008 */ - __IO uint32_t CCGR0_TOG; /**< CCM Clock Gating Register, offset: 0x400C */ - __IO uint32_t CCGR1; /**< CCM Clock Gating Register, offset: 0x4010 */ - __IO uint32_t CCGR1_SET; /**< CCM Clock Gating Register, offset: 0x4014 */ - __IO uint32_t CCGR1_CLR; /**< CCM Clock Gating Register, offset: 0x4018 */ - __IO uint32_t CCGR1_TOG; /**< CCM Clock Gating Register, offset: 0x401C */ - __IO uint32_t CCGR2; /**< CCM Clock Gating Register, offset: 0x4020 */ - __IO uint32_t CCGR2_SET; /**< CCM Clock Gating Register, offset: 0x4024 */ - __IO uint32_t CCGR2_CLR; /**< CCM Clock Gating Register, offset: 0x4028 */ - __IO uint32_t CCGR2_TOG; /**< CCM Clock Gating Register, offset: 0x402C */ - __IO uint32_t CCGR3; /**< CCM Clock Gating Register, offset: 0x4030 */ - __IO uint32_t CCGR3_SET; /**< CCM Clock Gating Register, offset: 0x4034 */ - __IO uint32_t CCGR3_CLR; /**< CCM Clock Gating Register, offset: 0x4038 */ - __IO uint32_t CCGR3_TOG; /**< CCM Clock Gating Register, offset: 0x403C */ - __IO uint32_t CCGR4; /**< CCM Clock Gating Register, offset: 0x4040 */ - __IO uint32_t CCGR4_SET; /**< CCM Clock Gating Register, offset: 0x4044 */ - __IO uint32_t CCGR4_CLR; /**< CCM Clock Gating Register, offset: 0x4048 */ - __IO uint32_t CCGR4_TOG; /**< CCM Clock Gating Register, offset: 0x404C */ - __IO uint32_t CCGR5; /**< CCM Clock Gating Register, offset: 0x4050 */ - __IO uint32_t CCGR5_SET; /**< CCM Clock Gating Register, offset: 0x4054 */ - __IO uint32_t CCGR5_CLR; /**< CCM Clock Gating Register, offset: 0x4058 */ - __IO uint32_t CCGR5_TOG; /**< CCM Clock Gating Register, offset: 0x405C */ - __IO uint32_t CCGR6; /**< CCM Clock Gating Register, offset: 0x4060 */ - __IO uint32_t CCGR6_SET; /**< CCM Clock Gating Register, offset: 0x4064 */ - __IO uint32_t CCGR6_CLR; /**< CCM Clock Gating Register, offset: 0x4068 */ - __IO uint32_t CCGR6_TOG; /**< CCM Clock Gating Register, offset: 0x406C */ - __IO uint32_t CCGR7; /**< CCM Clock Gating Register, offset: 0x4070 */ - __IO uint32_t CCGR7_SET; /**< CCM Clock Gating Register, offset: 0x4074 */ - __IO uint32_t CCGR7_CLR; /**< CCM Clock Gating Register, offset: 0x4078 */ - __IO uint32_t CCGR7_TOG; /**< CCM Clock Gating Register, offset: 0x407C */ - __IO uint32_t CCGR8; /**< CCM Clock Gating Register, offset: 0x4080 */ - __IO uint32_t CCGR8_SET; /**< CCM Clock Gating Register, offset: 0x4084 */ - __IO uint32_t CCGR8_CLR; /**< CCM Clock Gating Register, offset: 0x4088 */ - __IO uint32_t CCGR8_TOG; /**< CCM Clock Gating Register, offset: 0x408C */ - __IO uint32_t CCGR9; /**< CCM Clock Gating Register, offset: 0x4090 */ - __IO uint32_t CCGR9_SET; /**< CCM Clock Gating Register, offset: 0x4094 */ - __IO uint32_t CCGR9_CLR; /**< CCM Clock Gating Register, offset: 0x4098 */ - __IO uint32_t CCGR9_TOG; /**< CCM Clock Gating Register, offset: 0x409C */ - __IO uint32_t CCGR10; /**< CCM Clock Gating Register, offset: 0x40A0 */ - __IO uint32_t CCGR10_SET; /**< CCM Clock Gating Register, offset: 0x40A4 */ - __IO uint32_t CCGR10_CLR; /**< CCM Clock Gating Register, offset: 0x40A8 */ - __IO uint32_t CCGR10_TOG; /**< CCM Clock Gating Register, offset: 0x40AC */ - __IO uint32_t CCGR11; /**< CCM Clock Gating Register, offset: 0x40B0 */ - __IO uint32_t CCGR11_SET; /**< CCM Clock Gating Register, offset: 0x40B4 */ - __IO uint32_t CCGR11_CLR; /**< CCM Clock Gating Register, offset: 0x40B8 */ - __IO uint32_t CCGR11_TOG; /**< CCM Clock Gating Register, offset: 0x40BC */ - __IO uint32_t CCGR12; /**< CCM Clock Gating Register, offset: 0x40C0 */ - __IO uint32_t CCGR12_SET; /**< CCM Clock Gating Register, offset: 0x40C4 */ - __IO uint32_t CCGR12_CLR; /**< CCM Clock Gating Register, offset: 0x40C8 */ - __IO uint32_t CCGR12_TOG; /**< CCM Clock Gating Register, offset: 0x40CC */ - __IO uint32_t CCGR13; /**< CCM Clock Gating Register, offset: 0x40D0 */ - __IO uint32_t CCGR13_SET; /**< CCM Clock Gating Register, offset: 0x40D4 */ - __IO uint32_t CCGR13_CLR; /**< CCM Clock Gating Register, offset: 0x40D8 */ - __IO uint32_t CCGR13_TOG; /**< CCM Clock Gating Register, offset: 0x40DC */ - __IO uint32_t CCGR14; /**< CCM Clock Gating Register, offset: 0x40E0 */ - __IO uint32_t CCGR14_SET; /**< CCM Clock Gating Register, offset: 0x40E4 */ - __IO uint32_t CCGR14_CLR; /**< CCM Clock Gating Register, offset: 0x40E8 */ - __IO uint32_t CCGR14_TOG; /**< CCM Clock Gating Register, offset: 0x40EC */ - __IO uint32_t CCGR15; /**< CCM Clock Gating Register, offset: 0x40F0 */ - __IO uint32_t CCGR15_SET; /**< CCM Clock Gating Register, offset: 0x40F4 */ - __IO uint32_t CCGR15_CLR; /**< CCM Clock Gating Register, offset: 0x40F8 */ - __IO uint32_t CCGR15_TOG; /**< CCM Clock Gating Register, offset: 0x40FC */ - __IO uint32_t CCGR16; /**< CCM Clock Gating Register, offset: 0x4100 */ - __IO uint32_t CCGR16_SET; /**< CCM Clock Gating Register, offset: 0x4104 */ - __IO uint32_t CCGR16_CLR; /**< CCM Clock Gating Register, offset: 0x4108 */ - __IO uint32_t CCGR16_TOG; /**< CCM Clock Gating Register, offset: 0x410C */ - __IO uint32_t CCGR17; /**< CCM Clock Gating Register, offset: 0x4110 */ - __IO uint32_t CCGR17_SET; /**< CCM Clock Gating Register, offset: 0x4114 */ - __IO uint32_t CCGR17_CLR; /**< CCM Clock Gating Register, offset: 0x4118 */ - __IO uint32_t CCGR17_TOG; /**< CCM Clock Gating Register, offset: 0x411C */ - __IO uint32_t CCGR18; /**< CCM Clock Gating Register, offset: 0x4120 */ - __IO uint32_t CCGR18_SET; /**< CCM Clock Gating Register, offset: 0x4124 */ - __IO uint32_t CCGR18_CLR; /**< CCM Clock Gating Register, offset: 0x4128 */ - __IO uint32_t CCGR18_TOG; /**< CCM Clock Gating Register, offset: 0x412C */ - __IO uint32_t CCGR19; /**< CCM Clock Gating Register, offset: 0x4130 */ - __IO uint32_t CCGR19_SET; /**< CCM Clock Gating Register, offset: 0x4134 */ - __IO uint32_t CCGR19_CLR; /**< CCM Clock Gating Register, offset: 0x4138 */ - __IO uint32_t CCGR19_TOG; /**< CCM Clock Gating Register, offset: 0x413C */ - __IO uint32_t CCGR20; /**< CCM Clock Gating Register, offset: 0x4140 */ - __IO uint32_t CCGR20_SET; /**< CCM Clock Gating Register, offset: 0x4144 */ - __IO uint32_t CCGR20_CLR; /**< CCM Clock Gating Register, offset: 0x4148 */ - __IO uint32_t CCGR20_TOG; /**< CCM Clock Gating Register, offset: 0x414C */ - __IO uint32_t CCGR21; /**< CCM Clock Gating Register, offset: 0x4150 */ - __IO uint32_t CCGR21_SET; /**< CCM Clock Gating Register, offset: 0x4154 */ - __IO uint32_t CCGR21_CLR; /**< CCM Clock Gating Register, offset: 0x4158 */ - __IO uint32_t CCGR21_TOG; /**< CCM Clock Gating Register, offset: 0x415C */ - __IO uint32_t CCGR22; /**< CCM Clock Gating Register, offset: 0x4160 */ - __IO uint32_t CCGR22_SET; /**< CCM Clock Gating Register, offset: 0x4164 */ - __IO uint32_t CCGR22_CLR; /**< CCM Clock Gating Register, offset: 0x4168 */ - __IO uint32_t CCGR22_TOG; /**< CCM Clock Gating Register, offset: 0x416C */ - __IO uint32_t CCGR23; /**< CCM Clock Gating Register, offset: 0x4170 */ - __IO uint32_t CCGR23_SET; /**< CCM Clock Gating Register, offset: 0x4174 */ - __IO uint32_t CCGR23_CLR; /**< CCM Clock Gating Register, offset: 0x4178 */ - __IO uint32_t CCGR23_TOG; /**< CCM Clock Gating Register, offset: 0x417C */ - __IO uint32_t CCGR24; /**< CCM Clock Gating Register, offset: 0x4180 */ - __IO uint32_t CCGR24_SET; /**< CCM Clock Gating Register, offset: 0x4184 */ - __IO uint32_t CCGR24_CLR; /**< CCM Clock Gating Register, offset: 0x4188 */ - __IO uint32_t CCGR24_TOG; /**< CCM Clock Gating Register, offset: 0x418C */ - __IO uint32_t CCGR25; /**< CCM Clock Gating Register, offset: 0x4190 */ - __IO uint32_t CCGR25_SET; /**< CCM Clock Gating Register, offset: 0x4194 */ - __IO uint32_t CCGR25_CLR; /**< CCM Clock Gating Register, offset: 0x4198 */ - __IO uint32_t CCGR25_TOG; /**< CCM Clock Gating Register, offset: 0x419C */ - __IO uint32_t CCGR26; /**< CCM Clock Gating Register, offset: 0x41A0 */ - __IO uint32_t CCGR26_SET; /**< CCM Clock Gating Register, offset: 0x41A4 */ - __IO uint32_t CCGR26_CLR; /**< CCM Clock Gating Register, offset: 0x41A8 */ - __IO uint32_t CCGR26_TOG; /**< CCM Clock Gating Register, offset: 0x41AC */ - __IO uint32_t CCGR27; /**< CCM Clock Gating Register, offset: 0x41B0 */ - __IO uint32_t CCGR27_SET; /**< CCM Clock Gating Register, offset: 0x41B4 */ - __IO uint32_t CCGR27_CLR; /**< CCM Clock Gating Register, offset: 0x41B8 */ - __IO uint32_t CCGR27_TOG; /**< CCM Clock Gating Register, offset: 0x41BC */ - __IO uint32_t CCGR28; /**< CCM Clock Gating Register, offset: 0x41C0 */ - __IO uint32_t CCGR28_SET; /**< CCM Clock Gating Register, offset: 0x41C4 */ - __IO uint32_t CCGR28_CLR; /**< CCM Clock Gating Register, offset: 0x41C8 */ - __IO uint32_t CCGR28_TOG; /**< CCM Clock Gating Register, offset: 0x41CC */ - __IO uint32_t CCGR29; /**< CCM Clock Gating Register, offset: 0x41D0 */ - __IO uint32_t CCGR29_SET; /**< CCM Clock Gating Register, offset: 0x41D4 */ - __IO uint32_t CCGR29_CLR; /**< CCM Clock Gating Register, offset: 0x41D8 */ - __IO uint32_t CCGR29_TOG; /**< CCM Clock Gating Register, offset: 0x41DC */ - __IO uint32_t CCGR30; /**< CCM Clock Gating Register, offset: 0x41E0 */ - __IO uint32_t CCGR30_SET; /**< CCM Clock Gating Register, offset: 0x41E4 */ - __IO uint32_t CCGR30_CLR; /**< CCM Clock Gating Register, offset: 0x41E8 */ - __IO uint32_t CCGR30_TOG; /**< CCM Clock Gating Register, offset: 0x41EC */ - __IO uint32_t CCGR31; /**< CCM Clock Gating Register, offset: 0x41F0 */ - __IO uint32_t CCGR31_SET; /**< CCM Clock Gating Register, offset: 0x41F4 */ - __IO uint32_t CCGR31_CLR; /**< CCM Clock Gating Register, offset: 0x41F8 */ - __IO uint32_t CCGR31_TOG; /**< CCM Clock Gating Register, offset: 0x41FC */ - __IO uint32_t CCGR32; /**< CCM Clock Gating Register, offset: 0x4200 */ - __IO uint32_t CCGR32_SET; /**< CCM Clock Gating Register, offset: 0x4204 */ - __IO uint32_t CCGR32_CLR; /**< CCM Clock Gating Register, offset: 0x4208 */ - __IO uint32_t CCGR32_TOG; /**< CCM Clock Gating Register, offset: 0x420C */ - __IO uint32_t CCGR33; /**< CCM Clock Gating Register, offset: 0x4210 */ - __IO uint32_t CCGR33_SET; /**< CCM Clock Gating Register, offset: 0x4214 */ - __IO uint32_t CCGR33_CLR; /**< CCM Clock Gating Register, offset: 0x4218 */ - __IO uint32_t CCGR33_TOG; /**< CCM Clock Gating Register, offset: 0x421C */ - __IO uint32_t CCGR34; /**< CCM Clock Gating Register, offset: 0x4220 */ - __IO uint32_t CCGR34_SET; /**< CCM Clock Gating Register, offset: 0x4224 */ - __IO uint32_t CCGR34_CLR; /**< CCM Clock Gating Register, offset: 0x4228 */ - __IO uint32_t CCGR34_TOG; /**< CCM Clock Gating Register, offset: 0x422C */ - __IO uint32_t CCGR35; /**< CCM Clock Gating Register, offset: 0x4230 */ - __IO uint32_t CCGR35_SET; /**< CCM Clock Gating Register, offset: 0x4234 */ - __IO uint32_t CCGR35_CLR; /**< CCM Clock Gating Register, offset: 0x4238 */ - __IO uint32_t CCGR35_TOG; /**< CCM Clock Gating Register, offset: 0x423C */ - __IO uint32_t CCGR36; /**< CCM Clock Gating Register, offset: 0x4240 */ - __IO uint32_t CCGR36_SET; /**< CCM Clock Gating Register, offset: 0x4244 */ - __IO uint32_t CCGR36_CLR; /**< CCM Clock Gating Register, offset: 0x4248 */ - __IO uint32_t CCGR36_TOG; /**< CCM Clock Gating Register, offset: 0x424C */ - __IO uint32_t CCGR37; /**< CCM Clock Gating Register, offset: 0x4250 */ - __IO uint32_t CCGR37_SET; /**< CCM Clock Gating Register, offset: 0x4254 */ - __IO uint32_t CCGR37_CLR; /**< CCM Clock Gating Register, offset: 0x4258 */ - __IO uint32_t CCGR37_TOG; /**< CCM Clock Gating Register, offset: 0x425C */ - __IO uint32_t CCGR38; /**< CCM Clock Gating Register, offset: 0x4260 */ - __IO uint32_t CCGR38_SET; /**< CCM Clock Gating Register, offset: 0x4264 */ - __IO uint32_t CCGR38_CLR; /**< CCM Clock Gating Register, offset: 0x4268 */ - __IO uint32_t CCGR38_TOG; /**< CCM Clock Gating Register, offset: 0x426C */ - __IO uint32_t CCGR39; /**< CCM Clock Gating Register, offset: 0x4270 */ - __IO uint32_t CCGR39_SET; /**< CCM Clock Gating Register, offset: 0x4274 */ - __IO uint32_t CCGR39_CLR; /**< CCM Clock Gating Register, offset: 0x4278 */ - __IO uint32_t CCGR39_TOG; /**< CCM Clock Gating Register, offset: 0x427C */ - __IO uint32_t CCGR40; /**< CCM Clock Gating Register, offset: 0x4280 */ - __IO uint32_t CCGR40_SET; /**< CCM Clock Gating Register, offset: 0x4284 */ - __IO uint32_t CCGR40_CLR; /**< CCM Clock Gating Register, offset: 0x4288 */ - __IO uint32_t CCGR40_TOG; /**< CCM Clock Gating Register, offset: 0x428C */ - __IO uint32_t CCGR41; /**< CCM Clock Gating Register, offset: 0x4290 */ - __IO uint32_t CCGR41_SET; /**< CCM Clock Gating Register, offset: 0x4294 */ - __IO uint32_t CCGR41_CLR; /**< CCM Clock Gating Register, offset: 0x4298 */ - __IO uint32_t CCGR41_TOG; /**< CCM Clock Gating Register, offset: 0x429C */ - __IO uint32_t CCGR42; /**< CCM Clock Gating Register, offset: 0x42A0 */ - __IO uint32_t CCGR42_SET; /**< CCM Clock Gating Register, offset: 0x42A4 */ - __IO uint32_t CCGR42_CLR; /**< CCM Clock Gating Register, offset: 0x42A8 */ - __IO uint32_t CCGR42_TOG; /**< CCM Clock Gating Register, offset: 0x42AC */ - __IO uint32_t CCGR43; /**< CCM Clock Gating Register, offset: 0x42B0 */ - __IO uint32_t CCGR43_SET; /**< CCM Clock Gating Register, offset: 0x42B4 */ - __IO uint32_t CCGR43_CLR; /**< CCM Clock Gating Register, offset: 0x42B8 */ - __IO uint32_t CCGR43_TOG; /**< CCM Clock Gating Register, offset: 0x42BC */ - __IO uint32_t CCGR44; /**< CCM Clock Gating Register, offset: 0x42C0 */ - __IO uint32_t CCGR44_SET; /**< CCM Clock Gating Register, offset: 0x42C4 */ - __IO uint32_t CCGR44_CLR; /**< CCM Clock Gating Register, offset: 0x42C8 */ - __IO uint32_t CCGR44_TOG; /**< CCM Clock Gating Register, offset: 0x42CC */ - __IO uint32_t CCGR45; /**< CCM Clock Gating Register, offset: 0x42D0 */ - __IO uint32_t CCGR45_SET; /**< CCM Clock Gating Register, offset: 0x42D4 */ - __IO uint32_t CCGR45_CLR; /**< CCM Clock Gating Register, offset: 0x42D8 */ - __IO uint32_t CCGR45_TOG; /**< CCM Clock Gating Register, offset: 0x42DC */ - __IO uint32_t CCGR46; /**< CCM Clock Gating Register, offset: 0x42E0 */ - __IO uint32_t CCGR46_SET; /**< CCM Clock Gating Register, offset: 0x42E4 */ - __IO uint32_t CCGR46_CLR; /**< CCM Clock Gating Register, offset: 0x42E8 */ - __IO uint32_t CCGR46_TOG; /**< CCM Clock Gating Register, offset: 0x42EC */ - __IO uint32_t CCGR47; /**< CCM Clock Gating Register, offset: 0x42F0 */ - __IO uint32_t CCGR47_SET; /**< CCM Clock Gating Register, offset: 0x42F4 */ - __IO uint32_t CCGR47_CLR; /**< CCM Clock Gating Register, offset: 0x42F8 */ - __IO uint32_t CCGR47_TOG; /**< CCM Clock Gating Register, offset: 0x42FC */ - __IO uint32_t CCGR48; /**< CCM Clock Gating Register, offset: 0x4300 */ - __IO uint32_t CCGR48_SET; /**< CCM Clock Gating Register, offset: 0x4304 */ - __IO uint32_t CCGR48_CLR; /**< CCM Clock Gating Register, offset: 0x4308 */ - __IO uint32_t CCGR48_TOG; /**< CCM Clock Gating Register, offset: 0x430C */ - __IO uint32_t CCGR49; /**< CCM Clock Gating Register, offset: 0x4310 */ - __IO uint32_t CCGR49_SET; /**< CCM Clock Gating Register, offset: 0x4314 */ - __IO uint32_t CCGR49_CLR; /**< CCM Clock Gating Register, offset: 0x4318 */ - __IO uint32_t CCGR49_TOG; /**< CCM Clock Gating Register, offset: 0x431C */ - __IO uint32_t CCGR50; /**< CCM Clock Gating Register, offset: 0x4320 */ - __IO uint32_t CCGR50_SET; /**< CCM Clock Gating Register, offset: 0x4324 */ - __IO uint32_t CCGR50_CLR; /**< CCM Clock Gating Register, offset: 0x4328 */ - __IO uint32_t CCGR50_TOG; /**< CCM Clock Gating Register, offset: 0x432C */ - __IO uint32_t CCGR51; /**< CCM Clock Gating Register, offset: 0x4330 */ - __IO uint32_t CCGR51_SET; /**< CCM Clock Gating Register, offset: 0x4334 */ - __IO uint32_t CCGR51_CLR; /**< CCM Clock Gating Register, offset: 0x4338 */ - __IO uint32_t CCGR51_TOG; /**< CCM Clock Gating Register, offset: 0x433C */ - __IO uint32_t CCGR52; /**< CCM Clock Gating Register, offset: 0x4340 */ - __IO uint32_t CCGR52_SET; /**< CCM Clock Gating Register, offset: 0x4344 */ - __IO uint32_t CCGR52_CLR; /**< CCM Clock Gating Register, offset: 0x4348 */ - __IO uint32_t CCGR52_TOG; /**< CCM Clock Gating Register, offset: 0x434C */ - __IO uint32_t CCGR53; /**< CCM Clock Gating Register, offset: 0x4350 */ - __IO uint32_t CCGR53_SET; /**< CCM Clock Gating Register, offset: 0x4354 */ - __IO uint32_t CCGR53_CLR; /**< CCM Clock Gating Register, offset: 0x4358 */ - __IO uint32_t CCGR53_TOG; /**< CCM Clock Gating Register, offset: 0x435C */ - __IO uint32_t CCGR54; /**< CCM Clock Gating Register, offset: 0x4360 */ - __IO uint32_t CCGR54_SET; /**< CCM Clock Gating Register, offset: 0x4364 */ - __IO uint32_t CCGR54_CLR; /**< CCM Clock Gating Register, offset: 0x4368 */ - __IO uint32_t CCGR54_TOG; /**< CCM Clock Gating Register, offset: 0x436C */ - __IO uint32_t CCGR55; /**< CCM Clock Gating Register, offset: 0x4370 */ - __IO uint32_t CCGR55_SET; /**< CCM Clock Gating Register, offset: 0x4374 */ - __IO uint32_t CCGR55_CLR; /**< CCM Clock Gating Register, offset: 0x4378 */ - __IO uint32_t CCGR55_TOG; /**< CCM Clock Gating Register, offset: 0x437C */ - __IO uint32_t CCGR56; /**< CCM Clock Gating Register, offset: 0x4380 */ - __IO uint32_t CCGR56_SET; /**< CCM Clock Gating Register, offset: 0x4384 */ - __IO uint32_t CCGR56_CLR; /**< CCM Clock Gating Register, offset: 0x4388 */ - __IO uint32_t CCGR56_TOG; /**< CCM Clock Gating Register, offset: 0x438C */ - __IO uint32_t CCGR57; /**< CCM Clock Gating Register, offset: 0x4390 */ - __IO uint32_t CCGR57_SET; /**< CCM Clock Gating Register, offset: 0x4394 */ - __IO uint32_t CCGR57_CLR; /**< CCM Clock Gating Register, offset: 0x4398 */ - __IO uint32_t CCGR57_TOG; /**< CCM Clock Gating Register, offset: 0x439C */ - __IO uint32_t CCGR58; /**< CCM Clock Gating Register, offset: 0x43A0 */ - __IO uint32_t CCGR58_SET; /**< CCM Clock Gating Register, offset: 0x43A4 */ - __IO uint32_t CCGR58_CLR; /**< CCM Clock Gating Register, offset: 0x43A8 */ - __IO uint32_t CCGR58_TOG; /**< CCM Clock Gating Register, offset: 0x43AC */ - __IO uint32_t CCGR59; /**< CCM Clock Gating Register, offset: 0x43B0 */ - __IO uint32_t CCGR59_SET; /**< CCM Clock Gating Register, offset: 0x43B4 */ - __IO uint32_t CCGR59_CLR; /**< CCM Clock Gating Register, offset: 0x43B8 */ - __IO uint32_t CCGR59_TOG; /**< CCM Clock Gating Register, offset: 0x43BC */ - __IO uint32_t CCGR60; /**< CCM Clock Gating Register, offset: 0x43C0 */ - __IO uint32_t CCGR60_SET; /**< CCM Clock Gating Register, offset: 0x43C4 */ - __IO uint32_t CCGR60_CLR; /**< CCM Clock Gating Register, offset: 0x43C8 */ - __IO uint32_t CCGR60_TOG; /**< CCM Clock Gating Register, offset: 0x43CC */ - __IO uint32_t CCGR61; /**< CCM Clock Gating Register, offset: 0x43D0 */ - __IO uint32_t CCGR61_SET; /**< CCM Clock Gating Register, offset: 0x43D4 */ - __IO uint32_t CCGR61_CLR; /**< CCM Clock Gating Register, offset: 0x43D8 */ - __IO uint32_t CCGR61_TOG; /**< CCM Clock Gating Register, offset: 0x43DC */ - __IO uint32_t CCGR62; /**< CCM Clock Gating Register, offset: 0x43E0 */ - __IO uint32_t CCGR62_SET; /**< CCM Clock Gating Register, offset: 0x43E4 */ - __IO uint32_t CCGR62_CLR; /**< CCM Clock Gating Register, offset: 0x43E8 */ - __IO uint32_t CCGR62_TOG; /**< CCM Clock Gating Register, offset: 0x43EC */ - __IO uint32_t CCGR63; /**< CCM Clock Gating Register, offset: 0x43F0 */ - __IO uint32_t CCGR63_SET; /**< CCM Clock Gating Register, offset: 0x43F4 */ - __IO uint32_t CCGR63_CLR; /**< CCM Clock Gating Register, offset: 0x43F8 */ - __IO uint32_t CCGR63_TOG; /**< CCM Clock Gating Register, offset: 0x43FC */ - __IO uint32_t CCGR64; /**< CCM Clock Gating Register, offset: 0x4400 */ - __IO uint32_t CCGR64_SET; /**< CCM Clock Gating Register, offset: 0x4404 */ - __IO uint32_t CCGR64_CLR; /**< CCM Clock Gating Register, offset: 0x4408 */ - __IO uint32_t CCGR64_TOG; /**< CCM Clock Gating Register, offset: 0x440C */ - __IO uint32_t CCGR65; /**< CCM Clock Gating Register, offset: 0x4410 */ - __IO uint32_t CCGR65_SET; /**< CCM Clock Gating Register, offset: 0x4414 */ - __IO uint32_t CCGR65_CLR; /**< CCM Clock Gating Register, offset: 0x4418 */ - __IO uint32_t CCGR65_TOG; /**< CCM Clock Gating Register, offset: 0x441C */ - __IO uint32_t CCGR66; /**< CCM Clock Gating Register, offset: 0x4420 */ - __IO uint32_t CCGR66_SET; /**< CCM Clock Gating Register, offset: 0x4424 */ - __IO uint32_t CCGR66_CLR; /**< CCM Clock Gating Register, offset: 0x4428 */ - __IO uint32_t CCGR66_TOG; /**< CCM Clock Gating Register, offset: 0x442C */ - __IO uint32_t CCGR67; /**< CCM Clock Gating Register, offset: 0x4430 */ - __IO uint32_t CCGR67_SET; /**< CCM Clock Gating Register, offset: 0x4434 */ - __IO uint32_t CCGR67_CLR; /**< CCM Clock Gating Register, offset: 0x4438 */ - __IO uint32_t CCGR67_TOG; /**< CCM Clock Gating Register, offset: 0x443C */ - __IO uint32_t CCGR68; /**< CCM Clock Gating Register, offset: 0x4440 */ - __IO uint32_t CCGR68_SET; /**< CCM Clock Gating Register, offset: 0x4444 */ - __IO uint32_t CCGR68_CLR; /**< CCM Clock Gating Register, offset: 0x4448 */ - __IO uint32_t CCGR68_TOG; /**< CCM Clock Gating Register, offset: 0x444C */ - __IO uint32_t CCGR69; /**< CCM Clock Gating Register, offset: 0x4450 */ - __IO uint32_t CCGR69_SET; /**< CCM Clock Gating Register, offset: 0x4454 */ - __IO uint32_t CCGR69_CLR; /**< CCM Clock Gating Register, offset: 0x4458 */ - __IO uint32_t CCGR69_TOG; /**< CCM Clock Gating Register, offset: 0x445C */ - __IO uint32_t CCGR70; /**< CCM Clock Gating Register, offset: 0x4460 */ - __IO uint32_t CCGR70_SET; /**< CCM Clock Gating Register, offset: 0x4464 */ - __IO uint32_t CCGR70_CLR; /**< CCM Clock Gating Register, offset: 0x4468 */ - __IO uint32_t CCGR70_TOG; /**< CCM Clock Gating Register, offset: 0x446C */ - __IO uint32_t CCGR71; /**< CCM Clock Gating Register, offset: 0x4470 */ - __IO uint32_t CCGR71_SET; /**< CCM Clock Gating Register, offset: 0x4474 */ - __IO uint32_t CCGR71_CLR; /**< CCM Clock Gating Register, offset: 0x4478 */ - __IO uint32_t CCGR71_TOG; /**< CCM Clock Gating Register, offset: 0x447C */ - __IO uint32_t CCGR72; /**< CCM Clock Gating Register, offset: 0x4480 */ - __IO uint32_t CCGR72_SET; /**< CCM Clock Gating Register, offset: 0x4484 */ - __IO uint32_t CCGR72_CLR; /**< CCM Clock Gating Register, offset: 0x4488 */ - __IO uint32_t CCGR72_TOG; /**< CCM Clock Gating Register, offset: 0x448C */ - __IO uint32_t CCGR73; /**< CCM Clock Gating Register, offset: 0x4490 */ - __IO uint32_t CCGR73_SET; /**< CCM Clock Gating Register, offset: 0x4494 */ - __IO uint32_t CCGR73_CLR; /**< CCM Clock Gating Register, offset: 0x4498 */ - __IO uint32_t CCGR73_TOG; /**< CCM Clock Gating Register, offset: 0x449C */ - __IO uint32_t CCGR74; /**< CCM Clock Gating Register, offset: 0x44A0 */ - __IO uint32_t CCGR74_SET; /**< CCM Clock Gating Register, offset: 0x44A4 */ - __IO uint32_t CCGR74_CLR; /**< CCM Clock Gating Register, offset: 0x44A8 */ - __IO uint32_t CCGR74_TOG; /**< CCM Clock Gating Register, offset: 0x44AC */ - __IO uint32_t CCGR75; /**< CCM Clock Gating Register, offset: 0x44B0 */ - __IO uint32_t CCGR75_SET; /**< CCM Clock Gating Register, offset: 0x44B4 */ - __IO uint32_t CCGR75_CLR; /**< CCM Clock Gating Register, offset: 0x44B8 */ - __IO uint32_t CCGR75_TOG; /**< CCM Clock Gating Register, offset: 0x44BC */ - __IO uint32_t CCGR76; /**< CCM Clock Gating Register, offset: 0x44C0 */ - __IO uint32_t CCGR76_SET; /**< CCM Clock Gating Register, offset: 0x44C4 */ - __IO uint32_t CCGR76_CLR; /**< CCM Clock Gating Register, offset: 0x44C8 */ - __IO uint32_t CCGR76_TOG; /**< CCM Clock Gating Register, offset: 0x44CC */ - __IO uint32_t CCGR77; /**< CCM Clock Gating Register, offset: 0x44D0 */ - __IO uint32_t CCGR77_SET; /**< CCM Clock Gating Register, offset: 0x44D4 */ - __IO uint32_t CCGR77_CLR; /**< CCM Clock Gating Register, offset: 0x44D8 */ - __IO uint32_t CCGR77_TOG; /**< CCM Clock Gating Register, offset: 0x44DC */ - __IO uint32_t CCGR78; /**< CCM Clock Gating Register, offset: 0x44E0 */ - __IO uint32_t CCGR78_SET; /**< CCM Clock Gating Register, offset: 0x44E4 */ - __IO uint32_t CCGR78_CLR; /**< CCM Clock Gating Register, offset: 0x44E8 */ - __IO uint32_t CCGR78_TOG; /**< CCM Clock Gating Register, offset: 0x44EC */ - __IO uint32_t CCGR79; /**< CCM Clock Gating Register, offset: 0x44F0 */ - __IO uint32_t CCGR79_SET; /**< CCM Clock Gating Register, offset: 0x44F4 */ - __IO uint32_t CCGR79_CLR; /**< CCM Clock Gating Register, offset: 0x44F8 */ - __IO uint32_t CCGR79_TOG; /**< CCM Clock Gating Register, offset: 0x44FC */ - __IO uint32_t CCGR80; /**< CCM Clock Gating Register, offset: 0x4500 */ - __IO uint32_t CCGR80_SET; /**< CCM Clock Gating Register, offset: 0x4504 */ - __IO uint32_t CCGR80_CLR; /**< CCM Clock Gating Register, offset: 0x4508 */ - __IO uint32_t CCGR80_TOG; /**< CCM Clock Gating Register, offset: 0x450C */ - __IO uint32_t CCGR81; /**< CCM Clock Gating Register, offset: 0x4510 */ - __IO uint32_t CCGR81_SET; /**< CCM Clock Gating Register, offset: 0x4514 */ - __IO uint32_t CCGR81_CLR; /**< CCM Clock Gating Register, offset: 0x4518 */ - __IO uint32_t CCGR81_TOG; /**< CCM Clock Gating Register, offset: 0x451C */ - __IO uint32_t CCGR82; /**< CCM Clock Gating Register, offset: 0x4520 */ - __IO uint32_t CCGR82_SET; /**< CCM Clock Gating Register, offset: 0x4524 */ - __IO uint32_t CCGR82_CLR; /**< CCM Clock Gating Register, offset: 0x4528 */ - __IO uint32_t CCGR82_TOG; /**< CCM Clock Gating Register, offset: 0x452C */ - __IO uint32_t CCGR83; /**< CCM Clock Gating Register, offset: 0x4530 */ - __IO uint32_t CCGR83_SET; /**< CCM Clock Gating Register, offset: 0x4534 */ - __IO uint32_t CCGR83_CLR; /**< CCM Clock Gating Register, offset: 0x4538 */ - __IO uint32_t CCGR83_TOG; /**< CCM Clock Gating Register, offset: 0x453C */ - __IO uint32_t CCGR84; /**< CCM Clock Gating Register, offset: 0x4540 */ - __IO uint32_t CCGR84_SET; /**< CCM Clock Gating Register, offset: 0x4544 */ - __IO uint32_t CCGR84_CLR; /**< CCM Clock Gating Register, offset: 0x4548 */ - __IO uint32_t CCGR84_TOG; /**< CCM Clock Gating Register, offset: 0x454C */ - __IO uint32_t CCGR85; /**< CCM Clock Gating Register, offset: 0x4550 */ - __IO uint32_t CCGR85_SET; /**< CCM Clock Gating Register, offset: 0x4554 */ - __IO uint32_t CCGR85_CLR; /**< CCM Clock Gating Register, offset: 0x4558 */ - __IO uint32_t CCGR85_TOG; /**< CCM Clock Gating Register, offset: 0x455C */ - __IO uint32_t CCGR86; /**< CCM Clock Gating Register, offset: 0x4560 */ - __IO uint32_t CCGR86_SET; /**< CCM Clock Gating Register, offset: 0x4564 */ - __IO uint32_t CCGR86_CLR; /**< CCM Clock Gating Register, offset: 0x4568 */ - __IO uint32_t CCGR86_TOG; /**< CCM Clock Gating Register, offset: 0x456C */ - __IO uint32_t CCGR87; /**< CCM Clock Gating Register, offset: 0x4570 */ - __IO uint32_t CCGR87_SET; /**< CCM Clock Gating Register, offset: 0x4574 */ - __IO uint32_t CCGR87_CLR; /**< CCM Clock Gating Register, offset: 0x4578 */ - __IO uint32_t CCGR87_TOG; /**< CCM Clock Gating Register, offset: 0x457C */ - __IO uint32_t CCGR88; /**< CCM Clock Gating Register, offset: 0x4580 */ - __IO uint32_t CCGR88_SET; /**< CCM Clock Gating Register, offset: 0x4584 */ - __IO uint32_t CCGR88_CLR; /**< CCM Clock Gating Register, offset: 0x4588 */ - __IO uint32_t CCGR88_TOG; /**< CCM Clock Gating Register, offset: 0x458C */ - __IO uint32_t CCGR89; /**< CCM Clock Gating Register, offset: 0x4590 */ - __IO uint32_t CCGR89_SET; /**< CCM Clock Gating Register, offset: 0x4594 */ - __IO uint32_t CCGR89_CLR; /**< CCM Clock Gating Register, offset: 0x4598 */ - __IO uint32_t CCGR89_TOG; /**< CCM Clock Gating Register, offset: 0x459C */ - __IO uint32_t CCGR90; /**< CCM Clock Gating Register, offset: 0x45A0 */ - __IO uint32_t CCGR90_SET; /**< CCM Clock Gating Register, offset: 0x45A4 */ - __IO uint32_t CCGR90_CLR; /**< CCM Clock Gating Register, offset: 0x45A8 */ - __IO uint32_t CCGR90_TOG; /**< CCM Clock Gating Register, offset: 0x45AC */ - __IO uint32_t CCGR91; /**< CCM Clock Gating Register, offset: 0x45B0 */ - __IO uint32_t CCGR91_SET; /**< CCM Clock Gating Register, offset: 0x45B4 */ - __IO uint32_t CCGR91_CLR; /**< CCM Clock Gating Register, offset: 0x45B8 */ - __IO uint32_t CCGR91_TOG; /**< CCM Clock Gating Register, offset: 0x45BC */ - __IO uint32_t CCGR92; /**< CCM Clock Gating Register, offset: 0x45C0 */ - __IO uint32_t CCGR92_SET; /**< CCM Clock Gating Register, offset: 0x45C4 */ - __IO uint32_t CCGR92_CLR; /**< CCM Clock Gating Register, offset: 0x45C8 */ - __IO uint32_t CCGR92_TOG; /**< CCM Clock Gating Register, offset: 0x45CC */ - __IO uint32_t CCGR93; /**< CCM Clock Gating Register, offset: 0x45D0 */ - __IO uint32_t CCGR93_SET; /**< CCM Clock Gating Register, offset: 0x45D4 */ - __IO uint32_t CCGR93_CLR; /**< CCM Clock Gating Register, offset: 0x45D8 */ - __IO uint32_t CCGR93_TOG; /**< CCM Clock Gating Register, offset: 0x45DC */ - __IO uint32_t CCGR94; /**< CCM Clock Gating Register, offset: 0x45E0 */ - __IO uint32_t CCGR94_SET; /**< CCM Clock Gating Register, offset: 0x45E4 */ - __IO uint32_t CCGR94_CLR; /**< CCM Clock Gating Register, offset: 0x45E8 */ - __IO uint32_t CCGR94_TOG; /**< CCM Clock Gating Register, offset: 0x45EC */ - __IO uint32_t CCGR95; /**< CCM Clock Gating Register, offset: 0x45F0 */ - __IO uint32_t CCGR95_SET; /**< CCM Clock Gating Register, offset: 0x45F4 */ - __IO uint32_t CCGR95_CLR; /**< CCM Clock Gating Register, offset: 0x45F8 */ - __IO uint32_t CCGR95_TOG; /**< CCM Clock Gating Register, offset: 0x45FC */ - __IO uint32_t CCGR96; /**< CCM Clock Gating Register, offset: 0x4600 */ - __IO uint32_t CCGR96_SET; /**< CCM Clock Gating Register, offset: 0x4604 */ - __IO uint32_t CCGR96_CLR; /**< CCM Clock Gating Register, offset: 0x4608 */ - __IO uint32_t CCGR96_TOG; /**< CCM Clock Gating Register, offset: 0x460C */ - __IO uint32_t CCGR97; /**< CCM Clock Gating Register, offset: 0x4610 */ - __IO uint32_t CCGR97_SET; /**< CCM Clock Gating Register, offset: 0x4614 */ - __IO uint32_t CCGR97_CLR; /**< CCM Clock Gating Register, offset: 0x4618 */ - __IO uint32_t CCGR97_TOG; /**< CCM Clock Gating Register, offset: 0x461C */ - __IO uint32_t CCGR98; /**< CCM Clock Gating Register, offset: 0x4620 */ - __IO uint32_t CCGR98_SET; /**< CCM Clock Gating Register, offset: 0x4624 */ - __IO uint32_t CCGR98_CLR; /**< CCM Clock Gating Register, offset: 0x4628 */ - __IO uint32_t CCGR98_TOG; /**< CCM Clock Gating Register, offset: 0x462C */ - __IO uint32_t CCGR99; /**< CCM Clock Gating Register, offset: 0x4630 */ - __IO uint32_t CCGR99_SET; /**< CCM Clock Gating Register, offset: 0x4634 */ - __IO uint32_t CCGR99_CLR; /**< CCM Clock Gating Register, offset: 0x4638 */ - __IO uint32_t CCGR99_TOG; /**< CCM Clock Gating Register, offset: 0x463C */ - __IO uint32_t CCGR100; /**< CCM Clock Gating Register, offset: 0x4640 */ - __IO uint32_t CCGR100_SET; /**< CCM Clock Gating Register, offset: 0x4644 */ - __IO uint32_t CCGR100_CLR; /**< CCM Clock Gating Register, offset: 0x4648 */ - __IO uint32_t CCGR100_TOG; /**< CCM Clock Gating Register, offset: 0x464C */ - __IO uint32_t CCGR101; /**< CCM Clock Gating Register, offset: 0x4650 */ - __IO uint32_t CCGR101_SET; /**< CCM Clock Gating Register, offset: 0x4654 */ - __IO uint32_t CCGR101_CLR; /**< CCM Clock Gating Register, offset: 0x4658 */ - __IO uint32_t CCGR101_TOG; /**< CCM Clock Gating Register, offset: 0x465C */ - __IO uint32_t CCGR102; /**< CCM Clock Gating Register, offset: 0x4660 */ - __IO uint32_t CCGR102_SET; /**< CCM Clock Gating Register, offset: 0x4664 */ - __IO uint32_t CCGR102_CLR; /**< CCM Clock Gating Register, offset: 0x4668 */ - __IO uint32_t CCGR102_TOG; /**< CCM Clock Gating Register, offset: 0x466C */ - __IO uint32_t CCGR103; /**< CCM Clock Gating Register, offset: 0x4670 */ - __IO uint32_t CCGR103_SET; /**< CCM Clock Gating Register, offset: 0x4674 */ - __IO uint32_t CCGR103_CLR; /**< CCM Clock Gating Register, offset: 0x4678 */ - __IO uint32_t CCGR103_TOG; /**< CCM Clock Gating Register, offset: 0x467C */ - __IO uint32_t CCGR104; /**< CCM Clock Gating Register, offset: 0x4680 */ - __IO uint32_t CCGR104_SET; /**< CCM Clock Gating Register, offset: 0x4684 */ - __IO uint32_t CCGR104_CLR; /**< CCM Clock Gating Register, offset: 0x4688 */ - __IO uint32_t CCGR104_TOG; /**< CCM Clock Gating Register, offset: 0x468C */ - __IO uint32_t CCGR105; /**< CCM Clock Gating Register, offset: 0x4690 */ - __IO uint32_t CCGR105_SET; /**< CCM Clock Gating Register, offset: 0x4694 */ - __IO uint32_t CCGR105_CLR; /**< CCM Clock Gating Register, offset: 0x4698 */ - __IO uint32_t CCGR105_TOG; /**< CCM Clock Gating Register, offset: 0x469C */ - __IO uint32_t CCGR106; /**< CCM Clock Gating Register, offset: 0x46A0 */ - __IO uint32_t CCGR106_SET; /**< CCM Clock Gating Register, offset: 0x46A4 */ - __IO uint32_t CCGR106_CLR; /**< CCM Clock Gating Register, offset: 0x46A8 */ - __IO uint32_t CCGR106_TOG; /**< CCM Clock Gating Register, offset: 0x46AC */ - __IO uint32_t CCGR107; /**< CCM Clock Gating Register, offset: 0x46B0 */ - __IO uint32_t CCGR107_SET; /**< CCM Clock Gating Register, offset: 0x46B4 */ - __IO uint32_t CCGR107_CLR; /**< CCM Clock Gating Register, offset: 0x46B8 */ - __IO uint32_t CCGR107_TOG; /**< CCM Clock Gating Register, offset: 0x46BC */ - __IO uint32_t CCGR108; /**< CCM Clock Gating Register, offset: 0x46C0 */ - __IO uint32_t CCGR108_SET; /**< CCM Clock Gating Register, offset: 0x46C4 */ - __IO uint32_t CCGR108_CLR; /**< CCM Clock Gating Register, offset: 0x46C8 */ - __IO uint32_t CCGR108_TOG; /**< CCM Clock Gating Register, offset: 0x46CC */ - __IO uint32_t CCGR109; /**< CCM Clock Gating Register, offset: 0x46D0 */ - __IO uint32_t CCGR109_SET; /**< CCM Clock Gating Register, offset: 0x46D4 */ - __IO uint32_t CCGR109_CLR; /**< CCM Clock Gating Register, offset: 0x46D8 */ - __IO uint32_t CCGR109_TOG; /**< CCM Clock Gating Register, offset: 0x46DC */ - __IO uint32_t CCGR110; /**< CCM Clock Gating Register, offset: 0x46E0 */ - __IO uint32_t CCGR110_SET; /**< CCM Clock Gating Register, offset: 0x46E4 */ - __IO uint32_t CCGR110_CLR; /**< CCM Clock Gating Register, offset: 0x46E8 */ - __IO uint32_t CCGR110_TOG; /**< CCM Clock Gating Register, offset: 0x46EC */ - __IO uint32_t CCGR111; /**< CCM Clock Gating Register, offset: 0x46F0 */ - __IO uint32_t CCGR111_SET; /**< CCM Clock Gating Register, offset: 0x46F4 */ - __IO uint32_t CCGR111_CLR; /**< CCM Clock Gating Register, offset: 0x46F8 */ - __IO uint32_t CCGR111_TOG; /**< CCM Clock Gating Register, offset: 0x46FC */ - __IO uint32_t CCGR112; /**< CCM Clock Gating Register, offset: 0x4700 */ - __IO uint32_t CCGR112_SET; /**< CCM Clock Gating Register, offset: 0x4704 */ - __IO uint32_t CCGR112_CLR; /**< CCM Clock Gating Register, offset: 0x4708 */ - __IO uint32_t CCGR112_TOG; /**< CCM Clock Gating Register, offset: 0x470C */ - __IO uint32_t CCGR113; /**< CCM Clock Gating Register, offset: 0x4710 */ - __IO uint32_t CCGR113_SET; /**< CCM Clock Gating Register, offset: 0x4714 */ - __IO uint32_t CCGR113_CLR; /**< CCM Clock Gating Register, offset: 0x4718 */ - __IO uint32_t CCGR113_TOG; /**< CCM Clock Gating Register, offset: 0x471C */ - __IO uint32_t CCGR114; /**< CCM Clock Gating Register, offset: 0x4720 */ - __IO uint32_t CCGR114_SET; /**< CCM Clock Gating Register, offset: 0x4724 */ - __IO uint32_t CCGR114_CLR; /**< CCM Clock Gating Register, offset: 0x4728 */ - __IO uint32_t CCGR114_TOG; /**< CCM Clock Gating Register, offset: 0x472C */ - __IO uint32_t CCGR115; /**< CCM Clock Gating Register, offset: 0x4730 */ - __IO uint32_t CCGR115_SET; /**< CCM Clock Gating Register, offset: 0x4734 */ - __IO uint32_t CCGR115_CLR; /**< CCM Clock Gating Register, offset: 0x4738 */ - __IO uint32_t CCGR115_TOG; /**< CCM Clock Gating Register, offset: 0x473C */ - __IO uint32_t CCGR116; /**< CCM Clock Gating Register, offset: 0x4740 */ - __IO uint32_t CCGR116_SET; /**< CCM Clock Gating Register, offset: 0x4744 */ - __IO uint32_t CCGR116_CLR; /**< CCM Clock Gating Register, offset: 0x4748 */ - __IO uint32_t CCGR116_TOG; /**< CCM Clock Gating Register, offset: 0x474C */ - __IO uint32_t CCGR117; /**< CCM Clock Gating Register, offset: 0x4750 */ - __IO uint32_t CCGR117_SET; /**< CCM Clock Gating Register, offset: 0x4754 */ - __IO uint32_t CCGR117_CLR; /**< CCM Clock Gating Register, offset: 0x4758 */ - __IO uint32_t CCGR117_TOG; /**< CCM Clock Gating Register, offset: 0x475C */ - __IO uint32_t CCGR118; /**< CCM Clock Gating Register, offset: 0x4760 */ - __IO uint32_t CCGR118_SET; /**< CCM Clock Gating Register, offset: 0x4764 */ - __IO uint32_t CCGR118_CLR; /**< CCM Clock Gating Register, offset: 0x4768 */ - __IO uint32_t CCGR118_TOG; /**< CCM Clock Gating Register, offset: 0x476C */ - __IO uint32_t CCGR119; /**< CCM Clock Gating Register, offset: 0x4770 */ - __IO uint32_t CCGR119_SET; /**< CCM Clock Gating Register, offset: 0x4774 */ - __IO uint32_t CCGR119_CLR; /**< CCM Clock Gating Register, offset: 0x4778 */ - __IO uint32_t CCGR119_TOG; /**< CCM Clock Gating Register, offset: 0x477C */ - __IO uint32_t CCGR120; /**< CCM Clock Gating Register, offset: 0x4780 */ - __IO uint32_t CCGR120_SET; /**< CCM Clock Gating Register, offset: 0x4784 */ - __IO uint32_t CCGR120_CLR; /**< CCM Clock Gating Register, offset: 0x4788 */ - __IO uint32_t CCGR120_TOG; /**< CCM Clock Gating Register, offset: 0x478C */ - __IO uint32_t CCGR121; /**< CCM Clock Gating Register, offset: 0x4790 */ - __IO uint32_t CCGR121_SET; /**< CCM Clock Gating Register, offset: 0x4794 */ - __IO uint32_t CCGR121_CLR; /**< CCM Clock Gating Register, offset: 0x4798 */ - __IO uint32_t CCGR121_TOG; /**< CCM Clock Gating Register, offset: 0x479C */ - __IO uint32_t CCGR122; /**< CCM Clock Gating Register, offset: 0x47A0 */ - __IO uint32_t CCGR122_SET; /**< CCM Clock Gating Register, offset: 0x47A4 */ - __IO uint32_t CCGR122_CLR; /**< CCM Clock Gating Register, offset: 0x47A8 */ - __IO uint32_t CCGR122_TOG; /**< CCM Clock Gating Register, offset: 0x47AC */ - __IO uint32_t CCGR123; /**< CCM Clock Gating Register, offset: 0x47B0 */ - __IO uint32_t CCGR123_SET; /**< CCM Clock Gating Register, offset: 0x47B4 */ - __IO uint32_t CCGR123_CLR; /**< CCM Clock Gating Register, offset: 0x47B8 */ - __IO uint32_t CCGR123_TOG; /**< CCM Clock Gating Register, offset: 0x47BC */ - __IO uint32_t CCGR124; /**< CCM Clock Gating Register, offset: 0x47C0 */ - __IO uint32_t CCGR124_SET; /**< CCM Clock Gating Register, offset: 0x47C4 */ - __IO uint32_t CCGR124_CLR; /**< CCM Clock Gating Register, offset: 0x47C8 */ - __IO uint32_t CCGR124_TOG; /**< CCM Clock Gating Register, offset: 0x47CC */ - __IO uint32_t CCGR125; /**< CCM Clock Gating Register, offset: 0x47D0 */ - __IO uint32_t CCGR125_SET; /**< CCM Clock Gating Register, offset: 0x47D4 */ - __IO uint32_t CCGR125_CLR; /**< CCM Clock Gating Register, offset: 0x47D8 */ - __IO uint32_t CCGR125_TOG; /**< CCM Clock Gating Register, offset: 0x47DC */ - __IO uint32_t CCGR126; /**< CCM Clock Gating Register, offset: 0x47E0 */ - __IO uint32_t CCGR126_SET; /**< CCM Clock Gating Register, offset: 0x47E4 */ - __IO uint32_t CCGR126_CLR; /**< CCM Clock Gating Register, offset: 0x47E8 */ - __IO uint32_t CCGR126_TOG; /**< CCM Clock Gating Register, offset: 0x47EC */ - __IO uint32_t CCGR127; /**< CCM Clock Gating Register, offset: 0x47F0 */ - __IO uint32_t CCGR127_SET; /**< CCM Clock Gating Register, offset: 0x47F4 */ - __IO uint32_t CCGR127_CLR; /**< CCM Clock Gating Register, offset: 0x47F8 */ - __IO uint32_t CCGR127_TOG; /**< CCM Clock Gating Register, offset: 0x47FC */ - __IO uint32_t CCGR128; /**< CCM Clock Gating Register, offset: 0x4800 */ - __IO uint32_t CCGR128_SET; /**< CCM Clock Gating Register, offset: 0x4804 */ - __IO uint32_t CCGR128_CLR; /**< CCM Clock Gating Register, offset: 0x4808 */ - __IO uint32_t CCGR128_TOG; /**< CCM Clock Gating Register, offset: 0x480C */ - __IO uint32_t CCGR129; /**< CCM Clock Gating Register, offset: 0x4810 */ - __IO uint32_t CCGR129_SET; /**< CCM Clock Gating Register, offset: 0x4814 */ - __IO uint32_t CCGR129_CLR; /**< CCM Clock Gating Register, offset: 0x4818 */ - __IO uint32_t CCGR129_TOG; /**< CCM Clock Gating Register, offset: 0x481C */ - __IO uint32_t CCGR130; /**< CCM Clock Gating Register, offset: 0x4820 */ - __IO uint32_t CCGR130_SET; /**< CCM Clock Gating Register, offset: 0x4824 */ - __IO uint32_t CCGR130_CLR; /**< CCM Clock Gating Register, offset: 0x4828 */ - __IO uint32_t CCGR130_TOG; /**< CCM Clock Gating Register, offset: 0x482C */ - __IO uint32_t CCGR131; /**< CCM Clock Gating Register, offset: 0x4830 */ - __IO uint32_t CCGR131_SET; /**< CCM Clock Gating Register, offset: 0x4834 */ - __IO uint32_t CCGR131_CLR; /**< CCM Clock Gating Register, offset: 0x4838 */ - __IO uint32_t CCGR131_TOG; /**< CCM Clock Gating Register, offset: 0x483C */ - __IO uint32_t CCGR132; /**< CCM Clock Gating Register, offset: 0x4840 */ - __IO uint32_t CCGR132_SET; /**< CCM Clock Gating Register, offset: 0x4844 */ - __IO uint32_t CCGR132_CLR; /**< CCM Clock Gating Register, offset: 0x4848 */ - __IO uint32_t CCGR132_TOG; /**< CCM Clock Gating Register, offset: 0x484C */ - __IO uint32_t CCGR133; /**< CCM Clock Gating Register, offset: 0x4850 */ - __IO uint32_t CCGR133_SET; /**< CCM Clock Gating Register, offset: 0x4854 */ - __IO uint32_t CCGR133_CLR; /**< CCM Clock Gating Register, offset: 0x4858 */ - __IO uint32_t CCGR133_TOG; /**< CCM Clock Gating Register, offset: 0x485C */ - __IO uint32_t CCGR134; /**< CCM Clock Gating Register, offset: 0x4860 */ - __IO uint32_t CCGR134_SET; /**< CCM Clock Gating Register, offset: 0x4864 */ - __IO uint32_t CCGR134_CLR; /**< CCM Clock Gating Register, offset: 0x4868 */ - __IO uint32_t CCGR134_TOG; /**< CCM Clock Gating Register, offset: 0x486C */ - __IO uint32_t CCGR135; /**< CCM Clock Gating Register, offset: 0x4870 */ - __IO uint32_t CCGR135_SET; /**< CCM Clock Gating Register, offset: 0x4874 */ - __IO uint32_t CCGR135_CLR; /**< CCM Clock Gating Register, offset: 0x4878 */ - __IO uint32_t CCGR135_TOG; /**< CCM Clock Gating Register, offset: 0x487C */ - __IO uint32_t CCGR136; /**< CCM Clock Gating Register, offset: 0x4880 */ - __IO uint32_t CCGR136_SET; /**< CCM Clock Gating Register, offset: 0x4884 */ - __IO uint32_t CCGR136_CLR; /**< CCM Clock Gating Register, offset: 0x4888 */ - __IO uint32_t CCGR136_TOG; /**< CCM Clock Gating Register, offset: 0x488C */ - __IO uint32_t CCGR137; /**< CCM Clock Gating Register, offset: 0x4890 */ - __IO uint32_t CCGR137_SET; /**< CCM Clock Gating Register, offset: 0x4894 */ - __IO uint32_t CCGR137_CLR; /**< CCM Clock Gating Register, offset: 0x4898 */ - __IO uint32_t CCGR137_TOG; /**< CCM Clock Gating Register, offset: 0x489C */ - __IO uint32_t CCGR138; /**< CCM Clock Gating Register, offset: 0x48A0 */ - __IO uint32_t CCGR138_SET; /**< CCM Clock Gating Register, offset: 0x48A4 */ - __IO uint32_t CCGR138_CLR; /**< CCM Clock Gating Register, offset: 0x48A8 */ - __IO uint32_t CCGR138_TOG; /**< CCM Clock Gating Register, offset: 0x48AC */ - __IO uint32_t CCGR139; /**< CCM Clock Gating Register, offset: 0x48B0 */ - __IO uint32_t CCGR139_SET; /**< CCM Clock Gating Register, offset: 0x48B4 */ - __IO uint32_t CCGR139_CLR; /**< CCM Clock Gating Register, offset: 0x48B8 */ - __IO uint32_t CCGR139_TOG; /**< CCM Clock Gating Register, offset: 0x48BC */ - __IO uint32_t CCGR140; /**< CCM Clock Gating Register, offset: 0x48C0 */ - __IO uint32_t CCGR140_SET; /**< CCM Clock Gating Register, offset: 0x48C4 */ - __IO uint32_t CCGR140_CLR; /**< CCM Clock Gating Register, offset: 0x48C8 */ - __IO uint32_t CCGR140_TOG; /**< CCM Clock Gating Register, offset: 0x48CC */ - __IO uint32_t CCGR141; /**< CCM Clock Gating Register, offset: 0x48D0 */ - __IO uint32_t CCGR141_SET; /**< CCM Clock Gating Register, offset: 0x48D4 */ - __IO uint32_t CCGR141_CLR; /**< CCM Clock Gating Register, offset: 0x48D8 */ - __IO uint32_t CCGR141_TOG; /**< CCM Clock Gating Register, offset: 0x48DC */ - __IO uint32_t CCGR142; /**< CCM Clock Gating Register, offset: 0x48E0 */ - __IO uint32_t CCGR142_SET; /**< CCM Clock Gating Register, offset: 0x48E4 */ - __IO uint32_t CCGR142_CLR; /**< CCM Clock Gating Register, offset: 0x48E8 */ - __IO uint32_t CCGR142_TOG; /**< CCM Clock Gating Register, offset: 0x48EC */ - __IO uint32_t CCGR143; /**< CCM Clock Gating Register, offset: 0x48F0 */ - __IO uint32_t CCGR143_SET; /**< CCM Clock Gating Register, offset: 0x48F4 */ - __IO uint32_t CCGR143_CLR; /**< CCM Clock Gating Register, offset: 0x48F8 */ - __IO uint32_t CCGR143_TOG; /**< CCM Clock Gating Register, offset: 0x48FC */ - __IO uint32_t CCGR144; /**< CCM Clock Gating Register, offset: 0x4900 */ - __IO uint32_t CCGR144_SET; /**< CCM Clock Gating Register, offset: 0x4904 */ - __IO uint32_t CCGR144_CLR; /**< CCM Clock Gating Register, offset: 0x4908 */ - __IO uint32_t CCGR144_TOG; /**< CCM Clock Gating Register, offset: 0x490C */ - __IO uint32_t CCGR145; /**< CCM Clock Gating Register, offset: 0x4910 */ - __IO uint32_t CCGR145_SET; /**< CCM Clock Gating Register, offset: 0x4914 */ - __IO uint32_t CCGR145_CLR; /**< CCM Clock Gating Register, offset: 0x4918 */ - __IO uint32_t CCGR145_TOG; /**< CCM Clock Gating Register, offset: 0x491C */ - __IO uint32_t CCGR146; /**< CCM Clock Gating Register, offset: 0x4920 */ - __IO uint32_t CCGR146_SET; /**< CCM Clock Gating Register, offset: 0x4924 */ - __IO uint32_t CCGR146_CLR; /**< CCM Clock Gating Register, offset: 0x4928 */ - __IO uint32_t CCGR146_TOG; /**< CCM Clock Gating Register, offset: 0x492C */ - __IO uint32_t CCGR147; /**< CCM Clock Gating Register, offset: 0x4930 */ - __IO uint32_t CCGR147_SET; /**< CCM Clock Gating Register, offset: 0x4934 */ - __IO uint32_t CCGR147_CLR; /**< CCM Clock Gating Register, offset: 0x4938 */ - __IO uint32_t CCGR147_TOG; /**< CCM Clock Gating Register, offset: 0x493C */ - __IO uint32_t CCGR148; /**< CCM Clock Gating Register, offset: 0x4940 */ - __IO uint32_t CCGR148_SET; /**< CCM Clock Gating Register, offset: 0x4944 */ - __IO uint32_t CCGR148_CLR; /**< CCM Clock Gating Register, offset: 0x4948 */ - __IO uint32_t CCGR148_TOG; /**< CCM Clock Gating Register, offset: 0x494C */ - __IO uint32_t CCGR149; /**< CCM Clock Gating Register, offset: 0x4950 */ - __IO uint32_t CCGR149_SET; /**< CCM Clock Gating Register, offset: 0x4954 */ - __IO uint32_t CCGR149_CLR; /**< CCM Clock Gating Register, offset: 0x4958 */ - __IO uint32_t CCGR149_TOG; /**< CCM Clock Gating Register, offset: 0x495C */ - __IO uint32_t CCGR150; /**< CCM Clock Gating Register, offset: 0x4960 */ - __IO uint32_t CCGR150_SET; /**< CCM Clock Gating Register, offset: 0x4964 */ - __IO uint32_t CCGR150_CLR; /**< CCM Clock Gating Register, offset: 0x4968 */ - __IO uint32_t CCGR150_TOG; /**< CCM Clock Gating Register, offset: 0x496C */ - __IO uint32_t CCGR151; /**< CCM Clock Gating Register, offset: 0x4970 */ - __IO uint32_t CCGR151_SET; /**< CCM Clock Gating Register, offset: 0x4974 */ - __IO uint32_t CCGR151_CLR; /**< CCM Clock Gating Register, offset: 0x4978 */ - __IO uint32_t CCGR151_TOG; /**< CCM Clock Gating Register, offset: 0x497C */ - __IO uint32_t CCGR152; /**< CCM Clock Gating Register, offset: 0x4980 */ - __IO uint32_t CCGR152_SET; /**< CCM Clock Gating Register, offset: 0x4984 */ - __IO uint32_t CCGR152_CLR; /**< CCM Clock Gating Register, offset: 0x4988 */ - __IO uint32_t CCGR152_TOG; /**< CCM Clock Gating Register, offset: 0x498C */ - __IO uint32_t CCGR153; /**< CCM Clock Gating Register, offset: 0x4990 */ - __IO uint32_t CCGR153_SET; /**< CCM Clock Gating Register, offset: 0x4994 */ - __IO uint32_t CCGR153_CLR; /**< CCM Clock Gating Register, offset: 0x4998 */ - __IO uint32_t CCGR153_TOG; /**< CCM Clock Gating Register, offset: 0x499C */ - __IO uint32_t CCGR154; /**< CCM Clock Gating Register, offset: 0x49A0 */ - __IO uint32_t CCGR154_SET; /**< CCM Clock Gating Register, offset: 0x49A4 */ - __IO uint32_t CCGR154_CLR; /**< CCM Clock Gating Register, offset: 0x49A8 */ - __IO uint32_t CCGR154_TOG; /**< CCM Clock Gating Register, offset: 0x49AC */ - __IO uint32_t CCGR155; /**< CCM Clock Gating Register, offset: 0x49B0 */ - __IO uint32_t CCGR155_SET; /**< CCM Clock Gating Register, offset: 0x49B4 */ - __IO uint32_t CCGR155_CLR; /**< CCM Clock Gating Register, offset: 0x49B8 */ - __IO uint32_t CCGR155_TOG; /**< CCM Clock Gating Register, offset: 0x49BC */ - __IO uint32_t CCGR156; /**< CCM Clock Gating Register, offset: 0x49C0 */ - __IO uint32_t CCGR156_SET; /**< CCM Clock Gating Register, offset: 0x49C4 */ - __IO uint32_t CCGR156_CLR; /**< CCM Clock Gating Register, offset: 0x49C8 */ - __IO uint32_t CCGR156_TOG; /**< CCM Clock Gating Register, offset: 0x49CC */ - __IO uint32_t CCGR157; /**< CCM Clock Gating Register, offset: 0x49D0 */ - __IO uint32_t CCGR157_SET; /**< CCM Clock Gating Register, offset: 0x49D4 */ - __IO uint32_t CCGR157_CLR; /**< CCM Clock Gating Register, offset: 0x49D8 */ - __IO uint32_t CCGR157_TOG; /**< CCM Clock Gating Register, offset: 0x49DC */ - __IO uint32_t CCGR158; /**< CCM Clock Gating Register, offset: 0x49E0 */ - __IO uint32_t CCGR158_SET; /**< CCM Clock Gating Register, offset: 0x49E4 */ - __IO uint32_t CCGR158_CLR; /**< CCM Clock Gating Register, offset: 0x49E8 */ - __IO uint32_t CCGR158_TOG; /**< CCM Clock Gating Register, offset: 0x49EC */ - __IO uint32_t CCGR159; /**< CCM Clock Gating Register, offset: 0x49F0 */ - __IO uint32_t CCGR159_SET; /**< CCM Clock Gating Register, offset: 0x49F4 */ - __IO uint32_t CCGR159_CLR; /**< CCM Clock Gating Register, offset: 0x49F8 */ - __IO uint32_t CCGR159_TOG; /**< CCM Clock Gating Register, offset: 0x49FC */ - __IO uint32_t CCGR160; /**< CCM Clock Gating Register, offset: 0x4A00 */ - __IO uint32_t CCGR160_SET; /**< CCM Clock Gating Register, offset: 0x4A04 */ - __IO uint32_t CCGR160_CLR; /**< CCM Clock Gating Register, offset: 0x4A08 */ - __IO uint32_t CCGR160_TOG; /**< CCM Clock Gating Register, offset: 0x4A0C */ - __IO uint32_t CCGR161; /**< CCM Clock Gating Register, offset: 0x4A10 */ - __IO uint32_t CCGR161_SET; /**< CCM Clock Gating Register, offset: 0x4A14 */ - __IO uint32_t CCGR161_CLR; /**< CCM Clock Gating Register, offset: 0x4A18 */ - __IO uint32_t CCGR161_TOG; /**< CCM Clock Gating Register, offset: 0x4A1C */ - __IO uint32_t CCGR162; /**< CCM Clock Gating Register, offset: 0x4A20 */ - __IO uint32_t CCGR162_SET; /**< CCM Clock Gating Register, offset: 0x4A24 */ - __IO uint32_t CCGR162_CLR; /**< CCM Clock Gating Register, offset: 0x4A28 */ - __IO uint32_t CCGR162_TOG; /**< CCM Clock Gating Register, offset: 0x4A2C */ - __IO uint32_t CCGR163; /**< CCM Clock Gating Register, offset: 0x4A30 */ - __IO uint32_t CCGR163_SET; /**< CCM Clock Gating Register, offset: 0x4A34 */ - __IO uint32_t CCGR163_CLR; /**< CCM Clock Gating Register, offset: 0x4A38 */ - __IO uint32_t CCGR163_TOG; /**< CCM Clock Gating Register, offset: 0x4A3C */ - __IO uint32_t CCGR164; /**< CCM Clock Gating Register, offset: 0x4A40 */ - __IO uint32_t CCGR164_SET; /**< CCM Clock Gating Register, offset: 0x4A44 */ - __IO uint32_t CCGR164_CLR; /**< CCM Clock Gating Register, offset: 0x4A48 */ - __IO uint32_t CCGR164_TOG; /**< CCM Clock Gating Register, offset: 0x4A4C */ - __IO uint32_t CCGR165; /**< CCM Clock Gating Register, offset: 0x4A50 */ - __IO uint32_t CCGR165_SET; /**< CCM Clock Gating Register, offset: 0x4A54 */ - __IO uint32_t CCGR165_CLR; /**< CCM Clock Gating Register, offset: 0x4A58 */ - __IO uint32_t CCGR165_TOG; /**< CCM Clock Gating Register, offset: 0x4A5C */ - __IO uint32_t CCGR166; /**< CCM Clock Gating Register, offset: 0x4A60 */ - __IO uint32_t CCGR166_SET; /**< CCM Clock Gating Register, offset: 0x4A64 */ - __IO uint32_t CCGR166_CLR; /**< CCM Clock Gating Register, offset: 0x4A68 */ - __IO uint32_t CCGR166_TOG; /**< CCM Clock Gating Register, offset: 0x4A6C */ - __IO uint32_t CCGR167; /**< CCM Clock Gating Register, offset: 0x4A70 */ - __IO uint32_t CCGR167_SET; /**< CCM Clock Gating Register, offset: 0x4A74 */ - __IO uint32_t CCGR167_CLR; /**< CCM Clock Gating Register, offset: 0x4A78 */ - __IO uint32_t CCGR167_TOG; /**< CCM Clock Gating Register, offset: 0x4A7C */ - __IO uint32_t CCGR168; /**< CCM Clock Gating Register, offset: 0x4A80 */ - __IO uint32_t CCGR168_SET; /**< CCM Clock Gating Register, offset: 0x4A84 */ - __IO uint32_t CCGR168_CLR; /**< CCM Clock Gating Register, offset: 0x4A88 */ - __IO uint32_t CCGR168_TOG; /**< CCM Clock Gating Register, offset: 0x4A8C */ - __IO uint32_t CCGR169; /**< CCM Clock Gating Register, offset: 0x4A90 */ - __IO uint32_t CCGR169_SET; /**< CCM Clock Gating Register, offset: 0x4A94 */ - __IO uint32_t CCGR169_CLR; /**< CCM Clock Gating Register, offset: 0x4A98 */ - __IO uint32_t CCGR169_TOG; /**< CCM Clock Gating Register, offset: 0x4A9C */ - __IO uint32_t CCGR170; /**< CCM Clock Gating Register, offset: 0x4AA0 */ - __IO uint32_t CCGR170_SET; /**< CCM Clock Gating Register, offset: 0x4AA4 */ - __IO uint32_t CCGR170_CLR; /**< CCM Clock Gating Register, offset: 0x4AA8 */ - __IO uint32_t CCGR170_TOG; /**< CCM Clock Gating Register, offset: 0x4AAC */ - __IO uint32_t CCGR171; /**< CCM Clock Gating Register, offset: 0x4AB0 */ - __IO uint32_t CCGR171_SET; /**< CCM Clock Gating Register, offset: 0x4AB4 */ - __IO uint32_t CCGR171_CLR; /**< CCM Clock Gating Register, offset: 0x4AB8 */ - __IO uint32_t CCGR171_TOG; /**< CCM Clock Gating Register, offset: 0x4ABC */ - __IO uint32_t CCGR172; /**< CCM Clock Gating Register, offset: 0x4AC0 */ - __IO uint32_t CCGR172_SET; /**< CCM Clock Gating Register, offset: 0x4AC4 */ - __IO uint32_t CCGR172_CLR; /**< CCM Clock Gating Register, offset: 0x4AC8 */ - __IO uint32_t CCGR172_TOG; /**< CCM Clock Gating Register, offset: 0x4ACC */ - __IO uint32_t CCGR173; /**< CCM Clock Gating Register, offset: 0x4AD0 */ - __IO uint32_t CCGR173_SET; /**< CCM Clock Gating Register, offset: 0x4AD4 */ - __IO uint32_t CCGR173_CLR; /**< CCM Clock Gating Register, offset: 0x4AD8 */ - __IO uint32_t CCGR173_TOG; /**< CCM Clock Gating Register, offset: 0x4ADC */ - __IO uint32_t CCGR174; /**< CCM Clock Gating Register, offset: 0x4AE0 */ - __IO uint32_t CCGR174_SET; /**< CCM Clock Gating Register, offset: 0x4AE4 */ - __IO uint32_t CCGR174_CLR; /**< CCM Clock Gating Register, offset: 0x4AE8 */ - __IO uint32_t CCGR174_TOG; /**< CCM Clock Gating Register, offset: 0x4AEC */ - __IO uint32_t CCGR175; /**< CCM Clock Gating Register, offset: 0x4AF0 */ - __IO uint32_t CCGR175_SET; /**< CCM Clock Gating Register, offset: 0x4AF4 */ - __IO uint32_t CCGR175_CLR; /**< CCM Clock Gating Register, offset: 0x4AF8 */ - __IO uint32_t CCGR175_TOG; /**< CCM Clock Gating Register, offset: 0x4AFC */ - __IO uint32_t CCGR176; /**< CCM Clock Gating Register, offset: 0x4B00 */ - __IO uint32_t CCGR176_SET; /**< CCM Clock Gating Register, offset: 0x4B04 */ - __IO uint32_t CCGR176_CLR; /**< CCM Clock Gating Register, offset: 0x4B08 */ - __IO uint32_t CCGR176_TOG; /**< CCM Clock Gating Register, offset: 0x4B0C */ - __IO uint32_t CCGR177; /**< CCM Clock Gating Register, offset: 0x4B10 */ - __IO uint32_t CCGR177_SET; /**< CCM Clock Gating Register, offset: 0x4B14 */ - __IO uint32_t CCGR177_CLR; /**< CCM Clock Gating Register, offset: 0x4B18 */ - __IO uint32_t CCGR177_TOG; /**< CCM Clock Gating Register, offset: 0x4B1C */ - __IO uint32_t CCGR178; /**< CCM Clock Gating Register, offset: 0x4B20 */ - __IO uint32_t CCGR178_SET; /**< CCM Clock Gating Register, offset: 0x4B24 */ - __IO uint32_t CCGR178_CLR; /**< CCM Clock Gating Register, offset: 0x4B28 */ - __IO uint32_t CCGR178_TOG; /**< CCM Clock Gating Register, offset: 0x4B2C */ - __IO uint32_t CCGR179; /**< CCM Clock Gating Register, offset: 0x4B30 */ - __IO uint32_t CCGR179_SET; /**< CCM Clock Gating Register, offset: 0x4B34 */ - __IO uint32_t CCGR179_CLR; /**< CCM Clock Gating Register, offset: 0x4B38 */ - __IO uint32_t CCGR179_TOG; /**< CCM Clock Gating Register, offset: 0x4B3C */ - __IO uint32_t CCGR180; /**< CCM Clock Gating Register, offset: 0x4B40 */ - __IO uint32_t CCGR180_SET; /**< CCM Clock Gating Register, offset: 0x4B44 */ - __IO uint32_t CCGR180_CLR; /**< CCM Clock Gating Register, offset: 0x4B48 */ - __IO uint32_t CCGR180_TOG; /**< CCM Clock Gating Register, offset: 0x4B4C */ - __IO uint32_t CCGR181; /**< CCM Clock Gating Register, offset: 0x4B50 */ - __IO uint32_t CCGR181_SET; /**< CCM Clock Gating Register, offset: 0x4B54 */ - __IO uint32_t CCGR181_CLR; /**< CCM Clock Gating Register, offset: 0x4B58 */ - __IO uint32_t CCGR181_TOG; /**< CCM Clock Gating Register, offset: 0x4B5C */ - __IO uint32_t CCGR182; /**< CCM Clock Gating Register, offset: 0x4B60 */ - __IO uint32_t CCGR182_SET; /**< CCM Clock Gating Register, offset: 0x4B64 */ - __IO uint32_t CCGR182_CLR; /**< CCM Clock Gating Register, offset: 0x4B68 */ - __IO uint32_t CCGR182_TOG; /**< CCM Clock Gating Register, offset: 0x4B6C */ - __IO uint32_t CCGR183; /**< CCM Clock Gating Register, offset: 0x4B70 */ - __IO uint32_t CCGR183_SET; /**< CCM Clock Gating Register, offset: 0x4B74 */ - __IO uint32_t CCGR183_CLR; /**< CCM Clock Gating Register, offset: 0x4B78 */ - __IO uint32_t CCGR183_TOG; /**< CCM Clock Gating Register, offset: 0x4B7C */ - __IO uint32_t CCGR184; /**< CCM Clock Gating Register, offset: 0x4B80 */ - __IO uint32_t CCGR184_SET; /**< CCM Clock Gating Register, offset: 0x4B84 */ - __IO uint32_t CCGR184_CLR; /**< CCM Clock Gating Register, offset: 0x4B88 */ - __IO uint32_t CCGR184_TOG; /**< CCM Clock Gating Register, offset: 0x4B8C */ - __IO uint32_t CCGR185; /**< CCM Clock Gating Register, offset: 0x4B90 */ - __IO uint32_t CCGR185_SET; /**< CCM Clock Gating Register, offset: 0x4B94 */ - __IO uint32_t CCGR185_CLR; /**< CCM Clock Gating Register, offset: 0x4B98 */ - __IO uint32_t CCGR185_TOG; /**< CCM Clock Gating Register, offset: 0x4B9C */ - __IO uint32_t CCGR186; /**< CCM Clock Gating Register, offset: 0x4BA0 */ - __IO uint32_t CCGR186_SET; /**< CCM Clock Gating Register, offset: 0x4BA4 */ - __IO uint32_t CCGR186_CLR; /**< CCM Clock Gating Register, offset: 0x4BA8 */ - __IO uint32_t CCGR186_TOG; /**< CCM Clock Gating Register, offset: 0x4BAC */ - __IO uint32_t CCGR187; /**< CCM Clock Gating Register, offset: 0x4BB0 */ - __IO uint32_t CCGR187_SET; /**< CCM Clock Gating Register, offset: 0x4BB4 */ - __IO uint32_t CCGR187_CLR; /**< CCM Clock Gating Register, offset: 0x4BB8 */ - __IO uint32_t CCGR187_TOG; /**< CCM Clock Gating Register, offset: 0x4BBC */ - __IO uint32_t CCGR188; /**< CCM Clock Gating Register, offset: 0x4BC0 */ - __IO uint32_t CCGR188_SET; /**< CCM Clock Gating Register, offset: 0x4BC4 */ - __IO uint32_t CCGR188_CLR; /**< CCM Clock Gating Register, offset: 0x4BC8 */ - __IO uint32_t CCGR188_TOG; /**< CCM Clock Gating Register, offset: 0x4BCC */ - __IO uint32_t CCGR189; /**< CCM Clock Gating Register, offset: 0x4BD0 */ - __IO uint32_t CCGR189_SET; /**< CCM Clock Gating Register, offset: 0x4BD4 */ - __IO uint32_t CCGR189_CLR; /**< CCM Clock Gating Register, offset: 0x4BD8 */ - __IO uint32_t CCGR189_TOG; /**< CCM Clock Gating Register, offset: 0x4BDC */ - __IO uint32_t CCGR190; /**< CCM Clock Gating Register, offset: 0x4BE0 */ - __IO uint32_t CCGR190_SET; /**< CCM Clock Gating Register, offset: 0x4BE4 */ - __IO uint32_t CCGR190_CLR; /**< CCM Clock Gating Register, offset: 0x4BE8 */ - __IO uint32_t CCGR190_TOG; /**< CCM Clock Gating Register, offset: 0x4BEC */ - uint8_t RESERVED_1[13328]; - __IO uint32_t TARGET_ROOT0; /**< Target Register, offset: 0x8000 */ - __IO uint32_t TARGET_ROOT0_SET; /**< Target Register, offset: 0x8004 */ - __IO uint32_t TARGET_ROOT0_CLR; /**< Target Register, offset: 0x8008 */ - __IO uint32_t TARGET_ROOT0_TOG; /**< Target Register, offset: 0x800C */ - uint8_t RESERVED_2[16]; - __IO uint32_t POST0; /**< Post Divider Register, offset: 0x8020 */ - __IO uint32_t POST_ROOT0_SET; /**< Post Divider Register, offset: 0x8024 */ - __IO uint32_t POST_ROOT0_CLR; /**< Post Divider Register, offset: 0x8028 */ - __IO uint32_t POST_ROOT0_TOG; /**< Post Divider Register, offset: 0x802C */ - __IO uint32_t PRE0; /**< Pre Divider Register, offset: 0x8030 */ - __IO uint32_t PRE_ROOT0_SET; /**< Pre Divider Register, offset: 0x8034 */ - __IO uint32_t PRE_ROOT0_CLR; /**< Pre Divider Register, offset: 0x8038 */ - __IO uint32_t PRE_ROOT0_TOG; /**< Pre Divider Register, offset: 0x803C */ - uint8_t RESERVED_3[48]; - __IO uint32_t ACCESS_CTRL0; /**< Access Control Register, offset: 0x8070 */ - __IO uint32_t ACCESS_CTRL0_ROOT_SET; /**< Access Control Register, offset: 0x8074 */ - __IO uint32_t ACCESS_CTRL0_ROOT_CLR; /**< Access Control Register, offset: 0x8078 */ - __IO uint32_t ACCESS_CTRL0_ROOT_TOG; /**< Access Control Register, offset: 0x807C */ - __IO uint32_t TARGET_ROOT1; /**< Target Register, offset: 0x8080 */ - __IO uint32_t TARGET_ROOT1_SET; /**< Target Register, offset: 0x8084 */ - __IO uint32_t TARGET_ROOT1_CLR; /**< Target Register, offset: 0x8088 */ - __IO uint32_t TARGET_ROOT1_TOG; /**< Target Register, offset: 0x808C */ - uint8_t RESERVED_4[16]; - __IO uint32_t POST1; /**< Post Divider Register, offset: 0x80A0 */ - __IO uint32_t POST_ROOT1_SET; /**< Post Divider Register, offset: 0x80A4 */ - __IO uint32_t POST_ROOT1_CLR; /**< Post Divider Register, offset: 0x80A8 */ - __IO uint32_t POST_ROOT1_TOG; /**< Post Divider Register, offset: 0x80AC */ - __IO uint32_t PRE1; /**< Pre Divider Register, offset: 0x80B0 */ - __IO uint32_t PRE_ROOT1_SET; /**< Pre Divider Register, offset: 0x80B4 */ - __IO uint32_t PRE_ROOT1_CLR; /**< Pre Divider Register, offset: 0x80B8 */ - __IO uint32_t PRE_ROOT1_TOG; /**< Pre Divider Register, offset: 0x80BC */ - uint8_t RESERVED_5[48]; - __IO uint32_t ACCESS_CTRL1; /**< Access Control Register, offset: 0x80F0 */ - __IO uint32_t ACCESS_CTRL1_ROOT_SET; /**< Access Control Register, offset: 0x80F4 */ - __IO uint32_t ACCESS_CTRL1_ROOT_CLR; /**< Access Control Register, offset: 0x80F8 */ - __IO uint32_t ACCESS_CTRL1_ROOT_TOG; /**< Access Control Register, offset: 0x80FC */ - __IO uint32_t TARGET_ROOT2; /**< Target Register, offset: 0x8100 */ - __IO uint32_t TARGET_ROOT2_SET; /**< Target Register, offset: 0x8104 */ - __IO uint32_t TARGET_ROOT2_CLR; /**< Target Register, offset: 0x8108 */ - __IO uint32_t TARGET_ROOT2_TOG; /**< Target Register, offset: 0x810C */ - uint8_t RESERVED_6[16]; - __IO uint32_t POST2; /**< Post Divider Register, offset: 0x8120 */ - __IO uint32_t POST_ROOT2_SET; /**< Post Divider Register, offset: 0x8124 */ - __IO uint32_t POST_ROOT2_CLR; /**< Post Divider Register, offset: 0x8128 */ - __IO uint32_t POST_ROOT2_TOG; /**< Post Divider Register, offset: 0x812C */ - __IO uint32_t PRE2; /**< Pre Divider Register, offset: 0x8130 */ - __IO uint32_t PRE_ROOT2_SET; /**< Pre Divider Register, offset: 0x8134 */ - __IO uint32_t PRE_ROOT2_CLR; /**< Pre Divider Register, offset: 0x8138 */ - __IO uint32_t PRE_ROOT2_TOG; /**< Pre Divider Register, offset: 0x813C */ - uint8_t RESERVED_7[48]; - __IO uint32_t ACCESS_CTRL2; /**< Access Control Register, offset: 0x8170 */ - __IO uint32_t ACCESS_CTRL2_ROOT_SET; /**< Access Control Register, offset: 0x8174 */ - __IO uint32_t ACCESS_CTRL2_ROOT_CLR; /**< Access Control Register, offset: 0x8178 */ - __IO uint32_t ACCESS_CTRL2_ROOT_TOG; /**< Access Control Register, offset: 0x817C */ - __IO uint32_t TARGET_ROOT3; /**< Target Register, offset: 0x8180 */ - __IO uint32_t TARGET_ROOT3_SET; /**< Target Register, offset: 0x8184 */ - __IO uint32_t TARGET_ROOT3_CLR; /**< Target Register, offset: 0x8188 */ - __IO uint32_t TARGET_ROOT3_TOG; /**< Target Register, offset: 0x818C */ - uint8_t RESERVED_8[16]; - __IO uint32_t POST3; /**< Post Divider Register, offset: 0x81A0 */ - __IO uint32_t POST_ROOT3_SET; /**< Post Divider Register, offset: 0x81A4 */ - __IO uint32_t POST_ROOT3_CLR; /**< Post Divider Register, offset: 0x81A8 */ - __IO uint32_t POST_ROOT3_TOG; /**< Post Divider Register, offset: 0x81AC */ - __IO uint32_t PRE3; /**< Pre Divider Register, offset: 0x81B0 */ - __IO uint32_t PRE_ROOT3_SET; /**< Pre Divider Register, offset: 0x81B4 */ - __IO uint32_t PRE_ROOT3_CLR; /**< Pre Divider Register, offset: 0x81B8 */ - __IO uint32_t PRE_ROOT3_TOG; /**< Pre Divider Register, offset: 0x81BC */ - uint8_t RESERVED_9[48]; - __IO uint32_t ACCESS_CTRL3; /**< Access Control Register, offset: 0x81F0 */ - __IO uint32_t ACCESS_CTRL3_ROOT_SET; /**< Access Control Register, offset: 0x81F4 */ - __IO uint32_t ACCESS_CTRL3_ROOT_CLR; /**< Access Control Register, offset: 0x81F8 */ - __IO uint32_t ACCESS_CTRL3_ROOT_TOG; /**< Access Control Register, offset: 0x81FC */ - __IO uint32_t TARGET_ROOT4; /**< Target Register, offset: 0x8200 */ - __IO uint32_t TARGET_ROOT4_SET; /**< Target Register, offset: 0x8204 */ - __IO uint32_t TARGET_ROOT4_CLR; /**< Target Register, offset: 0x8208 */ - __IO uint32_t TARGET_ROOT4_TOG; /**< Target Register, offset: 0x820C */ - uint8_t RESERVED_10[16]; - __IO uint32_t POST4; /**< Post Divider Register, offset: 0x8220 */ - __IO uint32_t POST_ROOT4_SET; /**< Post Divider Register, offset: 0x8224 */ - __IO uint32_t POST_ROOT4_CLR; /**< Post Divider Register, offset: 0x8228 */ - __IO uint32_t POST_ROOT4_TOG; /**< Post Divider Register, offset: 0x822C */ - __IO uint32_t PRE4; /**< Pre Divider Register, offset: 0x8230 */ - __IO uint32_t PRE_ROOT4_SET; /**< Pre Divider Register, offset: 0x8234 */ - __IO uint32_t PRE_ROOT4_CLR; /**< Pre Divider Register, offset: 0x8238 */ - __IO uint32_t PRE_ROOT4_TOG; /**< Pre Divider Register, offset: 0x823C */ - uint8_t RESERVED_11[48]; - __IO uint32_t ACCESS_CTRL4; /**< Access Control Register, offset: 0x8270 */ - __IO uint32_t ACCESS_CTRL4_ROOT_SET; /**< Access Control Register, offset: 0x8274 */ - __IO uint32_t ACCESS_CTRL4_ROOT_CLR; /**< Access Control Register, offset: 0x8278 */ - __IO uint32_t ACCESS_CTRL4_ROOT_TOG; /**< Access Control Register, offset: 0x827C */ - __IO uint32_t TARGET_ROOT5; /**< Target Register, offset: 0x8280 */ - __IO uint32_t TARGET_ROOT5_SET; /**< Target Register, offset: 0x8284 */ - __IO uint32_t TARGET_ROOT5_CLR; /**< Target Register, offset: 0x8288 */ - __IO uint32_t TARGET_ROOT5_TOG; /**< Target Register, offset: 0x828C */ - uint8_t RESERVED_12[16]; - __IO uint32_t POST5; /**< Post Divider Register, offset: 0x82A0 */ - __IO uint32_t POST_ROOT5_SET; /**< Post Divider Register, offset: 0x82A4 */ - __IO uint32_t POST_ROOT5_CLR; /**< Post Divider Register, offset: 0x82A8 */ - __IO uint32_t POST_ROOT5_TOG; /**< Post Divider Register, offset: 0x82AC */ - __IO uint32_t PRE5; /**< Pre Divider Register, offset: 0x82B0 */ - __IO uint32_t PRE_ROOT5_SET; /**< Pre Divider Register, offset: 0x82B4 */ - __IO uint32_t PRE_ROOT5_CLR; /**< Pre Divider Register, offset: 0x82B8 */ - __IO uint32_t PRE_ROOT5_TOG; /**< Pre Divider Register, offset: 0x82BC */ - uint8_t RESERVED_13[48]; - __IO uint32_t ACCESS_CTRL5; /**< Access Control Register, offset: 0x82F0 */ - __IO uint32_t ACCESS_CTRL5_ROOT_SET; /**< Access Control Register, offset: 0x82F4 */ - __IO uint32_t ACCESS_CTRL5_ROOT_CLR; /**< Access Control Register, offset: 0x82F8 */ - __IO uint32_t ACCESS_CTRL5_ROOT_TOG; /**< Access Control Register, offset: 0x82FC */ - __IO uint32_t TARGET_ROOT6; /**< Target Register, offset: 0x8300 */ - __IO uint32_t TARGET_ROOT6_SET; /**< Target Register, offset: 0x8304 */ - __IO uint32_t TARGET_ROOT6_CLR; /**< Target Register, offset: 0x8308 */ - __IO uint32_t TARGET_ROOT6_TOG; /**< Target Register, offset: 0x830C */ - uint8_t RESERVED_14[16]; - __IO uint32_t POST6; /**< Post Divider Register, offset: 0x8320 */ - __IO uint32_t POST_ROOT6_SET; /**< Post Divider Register, offset: 0x8324 */ - __IO uint32_t POST_ROOT6_CLR; /**< Post Divider Register, offset: 0x8328 */ - __IO uint32_t POST_ROOT6_TOG; /**< Post Divider Register, offset: 0x832C */ - __IO uint32_t PRE6; /**< Pre Divider Register, offset: 0x8330 */ - __IO uint32_t PRE_ROOT6_SET; /**< Pre Divider Register, offset: 0x8334 */ - __IO uint32_t PRE_ROOT6_CLR; /**< Pre Divider Register, offset: 0x8338 */ - __IO uint32_t PRE_ROOT6_TOG; /**< Pre Divider Register, offset: 0x833C */ - uint8_t RESERVED_15[48]; - __IO uint32_t ACCESS_CTRL6; /**< Access Control Register, offset: 0x8370 */ - __IO uint32_t ACCESS_CTRL6_ROOT_SET; /**< Access Control Register, offset: 0x8374 */ - __IO uint32_t ACCESS_CTRL6_ROOT_CLR; /**< Access Control Register, offset: 0x8378 */ - __IO uint32_t ACCESS_CTRL6_ROOT_TOG; /**< Access Control Register, offset: 0x837C */ - __IO uint32_t TARGET_ROOT7; /**< Target Register, offset: 0x8380 */ - __IO uint32_t TARGET_ROOT7_SET; /**< Target Register, offset: 0x8384 */ - __IO uint32_t TARGET_ROOT7_CLR; /**< Target Register, offset: 0x8388 */ - __IO uint32_t TARGET_ROOT7_TOG; /**< Target Register, offset: 0x838C */ - uint8_t RESERVED_16[16]; - __IO uint32_t POST7; /**< Post Divider Register, offset: 0x83A0 */ - __IO uint32_t POST_ROOT7_SET; /**< Post Divider Register, offset: 0x83A4 */ - __IO uint32_t POST_ROOT7_CLR; /**< Post Divider Register, offset: 0x83A8 */ - __IO uint32_t POST_ROOT7_TOG; /**< Post Divider Register, offset: 0x83AC */ - __IO uint32_t PRE7; /**< Pre Divider Register, offset: 0x83B0 */ - __IO uint32_t PRE_ROOT7_SET; /**< Pre Divider Register, offset: 0x83B4 */ - __IO uint32_t PRE_ROOT7_CLR; /**< Pre Divider Register, offset: 0x83B8 */ - __IO uint32_t PRE_ROOT7_TOG; /**< Pre Divider Register, offset: 0x83BC */ - uint8_t RESERVED_17[48]; - __IO uint32_t ACCESS_CTRL7; /**< Access Control Register, offset: 0x83F0 */ - __IO uint32_t ACCESS_CTRL7_ROOT_SET; /**< Access Control Register, offset: 0x83F4 */ - __IO uint32_t ACCESS_CTRL7_ROOT_CLR; /**< Access Control Register, offset: 0x83F8 */ - __IO uint32_t ACCESS_CTRL7_ROOT_TOG; /**< Access Control Register, offset: 0x83FC */ - __IO uint32_t TARGET_ROOT8; /**< Target Register, offset: 0x8400 */ - __IO uint32_t TARGET_ROOT8_SET; /**< Target Register, offset: 0x8404 */ - __IO uint32_t TARGET_ROOT8_CLR; /**< Target Register, offset: 0x8408 */ - __IO uint32_t TARGET_ROOT8_TOG; /**< Target Register, offset: 0x840C */ - uint8_t RESERVED_18[16]; - __IO uint32_t POST8; /**< Post Divider Register, offset: 0x8420 */ - __IO uint32_t POST_ROOT8_SET; /**< Post Divider Register, offset: 0x8424 */ - __IO uint32_t POST_ROOT8_CLR; /**< Post Divider Register, offset: 0x8428 */ - __IO uint32_t POST_ROOT8_TOG; /**< Post Divider Register, offset: 0x842C */ - __IO uint32_t PRE8; /**< Pre Divider Register, offset: 0x8430 */ - __IO uint32_t PRE_ROOT8_SET; /**< Pre Divider Register, offset: 0x8434 */ - __IO uint32_t PRE_ROOT8_CLR; /**< Pre Divider Register, offset: 0x8438 */ - __IO uint32_t PRE_ROOT8_TOG; /**< Pre Divider Register, offset: 0x843C */ - uint8_t RESERVED_19[48]; - __IO uint32_t ACCESS_CTRL8; /**< Access Control Register, offset: 0x8470 */ - __IO uint32_t ACCESS_CTRL8_ROOT_SET; /**< Access Control Register, offset: 0x8474 */ - __IO uint32_t ACCESS_CTRL8_ROOT_CLR; /**< Access Control Register, offset: 0x8478 */ - __IO uint32_t ACCESS_CTRL8_ROOT_TOG; /**< Access Control Register, offset: 0x847C */ - __IO uint32_t TARGET_ROOT9; /**< Target Register, offset: 0x8480 */ - __IO uint32_t TARGET_ROOT9_SET; /**< Target Register, offset: 0x8484 */ - __IO uint32_t TARGET_ROOT9_CLR; /**< Target Register, offset: 0x8488 */ - __IO uint32_t TARGET_ROOT9_TOG; /**< Target Register, offset: 0x848C */ - uint8_t RESERVED_20[16]; - __IO uint32_t POST9; /**< Post Divider Register, offset: 0x84A0 */ - __IO uint32_t POST_ROOT9_SET; /**< Post Divider Register, offset: 0x84A4 */ - __IO uint32_t POST_ROOT9_CLR; /**< Post Divider Register, offset: 0x84A8 */ - __IO uint32_t POST_ROOT9_TOG; /**< Post Divider Register, offset: 0x84AC */ - __IO uint32_t PRE9; /**< Pre Divider Register, offset: 0x84B0 */ - __IO uint32_t PRE_ROOT9_SET; /**< Pre Divider Register, offset: 0x84B4 */ - __IO uint32_t PRE_ROOT9_CLR; /**< Pre Divider Register, offset: 0x84B8 */ - __IO uint32_t PRE_ROOT9_TOG; /**< Pre Divider Register, offset: 0x84BC */ - uint8_t RESERVED_21[48]; - __IO uint32_t ACCESS_CTRL9; /**< Access Control Register, offset: 0x84F0 */ - __IO uint32_t ACCESS_CTRL9_ROOT_SET; /**< Access Control Register, offset: 0x84F4 */ - __IO uint32_t ACCESS_CTRL9_ROOT_CLR; /**< Access Control Register, offset: 0x84F8 */ - __IO uint32_t ACCESS_CTRL9_ROOT_TOG; /**< Access Control Register, offset: 0x84FC */ - __IO uint32_t TARGET_ROOT10; /**< Target Register, offset: 0x8500 */ - __IO uint32_t TARGET_ROOT10_SET; /**< Target Register, offset: 0x8504 */ - __IO uint32_t TARGET_ROOT10_CLR; /**< Target Register, offset: 0x8508 */ - __IO uint32_t TARGET_ROOT10_TOG; /**< Target Register, offset: 0x850C */ - uint8_t RESERVED_22[16]; - __IO uint32_t POST10; /**< Post Divider Register, offset: 0x8520 */ - __IO uint32_t POST_ROOT10_SET; /**< Post Divider Register, offset: 0x8524 */ - __IO uint32_t POST_ROOT10_CLR; /**< Post Divider Register, offset: 0x8528 */ - __IO uint32_t POST_ROOT10_TOG; /**< Post Divider Register, offset: 0x852C */ - __IO uint32_t PRE10; /**< Pre Divider Register, offset: 0x8530 */ - __IO uint32_t PRE_ROOT10_SET; /**< Pre Divider Register, offset: 0x8534 */ - __IO uint32_t PRE_ROOT10_CLR; /**< Pre Divider Register, offset: 0x8538 */ - __IO uint32_t PRE_ROOT10_TOG; /**< Pre Divider Register, offset: 0x853C */ - uint8_t RESERVED_23[48]; - __IO uint32_t ACCESS_CTRL10; /**< Access Control Register, offset: 0x8570 */ - __IO uint32_t ACCESS_CTRL10_ROOT_SET; /**< Access Control Register, offset: 0x8574 */ - __IO uint32_t ACCESS_CTRL10_ROOT_CLR; /**< Access Control Register, offset: 0x8578 */ - __IO uint32_t ACCESS_CTRL10_ROOT_TOG; /**< Access Control Register, offset: 0x857C */ - __IO uint32_t TARGET_ROOT11; /**< Target Register, offset: 0x8580 */ - __IO uint32_t TARGET_ROOT11_SET; /**< Target Register, offset: 0x8584 */ - __IO uint32_t TARGET_ROOT11_CLR; /**< Target Register, offset: 0x8588 */ - __IO uint32_t TARGET_ROOT11_TOG; /**< Target Register, offset: 0x858C */ - uint8_t RESERVED_24[16]; - __IO uint32_t POST11; /**< Post Divider Register, offset: 0x85A0 */ - __IO uint32_t POST_ROOT11_SET; /**< Post Divider Register, offset: 0x85A4 */ - __IO uint32_t POST_ROOT11_CLR; /**< Post Divider Register, offset: 0x85A8 */ - __IO uint32_t POST_ROOT11_TOG; /**< Post Divider Register, offset: 0x85AC */ - __IO uint32_t PRE11; /**< Pre Divider Register, offset: 0x85B0 */ - __IO uint32_t PRE_ROOT11_SET; /**< Pre Divider Register, offset: 0x85B4 */ - __IO uint32_t PRE_ROOT11_CLR; /**< Pre Divider Register, offset: 0x85B8 */ - __IO uint32_t PRE_ROOT11_TOG; /**< Pre Divider Register, offset: 0x85BC */ - uint8_t RESERVED_25[48]; - __IO uint32_t ACCESS_CTRL11; /**< Access Control Register, offset: 0x85F0 */ - __IO uint32_t ACCESS_CTRL11_ROOT_SET; /**< Access Control Register, offset: 0x85F4 */ - __IO uint32_t ACCESS_CTRL11_ROOT_CLR; /**< Access Control Register, offset: 0x85F8 */ - __IO uint32_t ACCESS_CTRL11_ROOT_TOG; /**< Access Control Register, offset: 0x85FC */ - __IO uint32_t TARGET_ROOT12; /**< Target Register, offset: 0x8600 */ - __IO uint32_t TARGET_ROOT12_SET; /**< Target Register, offset: 0x8604 */ - __IO uint32_t TARGET_ROOT12_CLR; /**< Target Register, offset: 0x8608 */ - __IO uint32_t TARGET_ROOT12_TOG; /**< Target Register, offset: 0x860C */ - uint8_t RESERVED_26[16]; - __IO uint32_t POST12; /**< Post Divider Register, offset: 0x8620 */ - __IO uint32_t POST_ROOT12_SET; /**< Post Divider Register, offset: 0x8624 */ - __IO uint32_t POST_ROOT12_CLR; /**< Post Divider Register, offset: 0x8628 */ - __IO uint32_t POST_ROOT12_TOG; /**< Post Divider Register, offset: 0x862C */ - __IO uint32_t PRE12; /**< Pre Divider Register, offset: 0x8630 */ - __IO uint32_t PRE_ROOT12_SET; /**< Pre Divider Register, offset: 0x8634 */ - __IO uint32_t PRE_ROOT12_CLR; /**< Pre Divider Register, offset: 0x8638 */ - __IO uint32_t PRE_ROOT12_TOG; /**< Pre Divider Register, offset: 0x863C */ - uint8_t RESERVED_27[48]; - __IO uint32_t ACCESS_CTRL12; /**< Access Control Register, offset: 0x8670 */ - __IO uint32_t ACCESS_CTRL12_ROOT_SET; /**< Access Control Register, offset: 0x8674 */ - __IO uint32_t ACCESS_CTRL12_ROOT_CLR; /**< Access Control Register, offset: 0x8678 */ - __IO uint32_t ACCESS_CTRL12_ROOT_TOG; /**< Access Control Register, offset: 0x867C */ - __IO uint32_t TARGET_ROOT13; /**< Target Register, offset: 0x8680 */ - __IO uint32_t TARGET_ROOT13_SET; /**< Target Register, offset: 0x8684 */ - __IO uint32_t TARGET_ROOT13_CLR; /**< Target Register, offset: 0x8688 */ - __IO uint32_t TARGET_ROOT13_TOG; /**< Target Register, offset: 0x868C */ - uint8_t RESERVED_28[16]; - __IO uint32_t POST13; /**< Post Divider Register, offset: 0x86A0 */ - __IO uint32_t POST_ROOT13_SET; /**< Post Divider Register, offset: 0x86A4 */ - __IO uint32_t POST_ROOT13_CLR; /**< Post Divider Register, offset: 0x86A8 */ - __IO uint32_t POST_ROOT13_TOG; /**< Post Divider Register, offset: 0x86AC */ - __IO uint32_t PRE13; /**< Pre Divider Register, offset: 0x86B0 */ - __IO uint32_t PRE_ROOT13_SET; /**< Pre Divider Register, offset: 0x86B4 */ - __IO uint32_t PRE_ROOT13_CLR; /**< Pre Divider Register, offset: 0x86B8 */ - __IO uint32_t PRE_ROOT13_TOG; /**< Pre Divider Register, offset: 0x86BC */ - uint8_t RESERVED_29[48]; - __IO uint32_t ACCESS_CTRL13; /**< Access Control Register, offset: 0x86F0 */ - __IO uint32_t ACCESS_CTRL13_ROOT_SET; /**< Access Control Register, offset: 0x86F4 */ - __IO uint32_t ACCESS_CTRL13_ROOT_CLR; /**< Access Control Register, offset: 0x86F8 */ - __IO uint32_t ACCESS_CTRL13_ROOT_TOG; /**< Access Control Register, offset: 0x86FC */ - __IO uint32_t TARGET_ROOT14; /**< Target Register, offset: 0x8700 */ - __IO uint32_t TARGET_ROOT14_SET; /**< Target Register, offset: 0x8704 */ - __IO uint32_t TARGET_ROOT14_CLR; /**< Target Register, offset: 0x8708 */ - __IO uint32_t TARGET_ROOT14_TOG; /**< Target Register, offset: 0x870C */ - uint8_t RESERVED_30[16]; - __IO uint32_t POST14; /**< Post Divider Register, offset: 0x8720 */ - __IO uint32_t POST_ROOT14_SET; /**< Post Divider Register, offset: 0x8724 */ - __IO uint32_t POST_ROOT14_CLR; /**< Post Divider Register, offset: 0x8728 */ - __IO uint32_t POST_ROOT14_TOG; /**< Post Divider Register, offset: 0x872C */ - __IO uint32_t PRE14; /**< Pre Divider Register, offset: 0x8730 */ - __IO uint32_t PRE_ROOT14_SET; /**< Pre Divider Register, offset: 0x8734 */ - __IO uint32_t PRE_ROOT14_CLR; /**< Pre Divider Register, offset: 0x8738 */ - __IO uint32_t PRE_ROOT14_TOG; /**< Pre Divider Register, offset: 0x873C */ - uint8_t RESERVED_31[48]; - __IO uint32_t ACCESS_CTRL14; /**< Access Control Register, offset: 0x8770 */ - __IO uint32_t ACCESS_CTRL14_ROOT_SET; /**< Access Control Register, offset: 0x8774 */ - __IO uint32_t ACCESS_CTRL14_ROOT_CLR; /**< Access Control Register, offset: 0x8778 */ - __IO uint32_t ACCESS_CTRL14_ROOT_TOG; /**< Access Control Register, offset: 0x877C */ - __IO uint32_t TARGET_ROOT15; /**< Target Register, offset: 0x8780 */ - __IO uint32_t TARGET_ROOT15_SET; /**< Target Register, offset: 0x8784 */ - __IO uint32_t TARGET_ROOT15_CLR; /**< Target Register, offset: 0x8788 */ - __IO uint32_t TARGET_ROOT15_TOG; /**< Target Register, offset: 0x878C */ - uint8_t RESERVED_32[16]; - __IO uint32_t POST15; /**< Post Divider Register, offset: 0x87A0 */ - __IO uint32_t POST_ROOT15_SET; /**< Post Divider Register, offset: 0x87A4 */ - __IO uint32_t POST_ROOT15_CLR; /**< Post Divider Register, offset: 0x87A8 */ - __IO uint32_t POST_ROOT15_TOG; /**< Post Divider Register, offset: 0x87AC */ - __IO uint32_t PRE15; /**< Pre Divider Register, offset: 0x87B0 */ - __IO uint32_t PRE_ROOT15_SET; /**< Pre Divider Register, offset: 0x87B4 */ - __IO uint32_t PRE_ROOT15_CLR; /**< Pre Divider Register, offset: 0x87B8 */ - __IO uint32_t PRE_ROOT15_TOG; /**< Pre Divider Register, offset: 0x87BC */ - uint8_t RESERVED_33[48]; - __IO uint32_t ACCESS_CTRL15; /**< Access Control Register, offset: 0x87F0 */ - __IO uint32_t ACCESS_CTRL15_ROOT_SET; /**< Access Control Register, offset: 0x87F4 */ - __IO uint32_t ACCESS_CTRL15_ROOT_CLR; /**< Access Control Register, offset: 0x87F8 */ - __IO uint32_t ACCESS_CTRL15_ROOT_TOG; /**< Access Control Register, offset: 0x87FC */ - __IO uint32_t TARGET_ROOT16; /**< Target Register, offset: 0x8800 */ - __IO uint32_t TARGET_ROOT16_SET; /**< Target Register, offset: 0x8804 */ - __IO uint32_t TARGET_ROOT16_CLR; /**< Target Register, offset: 0x8808 */ - __IO uint32_t TARGET_ROOT16_TOG; /**< Target Register, offset: 0x880C */ - uint8_t RESERVED_34[16]; - __IO uint32_t POST16; /**< Post Divider Register, offset: 0x8820 */ - __IO uint32_t POST_ROOT16_SET; /**< Post Divider Register, offset: 0x8824 */ - __IO uint32_t POST_ROOT16_CLR; /**< Post Divider Register, offset: 0x8828 */ - __IO uint32_t POST_ROOT16_TOG; /**< Post Divider Register, offset: 0x882C */ - __IO uint32_t PRE16; /**< Pre Divider Register, offset: 0x8830 */ - __IO uint32_t PRE_ROOT16_SET; /**< Pre Divider Register, offset: 0x8834 */ - __IO uint32_t PRE_ROOT16_CLR; /**< Pre Divider Register, offset: 0x8838 */ - __IO uint32_t PRE_ROOT16_TOG; /**< Pre Divider Register, offset: 0x883C */ - uint8_t RESERVED_35[48]; - __IO uint32_t ACCESS_CTRL16; /**< Access Control Register, offset: 0x8870 */ - __IO uint32_t ACCESS_CTRL16_ROOT_SET; /**< Access Control Register, offset: 0x8874 */ - __IO uint32_t ACCESS_CTRL16_ROOT_CLR; /**< Access Control Register, offset: 0x8878 */ - __IO uint32_t ACCESS_CTRL16_ROOT_TOG; /**< Access Control Register, offset: 0x887C */ - __IO uint32_t TARGET_ROOT17; /**< Target Register, offset: 0x8880 */ - __IO uint32_t TARGET_ROOT17_SET; /**< Target Register, offset: 0x8884 */ - __IO uint32_t TARGET_ROOT17_CLR; /**< Target Register, offset: 0x8888 */ - __IO uint32_t TARGET_ROOT17_TOG; /**< Target Register, offset: 0x888C */ - uint8_t RESERVED_36[16]; - __IO uint32_t POST17; /**< Post Divider Register, offset: 0x88A0 */ - __IO uint32_t POST_ROOT17_SET; /**< Post Divider Register, offset: 0x88A4 */ - __IO uint32_t POST_ROOT17_CLR; /**< Post Divider Register, offset: 0x88A8 */ - __IO uint32_t POST_ROOT17_TOG; /**< Post Divider Register, offset: 0x88AC */ - __IO uint32_t PRE17; /**< Pre Divider Register, offset: 0x88B0 */ - __IO uint32_t PRE_ROOT17_SET; /**< Pre Divider Register, offset: 0x88B4 */ - __IO uint32_t PRE_ROOT17_CLR; /**< Pre Divider Register, offset: 0x88B8 */ - __IO uint32_t PRE_ROOT17_TOG; /**< Pre Divider Register, offset: 0x88BC */ - uint8_t RESERVED_37[48]; - __IO uint32_t ACCESS_CTRL17; /**< Access Control Register, offset: 0x88F0 */ - __IO uint32_t ACCESS_CTRL17_ROOT_SET; /**< Access Control Register, offset: 0x88F4 */ - __IO uint32_t ACCESS_CTRL17_ROOT_CLR; /**< Access Control Register, offset: 0x88F8 */ - __IO uint32_t ACCESS_CTRL17_ROOT_TOG; /**< Access Control Register, offset: 0x88FC */ - __IO uint32_t TARGET_ROOT18; /**< Target Register, offset: 0x8900 */ - __IO uint32_t TARGET_ROOT18_SET; /**< Target Register, offset: 0x8904 */ - __IO uint32_t TARGET_ROOT18_CLR; /**< Target Register, offset: 0x8908 */ - __IO uint32_t TARGET_ROOT18_TOG; /**< Target Register, offset: 0x890C */ - uint8_t RESERVED_38[16]; - __IO uint32_t POST18; /**< Post Divider Register, offset: 0x8920 */ - __IO uint32_t POST_ROOT18_SET; /**< Post Divider Register, offset: 0x8924 */ - __IO uint32_t POST_ROOT18_CLR; /**< Post Divider Register, offset: 0x8928 */ - __IO uint32_t POST_ROOT18_TOG; /**< Post Divider Register, offset: 0x892C */ - __IO uint32_t PRE18; /**< Pre Divider Register, offset: 0x8930 */ - __IO uint32_t PRE_ROOT18_SET; /**< Pre Divider Register, offset: 0x8934 */ - __IO uint32_t PRE_ROOT18_CLR; /**< Pre Divider Register, offset: 0x8938 */ - __IO uint32_t PRE_ROOT18_TOG; /**< Pre Divider Register, offset: 0x893C */ - uint8_t RESERVED_39[48]; - __IO uint32_t ACCESS_CTRL18; /**< Access Control Register, offset: 0x8970 */ - __IO uint32_t ACCESS_CTRL18_ROOT_SET; /**< Access Control Register, offset: 0x8974 */ - __IO uint32_t ACCESS_CTRL18_ROOT_CLR; /**< Access Control Register, offset: 0x8978 */ - __IO uint32_t ACCESS_CTRL18_ROOT_TOG; /**< Access Control Register, offset: 0x897C */ - __IO uint32_t TARGET_ROOT19; /**< Target Register, offset: 0x8980 */ - __IO uint32_t TARGET_ROOT19_SET; /**< Target Register, offset: 0x8984 */ - __IO uint32_t TARGET_ROOT19_CLR; /**< Target Register, offset: 0x8988 */ - __IO uint32_t TARGET_ROOT19_TOG; /**< Target Register, offset: 0x898C */ - uint8_t RESERVED_40[16]; - __IO uint32_t POST19; /**< Post Divider Register, offset: 0x89A0 */ - __IO uint32_t POST_ROOT19_SET; /**< Post Divider Register, offset: 0x89A4 */ - __IO uint32_t POST_ROOT19_CLR; /**< Post Divider Register, offset: 0x89A8 */ - __IO uint32_t POST_ROOT19_TOG; /**< Post Divider Register, offset: 0x89AC */ - __IO uint32_t PRE19; /**< Pre Divider Register, offset: 0x89B0 */ - __IO uint32_t PRE_ROOT19_SET; /**< Pre Divider Register, offset: 0x89B4 */ - __IO uint32_t PRE_ROOT19_CLR; /**< Pre Divider Register, offset: 0x89B8 */ - __IO uint32_t PRE_ROOT19_TOG; /**< Pre Divider Register, offset: 0x89BC */ - uint8_t RESERVED_41[48]; - __IO uint32_t ACCESS_CTRL19; /**< Access Control Register, offset: 0x89F0 */ - __IO uint32_t ACCESS_CTRL19_ROOT_SET; /**< Access Control Register, offset: 0x89F4 */ - __IO uint32_t ACCESS_CTRL19_ROOT_CLR; /**< Access Control Register, offset: 0x89F8 */ - __IO uint32_t ACCESS_CTRL19_ROOT_TOG; /**< Access Control Register, offset: 0x89FC */ - __IO uint32_t TARGET_ROOT20; /**< Target Register, offset: 0x8A00 */ - __IO uint32_t TARGET_ROOT20_SET; /**< Target Register, offset: 0x8A04 */ - __IO uint32_t TARGET_ROOT20_CLR; /**< Target Register, offset: 0x8A08 */ - __IO uint32_t TARGET_ROOT20_TOG; /**< Target Register, offset: 0x8A0C */ - uint8_t RESERVED_42[16]; - __IO uint32_t POST20; /**< Post Divider Register, offset: 0x8A20 */ - __IO uint32_t POST_ROOT20_SET; /**< Post Divider Register, offset: 0x8A24 */ - __IO uint32_t POST_ROOT20_CLR; /**< Post Divider Register, offset: 0x8A28 */ - __IO uint32_t POST_ROOT20_TOG; /**< Post Divider Register, offset: 0x8A2C */ - __IO uint32_t PRE20; /**< Pre Divider Register, offset: 0x8A30 */ - __IO uint32_t PRE_ROOT20_SET; /**< Pre Divider Register, offset: 0x8A34 */ - __IO uint32_t PRE_ROOT20_CLR; /**< Pre Divider Register, offset: 0x8A38 */ - __IO uint32_t PRE_ROOT20_TOG; /**< Pre Divider Register, offset: 0x8A3C */ - uint8_t RESERVED_43[48]; - __IO uint32_t ACCESS_CTRL20; /**< Access Control Register, offset: 0x8A70 */ - __IO uint32_t ACCESS_CTRL20_ROOT_SET; /**< Access Control Register, offset: 0x8A74 */ - __IO uint32_t ACCESS_CTRL20_ROOT_CLR; /**< Access Control Register, offset: 0x8A78 */ - __IO uint32_t ACCESS_CTRL20_ROOT_TOG; /**< Access Control Register, offset: 0x8A7C */ - __IO uint32_t TARGET_ROOT21; /**< Target Register, offset: 0x8A80 */ - __IO uint32_t TARGET_ROOT21_SET; /**< Target Register, offset: 0x8A84 */ - __IO uint32_t TARGET_ROOT21_CLR; /**< Target Register, offset: 0x8A88 */ - __IO uint32_t TARGET_ROOT21_TOG; /**< Target Register, offset: 0x8A8C */ - uint8_t RESERVED_44[16]; - __IO uint32_t POST21; /**< Post Divider Register, offset: 0x8AA0 */ - __IO uint32_t POST_ROOT21_SET; /**< Post Divider Register, offset: 0x8AA4 */ - __IO uint32_t POST_ROOT21_CLR; /**< Post Divider Register, offset: 0x8AA8 */ - __IO uint32_t POST_ROOT21_TOG; /**< Post Divider Register, offset: 0x8AAC */ - __IO uint32_t PRE21; /**< Pre Divider Register, offset: 0x8AB0 */ - __IO uint32_t PRE_ROOT21_SET; /**< Pre Divider Register, offset: 0x8AB4 */ - __IO uint32_t PRE_ROOT21_CLR; /**< Pre Divider Register, offset: 0x8AB8 */ - __IO uint32_t PRE_ROOT21_TOG; /**< Pre Divider Register, offset: 0x8ABC */ - uint8_t RESERVED_45[48]; - __IO uint32_t ACCESS_CTRL21; /**< Access Control Register, offset: 0x8AF0 */ - __IO uint32_t ACCESS_CTRL21_ROOT_SET; /**< Access Control Register, offset: 0x8AF4 */ - __IO uint32_t ACCESS_CTRL21_ROOT_CLR; /**< Access Control Register, offset: 0x8AF8 */ - __IO uint32_t ACCESS_CTRL21_ROOT_TOG; /**< Access Control Register, offset: 0x8AFC */ - __IO uint32_t TARGET_ROOT22; /**< Target Register, offset: 0x8B00 */ - __IO uint32_t TARGET_ROOT22_SET; /**< Target Register, offset: 0x8B04 */ - __IO uint32_t TARGET_ROOT22_CLR; /**< Target Register, offset: 0x8B08 */ - __IO uint32_t TARGET_ROOT22_TOG; /**< Target Register, offset: 0x8B0C */ - uint8_t RESERVED_46[16]; - __IO uint32_t POST22; /**< Post Divider Register, offset: 0x8B20 */ - __IO uint32_t POST_ROOT22_SET; /**< Post Divider Register, offset: 0x8B24 */ - __IO uint32_t POST_ROOT22_CLR; /**< Post Divider Register, offset: 0x8B28 */ - __IO uint32_t POST_ROOT22_TOG; /**< Post Divider Register, offset: 0x8B2C */ - __IO uint32_t PRE22; /**< Pre Divider Register, offset: 0x8B30 */ - __IO uint32_t PRE_ROOT22_SET; /**< Pre Divider Register, offset: 0x8B34 */ - __IO uint32_t PRE_ROOT22_CLR; /**< Pre Divider Register, offset: 0x8B38 */ - __IO uint32_t PRE_ROOT22_TOG; /**< Pre Divider Register, offset: 0x8B3C */ - uint8_t RESERVED_47[48]; - __IO uint32_t ACCESS_CTRL22; /**< Access Control Register, offset: 0x8B70 */ - __IO uint32_t ACCESS_CTRL22_ROOT_SET; /**< Access Control Register, offset: 0x8B74 */ - __IO uint32_t ACCESS_CTRL22_ROOT_CLR; /**< Access Control Register, offset: 0x8B78 */ - __IO uint32_t ACCESS_CTRL22_ROOT_TOG; /**< Access Control Register, offset: 0x8B7C */ - __IO uint32_t TARGET_ROOT23; /**< Target Register, offset: 0x8B80 */ - __IO uint32_t TARGET_ROOT23_SET; /**< Target Register, offset: 0x8B84 */ - __IO uint32_t TARGET_ROOT23_CLR; /**< Target Register, offset: 0x8B88 */ - __IO uint32_t TARGET_ROOT23_TOG; /**< Target Register, offset: 0x8B8C */ - uint8_t RESERVED_48[16]; - __IO uint32_t POST23; /**< Post Divider Register, offset: 0x8BA0 */ - __IO uint32_t POST_ROOT23_SET; /**< Post Divider Register, offset: 0x8BA4 */ - __IO uint32_t POST_ROOT23_CLR; /**< Post Divider Register, offset: 0x8BA8 */ - __IO uint32_t POST_ROOT23_TOG; /**< Post Divider Register, offset: 0x8BAC */ - __IO uint32_t PRE23; /**< Pre Divider Register, offset: 0x8BB0 */ - __IO uint32_t PRE_ROOT23_SET; /**< Pre Divider Register, offset: 0x8BB4 */ - __IO uint32_t PRE_ROOT23_CLR; /**< Pre Divider Register, offset: 0x8BB8 */ - __IO uint32_t PRE_ROOT23_TOG; /**< Pre Divider Register, offset: 0x8BBC */ - uint8_t RESERVED_49[48]; - __IO uint32_t ACCESS_CTRL23; /**< Access Control Register, offset: 0x8BF0 */ - __IO uint32_t ACCESS_CTRL23_ROOT_SET; /**< Access Control Register, offset: 0x8BF4 */ - __IO uint32_t ACCESS_CTRL23_ROOT_CLR; /**< Access Control Register, offset: 0x8BF8 */ - __IO uint32_t ACCESS_CTRL23_ROOT_TOG; /**< Access Control Register, offset: 0x8BFC */ - __IO uint32_t TARGET_ROOT24; /**< Target Register, offset: 0x8C00 */ - __IO uint32_t TARGET_ROOT24_SET; /**< Target Register, offset: 0x8C04 */ - __IO uint32_t TARGET_ROOT24_CLR; /**< Target Register, offset: 0x8C08 */ - __IO uint32_t TARGET_ROOT24_TOG; /**< Target Register, offset: 0x8C0C */ - uint8_t RESERVED_50[16]; - __IO uint32_t POST24; /**< Post Divider Register, offset: 0x8C20 */ - __IO uint32_t POST_ROOT24_SET; /**< Post Divider Register, offset: 0x8C24 */ - __IO uint32_t POST_ROOT24_CLR; /**< Post Divider Register, offset: 0x8C28 */ - __IO uint32_t POST_ROOT24_TOG; /**< Post Divider Register, offset: 0x8C2C */ - __IO uint32_t PRE24; /**< Pre Divider Register, offset: 0x8C30 */ - __IO uint32_t PRE_ROOT24_SET; /**< Pre Divider Register, offset: 0x8C34 */ - __IO uint32_t PRE_ROOT24_CLR; /**< Pre Divider Register, offset: 0x8C38 */ - __IO uint32_t PRE_ROOT24_TOG; /**< Pre Divider Register, offset: 0x8C3C */ - uint8_t RESERVED_51[48]; - __IO uint32_t ACCESS_CTRL24; /**< Access Control Register, offset: 0x8C70 */ - __IO uint32_t ACCESS_CTRL24_ROOT_SET; /**< Access Control Register, offset: 0x8C74 */ - __IO uint32_t ACCESS_CTRL24_ROOT_CLR; /**< Access Control Register, offset: 0x8C78 */ - __IO uint32_t ACCESS_CTRL24_ROOT_TOG; /**< Access Control Register, offset: 0x8C7C */ - __IO uint32_t TARGET_ROOT25; /**< Target Register, offset: 0x8C80 */ - __IO uint32_t TARGET_ROOT25_SET; /**< Target Register, offset: 0x8C84 */ - __IO uint32_t TARGET_ROOT25_CLR; /**< Target Register, offset: 0x8C88 */ - __IO uint32_t TARGET_ROOT25_TOG; /**< Target Register, offset: 0x8C8C */ - uint8_t RESERVED_52[16]; - __IO uint32_t POST25; /**< Post Divider Register, offset: 0x8CA0 */ - __IO uint32_t POST_ROOT25_SET; /**< Post Divider Register, offset: 0x8CA4 */ - __IO uint32_t POST_ROOT25_CLR; /**< Post Divider Register, offset: 0x8CA8 */ - __IO uint32_t POST_ROOT25_TOG; /**< Post Divider Register, offset: 0x8CAC */ - __IO uint32_t PRE25; /**< Pre Divider Register, offset: 0x8CB0 */ - __IO uint32_t PRE_ROOT25_SET; /**< Pre Divider Register, offset: 0x8CB4 */ - __IO uint32_t PRE_ROOT25_CLR; /**< Pre Divider Register, offset: 0x8CB8 */ - __IO uint32_t PRE_ROOT25_TOG; /**< Pre Divider Register, offset: 0x8CBC */ - uint8_t RESERVED_53[48]; - __IO uint32_t ACCESS_CTRL25; /**< Access Control Register, offset: 0x8CF0 */ - __IO uint32_t ACCESS_CTRL25_ROOT_SET; /**< Access Control Register, offset: 0x8CF4 */ - __IO uint32_t ACCESS_CTRL25_ROOT_CLR; /**< Access Control Register, offset: 0x8CF8 */ - __IO uint32_t ACCESS_CTRL25_ROOT_TOG; /**< Access Control Register, offset: 0x8CFC */ - __IO uint32_t TARGET_ROOT26; /**< Target Register, offset: 0x8D00 */ - __IO uint32_t TARGET_ROOT26_SET; /**< Target Register, offset: 0x8D04 */ - __IO uint32_t TARGET_ROOT26_CLR; /**< Target Register, offset: 0x8D08 */ - __IO uint32_t TARGET_ROOT26_TOG; /**< Target Register, offset: 0x8D0C */ - uint8_t RESERVED_54[16]; - __IO uint32_t POST26; /**< Post Divider Register, offset: 0x8D20 */ - __IO uint32_t POST_ROOT26_SET; /**< Post Divider Register, offset: 0x8D24 */ - __IO uint32_t POST_ROOT26_CLR; /**< Post Divider Register, offset: 0x8D28 */ - __IO uint32_t POST_ROOT26_TOG; /**< Post Divider Register, offset: 0x8D2C */ - __IO uint32_t PRE26; /**< Pre Divider Register, offset: 0x8D30 */ - __IO uint32_t PRE_ROOT26_SET; /**< Pre Divider Register, offset: 0x8D34 */ - __IO uint32_t PRE_ROOT26_CLR; /**< Pre Divider Register, offset: 0x8D38 */ - __IO uint32_t PRE_ROOT26_TOG; /**< Pre Divider Register, offset: 0x8D3C */ - uint8_t RESERVED_55[48]; - __IO uint32_t ACCESS_CTRL26; /**< Access Control Register, offset: 0x8D70 */ - __IO uint32_t ACCESS_CTRL26_ROOT_SET; /**< Access Control Register, offset: 0x8D74 */ - __IO uint32_t ACCESS_CTRL26_ROOT_CLR; /**< Access Control Register, offset: 0x8D78 */ - __IO uint32_t ACCESS_CTRL26_ROOT_TOG; /**< Access Control Register, offset: 0x8D7C */ - __IO uint32_t TARGET_ROOT27; /**< Target Register, offset: 0x8D80 */ - __IO uint32_t TARGET_ROOT27_SET; /**< Target Register, offset: 0x8D84 */ - __IO uint32_t TARGET_ROOT27_CLR; /**< Target Register, offset: 0x8D88 */ - __IO uint32_t TARGET_ROOT27_TOG; /**< Target Register, offset: 0x8D8C */ - uint8_t RESERVED_56[16]; - __IO uint32_t POST27; /**< Post Divider Register, offset: 0x8DA0 */ - __IO uint32_t POST_ROOT27_SET; /**< Post Divider Register, offset: 0x8DA4 */ - __IO uint32_t POST_ROOT27_CLR; /**< Post Divider Register, offset: 0x8DA8 */ - __IO uint32_t POST_ROOT27_TOG; /**< Post Divider Register, offset: 0x8DAC */ - __IO uint32_t PRE27; /**< Pre Divider Register, offset: 0x8DB0 */ - __IO uint32_t PRE_ROOT27_SET; /**< Pre Divider Register, offset: 0x8DB4 */ - __IO uint32_t PRE_ROOT27_CLR; /**< Pre Divider Register, offset: 0x8DB8 */ - __IO uint32_t PRE_ROOT27_TOG; /**< Pre Divider Register, offset: 0x8DBC */ - uint8_t RESERVED_57[48]; - __IO uint32_t ACCESS_CTRL27; /**< Access Control Register, offset: 0x8DF0 */ - __IO uint32_t ACCESS_CTRL27_ROOT_SET; /**< Access Control Register, offset: 0x8DF4 */ - __IO uint32_t ACCESS_CTRL27_ROOT_CLR; /**< Access Control Register, offset: 0x8DF8 */ - __IO uint32_t ACCESS_CTRL27_ROOT_TOG; /**< Access Control Register, offset: 0x8DFC */ - __IO uint32_t TARGET_ROOT28; /**< Target Register, offset: 0x8E00 */ - __IO uint32_t TARGET_ROOT28_SET; /**< Target Register, offset: 0x8E04 */ - __IO uint32_t TARGET_ROOT28_CLR; /**< Target Register, offset: 0x8E08 */ - __IO uint32_t TARGET_ROOT28_TOG; /**< Target Register, offset: 0x8E0C */ - uint8_t RESERVED_58[16]; - __IO uint32_t POST28; /**< Post Divider Register, offset: 0x8E20 */ - __IO uint32_t POST_ROOT28_SET; /**< Post Divider Register, offset: 0x8E24 */ - __IO uint32_t POST_ROOT28_CLR; /**< Post Divider Register, offset: 0x8E28 */ - __IO uint32_t POST_ROOT28_TOG; /**< Post Divider Register, offset: 0x8E2C */ - __IO uint32_t PRE28; /**< Pre Divider Register, offset: 0x8E30 */ - __IO uint32_t PRE_ROOT28_SET; /**< Pre Divider Register, offset: 0x8E34 */ - __IO uint32_t PRE_ROOT28_CLR; /**< Pre Divider Register, offset: 0x8E38 */ - __IO uint32_t PRE_ROOT28_TOG; /**< Pre Divider Register, offset: 0x8E3C */ - uint8_t RESERVED_59[48]; - __IO uint32_t ACCESS_CTRL28; /**< Access Control Register, offset: 0x8E70 */ - __IO uint32_t ACCESS_CTRL28_ROOT_SET; /**< Access Control Register, offset: 0x8E74 */ - __IO uint32_t ACCESS_CTRL28_ROOT_CLR; /**< Access Control Register, offset: 0x8E78 */ - __IO uint32_t ACCESS_CTRL28_ROOT_TOG; /**< Access Control Register, offset: 0x8E7C */ - __IO uint32_t TARGET_ROOT29; /**< Target Register, offset: 0x8E80 */ - __IO uint32_t TARGET_ROOT29_SET; /**< Target Register, offset: 0x8E84 */ - __IO uint32_t TARGET_ROOT29_CLR; /**< Target Register, offset: 0x8E88 */ - __IO uint32_t TARGET_ROOT29_TOG; /**< Target Register, offset: 0x8E8C */ - uint8_t RESERVED_60[16]; - __IO uint32_t POST29; /**< Post Divider Register, offset: 0x8EA0 */ - __IO uint32_t POST_ROOT29_SET; /**< Post Divider Register, offset: 0x8EA4 */ - __IO uint32_t POST_ROOT29_CLR; /**< Post Divider Register, offset: 0x8EA8 */ - __IO uint32_t POST_ROOT29_TOG; /**< Post Divider Register, offset: 0x8EAC */ - __IO uint32_t PRE29; /**< Pre Divider Register, offset: 0x8EB0 */ - __IO uint32_t PRE_ROOT29_SET; /**< Pre Divider Register, offset: 0x8EB4 */ - __IO uint32_t PRE_ROOT29_CLR; /**< Pre Divider Register, offset: 0x8EB8 */ - __IO uint32_t PRE_ROOT29_TOG; /**< Pre Divider Register, offset: 0x8EBC */ - uint8_t RESERVED_61[48]; - __IO uint32_t ACCESS_CTRL29; /**< Access Control Register, offset: 0x8EF0 */ - __IO uint32_t ACCESS_CTRL29_ROOT_SET; /**< Access Control Register, offset: 0x8EF4 */ - __IO uint32_t ACCESS_CTRL29_ROOT_CLR; /**< Access Control Register, offset: 0x8EF8 */ - __IO uint32_t ACCESS_CTRL29_ROOT_TOG; /**< Access Control Register, offset: 0x8EFC */ - __IO uint32_t TARGET_ROOT30; /**< Target Register, offset: 0x8F00 */ - __IO uint32_t TARGET_ROOT30_SET; /**< Target Register, offset: 0x8F04 */ - __IO uint32_t TARGET_ROOT30_CLR; /**< Target Register, offset: 0x8F08 */ - __IO uint32_t TARGET_ROOT30_TOG; /**< Target Register, offset: 0x8F0C */ - uint8_t RESERVED_62[16]; - __IO uint32_t POST30; /**< Post Divider Register, offset: 0x8F20 */ - __IO uint32_t POST_ROOT30_SET; /**< Post Divider Register, offset: 0x8F24 */ - __IO uint32_t POST_ROOT30_CLR; /**< Post Divider Register, offset: 0x8F28 */ - __IO uint32_t POST_ROOT30_TOG; /**< Post Divider Register, offset: 0x8F2C */ - __IO uint32_t PRE30; /**< Pre Divider Register, offset: 0x8F30 */ - __IO uint32_t PRE_ROOT30_SET; /**< Pre Divider Register, offset: 0x8F34 */ - __IO uint32_t PRE_ROOT30_CLR; /**< Pre Divider Register, offset: 0x8F38 */ - __IO uint32_t PRE_ROOT30_TOG; /**< Pre Divider Register, offset: 0x8F3C */ - uint8_t RESERVED_63[48]; - __IO uint32_t ACCESS_CTRL30; /**< Access Control Register, offset: 0x8F70 */ - __IO uint32_t ACCESS_CTRL30_ROOT_SET; /**< Access Control Register, offset: 0x8F74 */ - __IO uint32_t ACCESS_CTRL30_ROOT_CLR; /**< Access Control Register, offset: 0x8F78 */ - __IO uint32_t ACCESS_CTRL30_ROOT_TOG; /**< Access Control Register, offset: 0x8F7C */ - __IO uint32_t TARGET_ROOT31; /**< Target Register, offset: 0x8F80 */ - __IO uint32_t TARGET_ROOT31_SET; /**< Target Register, offset: 0x8F84 */ - __IO uint32_t TARGET_ROOT31_CLR; /**< Target Register, offset: 0x8F88 */ - __IO uint32_t TARGET_ROOT31_TOG; /**< Target Register, offset: 0x8F8C */ - uint8_t RESERVED_64[16]; - __IO uint32_t POST31; /**< Post Divider Register, offset: 0x8FA0 */ - __IO uint32_t POST_ROOT31_SET; /**< Post Divider Register, offset: 0x8FA4 */ - __IO uint32_t POST_ROOT31_CLR; /**< Post Divider Register, offset: 0x8FA8 */ - __IO uint32_t POST_ROOT31_TOG; /**< Post Divider Register, offset: 0x8FAC */ - __IO uint32_t PRE31; /**< Pre Divider Register, offset: 0x8FB0 */ - __IO uint32_t PRE_ROOT31_SET; /**< Pre Divider Register, offset: 0x8FB4 */ - __IO uint32_t PRE_ROOT31_CLR; /**< Pre Divider Register, offset: 0x8FB8 */ - __IO uint32_t PRE_ROOT31_TOG; /**< Pre Divider Register, offset: 0x8FBC */ - uint8_t RESERVED_65[48]; - __IO uint32_t ACCESS_CTRL31; /**< Access Control Register, offset: 0x8FF0 */ - __IO uint32_t ACCESS_CTRL31_ROOT_SET; /**< Access Control Register, offset: 0x8FF4 */ - __IO uint32_t ACCESS_CTRL31_ROOT_CLR; /**< Access Control Register, offset: 0x8FF8 */ - __IO uint32_t ACCESS_CTRL31_ROOT_TOG; /**< Access Control Register, offset: 0x8FFC */ - __IO uint32_t TARGET_ROOT32; /**< Target Register, offset: 0x9000 */ - __IO uint32_t TARGET_ROOT32_SET; /**< Target Register, offset: 0x9004 */ - __IO uint32_t TARGET_ROOT32_CLR; /**< Target Register, offset: 0x9008 */ - __IO uint32_t TARGET_ROOT32_TOG; /**< Target Register, offset: 0x900C */ - uint8_t RESERVED_66[16]; - __IO uint32_t POST32; /**< Post Divider Register, offset: 0x9020 */ - __IO uint32_t POST_ROOT32_SET; /**< Post Divider Register, offset: 0x9024 */ - __IO uint32_t POST_ROOT32_CLR; /**< Post Divider Register, offset: 0x9028 */ - __IO uint32_t POST_ROOT32_TOG; /**< Post Divider Register, offset: 0x902C */ - __IO uint32_t PRE32; /**< Pre Divider Register, offset: 0x9030 */ - __IO uint32_t PRE_ROOT32_SET; /**< Pre Divider Register, offset: 0x9034 */ - __IO uint32_t PRE_ROOT32_CLR; /**< Pre Divider Register, offset: 0x9038 */ - __IO uint32_t PRE_ROOT32_TOG; /**< Pre Divider Register, offset: 0x903C */ - uint8_t RESERVED_67[48]; - __IO uint32_t ACCESS_CTRL32; /**< Access Control Register, offset: 0x9070 */ - __IO uint32_t ACCESS_CTRL32_ROOT_SET; /**< Access Control Register, offset: 0x9074 */ - __IO uint32_t ACCESS_CTRL32_ROOT_CLR; /**< Access Control Register, offset: 0x9078 */ - __IO uint32_t ACCESS_CTRL32_ROOT_TOG; /**< Access Control Register, offset: 0x907C */ - __IO uint32_t TARGET_ROOT33; /**< Target Register, offset: 0x9080 */ - __IO uint32_t TARGET_ROOT33_SET; /**< Target Register, offset: 0x9084 */ - __IO uint32_t TARGET_ROOT33_CLR; /**< Target Register, offset: 0x9088 */ - __IO uint32_t TARGET_ROOT33_TOG; /**< Target Register, offset: 0x908C */ - uint8_t RESERVED_68[16]; - __IO uint32_t POST33; /**< Post Divider Register, offset: 0x90A0 */ - __IO uint32_t POST_ROOT33_SET; /**< Post Divider Register, offset: 0x90A4 */ - __IO uint32_t POST_ROOT33_CLR; /**< Post Divider Register, offset: 0x90A8 */ - __IO uint32_t POST_ROOT33_TOG; /**< Post Divider Register, offset: 0x90AC */ - __IO uint32_t PRE33; /**< Pre Divider Register, offset: 0x90B0 */ - __IO uint32_t PRE_ROOT33_SET; /**< Pre Divider Register, offset: 0x90B4 */ - __IO uint32_t PRE_ROOT33_CLR; /**< Pre Divider Register, offset: 0x90B8 */ - __IO uint32_t PRE_ROOT33_TOG; /**< Pre Divider Register, offset: 0x90BC */ - uint8_t RESERVED_69[48]; - __IO uint32_t ACCESS_CTRL33; /**< Access Control Register, offset: 0x90F0 */ - __IO uint32_t ACCESS_CTRL33_ROOT_SET; /**< Access Control Register, offset: 0x90F4 */ - __IO uint32_t ACCESS_CTRL33_ROOT_CLR; /**< Access Control Register, offset: 0x90F8 */ - __IO uint32_t ACCESS_CTRL33_ROOT_TOG; /**< Access Control Register, offset: 0x90FC */ - __IO uint32_t TARGET_ROOT34; /**< Target Register, offset: 0x9100 */ - __IO uint32_t TARGET_ROOT34_SET; /**< Target Register, offset: 0x9104 */ - __IO uint32_t TARGET_ROOT34_CLR; /**< Target Register, offset: 0x9108 */ - __IO uint32_t TARGET_ROOT34_TOG; /**< Target Register, offset: 0x910C */ - uint8_t RESERVED_70[16]; - __IO uint32_t POST34; /**< Post Divider Register, offset: 0x9120 */ - __IO uint32_t POST_ROOT34_SET; /**< Post Divider Register, offset: 0x9124 */ - __IO uint32_t POST_ROOT34_CLR; /**< Post Divider Register, offset: 0x9128 */ - __IO uint32_t POST_ROOT34_TOG; /**< Post Divider Register, offset: 0x912C */ - __IO uint32_t PRE34; /**< Pre Divider Register, offset: 0x9130 */ - __IO uint32_t PRE_ROOT34_SET; /**< Pre Divider Register, offset: 0x9134 */ - __IO uint32_t PRE_ROOT34_CLR; /**< Pre Divider Register, offset: 0x9138 */ - __IO uint32_t PRE_ROOT34_TOG; /**< Pre Divider Register, offset: 0x913C */ - uint8_t RESERVED_71[48]; - __IO uint32_t ACCESS_CTRL34; /**< Access Control Register, offset: 0x9170 */ - __IO uint32_t ACCESS_CTRL34_ROOT_SET; /**< Access Control Register, offset: 0x9174 */ - __IO uint32_t ACCESS_CTRL34_ROOT_CLR; /**< Access Control Register, offset: 0x9178 */ - __IO uint32_t ACCESS_CTRL34_ROOT_TOG; /**< Access Control Register, offset: 0x917C */ - __IO uint32_t TARGET_ROOT35; /**< Target Register, offset: 0x9180 */ - __IO uint32_t TARGET_ROOT35_SET; /**< Target Register, offset: 0x9184 */ - __IO uint32_t TARGET_ROOT35_CLR; /**< Target Register, offset: 0x9188 */ - __IO uint32_t TARGET_ROOT35_TOG; /**< Target Register, offset: 0x918C */ - uint8_t RESERVED_72[16]; - __IO uint32_t POST35; /**< Post Divider Register, offset: 0x91A0 */ - __IO uint32_t POST_ROOT35_SET; /**< Post Divider Register, offset: 0x91A4 */ - __IO uint32_t POST_ROOT35_CLR; /**< Post Divider Register, offset: 0x91A8 */ - __IO uint32_t POST_ROOT35_TOG; /**< Post Divider Register, offset: 0x91AC */ - __IO uint32_t PRE35; /**< Pre Divider Register, offset: 0x91B0 */ - __IO uint32_t PRE_ROOT35_SET; /**< Pre Divider Register, offset: 0x91B4 */ - __IO uint32_t PRE_ROOT35_CLR; /**< Pre Divider Register, offset: 0x91B8 */ - __IO uint32_t PRE_ROOT35_TOG; /**< Pre Divider Register, offset: 0x91BC */ - uint8_t RESERVED_73[48]; - __IO uint32_t ACCESS_CTRL35; /**< Access Control Register, offset: 0x91F0 */ - __IO uint32_t ACCESS_CTRL35_ROOT_SET; /**< Access Control Register, offset: 0x91F4 */ - __IO uint32_t ACCESS_CTRL35_ROOT_CLR; /**< Access Control Register, offset: 0x91F8 */ - __IO uint32_t ACCESS_CTRL35_ROOT_TOG; /**< Access Control Register, offset: 0x91FC */ - __IO uint32_t TARGET_ROOT36; /**< Target Register, offset: 0x9200 */ - __IO uint32_t TARGET_ROOT36_SET; /**< Target Register, offset: 0x9204 */ - __IO uint32_t TARGET_ROOT36_CLR; /**< Target Register, offset: 0x9208 */ - __IO uint32_t TARGET_ROOT36_TOG; /**< Target Register, offset: 0x920C */ - uint8_t RESERVED_74[16]; - __IO uint32_t POST36; /**< Post Divider Register, offset: 0x9220 */ - __IO uint32_t POST_ROOT36_SET; /**< Post Divider Register, offset: 0x9224 */ - __IO uint32_t POST_ROOT36_CLR; /**< Post Divider Register, offset: 0x9228 */ - __IO uint32_t POST_ROOT36_TOG; /**< Post Divider Register, offset: 0x922C */ - __IO uint32_t PRE36; /**< Pre Divider Register, offset: 0x9230 */ - __IO uint32_t PRE_ROOT36_SET; /**< Pre Divider Register, offset: 0x9234 */ - __IO uint32_t PRE_ROOT36_CLR; /**< Pre Divider Register, offset: 0x9238 */ - __IO uint32_t PRE_ROOT36_TOG; /**< Pre Divider Register, offset: 0x923C */ - uint8_t RESERVED_75[48]; - __IO uint32_t ACCESS_CTRL36; /**< Access Control Register, offset: 0x9270 */ - __IO uint32_t ACCESS_CTRL36_ROOT_SET; /**< Access Control Register, offset: 0x9274 */ - __IO uint32_t ACCESS_CTRL36_ROOT_CLR; /**< Access Control Register, offset: 0x9278 */ - __IO uint32_t ACCESS_CTRL36_ROOT_TOG; /**< Access Control Register, offset: 0x927C */ - __IO uint32_t TARGET_ROOT37; /**< Target Register, offset: 0x9280 */ - __IO uint32_t TARGET_ROOT37_SET; /**< Target Register, offset: 0x9284 */ - __IO uint32_t TARGET_ROOT37_CLR; /**< Target Register, offset: 0x9288 */ - __IO uint32_t TARGET_ROOT37_TOG; /**< Target Register, offset: 0x928C */ - uint8_t RESERVED_76[16]; - __IO uint32_t POST37; /**< Post Divider Register, offset: 0x92A0 */ - __IO uint32_t POST_ROOT37_SET; /**< Post Divider Register, offset: 0x92A4 */ - __IO uint32_t POST_ROOT37_CLR; /**< Post Divider Register, offset: 0x92A8 */ - __IO uint32_t POST_ROOT37_TOG; /**< Post Divider Register, offset: 0x92AC */ - __IO uint32_t PRE37; /**< Pre Divider Register, offset: 0x92B0 */ - __IO uint32_t PRE_ROOT37_SET; /**< Pre Divider Register, offset: 0x92B4 */ - __IO uint32_t PRE_ROOT37_CLR; /**< Pre Divider Register, offset: 0x92B8 */ - __IO uint32_t PRE_ROOT37_TOG; /**< Pre Divider Register, offset: 0x92BC */ - uint8_t RESERVED_77[48]; - __IO uint32_t ACCESS_CTRL37; /**< Access Control Register, offset: 0x92F0 */ - __IO uint32_t ACCESS_CTRL37_ROOT_SET; /**< Access Control Register, offset: 0x92F4 */ - __IO uint32_t ACCESS_CTRL37_ROOT_CLR; /**< Access Control Register, offset: 0x92F8 */ - __IO uint32_t ACCESS_CTRL37_ROOT_TOG; /**< Access Control Register, offset: 0x92FC */ - __IO uint32_t TARGET_ROOT38; /**< Target Register, offset: 0x9300 */ - __IO uint32_t TARGET_ROOT38_SET; /**< Target Register, offset: 0x9304 */ - __IO uint32_t TARGET_ROOT38_CLR; /**< Target Register, offset: 0x9308 */ - __IO uint32_t TARGET_ROOT38_TOG; /**< Target Register, offset: 0x930C */ - uint8_t RESERVED_78[16]; - __IO uint32_t POST38; /**< Post Divider Register, offset: 0x9320 */ - __IO uint32_t POST_ROOT38_SET; /**< Post Divider Register, offset: 0x9324 */ - __IO uint32_t POST_ROOT38_CLR; /**< Post Divider Register, offset: 0x9328 */ - __IO uint32_t POST_ROOT38_TOG; /**< Post Divider Register, offset: 0x932C */ - __IO uint32_t PRE38; /**< Pre Divider Register, offset: 0x9330 */ - __IO uint32_t PRE_ROOT38_SET; /**< Pre Divider Register, offset: 0x9334 */ - __IO uint32_t PRE_ROOT38_CLR; /**< Pre Divider Register, offset: 0x9338 */ - __IO uint32_t PRE_ROOT38_TOG; /**< Pre Divider Register, offset: 0x933C */ - uint8_t RESERVED_79[48]; - __IO uint32_t ACCESS_CTRL38; /**< Access Control Register, offset: 0x9370 */ - __IO uint32_t ACCESS_CTRL38_ROOT_SET; /**< Access Control Register, offset: 0x9374 */ - __IO uint32_t ACCESS_CTRL38_ROOT_CLR; /**< Access Control Register, offset: 0x9378 */ - __IO uint32_t ACCESS_CTRL38_ROOT_TOG; /**< Access Control Register, offset: 0x937C */ - __IO uint32_t TARGET_ROOT39; /**< Target Register, offset: 0x9380 */ - __IO uint32_t TARGET_ROOT39_SET; /**< Target Register, offset: 0x9384 */ - __IO uint32_t TARGET_ROOT39_CLR; /**< Target Register, offset: 0x9388 */ - __IO uint32_t TARGET_ROOT39_TOG; /**< Target Register, offset: 0x938C */ - uint8_t RESERVED_80[16]; - __IO uint32_t POST39; /**< Post Divider Register, offset: 0x93A0 */ - __IO uint32_t POST_ROOT39_SET; /**< Post Divider Register, offset: 0x93A4 */ - __IO uint32_t POST_ROOT39_CLR; /**< Post Divider Register, offset: 0x93A8 */ - __IO uint32_t POST_ROOT39_TOG; /**< Post Divider Register, offset: 0x93AC */ - __IO uint32_t PRE39; /**< Pre Divider Register, offset: 0x93B0 */ - __IO uint32_t PRE_ROOT39_SET; /**< Pre Divider Register, offset: 0x93B4 */ - __IO uint32_t PRE_ROOT39_CLR; /**< Pre Divider Register, offset: 0x93B8 */ - __IO uint32_t PRE_ROOT39_TOG; /**< Pre Divider Register, offset: 0x93BC */ - uint8_t RESERVED_81[48]; - __IO uint32_t ACCESS_CTRL39; /**< Access Control Register, offset: 0x93F0 */ - __IO uint32_t ACCESS_CTRL39_ROOT_SET; /**< Access Control Register, offset: 0x93F4 */ - __IO uint32_t ACCESS_CTRL39_ROOT_CLR; /**< Access Control Register, offset: 0x93F8 */ - __IO uint32_t ACCESS_CTRL39_ROOT_TOG; /**< Access Control Register, offset: 0x93FC */ - __IO uint32_t TARGET_ROOT40; /**< Target Register, offset: 0x9400 */ - __IO uint32_t TARGET_ROOT40_SET; /**< Target Register, offset: 0x9404 */ - __IO uint32_t TARGET_ROOT40_CLR; /**< Target Register, offset: 0x9408 */ - __IO uint32_t TARGET_ROOT40_TOG; /**< Target Register, offset: 0x940C */ - uint8_t RESERVED_82[16]; - __IO uint32_t POST40; /**< Post Divider Register, offset: 0x9420 */ - __IO uint32_t POST_ROOT40_SET; /**< Post Divider Register, offset: 0x9424 */ - __IO uint32_t POST_ROOT40_CLR; /**< Post Divider Register, offset: 0x9428 */ - __IO uint32_t POST_ROOT40_TOG; /**< Post Divider Register, offset: 0x942C */ - __IO uint32_t PRE40; /**< Pre Divider Register, offset: 0x9430 */ - __IO uint32_t PRE_ROOT40_SET; /**< Pre Divider Register, offset: 0x9434 */ - __IO uint32_t PRE_ROOT40_CLR; /**< Pre Divider Register, offset: 0x9438 */ - __IO uint32_t PRE_ROOT40_TOG; /**< Pre Divider Register, offset: 0x943C */ - uint8_t RESERVED_83[48]; - __IO uint32_t ACCESS_CTRL40; /**< Access Control Register, offset: 0x9470 */ - __IO uint32_t ACCESS_CTRL40_ROOT_SET; /**< Access Control Register, offset: 0x9474 */ - __IO uint32_t ACCESS_CTRL40_ROOT_CLR; /**< Access Control Register, offset: 0x9478 */ - __IO uint32_t ACCESS_CTRL40_ROOT_TOG; /**< Access Control Register, offset: 0x947C */ - __IO uint32_t TARGET_ROOT41; /**< Target Register, offset: 0x9480 */ - __IO uint32_t TARGET_ROOT41_SET; /**< Target Register, offset: 0x9484 */ - __IO uint32_t TARGET_ROOT41_CLR; /**< Target Register, offset: 0x9488 */ - __IO uint32_t TARGET_ROOT41_TOG; /**< Target Register, offset: 0x948C */ - uint8_t RESERVED_84[16]; - __IO uint32_t POST41; /**< Post Divider Register, offset: 0x94A0 */ - __IO uint32_t POST_ROOT41_SET; /**< Post Divider Register, offset: 0x94A4 */ - __IO uint32_t POST_ROOT41_CLR; /**< Post Divider Register, offset: 0x94A8 */ - __IO uint32_t POST_ROOT41_TOG; /**< Post Divider Register, offset: 0x94AC */ - __IO uint32_t PRE41; /**< Pre Divider Register, offset: 0x94B0 */ - __IO uint32_t PRE_ROOT41_SET; /**< Pre Divider Register, offset: 0x94B4 */ - __IO uint32_t PRE_ROOT41_CLR; /**< Pre Divider Register, offset: 0x94B8 */ - __IO uint32_t PRE_ROOT41_TOG; /**< Pre Divider Register, offset: 0x94BC */ - uint8_t RESERVED_85[48]; - __IO uint32_t ACCESS_CTRL41; /**< Access Control Register, offset: 0x94F0 */ - __IO uint32_t ACCESS_CTRL41_ROOT_SET; /**< Access Control Register, offset: 0x94F4 */ - __IO uint32_t ACCESS_CTRL41_ROOT_CLR; /**< Access Control Register, offset: 0x94F8 */ - __IO uint32_t ACCESS_CTRL41_ROOT_TOG; /**< Access Control Register, offset: 0x94FC */ - __IO uint32_t TARGET_ROOT42; /**< Target Register, offset: 0x9500 */ - __IO uint32_t TARGET_ROOT42_SET; /**< Target Register, offset: 0x9504 */ - __IO uint32_t TARGET_ROOT42_CLR; /**< Target Register, offset: 0x9508 */ - __IO uint32_t TARGET_ROOT42_TOG; /**< Target Register, offset: 0x950C */ - uint8_t RESERVED_86[16]; - __IO uint32_t POST42; /**< Post Divider Register, offset: 0x9520 */ - __IO uint32_t POST_ROOT42_SET; /**< Post Divider Register, offset: 0x9524 */ - __IO uint32_t POST_ROOT42_CLR; /**< Post Divider Register, offset: 0x9528 */ - __IO uint32_t POST_ROOT42_TOG; /**< Post Divider Register, offset: 0x952C */ - __IO uint32_t PRE42; /**< Pre Divider Register, offset: 0x9530 */ - __IO uint32_t PRE_ROOT42_SET; /**< Pre Divider Register, offset: 0x9534 */ - __IO uint32_t PRE_ROOT42_CLR; /**< Pre Divider Register, offset: 0x9538 */ - __IO uint32_t PRE_ROOT42_TOG; /**< Pre Divider Register, offset: 0x953C */ - uint8_t RESERVED_87[48]; - __IO uint32_t ACCESS_CTRL42; /**< Access Control Register, offset: 0x9570 */ - __IO uint32_t ACCESS_CTRL42_ROOT_SET; /**< Access Control Register, offset: 0x9574 */ - __IO uint32_t ACCESS_CTRL42_ROOT_CLR; /**< Access Control Register, offset: 0x9578 */ - __IO uint32_t ACCESS_CTRL42_ROOT_TOG; /**< Access Control Register, offset: 0x957C */ - __IO uint32_t TARGET_ROOT43; /**< Target Register, offset: 0x9580 */ - __IO uint32_t TARGET_ROOT43_SET; /**< Target Register, offset: 0x9584 */ - __IO uint32_t TARGET_ROOT43_CLR; /**< Target Register, offset: 0x9588 */ - __IO uint32_t TARGET_ROOT43_TOG; /**< Target Register, offset: 0x958C */ - uint8_t RESERVED_88[16]; - __IO uint32_t POST43; /**< Post Divider Register, offset: 0x95A0 */ - __IO uint32_t POST_ROOT43_SET; /**< Post Divider Register, offset: 0x95A4 */ - __IO uint32_t POST_ROOT43_CLR; /**< Post Divider Register, offset: 0x95A8 */ - __IO uint32_t POST_ROOT43_TOG; /**< Post Divider Register, offset: 0x95AC */ - __IO uint32_t PRE43; /**< Pre Divider Register, offset: 0x95B0 */ - __IO uint32_t PRE_ROOT43_SET; /**< Pre Divider Register, offset: 0x95B4 */ - __IO uint32_t PRE_ROOT43_CLR; /**< Pre Divider Register, offset: 0x95B8 */ - __IO uint32_t PRE_ROOT43_TOG; /**< Pre Divider Register, offset: 0x95BC */ - uint8_t RESERVED_89[48]; - __IO uint32_t ACCESS_CTRL43; /**< Access Control Register, offset: 0x95F0 */ - __IO uint32_t ACCESS_CTRL43_ROOT_SET; /**< Access Control Register, offset: 0x95F4 */ - __IO uint32_t ACCESS_CTRL43_ROOT_CLR; /**< Access Control Register, offset: 0x95F8 */ - __IO uint32_t ACCESS_CTRL43_ROOT_TOG; /**< Access Control Register, offset: 0x95FC */ - __IO uint32_t TARGET_ROOT44; /**< Target Register, offset: 0x9600 */ - __IO uint32_t TARGET_ROOT44_SET; /**< Target Register, offset: 0x9604 */ - __IO uint32_t TARGET_ROOT44_CLR; /**< Target Register, offset: 0x9608 */ - __IO uint32_t TARGET_ROOT44_TOG; /**< Target Register, offset: 0x960C */ - uint8_t RESERVED_90[16]; - __IO uint32_t POST44; /**< Post Divider Register, offset: 0x9620 */ - __IO uint32_t POST_ROOT44_SET; /**< Post Divider Register, offset: 0x9624 */ - __IO uint32_t POST_ROOT44_CLR; /**< Post Divider Register, offset: 0x9628 */ - __IO uint32_t POST_ROOT44_TOG; /**< Post Divider Register, offset: 0x962C */ - __IO uint32_t PRE44; /**< Pre Divider Register, offset: 0x9630 */ - __IO uint32_t PRE_ROOT44_SET; /**< Pre Divider Register, offset: 0x9634 */ - __IO uint32_t PRE_ROOT44_CLR; /**< Pre Divider Register, offset: 0x9638 */ - __IO uint32_t PRE_ROOT44_TOG; /**< Pre Divider Register, offset: 0x963C */ - uint8_t RESERVED_91[48]; - __IO uint32_t ACCESS_CTRL44; /**< Access Control Register, offset: 0x9670 */ - __IO uint32_t ACCESS_CTRL44_ROOT_SET; /**< Access Control Register, offset: 0x9674 */ - __IO uint32_t ACCESS_CTRL44_ROOT_CLR; /**< Access Control Register, offset: 0x9678 */ - __IO uint32_t ACCESS_CTRL44_ROOT_TOG; /**< Access Control Register, offset: 0x967C */ - __IO uint32_t TARGET_ROOT45; /**< Target Register, offset: 0x9680 */ - __IO uint32_t TARGET_ROOT45_SET; /**< Target Register, offset: 0x9684 */ - __IO uint32_t TARGET_ROOT45_CLR; /**< Target Register, offset: 0x9688 */ - __IO uint32_t TARGET_ROOT45_TOG; /**< Target Register, offset: 0x968C */ - uint8_t RESERVED_92[16]; - __IO uint32_t POST45; /**< Post Divider Register, offset: 0x96A0 */ - __IO uint32_t POST_ROOT45_SET; /**< Post Divider Register, offset: 0x96A4 */ - __IO uint32_t POST_ROOT45_CLR; /**< Post Divider Register, offset: 0x96A8 */ - __IO uint32_t POST_ROOT45_TOG; /**< Post Divider Register, offset: 0x96AC */ - __IO uint32_t PRE45; /**< Pre Divider Register, offset: 0x96B0 */ - __IO uint32_t PRE_ROOT45_SET; /**< Pre Divider Register, offset: 0x96B4 */ - __IO uint32_t PRE_ROOT45_CLR; /**< Pre Divider Register, offset: 0x96B8 */ - __IO uint32_t PRE_ROOT45_TOG; /**< Pre Divider Register, offset: 0x96BC */ - uint8_t RESERVED_93[48]; - __IO uint32_t ACCESS_CTRL45; /**< Access Control Register, offset: 0x96F0 */ - __IO uint32_t ACCESS_CTRL45_ROOT_SET; /**< Access Control Register, offset: 0x96F4 */ - __IO uint32_t ACCESS_CTRL45_ROOT_CLR; /**< Access Control Register, offset: 0x96F8 */ - __IO uint32_t ACCESS_CTRL45_ROOT_TOG; /**< Access Control Register, offset: 0x96FC */ - __IO uint32_t TARGET_ROOT46; /**< Target Register, offset: 0x9700 */ - __IO uint32_t TARGET_ROOT46_SET; /**< Target Register, offset: 0x9704 */ - __IO uint32_t TARGET_ROOT46_CLR; /**< Target Register, offset: 0x9708 */ - __IO uint32_t TARGET_ROOT46_TOG; /**< Target Register, offset: 0x970C */ - uint8_t RESERVED_94[16]; - __IO uint32_t POST46; /**< Post Divider Register, offset: 0x9720 */ - __IO uint32_t POST_ROOT46_SET; /**< Post Divider Register, offset: 0x9724 */ - __IO uint32_t POST_ROOT46_CLR; /**< Post Divider Register, offset: 0x9728 */ - __IO uint32_t POST_ROOT46_TOG; /**< Post Divider Register, offset: 0x972C */ - __IO uint32_t PRE46; /**< Pre Divider Register, offset: 0x9730 */ - __IO uint32_t PRE_ROOT46_SET; /**< Pre Divider Register, offset: 0x9734 */ - __IO uint32_t PRE_ROOT46_CLR; /**< Pre Divider Register, offset: 0x9738 */ - __IO uint32_t PRE_ROOT46_TOG; /**< Pre Divider Register, offset: 0x973C */ - uint8_t RESERVED_95[48]; - __IO uint32_t ACCESS_CTRL46; /**< Access Control Register, offset: 0x9770 */ - __IO uint32_t ACCESS_CTRL46_ROOT_SET; /**< Access Control Register, offset: 0x9774 */ - __IO uint32_t ACCESS_CTRL46_ROOT_CLR; /**< Access Control Register, offset: 0x9778 */ - __IO uint32_t ACCESS_CTRL46_ROOT_TOG; /**< Access Control Register, offset: 0x977C */ - __IO uint32_t TARGET_ROOT47; /**< Target Register, offset: 0x9780 */ - __IO uint32_t TARGET_ROOT47_SET; /**< Target Register, offset: 0x9784 */ - __IO uint32_t TARGET_ROOT47_CLR; /**< Target Register, offset: 0x9788 */ - __IO uint32_t TARGET_ROOT47_TOG; /**< Target Register, offset: 0x978C */ - uint8_t RESERVED_96[16]; - __IO uint32_t POST47; /**< Post Divider Register, offset: 0x97A0 */ - __IO uint32_t POST_ROOT47_SET; /**< Post Divider Register, offset: 0x97A4 */ - __IO uint32_t POST_ROOT47_CLR; /**< Post Divider Register, offset: 0x97A8 */ - __IO uint32_t POST_ROOT47_TOG; /**< Post Divider Register, offset: 0x97AC */ - __IO uint32_t PRE47; /**< Pre Divider Register, offset: 0x97B0 */ - __IO uint32_t PRE_ROOT47_SET; /**< Pre Divider Register, offset: 0x97B4 */ - __IO uint32_t PRE_ROOT47_CLR; /**< Pre Divider Register, offset: 0x97B8 */ - __IO uint32_t PRE_ROOT47_TOG; /**< Pre Divider Register, offset: 0x97BC */ - uint8_t RESERVED_97[48]; - __IO uint32_t ACCESS_CTRL47; /**< Access Control Register, offset: 0x97F0 */ - __IO uint32_t ACCESS_CTRL47_ROOT_SET; /**< Access Control Register, offset: 0x97F4 */ - __IO uint32_t ACCESS_CTRL47_ROOT_CLR; /**< Access Control Register, offset: 0x97F8 */ - __IO uint32_t ACCESS_CTRL47_ROOT_TOG; /**< Access Control Register, offset: 0x97FC */ - __IO uint32_t TARGET_ROOT48; /**< Target Register, offset: 0x9800 */ - __IO uint32_t TARGET_ROOT48_SET; /**< Target Register, offset: 0x9804 */ - __IO uint32_t TARGET_ROOT48_CLR; /**< Target Register, offset: 0x9808 */ - __IO uint32_t TARGET_ROOT48_TOG; /**< Target Register, offset: 0x980C */ - uint8_t RESERVED_98[16]; - __IO uint32_t POST48; /**< Post Divider Register, offset: 0x9820 */ - __IO uint32_t POST_ROOT48_SET; /**< Post Divider Register, offset: 0x9824 */ - __IO uint32_t POST_ROOT48_CLR; /**< Post Divider Register, offset: 0x9828 */ - __IO uint32_t POST_ROOT48_TOG; /**< Post Divider Register, offset: 0x982C */ - __IO uint32_t PRE48; /**< Pre Divider Register, offset: 0x9830 */ - __IO uint32_t PRE_ROOT48_SET; /**< Pre Divider Register, offset: 0x9834 */ - __IO uint32_t PRE_ROOT48_CLR; /**< Pre Divider Register, offset: 0x9838 */ - __IO uint32_t PRE_ROOT48_TOG; /**< Pre Divider Register, offset: 0x983C */ - uint8_t RESERVED_99[48]; - __IO uint32_t ACCESS_CTRL48; /**< Access Control Register, offset: 0x9870 */ - __IO uint32_t ACCESS_CTRL48_ROOT_SET; /**< Access Control Register, offset: 0x9874 */ - __IO uint32_t ACCESS_CTRL48_ROOT_CLR; /**< Access Control Register, offset: 0x9878 */ - __IO uint32_t ACCESS_CTRL48_ROOT_TOG; /**< Access Control Register, offset: 0x987C */ - __IO uint32_t TARGET_ROOT49; /**< Target Register, offset: 0x9880 */ - __IO uint32_t TARGET_ROOT49_SET; /**< Target Register, offset: 0x9884 */ - __IO uint32_t TARGET_ROOT49_CLR; /**< Target Register, offset: 0x9888 */ - __IO uint32_t TARGET_ROOT49_TOG; /**< Target Register, offset: 0x988C */ - uint8_t RESERVED_100[16]; - __IO uint32_t POST49; /**< Post Divider Register, offset: 0x98A0 */ - __IO uint32_t POST_ROOT49_SET; /**< Post Divider Register, offset: 0x98A4 */ - __IO uint32_t POST_ROOT49_CLR; /**< Post Divider Register, offset: 0x98A8 */ - __IO uint32_t POST_ROOT49_TOG; /**< Post Divider Register, offset: 0x98AC */ - __IO uint32_t PRE49; /**< Pre Divider Register, offset: 0x98B0 */ - __IO uint32_t PRE_ROOT49_SET; /**< Pre Divider Register, offset: 0x98B4 */ - __IO uint32_t PRE_ROOT49_CLR; /**< Pre Divider Register, offset: 0x98B8 */ - __IO uint32_t PRE_ROOT49_TOG; /**< Pre Divider Register, offset: 0x98BC */ - uint8_t RESERVED_101[48]; - __IO uint32_t ACCESS_CTRL49; /**< Access Control Register, offset: 0x98F0 */ - __IO uint32_t ACCESS_CTRL49_ROOT_SET; /**< Access Control Register, offset: 0x98F4 */ - __IO uint32_t ACCESS_CTRL49_ROOT_CLR; /**< Access Control Register, offset: 0x98F8 */ - __IO uint32_t ACCESS_CTRL49_ROOT_TOG; /**< Access Control Register, offset: 0x98FC */ - __IO uint32_t TARGET_ROOT50; /**< Target Register, offset: 0x9900 */ - __IO uint32_t TARGET_ROOT50_SET; /**< Target Register, offset: 0x9904 */ - __IO uint32_t TARGET_ROOT50_CLR; /**< Target Register, offset: 0x9908 */ - __IO uint32_t TARGET_ROOT50_TOG; /**< Target Register, offset: 0x990C */ - uint8_t RESERVED_102[16]; - __IO uint32_t POST50; /**< Post Divider Register, offset: 0x9920 */ - __IO uint32_t POST_ROOT50_SET; /**< Post Divider Register, offset: 0x9924 */ - __IO uint32_t POST_ROOT50_CLR; /**< Post Divider Register, offset: 0x9928 */ - __IO uint32_t POST_ROOT50_TOG; /**< Post Divider Register, offset: 0x992C */ - __IO uint32_t PRE50; /**< Pre Divider Register, offset: 0x9930 */ - __IO uint32_t PRE_ROOT50_SET; /**< Pre Divider Register, offset: 0x9934 */ - __IO uint32_t PRE_ROOT50_CLR; /**< Pre Divider Register, offset: 0x9938 */ - __IO uint32_t PRE_ROOT50_TOG; /**< Pre Divider Register, offset: 0x993C */ - uint8_t RESERVED_103[48]; - __IO uint32_t ACCESS_CTRL50; /**< Access Control Register, offset: 0x9970 */ - __IO uint32_t ACCESS_CTRL50_ROOT_SET; /**< Access Control Register, offset: 0x9974 */ - __IO uint32_t ACCESS_CTRL50_ROOT_CLR; /**< Access Control Register, offset: 0x9978 */ - __IO uint32_t ACCESS_CTRL50_ROOT_TOG; /**< Access Control Register, offset: 0x997C */ - __IO uint32_t TARGET_ROOT51; /**< Target Register, offset: 0x9980 */ - __IO uint32_t TARGET_ROOT51_SET; /**< Target Register, offset: 0x9984 */ - __IO uint32_t TARGET_ROOT51_CLR; /**< Target Register, offset: 0x9988 */ - __IO uint32_t TARGET_ROOT51_TOG; /**< Target Register, offset: 0x998C */ - uint8_t RESERVED_104[16]; - __IO uint32_t POST51; /**< Post Divider Register, offset: 0x99A0 */ - __IO uint32_t POST_ROOT51_SET; /**< Post Divider Register, offset: 0x99A4 */ - __IO uint32_t POST_ROOT51_CLR; /**< Post Divider Register, offset: 0x99A8 */ - __IO uint32_t POST_ROOT51_TOG; /**< Post Divider Register, offset: 0x99AC */ - __IO uint32_t PRE51; /**< Pre Divider Register, offset: 0x99B0 */ - __IO uint32_t PRE_ROOT51_SET; /**< Pre Divider Register, offset: 0x99B4 */ - __IO uint32_t PRE_ROOT51_CLR; /**< Pre Divider Register, offset: 0x99B8 */ - __IO uint32_t PRE_ROOT51_TOG; /**< Pre Divider Register, offset: 0x99BC */ - uint8_t RESERVED_105[48]; - __IO uint32_t ACCESS_CTRL51; /**< Access Control Register, offset: 0x99F0 */ - __IO uint32_t ACCESS_CTRL51_ROOT_SET; /**< Access Control Register, offset: 0x99F4 */ - __IO uint32_t ACCESS_CTRL51_ROOT_CLR; /**< Access Control Register, offset: 0x99F8 */ - __IO uint32_t ACCESS_CTRL51_ROOT_TOG; /**< Access Control Register, offset: 0x99FC */ - __IO uint32_t TARGET_ROOT52; /**< Target Register, offset: 0x9A00 */ - __IO uint32_t TARGET_ROOT52_SET; /**< Target Register, offset: 0x9A04 */ - __IO uint32_t TARGET_ROOT52_CLR; /**< Target Register, offset: 0x9A08 */ - __IO uint32_t TARGET_ROOT52_TOG; /**< Target Register, offset: 0x9A0C */ - uint8_t RESERVED_106[16]; - __IO uint32_t POST52; /**< Post Divider Register, offset: 0x9A20 */ - __IO uint32_t POST_ROOT52_SET; /**< Post Divider Register, offset: 0x9A24 */ - __IO uint32_t POST_ROOT52_CLR; /**< Post Divider Register, offset: 0x9A28 */ - __IO uint32_t POST_ROOT52_TOG; /**< Post Divider Register, offset: 0x9A2C */ - __IO uint32_t PRE52; /**< Pre Divider Register, offset: 0x9A30 */ - __IO uint32_t PRE_ROOT52_SET; /**< Pre Divider Register, offset: 0x9A34 */ - __IO uint32_t PRE_ROOT52_CLR; /**< Pre Divider Register, offset: 0x9A38 */ - __IO uint32_t PRE_ROOT52_TOG; /**< Pre Divider Register, offset: 0x9A3C */ - uint8_t RESERVED_107[48]; - __IO uint32_t ACCESS_CTRL52; /**< Access Control Register, offset: 0x9A70 */ - __IO uint32_t ACCESS_CTRL52_ROOT_SET; /**< Access Control Register, offset: 0x9A74 */ - __IO uint32_t ACCESS_CTRL52_ROOT_CLR; /**< Access Control Register, offset: 0x9A78 */ - __IO uint32_t ACCESS_CTRL52_ROOT_TOG; /**< Access Control Register, offset: 0x9A7C */ - __IO uint32_t TARGET_ROOT53; /**< Target Register, offset: 0x9A80 */ - __IO uint32_t TARGET_ROOT53_SET; /**< Target Register, offset: 0x9A84 */ - __IO uint32_t TARGET_ROOT53_CLR; /**< Target Register, offset: 0x9A88 */ - __IO uint32_t TARGET_ROOT53_TOG; /**< Target Register, offset: 0x9A8C */ - uint8_t RESERVED_108[16]; - __IO uint32_t POST53; /**< Post Divider Register, offset: 0x9AA0 */ - __IO uint32_t POST_ROOT53_SET; /**< Post Divider Register, offset: 0x9AA4 */ - __IO uint32_t POST_ROOT53_CLR; /**< Post Divider Register, offset: 0x9AA8 */ - __IO uint32_t POST_ROOT53_TOG; /**< Post Divider Register, offset: 0x9AAC */ - __IO uint32_t PRE53; /**< Pre Divider Register, offset: 0x9AB0 */ - __IO uint32_t PRE_ROOT53_SET; /**< Pre Divider Register, offset: 0x9AB4 */ - __IO uint32_t PRE_ROOT53_CLR; /**< Pre Divider Register, offset: 0x9AB8 */ - __IO uint32_t PRE_ROOT53_TOG; /**< Pre Divider Register, offset: 0x9ABC */ - uint8_t RESERVED_109[48]; - __IO uint32_t ACCESS_CTRL53; /**< Access Control Register, offset: 0x9AF0 */ - __IO uint32_t ACCESS_CTRL53_ROOT_SET; /**< Access Control Register, offset: 0x9AF4 */ - __IO uint32_t ACCESS_CTRL53_ROOT_CLR; /**< Access Control Register, offset: 0x9AF8 */ - __IO uint32_t ACCESS_CTRL53_ROOT_TOG; /**< Access Control Register, offset: 0x9AFC */ - __IO uint32_t TARGET_ROOT54; /**< Target Register, offset: 0x9B00 */ - __IO uint32_t TARGET_ROOT54_SET; /**< Target Register, offset: 0x9B04 */ - __IO uint32_t TARGET_ROOT54_CLR; /**< Target Register, offset: 0x9B08 */ - __IO uint32_t TARGET_ROOT54_TOG; /**< Target Register, offset: 0x9B0C */ - uint8_t RESERVED_110[16]; - __IO uint32_t POST54; /**< Post Divider Register, offset: 0x9B20 */ - __IO uint32_t POST_ROOT54_SET; /**< Post Divider Register, offset: 0x9B24 */ - __IO uint32_t POST_ROOT54_CLR; /**< Post Divider Register, offset: 0x9B28 */ - __IO uint32_t POST_ROOT54_TOG; /**< Post Divider Register, offset: 0x9B2C */ - __IO uint32_t PRE54; /**< Pre Divider Register, offset: 0x9B30 */ - __IO uint32_t PRE_ROOT54_SET; /**< Pre Divider Register, offset: 0x9B34 */ - __IO uint32_t PRE_ROOT54_CLR; /**< Pre Divider Register, offset: 0x9B38 */ - __IO uint32_t PRE_ROOT54_TOG; /**< Pre Divider Register, offset: 0x9B3C */ - uint8_t RESERVED_111[48]; - __IO uint32_t ACCESS_CTRL54; /**< Access Control Register, offset: 0x9B70 */ - __IO uint32_t ACCESS_CTRL54_ROOT_SET; /**< Access Control Register, offset: 0x9B74 */ - __IO uint32_t ACCESS_CTRL54_ROOT_CLR; /**< Access Control Register, offset: 0x9B78 */ - __IO uint32_t ACCESS_CTRL54_ROOT_TOG; /**< Access Control Register, offset: 0x9B7C */ - __IO uint32_t TARGET_ROOT55; /**< Target Register, offset: 0x9B80 */ - __IO uint32_t TARGET_ROOT55_SET; /**< Target Register, offset: 0x9B84 */ - __IO uint32_t TARGET_ROOT55_CLR; /**< Target Register, offset: 0x9B88 */ - __IO uint32_t TARGET_ROOT55_TOG; /**< Target Register, offset: 0x9B8C */ - uint8_t RESERVED_112[16]; - __IO uint32_t POST55; /**< Post Divider Register, offset: 0x9BA0 */ - __IO uint32_t POST_ROOT55_SET; /**< Post Divider Register, offset: 0x9BA4 */ - __IO uint32_t POST_ROOT55_CLR; /**< Post Divider Register, offset: 0x9BA8 */ - __IO uint32_t POST_ROOT55_TOG; /**< Post Divider Register, offset: 0x9BAC */ - __IO uint32_t PRE55; /**< Pre Divider Register, offset: 0x9BB0 */ - __IO uint32_t PRE_ROOT55_SET; /**< Pre Divider Register, offset: 0x9BB4 */ - __IO uint32_t PRE_ROOT55_CLR; /**< Pre Divider Register, offset: 0x9BB8 */ - __IO uint32_t PRE_ROOT55_TOG; /**< Pre Divider Register, offset: 0x9BBC */ - uint8_t RESERVED_113[48]; - __IO uint32_t ACCESS_CTRL55; /**< Access Control Register, offset: 0x9BF0 */ - __IO uint32_t ACCESS_CTRL55_ROOT_SET; /**< Access Control Register, offset: 0x9BF4 */ - __IO uint32_t ACCESS_CTRL55_ROOT_CLR; /**< Access Control Register, offset: 0x9BF8 */ - __IO uint32_t ACCESS_CTRL55_ROOT_TOG; /**< Access Control Register, offset: 0x9BFC */ - __IO uint32_t TARGET_ROOT56; /**< Target Register, offset: 0x9C00 */ - __IO uint32_t TARGET_ROOT56_SET; /**< Target Register, offset: 0x9C04 */ - __IO uint32_t TARGET_ROOT56_CLR; /**< Target Register, offset: 0x9C08 */ - __IO uint32_t TARGET_ROOT56_TOG; /**< Target Register, offset: 0x9C0C */ - uint8_t RESERVED_114[16]; - __IO uint32_t POST56; /**< Post Divider Register, offset: 0x9C20 */ - __IO uint32_t POST_ROOT56_SET; /**< Post Divider Register, offset: 0x9C24 */ - __IO uint32_t POST_ROOT56_CLR; /**< Post Divider Register, offset: 0x9C28 */ - __IO uint32_t POST_ROOT56_TOG; /**< Post Divider Register, offset: 0x9C2C */ - __IO uint32_t PRE56; /**< Pre Divider Register, offset: 0x9C30 */ - __IO uint32_t PRE_ROOT56_SET; /**< Pre Divider Register, offset: 0x9C34 */ - __IO uint32_t PRE_ROOT56_CLR; /**< Pre Divider Register, offset: 0x9C38 */ - __IO uint32_t PRE_ROOT56_TOG; /**< Pre Divider Register, offset: 0x9C3C */ - uint8_t RESERVED_115[48]; - __IO uint32_t ACCESS_CTRL56; /**< Access Control Register, offset: 0x9C70 */ - __IO uint32_t ACCESS_CTRL56_ROOT_SET; /**< Access Control Register, offset: 0x9C74 */ - __IO uint32_t ACCESS_CTRL56_ROOT_CLR; /**< Access Control Register, offset: 0x9C78 */ - __IO uint32_t ACCESS_CTRL56_ROOT_TOG; /**< Access Control Register, offset: 0x9C7C */ - __IO uint32_t TARGET_ROOT57; /**< Target Register, offset: 0x9C80 */ - __IO uint32_t TARGET_ROOT57_SET; /**< Target Register, offset: 0x9C84 */ - __IO uint32_t TARGET_ROOT57_CLR; /**< Target Register, offset: 0x9C88 */ - __IO uint32_t TARGET_ROOT57_TOG; /**< Target Register, offset: 0x9C8C */ - uint8_t RESERVED_116[16]; - __IO uint32_t POST57; /**< Post Divider Register, offset: 0x9CA0 */ - __IO uint32_t POST_ROOT57_SET; /**< Post Divider Register, offset: 0x9CA4 */ - __IO uint32_t POST_ROOT57_CLR; /**< Post Divider Register, offset: 0x9CA8 */ - __IO uint32_t POST_ROOT57_TOG; /**< Post Divider Register, offset: 0x9CAC */ - __IO uint32_t PRE57; /**< Pre Divider Register, offset: 0x9CB0 */ - __IO uint32_t PRE_ROOT57_SET; /**< Pre Divider Register, offset: 0x9CB4 */ - __IO uint32_t PRE_ROOT57_CLR; /**< Pre Divider Register, offset: 0x9CB8 */ - __IO uint32_t PRE_ROOT57_TOG; /**< Pre Divider Register, offset: 0x9CBC */ - uint8_t RESERVED_117[48]; - __IO uint32_t ACCESS_CTRL57; /**< Access Control Register, offset: 0x9CF0 */ - __IO uint32_t ACCESS_CTRL57_ROOT_SET; /**< Access Control Register, offset: 0x9CF4 */ - __IO uint32_t ACCESS_CTRL57_ROOT_CLR; /**< Access Control Register, offset: 0x9CF8 */ - __IO uint32_t ACCESS_CTRL57_ROOT_TOG; /**< Access Control Register, offset: 0x9CFC */ - __IO uint32_t TARGET_ROOT58; /**< Target Register, offset: 0x9D00 */ - __IO uint32_t TARGET_ROOT58_SET; /**< Target Register, offset: 0x9D04 */ - __IO uint32_t TARGET_ROOT58_CLR; /**< Target Register, offset: 0x9D08 */ - __IO uint32_t TARGET_ROOT58_TOG; /**< Target Register, offset: 0x9D0C */ - uint8_t RESERVED_118[16]; - __IO uint32_t POST58; /**< Post Divider Register, offset: 0x9D20 */ - __IO uint32_t POST_ROOT58_SET; /**< Post Divider Register, offset: 0x9D24 */ - __IO uint32_t POST_ROOT58_CLR; /**< Post Divider Register, offset: 0x9D28 */ - __IO uint32_t POST_ROOT58_TOG; /**< Post Divider Register, offset: 0x9D2C */ - __IO uint32_t PRE58; /**< Pre Divider Register, offset: 0x9D30 */ - __IO uint32_t PRE_ROOT58_SET; /**< Pre Divider Register, offset: 0x9D34 */ - __IO uint32_t PRE_ROOT58_CLR; /**< Pre Divider Register, offset: 0x9D38 */ - __IO uint32_t PRE_ROOT58_TOG; /**< Pre Divider Register, offset: 0x9D3C */ - uint8_t RESERVED_119[48]; - __IO uint32_t ACCESS_CTRL58; /**< Access Control Register, offset: 0x9D70 */ - __IO uint32_t ACCESS_CTRL58_ROOT_SET; /**< Access Control Register, offset: 0x9D74 */ - __IO uint32_t ACCESS_CTRL58_ROOT_CLR; /**< Access Control Register, offset: 0x9D78 */ - __IO uint32_t ACCESS_CTRL58_ROOT_TOG; /**< Access Control Register, offset: 0x9D7C */ - __IO uint32_t TARGET_ROOT59; /**< Target Register, offset: 0x9D80 */ - __IO uint32_t TARGET_ROOT59_SET; /**< Target Register, offset: 0x9D84 */ - __IO uint32_t TARGET_ROOT59_CLR; /**< Target Register, offset: 0x9D88 */ - __IO uint32_t TARGET_ROOT59_TOG; /**< Target Register, offset: 0x9D8C */ - uint8_t RESERVED_120[16]; - __IO uint32_t POST59; /**< Post Divider Register, offset: 0x9DA0 */ - __IO uint32_t POST_ROOT59_SET; /**< Post Divider Register, offset: 0x9DA4 */ - __IO uint32_t POST_ROOT59_CLR; /**< Post Divider Register, offset: 0x9DA8 */ - __IO uint32_t POST_ROOT59_TOG; /**< Post Divider Register, offset: 0x9DAC */ - __IO uint32_t PRE59; /**< Pre Divider Register, offset: 0x9DB0 */ - __IO uint32_t PRE_ROOT59_SET; /**< Pre Divider Register, offset: 0x9DB4 */ - __IO uint32_t PRE_ROOT59_CLR; /**< Pre Divider Register, offset: 0x9DB8 */ - __IO uint32_t PRE_ROOT59_TOG; /**< Pre Divider Register, offset: 0x9DBC */ - uint8_t RESERVED_121[48]; - __IO uint32_t ACCESS_CTRL59; /**< Access Control Register, offset: 0x9DF0 */ - __IO uint32_t ACCESS_CTRL59_ROOT_SET; /**< Access Control Register, offset: 0x9DF4 */ - __IO uint32_t ACCESS_CTRL59_ROOT_CLR; /**< Access Control Register, offset: 0x9DF8 */ - __IO uint32_t ACCESS_CTRL59_ROOT_TOG; /**< Access Control Register, offset: 0x9DFC */ - __IO uint32_t TARGET_ROOT60; /**< Target Register, offset: 0x9E00 */ - __IO uint32_t TARGET_ROOT60_SET; /**< Target Register, offset: 0x9E04 */ - __IO uint32_t TARGET_ROOT60_CLR; /**< Target Register, offset: 0x9E08 */ - __IO uint32_t TARGET_ROOT60_TOG; /**< Target Register, offset: 0x9E0C */ - uint8_t RESERVED_122[16]; - __IO uint32_t POST60; /**< Post Divider Register, offset: 0x9E20 */ - __IO uint32_t POST_ROOT60_SET; /**< Post Divider Register, offset: 0x9E24 */ - __IO uint32_t POST_ROOT60_CLR; /**< Post Divider Register, offset: 0x9E28 */ - __IO uint32_t POST_ROOT60_TOG; /**< Post Divider Register, offset: 0x9E2C */ - __IO uint32_t PRE60; /**< Pre Divider Register, offset: 0x9E30 */ - __IO uint32_t PRE_ROOT60_SET; /**< Pre Divider Register, offset: 0x9E34 */ - __IO uint32_t PRE_ROOT60_CLR; /**< Pre Divider Register, offset: 0x9E38 */ - __IO uint32_t PRE_ROOT60_TOG; /**< Pre Divider Register, offset: 0x9E3C */ - uint8_t RESERVED_123[48]; - __IO uint32_t ACCESS_CTRL60; /**< Access Control Register, offset: 0x9E70 */ - __IO uint32_t ACCESS_CTRL60_ROOT_SET; /**< Access Control Register, offset: 0x9E74 */ - __IO uint32_t ACCESS_CTRL60_ROOT_CLR; /**< Access Control Register, offset: 0x9E78 */ - __IO uint32_t ACCESS_CTRL60_ROOT_TOG; /**< Access Control Register, offset: 0x9E7C */ - __IO uint32_t TARGET_ROOT61; /**< Target Register, offset: 0x9E80 */ - __IO uint32_t TARGET_ROOT61_SET; /**< Target Register, offset: 0x9E84 */ - __IO uint32_t TARGET_ROOT61_CLR; /**< Target Register, offset: 0x9E88 */ - __IO uint32_t TARGET_ROOT61_TOG; /**< Target Register, offset: 0x9E8C */ - uint8_t RESERVED_124[16]; - __IO uint32_t POST61; /**< Post Divider Register, offset: 0x9EA0 */ - __IO uint32_t POST_ROOT61_SET; /**< Post Divider Register, offset: 0x9EA4 */ - __IO uint32_t POST_ROOT61_CLR; /**< Post Divider Register, offset: 0x9EA8 */ - __IO uint32_t POST_ROOT61_TOG; /**< Post Divider Register, offset: 0x9EAC */ - __IO uint32_t PRE61; /**< Pre Divider Register, offset: 0x9EB0 */ - __IO uint32_t PRE_ROOT61_SET; /**< Pre Divider Register, offset: 0x9EB4 */ - __IO uint32_t PRE_ROOT61_CLR; /**< Pre Divider Register, offset: 0x9EB8 */ - __IO uint32_t PRE_ROOT61_TOG; /**< Pre Divider Register, offset: 0x9EBC */ - uint8_t RESERVED_125[48]; - __IO uint32_t ACCESS_CTRL61; /**< Access Control Register, offset: 0x9EF0 */ - __IO uint32_t ACCESS_CTRL61_ROOT_SET; /**< Access Control Register, offset: 0x9EF4 */ - __IO uint32_t ACCESS_CTRL61_ROOT_CLR; /**< Access Control Register, offset: 0x9EF8 */ - __IO uint32_t ACCESS_CTRL61_ROOT_TOG; /**< Access Control Register, offset: 0x9EFC */ - __IO uint32_t TARGET_ROOT62; /**< Target Register, offset: 0x9F00 */ - __IO uint32_t TARGET_ROOT62_SET; /**< Target Register, offset: 0x9F04 */ - __IO uint32_t TARGET_ROOT62_CLR; /**< Target Register, offset: 0x9F08 */ - __IO uint32_t TARGET_ROOT62_TOG; /**< Target Register, offset: 0x9F0C */ - uint8_t RESERVED_126[16]; - __IO uint32_t POST62; /**< Post Divider Register, offset: 0x9F20 */ - __IO uint32_t POST_ROOT62_SET; /**< Post Divider Register, offset: 0x9F24 */ - __IO uint32_t POST_ROOT62_CLR; /**< Post Divider Register, offset: 0x9F28 */ - __IO uint32_t POST_ROOT62_TOG; /**< Post Divider Register, offset: 0x9F2C */ - __IO uint32_t PRE62; /**< Pre Divider Register, offset: 0x9F30 */ - __IO uint32_t PRE_ROOT62_SET; /**< Pre Divider Register, offset: 0x9F34 */ - __IO uint32_t PRE_ROOT62_CLR; /**< Pre Divider Register, offset: 0x9F38 */ - __IO uint32_t PRE_ROOT62_TOG; /**< Pre Divider Register, offset: 0x9F3C */ - uint8_t RESERVED_127[48]; - __IO uint32_t ACCESS_CTRL62; /**< Access Control Register, offset: 0x9F70 */ - __IO uint32_t ACCESS_CTRL62_ROOT_SET; /**< Access Control Register, offset: 0x9F74 */ - __IO uint32_t ACCESS_CTRL62_ROOT_CLR; /**< Access Control Register, offset: 0x9F78 */ - __IO uint32_t ACCESS_CTRL62_ROOT_TOG; /**< Access Control Register, offset: 0x9F7C */ - __IO uint32_t TARGET_ROOT63; /**< Target Register, offset: 0x9F80 */ - __IO uint32_t TARGET_ROOT63_SET; /**< Target Register, offset: 0x9F84 */ - __IO uint32_t TARGET_ROOT63_CLR; /**< Target Register, offset: 0x9F88 */ - __IO uint32_t TARGET_ROOT63_TOG; /**< Target Register, offset: 0x9F8C */ - uint8_t RESERVED_128[16]; - __IO uint32_t POST63; /**< Post Divider Register, offset: 0x9FA0 */ - __IO uint32_t POST_ROOT63_SET; /**< Post Divider Register, offset: 0x9FA4 */ - __IO uint32_t POST_ROOT63_CLR; /**< Post Divider Register, offset: 0x9FA8 */ - __IO uint32_t POST_ROOT63_TOG; /**< Post Divider Register, offset: 0x9FAC */ - __IO uint32_t PRE63; /**< Pre Divider Register, offset: 0x9FB0 */ - __IO uint32_t PRE_ROOT63_SET; /**< Pre Divider Register, offset: 0x9FB4 */ - __IO uint32_t PRE_ROOT63_CLR; /**< Pre Divider Register, offset: 0x9FB8 */ - __IO uint32_t PRE_ROOT63_TOG; /**< Pre Divider Register, offset: 0x9FBC */ - uint8_t RESERVED_129[48]; - __IO uint32_t ACCESS_CTRL63; /**< Access Control Register, offset: 0x9FF0 */ - __IO uint32_t ACCESS_CTRL63_ROOT_SET; /**< Access Control Register, offset: 0x9FF4 */ - __IO uint32_t ACCESS_CTRL63_ROOT_CLR; /**< Access Control Register, offset: 0x9FF8 */ - __IO uint32_t ACCESS_CTRL63_ROOT_TOG; /**< Access Control Register, offset: 0x9FFC */ - __IO uint32_t TARGET_ROOT64; /**< Target Register, offset: 0xA000 */ - __IO uint32_t TARGET_ROOT64_SET; /**< Target Register, offset: 0xA004 */ - __IO uint32_t TARGET_ROOT64_CLR; /**< Target Register, offset: 0xA008 */ - __IO uint32_t TARGET_ROOT64_TOG; /**< Target Register, offset: 0xA00C */ - uint8_t RESERVED_130[16]; - __IO uint32_t POST64; /**< Post Divider Register, offset: 0xA020 */ - __IO uint32_t POST_ROOT64_SET; /**< Post Divider Register, offset: 0xA024 */ - __IO uint32_t POST_ROOT64_CLR; /**< Post Divider Register, offset: 0xA028 */ - __IO uint32_t POST_ROOT64_TOG; /**< Post Divider Register, offset: 0xA02C */ - __IO uint32_t PRE64; /**< Pre Divider Register, offset: 0xA030 */ - __IO uint32_t PRE_ROOT64_SET; /**< Pre Divider Register, offset: 0xA034 */ - __IO uint32_t PRE_ROOT64_CLR; /**< Pre Divider Register, offset: 0xA038 */ - __IO uint32_t PRE_ROOT64_TOG; /**< Pre Divider Register, offset: 0xA03C */ - uint8_t RESERVED_131[48]; - __IO uint32_t ACCESS_CTRL64; /**< Access Control Register, offset: 0xA070 */ - __IO uint32_t ACCESS_CTRL64_ROOT_SET; /**< Access Control Register, offset: 0xA074 */ - __IO uint32_t ACCESS_CTRL64_ROOT_CLR; /**< Access Control Register, offset: 0xA078 */ - __IO uint32_t ACCESS_CTRL64_ROOT_TOG; /**< Access Control Register, offset: 0xA07C */ - __IO uint32_t TARGET_ROOT65; /**< Target Register, offset: 0xA080 */ - __IO uint32_t TARGET_ROOT65_SET; /**< Target Register, offset: 0xA084 */ - __IO uint32_t TARGET_ROOT65_CLR; /**< Target Register, offset: 0xA088 */ - __IO uint32_t TARGET_ROOT65_TOG; /**< Target Register, offset: 0xA08C */ - uint8_t RESERVED_132[16]; - __IO uint32_t POST65; /**< Post Divider Register, offset: 0xA0A0 */ - __IO uint32_t POST_ROOT65_SET; /**< Post Divider Register, offset: 0xA0A4 */ - __IO uint32_t POST_ROOT65_CLR; /**< Post Divider Register, offset: 0xA0A8 */ - __IO uint32_t POST_ROOT65_TOG; /**< Post Divider Register, offset: 0xA0AC */ - __IO uint32_t PRE65; /**< Pre Divider Register, offset: 0xA0B0 */ - __IO uint32_t PRE_ROOT65_SET; /**< Pre Divider Register, offset: 0xA0B4 */ - __IO uint32_t PRE_ROOT65_CLR; /**< Pre Divider Register, offset: 0xA0B8 */ - __IO uint32_t PRE_ROOT65_TOG; /**< Pre Divider Register, offset: 0xA0BC */ - uint8_t RESERVED_133[48]; - __IO uint32_t ACCESS_CTRL65; /**< Access Control Register, offset: 0xA0F0 */ - __IO uint32_t ACCESS_CTRL65_ROOT_SET; /**< Access Control Register, offset: 0xA0F4 */ - __IO uint32_t ACCESS_CTRL65_ROOT_CLR; /**< Access Control Register, offset: 0xA0F8 */ - __IO uint32_t ACCESS_CTRL65_ROOT_TOG; /**< Access Control Register, offset: 0xA0FC */ - __IO uint32_t TARGET_ROOT66; /**< Target Register, offset: 0xA100 */ - __IO uint32_t TARGET_ROOT66_SET; /**< Target Register, offset: 0xA104 */ - __IO uint32_t TARGET_ROOT66_CLR; /**< Target Register, offset: 0xA108 */ - __IO uint32_t TARGET_ROOT66_TOG; /**< Target Register, offset: 0xA10C */ - uint8_t RESERVED_134[16]; - __IO uint32_t POST66; /**< Post Divider Register, offset: 0xA120 */ - __IO uint32_t POST_ROOT66_SET; /**< Post Divider Register, offset: 0xA124 */ - __IO uint32_t POST_ROOT66_CLR; /**< Post Divider Register, offset: 0xA128 */ - __IO uint32_t POST_ROOT66_TOG; /**< Post Divider Register, offset: 0xA12C */ - __IO uint32_t PRE66; /**< Pre Divider Register, offset: 0xA130 */ - __IO uint32_t PRE_ROOT66_SET; /**< Pre Divider Register, offset: 0xA134 */ - __IO uint32_t PRE_ROOT66_CLR; /**< Pre Divider Register, offset: 0xA138 */ - __IO uint32_t PRE_ROOT66_TOG; /**< Pre Divider Register, offset: 0xA13C */ - uint8_t RESERVED_135[48]; - __IO uint32_t ACCESS_CTRL66; /**< Access Control Register, offset: 0xA170 */ - __IO uint32_t ACCESS_CTRL66_ROOT_SET; /**< Access Control Register, offset: 0xA174 */ - __IO uint32_t ACCESS_CTRL66_ROOT_CLR; /**< Access Control Register, offset: 0xA178 */ - __IO uint32_t ACCESS_CTRL66_ROOT_TOG; /**< Access Control Register, offset: 0xA17C */ - __IO uint32_t TARGET_ROOT67; /**< Target Register, offset: 0xA180 */ - __IO uint32_t TARGET_ROOT67_SET; /**< Target Register, offset: 0xA184 */ - __IO uint32_t TARGET_ROOT67_CLR; /**< Target Register, offset: 0xA188 */ - __IO uint32_t TARGET_ROOT67_TOG; /**< Target Register, offset: 0xA18C */ - uint8_t RESERVED_136[16]; - __IO uint32_t POST67; /**< Post Divider Register, offset: 0xA1A0 */ - __IO uint32_t POST_ROOT67_SET; /**< Post Divider Register, offset: 0xA1A4 */ - __IO uint32_t POST_ROOT67_CLR; /**< Post Divider Register, offset: 0xA1A8 */ - __IO uint32_t POST_ROOT67_TOG; /**< Post Divider Register, offset: 0xA1AC */ - __IO uint32_t PRE67; /**< Pre Divider Register, offset: 0xA1B0 */ - __IO uint32_t PRE_ROOT67_SET; /**< Pre Divider Register, offset: 0xA1B4 */ - __IO uint32_t PRE_ROOT67_CLR; /**< Pre Divider Register, offset: 0xA1B8 */ - __IO uint32_t PRE_ROOT67_TOG; /**< Pre Divider Register, offset: 0xA1BC */ - uint8_t RESERVED_137[48]; - __IO uint32_t ACCESS_CTRL67; /**< Access Control Register, offset: 0xA1F0 */ - __IO uint32_t ACCESS_CTRL67_ROOT_SET; /**< Access Control Register, offset: 0xA1F4 */ - __IO uint32_t ACCESS_CTRL67_ROOT_CLR; /**< Access Control Register, offset: 0xA1F8 */ - __IO uint32_t ACCESS_CTRL67_ROOT_TOG; /**< Access Control Register, offset: 0xA1FC */ - __IO uint32_t TARGET_ROOT68; /**< Target Register, offset: 0xA200 */ - __IO uint32_t TARGET_ROOT68_SET; /**< Target Register, offset: 0xA204 */ - __IO uint32_t TARGET_ROOT68_CLR; /**< Target Register, offset: 0xA208 */ - __IO uint32_t TARGET_ROOT68_TOG; /**< Target Register, offset: 0xA20C */ - uint8_t RESERVED_138[16]; - __IO uint32_t POST68; /**< Post Divider Register, offset: 0xA220 */ - __IO uint32_t POST_ROOT68_SET; /**< Post Divider Register, offset: 0xA224 */ - __IO uint32_t POST_ROOT68_CLR; /**< Post Divider Register, offset: 0xA228 */ - __IO uint32_t POST_ROOT68_TOG; /**< Post Divider Register, offset: 0xA22C */ - __IO uint32_t PRE68; /**< Pre Divider Register, offset: 0xA230 */ - __IO uint32_t PRE_ROOT68_SET; /**< Pre Divider Register, offset: 0xA234 */ - __IO uint32_t PRE_ROOT68_CLR; /**< Pre Divider Register, offset: 0xA238 */ - __IO uint32_t PRE_ROOT68_TOG; /**< Pre Divider Register, offset: 0xA23C */ - uint8_t RESERVED_139[48]; - __IO uint32_t ACCESS_CTRL68; /**< Access Control Register, offset: 0xA270 */ - __IO uint32_t ACCESS_CTRL68_ROOT_SET; /**< Access Control Register, offset: 0xA274 */ - __IO uint32_t ACCESS_CTRL68_ROOT_CLR; /**< Access Control Register, offset: 0xA278 */ - __IO uint32_t ACCESS_CTRL68_ROOT_TOG; /**< Access Control Register, offset: 0xA27C */ - __IO uint32_t TARGET_ROOT69; /**< Target Register, offset: 0xA280 */ - __IO uint32_t TARGET_ROOT69_SET; /**< Target Register, offset: 0xA284 */ - __IO uint32_t TARGET_ROOT69_CLR; /**< Target Register, offset: 0xA288 */ - __IO uint32_t TARGET_ROOT69_TOG; /**< Target Register, offset: 0xA28C */ - uint8_t RESERVED_140[16]; - __IO uint32_t POST69; /**< Post Divider Register, offset: 0xA2A0 */ - __IO uint32_t POST_ROOT69_SET; /**< Post Divider Register, offset: 0xA2A4 */ - __IO uint32_t POST_ROOT69_CLR; /**< Post Divider Register, offset: 0xA2A8 */ - __IO uint32_t POST_ROOT69_TOG; /**< Post Divider Register, offset: 0xA2AC */ - __IO uint32_t PRE69; /**< Pre Divider Register, offset: 0xA2B0 */ - __IO uint32_t PRE_ROOT69_SET; /**< Pre Divider Register, offset: 0xA2B4 */ - __IO uint32_t PRE_ROOT69_CLR; /**< Pre Divider Register, offset: 0xA2B8 */ - __IO uint32_t PRE_ROOT69_TOG; /**< Pre Divider Register, offset: 0xA2BC */ - uint8_t RESERVED_141[48]; - __IO uint32_t ACCESS_CTRL69; /**< Access Control Register, offset: 0xA2F0 */ - __IO uint32_t ACCESS_CTRL69_ROOT_SET; /**< Access Control Register, offset: 0xA2F4 */ - __IO uint32_t ACCESS_CTRL69_ROOT_CLR; /**< Access Control Register, offset: 0xA2F8 */ - __IO uint32_t ACCESS_CTRL69_ROOT_TOG; /**< Access Control Register, offset: 0xA2FC */ - __IO uint32_t TARGET_ROOT70; /**< Target Register, offset: 0xA300 */ - __IO uint32_t TARGET_ROOT70_SET; /**< Target Register, offset: 0xA304 */ - __IO uint32_t TARGET_ROOT70_CLR; /**< Target Register, offset: 0xA308 */ - __IO uint32_t TARGET_ROOT70_TOG; /**< Target Register, offset: 0xA30C */ - uint8_t RESERVED_142[16]; - __IO uint32_t POST70; /**< Post Divider Register, offset: 0xA320 */ - __IO uint32_t POST_ROOT70_SET; /**< Post Divider Register, offset: 0xA324 */ - __IO uint32_t POST_ROOT70_CLR; /**< Post Divider Register, offset: 0xA328 */ - __IO uint32_t POST_ROOT70_TOG; /**< Post Divider Register, offset: 0xA32C */ - __IO uint32_t PRE70; /**< Pre Divider Register, offset: 0xA330 */ - __IO uint32_t PRE_ROOT70_SET; /**< Pre Divider Register, offset: 0xA334 */ - __IO uint32_t PRE_ROOT70_CLR; /**< Pre Divider Register, offset: 0xA338 */ - __IO uint32_t PRE_ROOT70_TOG; /**< Pre Divider Register, offset: 0xA33C */ - uint8_t RESERVED_143[48]; - __IO uint32_t ACCESS_CTRL70; /**< Access Control Register, offset: 0xA370 */ - __IO uint32_t ACCESS_CTRL70_ROOT_SET; /**< Access Control Register, offset: 0xA374 */ - __IO uint32_t ACCESS_CTRL70_ROOT_CLR; /**< Access Control Register, offset: 0xA378 */ - __IO uint32_t ACCESS_CTRL70_ROOT_TOG; /**< Access Control Register, offset: 0xA37C */ - __IO uint32_t TARGET_ROOT71; /**< Target Register, offset: 0xA380 */ - __IO uint32_t TARGET_ROOT71_SET; /**< Target Register, offset: 0xA384 */ - __IO uint32_t TARGET_ROOT71_CLR; /**< Target Register, offset: 0xA388 */ - __IO uint32_t TARGET_ROOT71_TOG; /**< Target Register, offset: 0xA38C */ - uint8_t RESERVED_144[16]; - __IO uint32_t POST71; /**< Post Divider Register, offset: 0xA3A0 */ - __IO uint32_t POST_ROOT71_SET; /**< Post Divider Register, offset: 0xA3A4 */ - __IO uint32_t POST_ROOT71_CLR; /**< Post Divider Register, offset: 0xA3A8 */ - __IO uint32_t POST_ROOT71_TOG; /**< Post Divider Register, offset: 0xA3AC */ - __IO uint32_t PRE71; /**< Pre Divider Register, offset: 0xA3B0 */ - __IO uint32_t PRE_ROOT71_SET; /**< Pre Divider Register, offset: 0xA3B4 */ - __IO uint32_t PRE_ROOT71_CLR; /**< Pre Divider Register, offset: 0xA3B8 */ - __IO uint32_t PRE_ROOT71_TOG; /**< Pre Divider Register, offset: 0xA3BC */ - uint8_t RESERVED_145[48]; - __IO uint32_t ACCESS_CTRL71; /**< Access Control Register, offset: 0xA3F0 */ - __IO uint32_t ACCESS_CTRL71_ROOT_SET; /**< Access Control Register, offset: 0xA3F4 */ - __IO uint32_t ACCESS_CTRL71_ROOT_CLR; /**< Access Control Register, offset: 0xA3F8 */ - __IO uint32_t ACCESS_CTRL71_ROOT_TOG; /**< Access Control Register, offset: 0xA3FC */ - __IO uint32_t TARGET_ROOT72; /**< Target Register, offset: 0xA400 */ - __IO uint32_t TARGET_ROOT72_SET; /**< Target Register, offset: 0xA404 */ - __IO uint32_t TARGET_ROOT72_CLR; /**< Target Register, offset: 0xA408 */ - __IO uint32_t TARGET_ROOT72_TOG; /**< Target Register, offset: 0xA40C */ - uint8_t RESERVED_146[16]; - __IO uint32_t POST72; /**< Post Divider Register, offset: 0xA420 */ - __IO uint32_t POST_ROOT72_SET; /**< Post Divider Register, offset: 0xA424 */ - __IO uint32_t POST_ROOT72_CLR; /**< Post Divider Register, offset: 0xA428 */ - __IO uint32_t POST_ROOT72_TOG; /**< Post Divider Register, offset: 0xA42C */ - __IO uint32_t PRE72; /**< Pre Divider Register, offset: 0xA430 */ - __IO uint32_t PRE_ROOT72_SET; /**< Pre Divider Register, offset: 0xA434 */ - __IO uint32_t PRE_ROOT72_CLR; /**< Pre Divider Register, offset: 0xA438 */ - __IO uint32_t PRE_ROOT72_TOG; /**< Pre Divider Register, offset: 0xA43C */ - uint8_t RESERVED_147[48]; - __IO uint32_t ACCESS_CTRL72; /**< Access Control Register, offset: 0xA470 */ - __IO uint32_t ACCESS_CTRL72_ROOT_SET; /**< Access Control Register, offset: 0xA474 */ - __IO uint32_t ACCESS_CTRL72_ROOT_CLR; /**< Access Control Register, offset: 0xA478 */ - __IO uint32_t ACCESS_CTRL72_ROOT_TOG; /**< Access Control Register, offset: 0xA47C */ - __IO uint32_t TARGET_ROOT73; /**< Target Register, offset: 0xA480 */ - __IO uint32_t TARGET_ROOT73_SET; /**< Target Register, offset: 0xA484 */ - __IO uint32_t TARGET_ROOT73_CLR; /**< Target Register, offset: 0xA488 */ - __IO uint32_t TARGET_ROOT73_TOG; /**< Target Register, offset: 0xA48C */ - uint8_t RESERVED_148[16]; - __IO uint32_t POST73; /**< Post Divider Register, offset: 0xA4A0 */ - __IO uint32_t POST_ROOT73_SET; /**< Post Divider Register, offset: 0xA4A4 */ - __IO uint32_t POST_ROOT73_CLR; /**< Post Divider Register, offset: 0xA4A8 */ - __IO uint32_t POST_ROOT73_TOG; /**< Post Divider Register, offset: 0xA4AC */ - __IO uint32_t PRE73; /**< Pre Divider Register, offset: 0xA4B0 */ - __IO uint32_t PRE_ROOT73_SET; /**< Pre Divider Register, offset: 0xA4B4 */ - __IO uint32_t PRE_ROOT73_CLR; /**< Pre Divider Register, offset: 0xA4B8 */ - __IO uint32_t PRE_ROOT73_TOG; /**< Pre Divider Register, offset: 0xA4BC */ - uint8_t RESERVED_149[48]; - __IO uint32_t ACCESS_CTRL73; /**< Access Control Register, offset: 0xA4F0 */ - __IO uint32_t ACCESS_CTRL73_ROOT_SET; /**< Access Control Register, offset: 0xA4F4 */ - __IO uint32_t ACCESS_CTRL73_ROOT_CLR; /**< Access Control Register, offset: 0xA4F8 */ - __IO uint32_t ACCESS_CTRL73_ROOT_TOG; /**< Access Control Register, offset: 0xA4FC */ - __IO uint32_t TARGET_ROOT74; /**< Target Register, offset: 0xA500 */ - __IO uint32_t TARGET_ROOT74_SET; /**< Target Register, offset: 0xA504 */ - __IO uint32_t TARGET_ROOT74_CLR; /**< Target Register, offset: 0xA508 */ - __IO uint32_t TARGET_ROOT74_TOG; /**< Target Register, offset: 0xA50C */ - uint8_t RESERVED_150[16]; - __IO uint32_t POST74; /**< Post Divider Register, offset: 0xA520 */ - __IO uint32_t POST_ROOT74_SET; /**< Post Divider Register, offset: 0xA524 */ - __IO uint32_t POST_ROOT74_CLR; /**< Post Divider Register, offset: 0xA528 */ - __IO uint32_t POST_ROOT74_TOG; /**< Post Divider Register, offset: 0xA52C */ - __IO uint32_t PRE74; /**< Pre Divider Register, offset: 0xA530 */ - __IO uint32_t PRE_ROOT74_SET; /**< Pre Divider Register, offset: 0xA534 */ - __IO uint32_t PRE_ROOT74_CLR; /**< Pre Divider Register, offset: 0xA538 */ - __IO uint32_t PRE_ROOT74_TOG; /**< Pre Divider Register, offset: 0xA53C */ - uint8_t RESERVED_151[48]; - __IO uint32_t ACCESS_CTRL74; /**< Access Control Register, offset: 0xA570 */ - __IO uint32_t ACCESS_CTRL74_ROOT_SET; /**< Access Control Register, offset: 0xA574 */ - __IO uint32_t ACCESS_CTRL74_ROOT_CLR; /**< Access Control Register, offset: 0xA578 */ - __IO uint32_t ACCESS_CTRL74_ROOT_TOG; /**< Access Control Register, offset: 0xA57C */ - __IO uint32_t TARGET_ROOT75; /**< Target Register, offset: 0xA580 */ - __IO uint32_t TARGET_ROOT75_SET; /**< Target Register, offset: 0xA584 */ - __IO uint32_t TARGET_ROOT75_CLR; /**< Target Register, offset: 0xA588 */ - __IO uint32_t TARGET_ROOT75_TOG; /**< Target Register, offset: 0xA58C */ - uint8_t RESERVED_152[16]; - __IO uint32_t POST75; /**< Post Divider Register, offset: 0xA5A0 */ - __IO uint32_t POST_ROOT75_SET; /**< Post Divider Register, offset: 0xA5A4 */ - __IO uint32_t POST_ROOT75_CLR; /**< Post Divider Register, offset: 0xA5A8 */ - __IO uint32_t POST_ROOT75_TOG; /**< Post Divider Register, offset: 0xA5AC */ - __IO uint32_t PRE75; /**< Pre Divider Register, offset: 0xA5B0 */ - __IO uint32_t PRE_ROOT75_SET; /**< Pre Divider Register, offset: 0xA5B4 */ - __IO uint32_t PRE_ROOT75_CLR; /**< Pre Divider Register, offset: 0xA5B8 */ - __IO uint32_t PRE_ROOT75_TOG; /**< Pre Divider Register, offset: 0xA5BC */ - uint8_t RESERVED_153[48]; - __IO uint32_t ACCESS_CTRL75; /**< Access Control Register, offset: 0xA5F0 */ - __IO uint32_t ACCESS_CTRL75_ROOT_SET; /**< Access Control Register, offset: 0xA5F4 */ - __IO uint32_t ACCESS_CTRL75_ROOT_CLR; /**< Access Control Register, offset: 0xA5F8 */ - __IO uint32_t ACCESS_CTRL75_ROOT_TOG; /**< Access Control Register, offset: 0xA5FC */ - __IO uint32_t TARGET_ROOT76; /**< Target Register, offset: 0xA600 */ - __IO uint32_t TARGET_ROOT76_SET; /**< Target Register, offset: 0xA604 */ - __IO uint32_t TARGET_ROOT76_CLR; /**< Target Register, offset: 0xA608 */ - __IO uint32_t TARGET_ROOT76_TOG; /**< Target Register, offset: 0xA60C */ - uint8_t RESERVED_154[16]; - __IO uint32_t POST76; /**< Post Divider Register, offset: 0xA620 */ - __IO uint32_t POST_ROOT76_SET; /**< Post Divider Register, offset: 0xA624 */ - __IO uint32_t POST_ROOT76_CLR; /**< Post Divider Register, offset: 0xA628 */ - __IO uint32_t POST_ROOT76_TOG; /**< Post Divider Register, offset: 0xA62C */ - __IO uint32_t PRE76; /**< Pre Divider Register, offset: 0xA630 */ - __IO uint32_t PRE_ROOT76_SET; /**< Pre Divider Register, offset: 0xA634 */ - __IO uint32_t PRE_ROOT76_CLR; /**< Pre Divider Register, offset: 0xA638 */ - __IO uint32_t PRE_ROOT76_TOG; /**< Pre Divider Register, offset: 0xA63C */ - uint8_t RESERVED_155[48]; - __IO uint32_t ACCESS_CTRL76; /**< Access Control Register, offset: 0xA670 */ - __IO uint32_t ACCESS_CTRL76_ROOT_SET; /**< Access Control Register, offset: 0xA674 */ - __IO uint32_t ACCESS_CTRL76_ROOT_CLR; /**< Access Control Register, offset: 0xA678 */ - __IO uint32_t ACCESS_CTRL76_ROOT_TOG; /**< Access Control Register, offset: 0xA67C */ - __IO uint32_t TARGET_ROOT77; /**< Target Register, offset: 0xA680 */ - __IO uint32_t TARGET_ROOT77_SET; /**< Target Register, offset: 0xA684 */ - __IO uint32_t TARGET_ROOT77_CLR; /**< Target Register, offset: 0xA688 */ - __IO uint32_t TARGET_ROOT77_TOG; /**< Target Register, offset: 0xA68C */ - uint8_t RESERVED_156[16]; - __IO uint32_t POST77; /**< Post Divider Register, offset: 0xA6A0 */ - __IO uint32_t POST_ROOT77_SET; /**< Post Divider Register, offset: 0xA6A4 */ - __IO uint32_t POST_ROOT77_CLR; /**< Post Divider Register, offset: 0xA6A8 */ - __IO uint32_t POST_ROOT77_TOG; /**< Post Divider Register, offset: 0xA6AC */ - __IO uint32_t PRE77; /**< Pre Divider Register, offset: 0xA6B0 */ - __IO uint32_t PRE_ROOT77_SET; /**< Pre Divider Register, offset: 0xA6B4 */ - __IO uint32_t PRE_ROOT77_CLR; /**< Pre Divider Register, offset: 0xA6B8 */ - __IO uint32_t PRE_ROOT77_TOG; /**< Pre Divider Register, offset: 0xA6BC */ - uint8_t RESERVED_157[48]; - __IO uint32_t ACCESS_CTRL77; /**< Access Control Register, offset: 0xA6F0 */ - __IO uint32_t ACCESS_CTRL77_ROOT_SET; /**< Access Control Register, offset: 0xA6F4 */ - __IO uint32_t ACCESS_CTRL77_ROOT_CLR; /**< Access Control Register, offset: 0xA6F8 */ - __IO uint32_t ACCESS_CTRL77_ROOT_TOG; /**< Access Control Register, offset: 0xA6FC */ - __IO uint32_t TARGET_ROOT78; /**< Target Register, offset: 0xA700 */ - __IO uint32_t TARGET_ROOT78_SET; /**< Target Register, offset: 0xA704 */ - __IO uint32_t TARGET_ROOT78_CLR; /**< Target Register, offset: 0xA708 */ - __IO uint32_t TARGET_ROOT78_TOG; /**< Target Register, offset: 0xA70C */ - uint8_t RESERVED_158[16]; - __IO uint32_t POST78; /**< Post Divider Register, offset: 0xA720 */ - __IO uint32_t POST_ROOT78_SET; /**< Post Divider Register, offset: 0xA724 */ - __IO uint32_t POST_ROOT78_CLR; /**< Post Divider Register, offset: 0xA728 */ - __IO uint32_t POST_ROOT78_TOG; /**< Post Divider Register, offset: 0xA72C */ - __IO uint32_t PRE78; /**< Pre Divider Register, offset: 0xA730 */ - __IO uint32_t PRE_ROOT78_SET; /**< Pre Divider Register, offset: 0xA734 */ - __IO uint32_t PRE_ROOT78_CLR; /**< Pre Divider Register, offset: 0xA738 */ - __IO uint32_t PRE_ROOT78_TOG; /**< Pre Divider Register, offset: 0xA73C */ - uint8_t RESERVED_159[48]; - __IO uint32_t ACCESS_CTRL78; /**< Access Control Register, offset: 0xA770 */ - __IO uint32_t ACCESS_CTRL78_ROOT_SET; /**< Access Control Register, offset: 0xA774 */ - __IO uint32_t ACCESS_CTRL78_ROOT_CLR; /**< Access Control Register, offset: 0xA778 */ - __IO uint32_t ACCESS_CTRL78_ROOT_TOG; /**< Access Control Register, offset: 0xA77C */ - __IO uint32_t TARGET_ROOT79; /**< Target Register, offset: 0xA780 */ - __IO uint32_t TARGET_ROOT79_SET; /**< Target Register, offset: 0xA784 */ - __IO uint32_t TARGET_ROOT79_CLR; /**< Target Register, offset: 0xA788 */ - __IO uint32_t TARGET_ROOT79_TOG; /**< Target Register, offset: 0xA78C */ - uint8_t RESERVED_160[16]; - __IO uint32_t POST79; /**< Post Divider Register, offset: 0xA7A0 */ - __IO uint32_t POST_ROOT79_SET; /**< Post Divider Register, offset: 0xA7A4 */ - __IO uint32_t POST_ROOT79_CLR; /**< Post Divider Register, offset: 0xA7A8 */ - __IO uint32_t POST_ROOT79_TOG; /**< Post Divider Register, offset: 0xA7AC */ - __IO uint32_t PRE79; /**< Pre Divider Register, offset: 0xA7B0 */ - __IO uint32_t PRE_ROOT79_SET; /**< Pre Divider Register, offset: 0xA7B4 */ - __IO uint32_t PRE_ROOT79_CLR; /**< Pre Divider Register, offset: 0xA7B8 */ - __IO uint32_t PRE_ROOT79_TOG; /**< Pre Divider Register, offset: 0xA7BC */ - uint8_t RESERVED_161[48]; - __IO uint32_t ACCESS_CTRL79; /**< Access Control Register, offset: 0xA7F0 */ - __IO uint32_t ACCESS_CTRL79_ROOT_SET; /**< Access Control Register, offset: 0xA7F4 */ - __IO uint32_t ACCESS_CTRL79_ROOT_CLR; /**< Access Control Register, offset: 0xA7F8 */ - __IO uint32_t ACCESS_CTRL79_ROOT_TOG; /**< Access Control Register, offset: 0xA7FC */ - __IO uint32_t TARGET_ROOT80; /**< Target Register, offset: 0xA800 */ - __IO uint32_t TARGET_ROOT80_SET; /**< Target Register, offset: 0xA804 */ - __IO uint32_t TARGET_ROOT80_CLR; /**< Target Register, offset: 0xA808 */ - __IO uint32_t TARGET_ROOT80_TOG; /**< Target Register, offset: 0xA80C */ - uint8_t RESERVED_162[16]; - __IO uint32_t POST80; /**< Post Divider Register, offset: 0xA820 */ - __IO uint32_t POST_ROOT80_SET; /**< Post Divider Register, offset: 0xA824 */ - __IO uint32_t POST_ROOT80_CLR; /**< Post Divider Register, offset: 0xA828 */ - __IO uint32_t POST_ROOT80_TOG; /**< Post Divider Register, offset: 0xA82C */ - __IO uint32_t PRE80; /**< Pre Divider Register, offset: 0xA830 */ - __IO uint32_t PRE_ROOT80_SET; /**< Pre Divider Register, offset: 0xA834 */ - __IO uint32_t PRE_ROOT80_CLR; /**< Pre Divider Register, offset: 0xA838 */ - __IO uint32_t PRE_ROOT80_TOG; /**< Pre Divider Register, offset: 0xA83C */ - uint8_t RESERVED_163[48]; - __IO uint32_t ACCESS_CTRL80; /**< Access Control Register, offset: 0xA870 */ - __IO uint32_t ACCESS_CTRL80_ROOT_SET; /**< Access Control Register, offset: 0xA874 */ - __IO uint32_t ACCESS_CTRL80_ROOT_CLR; /**< Access Control Register, offset: 0xA878 */ - __IO uint32_t ACCESS_CTRL80_ROOT_TOG; /**< Access Control Register, offset: 0xA87C */ - __IO uint32_t TARGET_ROOT81; /**< Target Register, offset: 0xA880 */ - __IO uint32_t TARGET_ROOT81_SET; /**< Target Register, offset: 0xA884 */ - __IO uint32_t TARGET_ROOT81_CLR; /**< Target Register, offset: 0xA888 */ - __IO uint32_t TARGET_ROOT81_TOG; /**< Target Register, offset: 0xA88C */ - uint8_t RESERVED_164[16]; - __IO uint32_t POST81; /**< Post Divider Register, offset: 0xA8A0 */ - __IO uint32_t POST_ROOT81_SET; /**< Post Divider Register, offset: 0xA8A4 */ - __IO uint32_t POST_ROOT81_CLR; /**< Post Divider Register, offset: 0xA8A8 */ - __IO uint32_t POST_ROOT81_TOG; /**< Post Divider Register, offset: 0xA8AC */ - __IO uint32_t PRE81; /**< Pre Divider Register, offset: 0xA8B0 */ - __IO uint32_t PRE_ROOT81_SET; /**< Pre Divider Register, offset: 0xA8B4 */ - __IO uint32_t PRE_ROOT81_CLR; /**< Pre Divider Register, offset: 0xA8B8 */ - __IO uint32_t PRE_ROOT81_TOG; /**< Pre Divider Register, offset: 0xA8BC */ - uint8_t RESERVED_165[48]; - __IO uint32_t ACCESS_CTRL81; /**< Access Control Register, offset: 0xA8F0 */ - __IO uint32_t ACCESS_CTRL81_ROOT_SET; /**< Access Control Register, offset: 0xA8F4 */ - __IO uint32_t ACCESS_CTRL81_ROOT_CLR; /**< Access Control Register, offset: 0xA8F8 */ - __IO uint32_t ACCESS_CTRL81_ROOT_TOG; /**< Access Control Register, offset: 0xA8FC */ - __IO uint32_t TARGET_ROOT82; /**< Target Register, offset: 0xA900 */ - __IO uint32_t TARGET_ROOT82_SET; /**< Target Register, offset: 0xA904 */ - __IO uint32_t TARGET_ROOT82_CLR; /**< Target Register, offset: 0xA908 */ - __IO uint32_t TARGET_ROOT82_TOG; /**< Target Register, offset: 0xA90C */ - uint8_t RESERVED_166[16]; - __IO uint32_t POST82; /**< Post Divider Register, offset: 0xA920 */ - __IO uint32_t POST_ROOT82_SET; /**< Post Divider Register, offset: 0xA924 */ - __IO uint32_t POST_ROOT82_CLR; /**< Post Divider Register, offset: 0xA928 */ - __IO uint32_t POST_ROOT82_TOG; /**< Post Divider Register, offset: 0xA92C */ - __IO uint32_t PRE82; /**< Pre Divider Register, offset: 0xA930 */ - __IO uint32_t PRE_ROOT82_SET; /**< Pre Divider Register, offset: 0xA934 */ - __IO uint32_t PRE_ROOT82_CLR; /**< Pre Divider Register, offset: 0xA938 */ - __IO uint32_t PRE_ROOT82_TOG; /**< Pre Divider Register, offset: 0xA93C */ - uint8_t RESERVED_167[48]; - __IO uint32_t ACCESS_CTRL82; /**< Access Control Register, offset: 0xA970 */ - __IO uint32_t ACCESS_CTRL82_ROOT_SET; /**< Access Control Register, offset: 0xA974 */ - __IO uint32_t ACCESS_CTRL82_ROOT_CLR; /**< Access Control Register, offset: 0xA978 */ - __IO uint32_t ACCESS_CTRL82_ROOT_TOG; /**< Access Control Register, offset: 0xA97C */ - __IO uint32_t TARGET_ROOT83; /**< Target Register, offset: 0xA980 */ - __IO uint32_t TARGET_ROOT83_SET; /**< Target Register, offset: 0xA984 */ - __IO uint32_t TARGET_ROOT83_CLR; /**< Target Register, offset: 0xA988 */ - __IO uint32_t TARGET_ROOT83_TOG; /**< Target Register, offset: 0xA98C */ - uint8_t RESERVED_168[16]; - __IO uint32_t POST83; /**< Post Divider Register, offset: 0xA9A0 */ - __IO uint32_t POST_ROOT83_SET; /**< Post Divider Register, offset: 0xA9A4 */ - __IO uint32_t POST_ROOT83_CLR; /**< Post Divider Register, offset: 0xA9A8 */ - __IO uint32_t POST_ROOT83_TOG; /**< Post Divider Register, offset: 0xA9AC */ - __IO uint32_t PRE83; /**< Pre Divider Register, offset: 0xA9B0 */ - __IO uint32_t PRE_ROOT83_SET; /**< Pre Divider Register, offset: 0xA9B4 */ - __IO uint32_t PRE_ROOT83_CLR; /**< Pre Divider Register, offset: 0xA9B8 */ - __IO uint32_t PRE_ROOT83_TOG; /**< Pre Divider Register, offset: 0xA9BC */ - uint8_t RESERVED_169[48]; - __IO uint32_t ACCESS_CTRL83; /**< Access Control Register, offset: 0xA9F0 */ - __IO uint32_t ACCESS_CTRL83_ROOT_SET; /**< Access Control Register, offset: 0xA9F4 */ - __IO uint32_t ACCESS_CTRL83_ROOT_CLR; /**< Access Control Register, offset: 0xA9F8 */ - __IO uint32_t ACCESS_CTRL83_ROOT_TOG; /**< Access Control Register, offset: 0xA9FC */ - __IO uint32_t TARGET_ROOT84; /**< Target Register, offset: 0xAA00 */ - __IO uint32_t TARGET_ROOT84_SET; /**< Target Register, offset: 0xAA04 */ - __IO uint32_t TARGET_ROOT84_CLR; /**< Target Register, offset: 0xAA08 */ - __IO uint32_t TARGET_ROOT84_TOG; /**< Target Register, offset: 0xAA0C */ - uint8_t RESERVED_170[16]; - __IO uint32_t POST84; /**< Post Divider Register, offset: 0xAA20 */ - __IO uint32_t POST_ROOT84_SET; /**< Post Divider Register, offset: 0xAA24 */ - __IO uint32_t POST_ROOT84_CLR; /**< Post Divider Register, offset: 0xAA28 */ - __IO uint32_t POST_ROOT84_TOG; /**< Post Divider Register, offset: 0xAA2C */ - __IO uint32_t PRE84; /**< Pre Divider Register, offset: 0xAA30 */ - __IO uint32_t PRE_ROOT84_SET; /**< Pre Divider Register, offset: 0xAA34 */ - __IO uint32_t PRE_ROOT84_CLR; /**< Pre Divider Register, offset: 0xAA38 */ - __IO uint32_t PRE_ROOT84_TOG; /**< Pre Divider Register, offset: 0xAA3C */ - uint8_t RESERVED_171[48]; - __IO uint32_t ACCESS_CTRL84; /**< Access Control Register, offset: 0xAA70 */ - __IO uint32_t ACCESS_CTRL84_ROOT_SET; /**< Access Control Register, offset: 0xAA74 */ - __IO uint32_t ACCESS_CTRL84_ROOT_CLR; /**< Access Control Register, offset: 0xAA78 */ - __IO uint32_t ACCESS_CTRL84_ROOT_TOG; /**< Access Control Register, offset: 0xAA7C */ - __IO uint32_t TARGET_ROOT85; /**< Target Register, offset: 0xAA80 */ - __IO uint32_t TARGET_ROOT85_SET; /**< Target Register, offset: 0xAA84 */ - __IO uint32_t TARGET_ROOT85_CLR; /**< Target Register, offset: 0xAA88 */ - __IO uint32_t TARGET_ROOT85_TOG; /**< Target Register, offset: 0xAA8C */ - uint8_t RESERVED_172[16]; - __IO uint32_t POST85; /**< Post Divider Register, offset: 0xAAA0 */ - __IO uint32_t POST_ROOT85_SET; /**< Post Divider Register, offset: 0xAAA4 */ - __IO uint32_t POST_ROOT85_CLR; /**< Post Divider Register, offset: 0xAAA8 */ - __IO uint32_t POST_ROOT85_TOG; /**< Post Divider Register, offset: 0xAAAC */ - __IO uint32_t PRE85; /**< Pre Divider Register, offset: 0xAAB0 */ - __IO uint32_t PRE_ROOT85_SET; /**< Pre Divider Register, offset: 0xAAB4 */ - __IO uint32_t PRE_ROOT85_CLR; /**< Pre Divider Register, offset: 0xAAB8 */ - __IO uint32_t PRE_ROOT85_TOG; /**< Pre Divider Register, offset: 0xAABC */ - uint8_t RESERVED_173[48]; - __IO uint32_t ACCESS_CTRL85; /**< Access Control Register, offset: 0xAAF0 */ - __IO uint32_t ACCESS_CTRL85_ROOT_SET; /**< Access Control Register, offset: 0xAAF4 */ - __IO uint32_t ACCESS_CTRL85_ROOT_CLR; /**< Access Control Register, offset: 0xAAF8 */ - __IO uint32_t ACCESS_CTRL85_ROOT_TOG; /**< Access Control Register, offset: 0xAAFC */ - __IO uint32_t TARGET_ROOT86; /**< Target Register, offset: 0xAB00 */ - __IO uint32_t TARGET_ROOT86_SET; /**< Target Register, offset: 0xAB04 */ - __IO uint32_t TARGET_ROOT86_CLR; /**< Target Register, offset: 0xAB08 */ - __IO uint32_t TARGET_ROOT86_TOG; /**< Target Register, offset: 0xAB0C */ - uint8_t RESERVED_174[16]; - __IO uint32_t POST86; /**< Post Divider Register, offset: 0xAB20 */ - __IO uint32_t POST_ROOT86_SET; /**< Post Divider Register, offset: 0xAB24 */ - __IO uint32_t POST_ROOT86_CLR; /**< Post Divider Register, offset: 0xAB28 */ - __IO uint32_t POST_ROOT86_TOG; /**< Post Divider Register, offset: 0xAB2C */ - __IO uint32_t PRE86; /**< Pre Divider Register, offset: 0xAB30 */ - __IO uint32_t PRE_ROOT86_SET; /**< Pre Divider Register, offset: 0xAB34 */ - __IO uint32_t PRE_ROOT86_CLR; /**< Pre Divider Register, offset: 0xAB38 */ - __IO uint32_t PRE_ROOT86_TOG; /**< Pre Divider Register, offset: 0xAB3C */ - uint8_t RESERVED_175[48]; - __IO uint32_t ACCESS_CTRL86; /**< Access Control Register, offset: 0xAB70 */ - __IO uint32_t ACCESS_CTRL86_ROOT_SET; /**< Access Control Register, offset: 0xAB74 */ - __IO uint32_t ACCESS_CTRL86_ROOT_CLR; /**< Access Control Register, offset: 0xAB78 */ - __IO uint32_t ACCESS_CTRL86_ROOT_TOG; /**< Access Control Register, offset: 0xAB7C */ - __IO uint32_t TARGET_ROOT87; /**< Target Register, offset: 0xAB80 */ - __IO uint32_t TARGET_ROOT87_SET; /**< Target Register, offset: 0xAB84 */ - __IO uint32_t TARGET_ROOT87_CLR; /**< Target Register, offset: 0xAB88 */ - __IO uint32_t TARGET_ROOT87_TOG; /**< Target Register, offset: 0xAB8C */ - uint8_t RESERVED_176[16]; - __IO uint32_t POST87; /**< Post Divider Register, offset: 0xABA0 */ - __IO uint32_t POST_ROOT87_SET; /**< Post Divider Register, offset: 0xABA4 */ - __IO uint32_t POST_ROOT87_CLR; /**< Post Divider Register, offset: 0xABA8 */ - __IO uint32_t POST_ROOT87_TOG; /**< Post Divider Register, offset: 0xABAC */ - __IO uint32_t PRE87; /**< Pre Divider Register, offset: 0xABB0 */ - __IO uint32_t PRE_ROOT87_SET; /**< Pre Divider Register, offset: 0xABB4 */ - __IO uint32_t PRE_ROOT87_CLR; /**< Pre Divider Register, offset: 0xABB8 */ - __IO uint32_t PRE_ROOT87_TOG; /**< Pre Divider Register, offset: 0xABBC */ - uint8_t RESERVED_177[48]; - __IO uint32_t ACCESS_CTRL87; /**< Access Control Register, offset: 0xABF0 */ - __IO uint32_t ACCESS_CTRL87_ROOT_SET; /**< Access Control Register, offset: 0xABF4 */ - __IO uint32_t ACCESS_CTRL87_ROOT_CLR; /**< Access Control Register, offset: 0xABF8 */ - __IO uint32_t ACCESS_CTRL87_ROOT_TOG; /**< Access Control Register, offset: 0xABFC */ - __IO uint32_t TARGET_ROOT88; /**< Target Register, offset: 0xAC00 */ - __IO uint32_t TARGET_ROOT88_SET; /**< Target Register, offset: 0xAC04 */ - __IO uint32_t TARGET_ROOT88_CLR; /**< Target Register, offset: 0xAC08 */ - __IO uint32_t TARGET_ROOT88_TOG; /**< Target Register, offset: 0xAC0C */ - uint8_t RESERVED_178[16]; - __IO uint32_t POST88; /**< Post Divider Register, offset: 0xAC20 */ - __IO uint32_t POST_ROOT88_SET; /**< Post Divider Register, offset: 0xAC24 */ - __IO uint32_t POST_ROOT88_CLR; /**< Post Divider Register, offset: 0xAC28 */ - __IO uint32_t POST_ROOT88_TOG; /**< Post Divider Register, offset: 0xAC2C */ - __IO uint32_t PRE88; /**< Pre Divider Register, offset: 0xAC30 */ - __IO uint32_t PRE_ROOT88_SET; /**< Pre Divider Register, offset: 0xAC34 */ - __IO uint32_t PRE_ROOT88_CLR; /**< Pre Divider Register, offset: 0xAC38 */ - __IO uint32_t PRE_ROOT88_TOG; /**< Pre Divider Register, offset: 0xAC3C */ - uint8_t RESERVED_179[48]; - __IO uint32_t ACCESS_CTRL88; /**< Access Control Register, offset: 0xAC70 */ - __IO uint32_t ACCESS_CTRL88_ROOT_SET; /**< Access Control Register, offset: 0xAC74 */ - __IO uint32_t ACCESS_CTRL88_ROOT_CLR; /**< Access Control Register, offset: 0xAC78 */ - __IO uint32_t ACCESS_CTRL88_ROOT_TOG; /**< Access Control Register, offset: 0xAC7C */ - __IO uint32_t TARGET_ROOT89; /**< Target Register, offset: 0xAC80 */ - __IO uint32_t TARGET_ROOT89_SET; /**< Target Register, offset: 0xAC84 */ - __IO uint32_t TARGET_ROOT89_CLR; /**< Target Register, offset: 0xAC88 */ - __IO uint32_t TARGET_ROOT89_TOG; /**< Target Register, offset: 0xAC8C */ - uint8_t RESERVED_180[16]; - __IO uint32_t POST89; /**< Post Divider Register, offset: 0xACA0 */ - __IO uint32_t POST_ROOT89_SET; /**< Post Divider Register, offset: 0xACA4 */ - __IO uint32_t POST_ROOT89_CLR; /**< Post Divider Register, offset: 0xACA8 */ - __IO uint32_t POST_ROOT89_TOG; /**< Post Divider Register, offset: 0xACAC */ - __IO uint32_t PRE89; /**< Pre Divider Register, offset: 0xACB0 */ - __IO uint32_t PRE_ROOT89_SET; /**< Pre Divider Register, offset: 0xACB4 */ - __IO uint32_t PRE_ROOT89_CLR; /**< Pre Divider Register, offset: 0xACB8 */ - __IO uint32_t PRE_ROOT89_TOG; /**< Pre Divider Register, offset: 0xACBC */ - uint8_t RESERVED_181[48]; - __IO uint32_t ACCESS_CTRL89; /**< Access Control Register, offset: 0xACF0 */ - __IO uint32_t ACCESS_CTRL89_ROOT_SET; /**< Access Control Register, offset: 0xACF4 */ - __IO uint32_t ACCESS_CTRL89_ROOT_CLR; /**< Access Control Register, offset: 0xACF8 */ - __IO uint32_t ACCESS_CTRL89_ROOT_TOG; /**< Access Control Register, offset: 0xACFC */ - __IO uint32_t TARGET_ROOT90; /**< Target Register, offset: 0xAD00 */ - __IO uint32_t TARGET_ROOT90_SET; /**< Target Register, offset: 0xAD04 */ - __IO uint32_t TARGET_ROOT90_CLR; /**< Target Register, offset: 0xAD08 */ - __IO uint32_t TARGET_ROOT90_TOG; /**< Target Register, offset: 0xAD0C */ - uint8_t RESERVED_182[16]; - __IO uint32_t POST90; /**< Post Divider Register, offset: 0xAD20 */ - __IO uint32_t POST_ROOT90_SET; /**< Post Divider Register, offset: 0xAD24 */ - __IO uint32_t POST_ROOT90_CLR; /**< Post Divider Register, offset: 0xAD28 */ - __IO uint32_t POST_ROOT90_TOG; /**< Post Divider Register, offset: 0xAD2C */ - __IO uint32_t PRE90; /**< Pre Divider Register, offset: 0xAD30 */ - __IO uint32_t PRE_ROOT90_SET; /**< Pre Divider Register, offset: 0xAD34 */ - __IO uint32_t PRE_ROOT90_CLR; /**< Pre Divider Register, offset: 0xAD38 */ - __IO uint32_t PRE_ROOT90_TOG; /**< Pre Divider Register, offset: 0xAD3C */ - uint8_t RESERVED_183[48]; - __IO uint32_t ACCESS_CTRL90; /**< Access Control Register, offset: 0xAD70 */ - __IO uint32_t ACCESS_CTRL90_ROOT_SET; /**< Access Control Register, offset: 0xAD74 */ - __IO uint32_t ACCESS_CTRL90_ROOT_CLR; /**< Access Control Register, offset: 0xAD78 */ - __IO uint32_t ACCESS_CTRL90_ROOT_TOG; /**< Access Control Register, offset: 0xAD7C */ - __IO uint32_t TARGET_ROOT91; /**< Target Register, offset: 0xAD80 */ - __IO uint32_t TARGET_ROOT91_SET; /**< Target Register, offset: 0xAD84 */ - __IO uint32_t TARGET_ROOT91_CLR; /**< Target Register, offset: 0xAD88 */ - __IO uint32_t TARGET_ROOT91_TOG; /**< Target Register, offset: 0xAD8C */ - uint8_t RESERVED_184[16]; - __IO uint32_t POST91; /**< Post Divider Register, offset: 0xADA0 */ - __IO uint32_t POST_ROOT91_SET; /**< Post Divider Register, offset: 0xADA4 */ - __IO uint32_t POST_ROOT91_CLR; /**< Post Divider Register, offset: 0xADA8 */ - __IO uint32_t POST_ROOT91_TOG; /**< Post Divider Register, offset: 0xADAC */ - __IO uint32_t PRE91; /**< Pre Divider Register, offset: 0xADB0 */ - __IO uint32_t PRE_ROOT91_SET; /**< Pre Divider Register, offset: 0xADB4 */ - __IO uint32_t PRE_ROOT91_CLR; /**< Pre Divider Register, offset: 0xADB8 */ - __IO uint32_t PRE_ROOT91_TOG; /**< Pre Divider Register, offset: 0xADBC */ - uint8_t RESERVED_185[48]; - __IO uint32_t ACCESS_CTRL91; /**< Access Control Register, offset: 0xADF0 */ - __IO uint32_t ACCESS_CTRL91_ROOT_SET; /**< Access Control Register, offset: 0xADF4 */ - __IO uint32_t ACCESS_CTRL91_ROOT_CLR; /**< Access Control Register, offset: 0xADF8 */ - __IO uint32_t ACCESS_CTRL91_ROOT_TOG; /**< Access Control Register, offset: 0xADFC */ - __IO uint32_t TARGET_ROOT92; /**< Target Register, offset: 0xAE00 */ - __IO uint32_t TARGET_ROOT92_SET; /**< Target Register, offset: 0xAE04 */ - __IO uint32_t TARGET_ROOT92_CLR; /**< Target Register, offset: 0xAE08 */ - __IO uint32_t TARGET_ROOT92_TOG; /**< Target Register, offset: 0xAE0C */ - uint8_t RESERVED_186[16]; - __IO uint32_t POST92; /**< Post Divider Register, offset: 0xAE20 */ - __IO uint32_t POST_ROOT92_SET; /**< Post Divider Register, offset: 0xAE24 */ - __IO uint32_t POST_ROOT92_CLR; /**< Post Divider Register, offset: 0xAE28 */ - __IO uint32_t POST_ROOT92_TOG; /**< Post Divider Register, offset: 0xAE2C */ - __IO uint32_t PRE92; /**< Pre Divider Register, offset: 0xAE30 */ - __IO uint32_t PRE_ROOT92_SET; /**< Pre Divider Register, offset: 0xAE34 */ - __IO uint32_t PRE_ROOT92_CLR; /**< Pre Divider Register, offset: 0xAE38 */ - __IO uint32_t PRE_ROOT92_TOG; /**< Pre Divider Register, offset: 0xAE3C */ - uint8_t RESERVED_187[48]; - __IO uint32_t ACCESS_CTRL92; /**< Access Control Register, offset: 0xAE70 */ - __IO uint32_t ACCESS_CTRL92_ROOT_SET; /**< Access Control Register, offset: 0xAE74 */ - __IO uint32_t ACCESS_CTRL92_ROOT_CLR; /**< Access Control Register, offset: 0xAE78 */ - __IO uint32_t ACCESS_CTRL92_ROOT_TOG; /**< Access Control Register, offset: 0xAE7C */ - __IO uint32_t TARGET_ROOT93; /**< Target Register, offset: 0xAE80 */ - __IO uint32_t TARGET_ROOT93_SET; /**< Target Register, offset: 0xAE84 */ - __IO uint32_t TARGET_ROOT93_CLR; /**< Target Register, offset: 0xAE88 */ - __IO uint32_t TARGET_ROOT93_TOG; /**< Target Register, offset: 0xAE8C */ - uint8_t RESERVED_188[16]; - __IO uint32_t POST93; /**< Post Divider Register, offset: 0xAEA0 */ - __IO uint32_t POST_ROOT93_SET; /**< Post Divider Register, offset: 0xAEA4 */ - __IO uint32_t POST_ROOT93_CLR; /**< Post Divider Register, offset: 0xAEA8 */ - __IO uint32_t POST_ROOT93_TOG; /**< Post Divider Register, offset: 0xAEAC */ - __IO uint32_t PRE93; /**< Pre Divider Register, offset: 0xAEB0 */ - __IO uint32_t PRE_ROOT93_SET; /**< Pre Divider Register, offset: 0xAEB4 */ - __IO uint32_t PRE_ROOT93_CLR; /**< Pre Divider Register, offset: 0xAEB8 */ - __IO uint32_t PRE_ROOT93_TOG; /**< Pre Divider Register, offset: 0xAEBC */ - uint8_t RESERVED_189[48]; - __IO uint32_t ACCESS_CTRL93; /**< Access Control Register, offset: 0xAEF0 */ - __IO uint32_t ACCESS_CTRL93_ROOT_SET; /**< Access Control Register, offset: 0xAEF4 */ - __IO uint32_t ACCESS_CTRL93_ROOT_CLR; /**< Access Control Register, offset: 0xAEF8 */ - __IO uint32_t ACCESS_CTRL93_ROOT_TOG; /**< Access Control Register, offset: 0xAEFC */ - __IO uint32_t TARGET_ROOT94; /**< Target Register, offset: 0xAF00 */ - __IO uint32_t TARGET_ROOT94_SET; /**< Target Register, offset: 0xAF04 */ - __IO uint32_t TARGET_ROOT94_CLR; /**< Target Register, offset: 0xAF08 */ - __IO uint32_t TARGET_ROOT94_TOG; /**< Target Register, offset: 0xAF0C */ - uint8_t RESERVED_190[16]; - __IO uint32_t POST94; /**< Post Divider Register, offset: 0xAF20 */ - __IO uint32_t POST_ROOT94_SET; /**< Post Divider Register, offset: 0xAF24 */ - __IO uint32_t POST_ROOT94_CLR; /**< Post Divider Register, offset: 0xAF28 */ - __IO uint32_t POST_ROOT94_TOG; /**< Post Divider Register, offset: 0xAF2C */ - __IO uint32_t PRE94; /**< Pre Divider Register, offset: 0xAF30 */ - __IO uint32_t PRE_ROOT94_SET; /**< Pre Divider Register, offset: 0xAF34 */ - __IO uint32_t PRE_ROOT94_CLR; /**< Pre Divider Register, offset: 0xAF38 */ - __IO uint32_t PRE_ROOT94_TOG; /**< Pre Divider Register, offset: 0xAF3C */ - uint8_t RESERVED_191[48]; - __IO uint32_t ACCESS_CTRL94; /**< Access Control Register, offset: 0xAF70 */ - __IO uint32_t ACCESS_CTRL94_ROOT_SET; /**< Access Control Register, offset: 0xAF74 */ - __IO uint32_t ACCESS_CTRL94_ROOT_CLR; /**< Access Control Register, offset: 0xAF78 */ - __IO uint32_t ACCESS_CTRL94_ROOT_TOG; /**< Access Control Register, offset: 0xAF7C */ - __IO uint32_t TARGET_ROOT95; /**< Target Register, offset: 0xAF80 */ - __IO uint32_t TARGET_ROOT95_SET; /**< Target Register, offset: 0xAF84 */ - __IO uint32_t TARGET_ROOT95_CLR; /**< Target Register, offset: 0xAF88 */ - __IO uint32_t TARGET_ROOT95_TOG; /**< Target Register, offset: 0xAF8C */ - uint8_t RESERVED_192[16]; - __IO uint32_t POST95; /**< Post Divider Register, offset: 0xAFA0 */ - __IO uint32_t POST_ROOT95_SET; /**< Post Divider Register, offset: 0xAFA4 */ - __IO uint32_t POST_ROOT95_CLR; /**< Post Divider Register, offset: 0xAFA8 */ - __IO uint32_t POST_ROOT95_TOG; /**< Post Divider Register, offset: 0xAFAC */ - __IO uint32_t PRE95; /**< Pre Divider Register, offset: 0xAFB0 */ - __IO uint32_t PRE_ROOT95_SET; /**< Pre Divider Register, offset: 0xAFB4 */ - __IO uint32_t PRE_ROOT95_CLR; /**< Pre Divider Register, offset: 0xAFB8 */ - __IO uint32_t PRE_ROOT95_TOG; /**< Pre Divider Register, offset: 0xAFBC */ - uint8_t RESERVED_193[48]; - __IO uint32_t ACCESS_CTRL95; /**< Access Control Register, offset: 0xAFF0 */ - __IO uint32_t ACCESS_CTRL95_ROOT_SET; /**< Access Control Register, offset: 0xAFF4 */ - __IO uint32_t ACCESS_CTRL95_ROOT_CLR; /**< Access Control Register, offset: 0xAFF8 */ - __IO uint32_t ACCESS_CTRL95_ROOT_TOG; /**< Access Control Register, offset: 0xAFFC */ - __IO uint32_t TARGET_ROOT96; /**< Target Register, offset: 0xB000 */ - __IO uint32_t TARGET_ROOT96_SET; /**< Target Register, offset: 0xB004 */ - __IO uint32_t TARGET_ROOT96_CLR; /**< Target Register, offset: 0xB008 */ - __IO uint32_t TARGET_ROOT96_TOG; /**< Target Register, offset: 0xB00C */ - uint8_t RESERVED_194[16]; - __IO uint32_t POST96; /**< Post Divider Register, offset: 0xB020 */ - __IO uint32_t POST_ROOT96_SET; /**< Post Divider Register, offset: 0xB024 */ - __IO uint32_t POST_ROOT96_CLR; /**< Post Divider Register, offset: 0xB028 */ - __IO uint32_t POST_ROOT96_TOG; /**< Post Divider Register, offset: 0xB02C */ - __IO uint32_t PRE96; /**< Pre Divider Register, offset: 0xB030 */ - __IO uint32_t PRE_ROOT96_SET; /**< Pre Divider Register, offset: 0xB034 */ - __IO uint32_t PRE_ROOT96_CLR; /**< Pre Divider Register, offset: 0xB038 */ - __IO uint32_t PRE_ROOT96_TOG; /**< Pre Divider Register, offset: 0xB03C */ - uint8_t RESERVED_195[48]; - __IO uint32_t ACCESS_CTRL96; /**< Access Control Register, offset: 0xB070 */ - __IO uint32_t ACCESS_CTRL96_ROOT_SET; /**< Access Control Register, offset: 0xB074 */ - __IO uint32_t ACCESS_CTRL96_ROOT_CLR; /**< Access Control Register, offset: 0xB078 */ - __IO uint32_t ACCESS_CTRL96_ROOT_TOG; /**< Access Control Register, offset: 0xB07C */ - __IO uint32_t TARGET_ROOT97; /**< Target Register, offset: 0xB080 */ - __IO uint32_t TARGET_ROOT97_SET; /**< Target Register, offset: 0xB084 */ - __IO uint32_t TARGET_ROOT97_CLR; /**< Target Register, offset: 0xB088 */ - __IO uint32_t TARGET_ROOT97_TOG; /**< Target Register, offset: 0xB08C */ - uint8_t RESERVED_196[16]; - __IO uint32_t POST97; /**< Post Divider Register, offset: 0xB0A0 */ - __IO uint32_t POST_ROOT97_SET; /**< Post Divider Register, offset: 0xB0A4 */ - __IO uint32_t POST_ROOT97_CLR; /**< Post Divider Register, offset: 0xB0A8 */ - __IO uint32_t POST_ROOT97_TOG; /**< Post Divider Register, offset: 0xB0AC */ - __IO uint32_t PRE97; /**< Pre Divider Register, offset: 0xB0B0 */ - __IO uint32_t PRE_ROOT97_SET; /**< Pre Divider Register, offset: 0xB0B4 */ - __IO uint32_t PRE_ROOT97_CLR; /**< Pre Divider Register, offset: 0xB0B8 */ - __IO uint32_t PRE_ROOT97_TOG; /**< Pre Divider Register, offset: 0xB0BC */ - uint8_t RESERVED_197[48]; - __IO uint32_t ACCESS_CTRL97; /**< Access Control Register, offset: 0xB0F0 */ - __IO uint32_t ACCESS_CTRL97_ROOT_SET; /**< Access Control Register, offset: 0xB0F4 */ - __IO uint32_t ACCESS_CTRL97_ROOT_CLR; /**< Access Control Register, offset: 0xB0F8 */ - __IO uint32_t ACCESS_CTRL97_ROOT_TOG; /**< Access Control Register, offset: 0xB0FC */ - __IO uint32_t TARGET_ROOT98; /**< Target Register, offset: 0xB100 */ - __IO uint32_t TARGET_ROOT98_SET; /**< Target Register, offset: 0xB104 */ - __IO uint32_t TARGET_ROOT98_CLR; /**< Target Register, offset: 0xB108 */ - __IO uint32_t TARGET_ROOT98_TOG; /**< Target Register, offset: 0xB10C */ - uint8_t RESERVED_198[16]; - __IO uint32_t POST98; /**< Post Divider Register, offset: 0xB120 */ - __IO uint32_t POST_ROOT98_SET; /**< Post Divider Register, offset: 0xB124 */ - __IO uint32_t POST_ROOT98_CLR; /**< Post Divider Register, offset: 0xB128 */ - __IO uint32_t POST_ROOT98_TOG; /**< Post Divider Register, offset: 0xB12C */ - __IO uint32_t PRE98; /**< Pre Divider Register, offset: 0xB130 */ - __IO uint32_t PRE_ROOT98_SET; /**< Pre Divider Register, offset: 0xB134 */ - __IO uint32_t PRE_ROOT98_CLR; /**< Pre Divider Register, offset: 0xB138 */ - __IO uint32_t PRE_ROOT98_TOG; /**< Pre Divider Register, offset: 0xB13C */ - uint8_t RESERVED_199[48]; - __IO uint32_t ACCESS_CTRL98; /**< Access Control Register, offset: 0xB170 */ - __IO uint32_t ACCESS_CTRL98_ROOT_SET; /**< Access Control Register, offset: 0xB174 */ - __IO uint32_t ACCESS_CTRL98_ROOT_CLR; /**< Access Control Register, offset: 0xB178 */ - __IO uint32_t ACCESS_CTRL98_ROOT_TOG; /**< Access Control Register, offset: 0xB17C */ - __IO uint32_t TARGET_ROOT99; /**< Target Register, offset: 0xB180 */ - __IO uint32_t TARGET_ROOT99_SET; /**< Target Register, offset: 0xB184 */ - __IO uint32_t TARGET_ROOT99_CLR; /**< Target Register, offset: 0xB188 */ - __IO uint32_t TARGET_ROOT99_TOG; /**< Target Register, offset: 0xB18C */ - uint8_t RESERVED_200[16]; - __IO uint32_t POST99; /**< Post Divider Register, offset: 0xB1A0 */ - __IO uint32_t POST_ROOT99_SET; /**< Post Divider Register, offset: 0xB1A4 */ - __IO uint32_t POST_ROOT99_CLR; /**< Post Divider Register, offset: 0xB1A8 */ - __IO uint32_t POST_ROOT99_TOG; /**< Post Divider Register, offset: 0xB1AC */ - __IO uint32_t PRE99; /**< Pre Divider Register, offset: 0xB1B0 */ - __IO uint32_t PRE_ROOT99_SET; /**< Pre Divider Register, offset: 0xB1B4 */ - __IO uint32_t PRE_ROOT99_CLR; /**< Pre Divider Register, offset: 0xB1B8 */ - __IO uint32_t PRE_ROOT99_TOG; /**< Pre Divider Register, offset: 0xB1BC */ - uint8_t RESERVED_201[48]; - __IO uint32_t ACCESS_CTRL99; /**< Access Control Register, offset: 0xB1F0 */ - __IO uint32_t ACCESS_CTRL99_ROOT_SET; /**< Access Control Register, offset: 0xB1F4 */ - __IO uint32_t ACCESS_CTRL99_ROOT_CLR; /**< Access Control Register, offset: 0xB1F8 */ - __IO uint32_t ACCESS_CTRL99_ROOT_TOG; /**< Access Control Register, offset: 0xB1FC */ - __IO uint32_t TARGET_ROOT100; /**< Target Register, offset: 0xB200 */ - __IO uint32_t TARGET_ROOT100_SET; /**< Target Register, offset: 0xB204 */ - __IO uint32_t TARGET_ROOT100_CLR; /**< Target Register, offset: 0xB208 */ - __IO uint32_t TARGET_ROOT100_TOG; /**< Target Register, offset: 0xB20C */ - uint8_t RESERVED_202[16]; - __IO uint32_t POST100; /**< Post Divider Register, offset: 0xB220 */ - __IO uint32_t POST_ROOT100_SET; /**< Post Divider Register, offset: 0xB224 */ - __IO uint32_t POST_ROOT100_CLR; /**< Post Divider Register, offset: 0xB228 */ - __IO uint32_t POST_ROOT100_TOG; /**< Post Divider Register, offset: 0xB22C */ - __IO uint32_t PRE100; /**< Pre Divider Register, offset: 0xB230 */ - __IO uint32_t PRE_ROOT100_SET; /**< Pre Divider Register, offset: 0xB234 */ - __IO uint32_t PRE_ROOT100_CLR; /**< Pre Divider Register, offset: 0xB238 */ - __IO uint32_t PRE_ROOT100_TOG; /**< Pre Divider Register, offset: 0xB23C */ - uint8_t RESERVED_203[48]; - __IO uint32_t ACCESS_CTRL100; /**< Access Control Register, offset: 0xB270 */ - __IO uint32_t ACCESS_CTRL100_ROOT_SET; /**< Access Control Register, offset: 0xB274 */ - __IO uint32_t ACCESS_CTRL100_ROOT_CLR; /**< Access Control Register, offset: 0xB278 */ - __IO uint32_t ACCESS_CTRL100_ROOT_TOG; /**< Access Control Register, offset: 0xB27C */ - __IO uint32_t TARGET_ROOT101; /**< Target Register, offset: 0xB280 */ - __IO uint32_t TARGET_ROOT101_SET; /**< Target Register, offset: 0xB284 */ - __IO uint32_t TARGET_ROOT101_CLR; /**< Target Register, offset: 0xB288 */ - __IO uint32_t TARGET_ROOT101_TOG; /**< Target Register, offset: 0xB28C */ - uint8_t RESERVED_204[16]; - __IO uint32_t POST101; /**< Post Divider Register, offset: 0xB2A0 */ - __IO uint32_t POST_ROOT101_SET; /**< Post Divider Register, offset: 0xB2A4 */ - __IO uint32_t POST_ROOT101_CLR; /**< Post Divider Register, offset: 0xB2A8 */ - __IO uint32_t POST_ROOT101_TOG; /**< Post Divider Register, offset: 0xB2AC */ - __IO uint32_t PRE101; /**< Pre Divider Register, offset: 0xB2B0 */ - __IO uint32_t PRE_ROOT101_SET; /**< Pre Divider Register, offset: 0xB2B4 */ - __IO uint32_t PRE_ROOT101_CLR; /**< Pre Divider Register, offset: 0xB2B8 */ - __IO uint32_t PRE_ROOT101_TOG; /**< Pre Divider Register, offset: 0xB2BC */ - uint8_t RESERVED_205[48]; - __IO uint32_t ACCESS_CTRL101; /**< Access Control Register, offset: 0xB2F0 */ - __IO uint32_t ACCESS_CTRL101_ROOT_SET; /**< Access Control Register, offset: 0xB2F4 */ - __IO uint32_t ACCESS_CTRL101_ROOT_CLR; /**< Access Control Register, offset: 0xB2F8 */ - __IO uint32_t ACCESS_CTRL101_ROOT_TOG; /**< Access Control Register, offset: 0xB2FC */ - __IO uint32_t TARGET_ROOT102; /**< Target Register, offset: 0xB300 */ - __IO uint32_t TARGET_ROOT102_SET; /**< Target Register, offset: 0xB304 */ - __IO uint32_t TARGET_ROOT102_CLR; /**< Target Register, offset: 0xB308 */ - __IO uint32_t TARGET_ROOT102_TOG; /**< Target Register, offset: 0xB30C */ - uint8_t RESERVED_206[16]; - __IO uint32_t POST102; /**< Post Divider Register, offset: 0xB320 */ - __IO uint32_t POST_ROOT102_SET; /**< Post Divider Register, offset: 0xB324 */ - __IO uint32_t POST_ROOT102_CLR; /**< Post Divider Register, offset: 0xB328 */ - __IO uint32_t POST_ROOT102_TOG; /**< Post Divider Register, offset: 0xB32C */ - __IO uint32_t PRE102; /**< Pre Divider Register, offset: 0xB330 */ - __IO uint32_t PRE_ROOT102_SET; /**< Pre Divider Register, offset: 0xB334 */ - __IO uint32_t PRE_ROOT102_CLR; /**< Pre Divider Register, offset: 0xB338 */ - __IO uint32_t PRE_ROOT102_TOG; /**< Pre Divider Register, offset: 0xB33C */ - uint8_t RESERVED_207[48]; - __IO uint32_t ACCESS_CTRL102; /**< Access Control Register, offset: 0xB370 */ - __IO uint32_t ACCESS_CTRL102_ROOT_SET; /**< Access Control Register, offset: 0xB374 */ - __IO uint32_t ACCESS_CTRL102_ROOT_CLR; /**< Access Control Register, offset: 0xB378 */ - __IO uint32_t ACCESS_CTRL102_ROOT_TOG; /**< Access Control Register, offset: 0xB37C */ - __IO uint32_t TARGET_ROOT103; /**< Target Register, offset: 0xB380 */ - __IO uint32_t TARGET_ROOT103_SET; /**< Target Register, offset: 0xB384 */ - __IO uint32_t TARGET_ROOT103_CLR; /**< Target Register, offset: 0xB388 */ - __IO uint32_t TARGET_ROOT103_TOG; /**< Target Register, offset: 0xB38C */ - uint8_t RESERVED_208[16]; - __IO uint32_t POST103; /**< Post Divider Register, offset: 0xB3A0 */ - __IO uint32_t POST_ROOT103_SET; /**< Post Divider Register, offset: 0xB3A4 */ - __IO uint32_t POST_ROOT103_CLR; /**< Post Divider Register, offset: 0xB3A8 */ - __IO uint32_t POST_ROOT103_TOG; /**< Post Divider Register, offset: 0xB3AC */ - __IO uint32_t PRE103; /**< Pre Divider Register, offset: 0xB3B0 */ - __IO uint32_t PRE_ROOT103_SET; /**< Pre Divider Register, offset: 0xB3B4 */ - __IO uint32_t PRE_ROOT103_CLR; /**< Pre Divider Register, offset: 0xB3B8 */ - __IO uint32_t PRE_ROOT103_TOG; /**< Pre Divider Register, offset: 0xB3BC */ - uint8_t RESERVED_209[48]; - __IO uint32_t ACCESS_CTRL103; /**< Access Control Register, offset: 0xB3F0 */ - __IO uint32_t ACCESS_CTRL103_ROOT_SET; /**< Access Control Register, offset: 0xB3F4 */ - __IO uint32_t ACCESS_CTRL103_ROOT_CLR; /**< Access Control Register, offset: 0xB3F8 */ - __IO uint32_t ACCESS_CTRL103_ROOT_TOG; /**< Access Control Register, offset: 0xB3FC */ - __IO uint32_t TARGET_ROOT104; /**< Target Register, offset: 0xB400 */ - __IO uint32_t TARGET_ROOT104_SET; /**< Target Register, offset: 0xB404 */ - __IO uint32_t TARGET_ROOT104_CLR; /**< Target Register, offset: 0xB408 */ - __IO uint32_t TARGET_ROOT104_TOG; /**< Target Register, offset: 0xB40C */ - uint8_t RESERVED_210[16]; - __IO uint32_t POST104; /**< Post Divider Register, offset: 0xB420 */ - __IO uint32_t POST_ROOT104_SET; /**< Post Divider Register, offset: 0xB424 */ - __IO uint32_t POST_ROOT104_CLR; /**< Post Divider Register, offset: 0xB428 */ - __IO uint32_t POST_ROOT104_TOG; /**< Post Divider Register, offset: 0xB42C */ - __IO uint32_t PRE104; /**< Pre Divider Register, offset: 0xB430 */ - __IO uint32_t PRE_ROOT104_SET; /**< Pre Divider Register, offset: 0xB434 */ - __IO uint32_t PRE_ROOT104_CLR; /**< Pre Divider Register, offset: 0xB438 */ - __IO uint32_t PRE_ROOT104_TOG; /**< Pre Divider Register, offset: 0xB43C */ - uint8_t RESERVED_211[48]; - __IO uint32_t ACCESS_CTRL104; /**< Access Control Register, offset: 0xB470 */ - __IO uint32_t ACCESS_CTRL104_ROOT_SET; /**< Access Control Register, offset: 0xB474 */ - __IO uint32_t ACCESS_CTRL104_ROOT_CLR; /**< Access Control Register, offset: 0xB478 */ - __IO uint32_t ACCESS_CTRL104_ROOT_TOG; /**< Access Control Register, offset: 0xB47C */ - __IO uint32_t TARGET_ROOT105; /**< Target Register, offset: 0xB480 */ - __IO uint32_t TARGET_ROOT105_SET; /**< Target Register, offset: 0xB484 */ - __IO uint32_t TARGET_ROOT105_CLR; /**< Target Register, offset: 0xB488 */ - __IO uint32_t TARGET_ROOT105_TOG; /**< Target Register, offset: 0xB48C */ - uint8_t RESERVED_212[16]; - __IO uint32_t POST105; /**< Post Divider Register, offset: 0xB4A0 */ - __IO uint32_t POST_ROOT105_SET; /**< Post Divider Register, offset: 0xB4A4 */ - __IO uint32_t POST_ROOT105_CLR; /**< Post Divider Register, offset: 0xB4A8 */ - __IO uint32_t POST_ROOT105_TOG; /**< Post Divider Register, offset: 0xB4AC */ - __IO uint32_t PRE105; /**< Pre Divider Register, offset: 0xB4B0 */ - __IO uint32_t PRE_ROOT105_SET; /**< Pre Divider Register, offset: 0xB4B4 */ - __IO uint32_t PRE_ROOT105_CLR; /**< Pre Divider Register, offset: 0xB4B8 */ - __IO uint32_t PRE_ROOT105_TOG; /**< Pre Divider Register, offset: 0xB4BC */ - uint8_t RESERVED_213[48]; - __IO uint32_t ACCESS_CTRL105; /**< Access Control Register, offset: 0xB4F0 */ - __IO uint32_t ACCESS_CTRL105_ROOT_SET; /**< Access Control Register, offset: 0xB4F4 */ - __IO uint32_t ACCESS_CTRL105_ROOT_CLR; /**< Access Control Register, offset: 0xB4F8 */ - __IO uint32_t ACCESS_CTRL105_ROOT_TOG; /**< Access Control Register, offset: 0xB4FC */ - __IO uint32_t TARGET_ROOT106; /**< Target Register, offset: 0xB500 */ - __IO uint32_t TARGET_ROOT106_SET; /**< Target Register, offset: 0xB504 */ - __IO uint32_t TARGET_ROOT106_CLR; /**< Target Register, offset: 0xB508 */ - __IO uint32_t TARGET_ROOT106_TOG; /**< Target Register, offset: 0xB50C */ - uint8_t RESERVED_214[16]; - __IO uint32_t POST106; /**< Post Divider Register, offset: 0xB520 */ - __IO uint32_t POST_ROOT106_SET; /**< Post Divider Register, offset: 0xB524 */ - __IO uint32_t POST_ROOT106_CLR; /**< Post Divider Register, offset: 0xB528 */ - __IO uint32_t POST_ROOT106_TOG; /**< Post Divider Register, offset: 0xB52C */ - __IO uint32_t PRE106; /**< Pre Divider Register, offset: 0xB530 */ - __IO uint32_t PRE_ROOT106_SET; /**< Pre Divider Register, offset: 0xB534 */ - __IO uint32_t PRE_ROOT106_CLR; /**< Pre Divider Register, offset: 0xB538 */ - __IO uint32_t PRE_ROOT106_TOG; /**< Pre Divider Register, offset: 0xB53C */ - uint8_t RESERVED_215[48]; - __IO uint32_t ACCESS_CTRL106; /**< Access Control Register, offset: 0xB570 */ - __IO uint32_t ACCESS_CTRL106_ROOT_SET; /**< Access Control Register, offset: 0xB574 */ - __IO uint32_t ACCESS_CTRL106_ROOT_CLR; /**< Access Control Register, offset: 0xB578 */ - __IO uint32_t ACCESS_CTRL106_ROOT_TOG; /**< Access Control Register, offset: 0xB57C */ - __IO uint32_t TARGET_ROOT107; /**< Target Register, offset: 0xB580 */ - __IO uint32_t TARGET_ROOT107_SET; /**< Target Register, offset: 0xB584 */ - __IO uint32_t TARGET_ROOT107_CLR; /**< Target Register, offset: 0xB588 */ - __IO uint32_t TARGET_ROOT107_TOG; /**< Target Register, offset: 0xB58C */ - uint8_t RESERVED_216[16]; - __IO uint32_t POST107; /**< Post Divider Register, offset: 0xB5A0 */ - __IO uint32_t POST_ROOT107_SET; /**< Post Divider Register, offset: 0xB5A4 */ - __IO uint32_t POST_ROOT107_CLR; /**< Post Divider Register, offset: 0xB5A8 */ - __IO uint32_t POST_ROOT107_TOG; /**< Post Divider Register, offset: 0xB5AC */ - __IO uint32_t PRE107; /**< Pre Divider Register, offset: 0xB5B0 */ - __IO uint32_t PRE_ROOT107_SET; /**< Pre Divider Register, offset: 0xB5B4 */ - __IO uint32_t PRE_ROOT107_CLR; /**< Pre Divider Register, offset: 0xB5B8 */ - __IO uint32_t PRE_ROOT107_TOG; /**< Pre Divider Register, offset: 0xB5BC */ - uint8_t RESERVED_217[48]; - __IO uint32_t ACCESS_CTRL107; /**< Access Control Register, offset: 0xB5F0 */ - __IO uint32_t ACCESS_CTRL107_ROOT_SET; /**< Access Control Register, offset: 0xB5F4 */ - __IO uint32_t ACCESS_CTRL107_ROOT_CLR; /**< Access Control Register, offset: 0xB5F8 */ - __IO uint32_t ACCESS_CTRL107_ROOT_TOG; /**< Access Control Register, offset: 0xB5FC */ - __IO uint32_t TARGET_ROOT108; /**< Target Register, offset: 0xB600 */ - __IO uint32_t TARGET_ROOT108_SET; /**< Target Register, offset: 0xB604 */ - __IO uint32_t TARGET_ROOT108_CLR; /**< Target Register, offset: 0xB608 */ - __IO uint32_t TARGET_ROOT108_TOG; /**< Target Register, offset: 0xB60C */ - uint8_t RESERVED_218[16]; - __IO uint32_t POST108; /**< Post Divider Register, offset: 0xB620 */ - __IO uint32_t POST_ROOT108_SET; /**< Post Divider Register, offset: 0xB624 */ - __IO uint32_t POST_ROOT108_CLR; /**< Post Divider Register, offset: 0xB628 */ - __IO uint32_t POST_ROOT108_TOG; /**< Post Divider Register, offset: 0xB62C */ - __IO uint32_t PRE108; /**< Pre Divider Register, offset: 0xB630 */ - __IO uint32_t PRE_ROOT108_SET; /**< Pre Divider Register, offset: 0xB634 */ - __IO uint32_t PRE_ROOT108_CLR; /**< Pre Divider Register, offset: 0xB638 */ - __IO uint32_t PRE_ROOT108_TOG; /**< Pre Divider Register, offset: 0xB63C */ - uint8_t RESERVED_219[48]; - __IO uint32_t ACCESS_CTRL108; /**< Access Control Register, offset: 0xB670 */ - __IO uint32_t ACCESS_CTRL108_ROOT_SET; /**< Access Control Register, offset: 0xB674 */ - __IO uint32_t ACCESS_CTRL108_ROOT_CLR; /**< Access Control Register, offset: 0xB678 */ - __IO uint32_t ACCESS_CTRL108_ROOT_TOG; /**< Access Control Register, offset: 0xB67C */ - __IO uint32_t TARGET_ROOT109; /**< Target Register, offset: 0xB680 */ - __IO uint32_t TARGET_ROOT109_SET; /**< Target Register, offset: 0xB684 */ - __IO uint32_t TARGET_ROOT109_CLR; /**< Target Register, offset: 0xB688 */ - __IO uint32_t TARGET_ROOT109_TOG; /**< Target Register, offset: 0xB68C */ - uint8_t RESERVED_220[16]; - __IO uint32_t POST109; /**< Post Divider Register, offset: 0xB6A0 */ - __IO uint32_t POST_ROOT109_SET; /**< Post Divider Register, offset: 0xB6A4 */ - __IO uint32_t POST_ROOT109_CLR; /**< Post Divider Register, offset: 0xB6A8 */ - __IO uint32_t POST_ROOT109_TOG; /**< Post Divider Register, offset: 0xB6AC */ - __IO uint32_t PRE109; /**< Pre Divider Register, offset: 0xB6B0 */ - __IO uint32_t PRE_ROOT109_SET; /**< Pre Divider Register, offset: 0xB6B4 */ - __IO uint32_t PRE_ROOT109_CLR; /**< Pre Divider Register, offset: 0xB6B8 */ - __IO uint32_t PRE_ROOT109_TOG; /**< Pre Divider Register, offset: 0xB6BC */ - uint8_t RESERVED_221[48]; - __IO uint32_t ACCESS_CTRL109; /**< Access Control Register, offset: 0xB6F0 */ - __IO uint32_t ACCESS_CTRL109_ROOT_SET; /**< Access Control Register, offset: 0xB6F4 */ - __IO uint32_t ACCESS_CTRL109_ROOT_CLR; /**< Access Control Register, offset: 0xB6F8 */ - __IO uint32_t ACCESS_CTRL109_ROOT_TOG; /**< Access Control Register, offset: 0xB6FC */ - __IO uint32_t TARGET_ROOT110; /**< Target Register, offset: 0xB700 */ - __IO uint32_t TARGET_ROOT110_SET; /**< Target Register, offset: 0xB704 */ - __IO uint32_t TARGET_ROOT110_CLR; /**< Target Register, offset: 0xB708 */ - __IO uint32_t TARGET_ROOT110_TOG; /**< Target Register, offset: 0xB70C */ - uint8_t RESERVED_222[16]; - __IO uint32_t POST110; /**< Post Divider Register, offset: 0xB720 */ - __IO uint32_t POST_ROOT110_SET; /**< Post Divider Register, offset: 0xB724 */ - __IO uint32_t POST_ROOT110_CLR; /**< Post Divider Register, offset: 0xB728 */ - __IO uint32_t POST_ROOT110_TOG; /**< Post Divider Register, offset: 0xB72C */ - __IO uint32_t PRE110; /**< Pre Divider Register, offset: 0xB730 */ - __IO uint32_t PRE_ROOT110_SET; /**< Pre Divider Register, offset: 0xB734 */ - __IO uint32_t PRE_ROOT110_CLR; /**< Pre Divider Register, offset: 0xB738 */ - __IO uint32_t PRE_ROOT110_TOG; /**< Pre Divider Register, offset: 0xB73C */ - uint8_t RESERVED_223[48]; - __IO uint32_t ACCESS_CTRL110; /**< Access Control Register, offset: 0xB770 */ - __IO uint32_t ACCESS_CTRL110_ROOT_SET; /**< Access Control Register, offset: 0xB774 */ - __IO uint32_t ACCESS_CTRL110_ROOT_CLR; /**< Access Control Register, offset: 0xB778 */ - __IO uint32_t ACCESS_CTRL110_ROOT_TOG; /**< Access Control Register, offset: 0xB77C */ - __IO uint32_t TARGET_ROOT111; /**< Target Register, offset: 0xB780 */ - __IO uint32_t TARGET_ROOT111_SET; /**< Target Register, offset: 0xB784 */ - __IO uint32_t TARGET_ROOT111_CLR; /**< Target Register, offset: 0xB788 */ - __IO uint32_t TARGET_ROOT111_TOG; /**< Target Register, offset: 0xB78C */ - uint8_t RESERVED_224[16]; - __IO uint32_t POST111; /**< Post Divider Register, offset: 0xB7A0 */ - __IO uint32_t POST_ROOT111_SET; /**< Post Divider Register, offset: 0xB7A4 */ - __IO uint32_t POST_ROOT111_CLR; /**< Post Divider Register, offset: 0xB7A8 */ - __IO uint32_t POST_ROOT111_TOG; /**< Post Divider Register, offset: 0xB7AC */ - __IO uint32_t PRE111; /**< Pre Divider Register, offset: 0xB7B0 */ - __IO uint32_t PRE_ROOT111_SET; /**< Pre Divider Register, offset: 0xB7B4 */ - __IO uint32_t PRE_ROOT111_CLR; /**< Pre Divider Register, offset: 0xB7B8 */ - __IO uint32_t PRE_ROOT111_TOG; /**< Pre Divider Register, offset: 0xB7BC */ - uint8_t RESERVED_225[48]; - __IO uint32_t ACCESS_CTRL111; /**< Access Control Register, offset: 0xB7F0 */ - __IO uint32_t ACCESS_CTRL111_ROOT_SET; /**< Access Control Register, offset: 0xB7F4 */ - __IO uint32_t ACCESS_CTRL111_ROOT_CLR; /**< Access Control Register, offset: 0xB7F8 */ - __IO uint32_t ACCESS_CTRL111_ROOT_TOG; /**< Access Control Register, offset: 0xB7FC */ - __IO uint32_t TARGET_ROOT112; /**< Target Register, offset: 0xB800 */ - __IO uint32_t TARGET_ROOT112_SET; /**< Target Register, offset: 0xB804 */ - __IO uint32_t TARGET_ROOT112_CLR; /**< Target Register, offset: 0xB808 */ - __IO uint32_t TARGET_ROOT112_TOG; /**< Target Register, offset: 0xB80C */ - uint8_t RESERVED_226[16]; - __IO uint32_t POST112; /**< Post Divider Register, offset: 0xB820 */ - __IO uint32_t POST_ROOT112_SET; /**< Post Divider Register, offset: 0xB824 */ - __IO uint32_t POST_ROOT112_CLR; /**< Post Divider Register, offset: 0xB828 */ - __IO uint32_t POST_ROOT112_TOG; /**< Post Divider Register, offset: 0xB82C */ - __IO uint32_t PRE112; /**< Pre Divider Register, offset: 0xB830 */ - __IO uint32_t PRE_ROOT112_SET; /**< Pre Divider Register, offset: 0xB834 */ - __IO uint32_t PRE_ROOT112_CLR; /**< Pre Divider Register, offset: 0xB838 */ - __IO uint32_t PRE_ROOT112_TOG; /**< Pre Divider Register, offset: 0xB83C */ - uint8_t RESERVED_227[48]; - __IO uint32_t ACCESS_CTRL112; /**< Access Control Register, offset: 0xB870 */ - __IO uint32_t ACCESS_CTRL112_ROOT_SET; /**< Access Control Register, offset: 0xB874 */ - __IO uint32_t ACCESS_CTRL112_ROOT_CLR; /**< Access Control Register, offset: 0xB878 */ - __IO uint32_t ACCESS_CTRL112_ROOT_TOG; /**< Access Control Register, offset: 0xB87C */ - __IO uint32_t TARGET_ROOT113; /**< Target Register, offset: 0xB880 */ - __IO uint32_t TARGET_ROOT113_SET; /**< Target Register, offset: 0xB884 */ - __IO uint32_t TARGET_ROOT113_CLR; /**< Target Register, offset: 0xB888 */ - __IO uint32_t TARGET_ROOT113_TOG; /**< Target Register, offset: 0xB88C */ - uint8_t RESERVED_228[16]; - __IO uint32_t POST113; /**< Post Divider Register, offset: 0xB8A0 */ - __IO uint32_t POST_ROOT113_SET; /**< Post Divider Register, offset: 0xB8A4 */ - __IO uint32_t POST_ROOT113_CLR; /**< Post Divider Register, offset: 0xB8A8 */ - __IO uint32_t POST_ROOT113_TOG; /**< Post Divider Register, offset: 0xB8AC */ - __IO uint32_t PRE113; /**< Pre Divider Register, offset: 0xB8B0 */ - __IO uint32_t PRE_ROOT113_SET; /**< Pre Divider Register, offset: 0xB8B4 */ - __IO uint32_t PRE_ROOT113_CLR; /**< Pre Divider Register, offset: 0xB8B8 */ - __IO uint32_t PRE_ROOT113_TOG; /**< Pre Divider Register, offset: 0xB8BC */ - uint8_t RESERVED_229[48]; - __IO uint32_t ACCESS_CTRL113; /**< Access Control Register, offset: 0xB8F0 */ - __IO uint32_t ACCESS_CTRL113_ROOT_SET; /**< Access Control Register, offset: 0xB8F4 */ - __IO uint32_t ACCESS_CTRL113_ROOT_CLR; /**< Access Control Register, offset: 0xB8F8 */ - __IO uint32_t ACCESS_CTRL113_ROOT_TOG; /**< Access Control Register, offset: 0xB8FC */ - __IO uint32_t TARGET_ROOT114; /**< Target Register, offset: 0xB900 */ - __IO uint32_t TARGET_ROOT114_SET; /**< Target Register, offset: 0xB904 */ - __IO uint32_t TARGET_ROOT114_CLR; /**< Target Register, offset: 0xB908 */ - __IO uint32_t TARGET_ROOT114_TOG; /**< Target Register, offset: 0xB90C */ - uint8_t RESERVED_230[16]; - __IO uint32_t POST114; /**< Post Divider Register, offset: 0xB920 */ - __IO uint32_t POST_ROOT114_SET; /**< Post Divider Register, offset: 0xB924 */ - __IO uint32_t POST_ROOT114_CLR; /**< Post Divider Register, offset: 0xB928 */ - __IO uint32_t POST_ROOT114_TOG; /**< Post Divider Register, offset: 0xB92C */ - __IO uint32_t PRE114; /**< Pre Divider Register, offset: 0xB930 */ - __IO uint32_t PRE_ROOT114_SET; /**< Pre Divider Register, offset: 0xB934 */ - __IO uint32_t PRE_ROOT114_CLR; /**< Pre Divider Register, offset: 0xB938 */ - __IO uint32_t PRE_ROOT114_TOG; /**< Pre Divider Register, offset: 0xB93C */ - uint8_t RESERVED_231[48]; - __IO uint32_t ACCESS_CTRL114; /**< Access Control Register, offset: 0xB970 */ - __IO uint32_t ACCESS_CTRL114_ROOT_SET; /**< Access Control Register, offset: 0xB974 */ - __IO uint32_t ACCESS_CTRL114_ROOT_CLR; /**< Access Control Register, offset: 0xB978 */ - __IO uint32_t ACCESS_CTRL114_ROOT_TOG; /**< Access Control Register, offset: 0xB97C */ - __IO uint32_t TARGET_ROOT115; /**< Target Register, offset: 0xB980 */ - __IO uint32_t TARGET_ROOT115_SET; /**< Target Register, offset: 0xB984 */ - __IO uint32_t TARGET_ROOT115_CLR; /**< Target Register, offset: 0xB988 */ - __IO uint32_t TARGET_ROOT115_TOG; /**< Target Register, offset: 0xB98C */ - uint8_t RESERVED_232[16]; - __IO uint32_t POST115; /**< Post Divider Register, offset: 0xB9A0 */ - __IO uint32_t POST_ROOT115_SET; /**< Post Divider Register, offset: 0xB9A4 */ - __IO uint32_t POST_ROOT115_CLR; /**< Post Divider Register, offset: 0xB9A8 */ - __IO uint32_t POST_ROOT115_TOG; /**< Post Divider Register, offset: 0xB9AC */ - __IO uint32_t PRE115; /**< Pre Divider Register, offset: 0xB9B0 */ - __IO uint32_t PRE_ROOT115_SET; /**< Pre Divider Register, offset: 0xB9B4 */ - __IO uint32_t PRE_ROOT115_CLR; /**< Pre Divider Register, offset: 0xB9B8 */ - __IO uint32_t PRE_ROOT115_TOG; /**< Pre Divider Register, offset: 0xB9BC */ - uint8_t RESERVED_233[48]; - __IO uint32_t ACCESS_CTRL115; /**< Access Control Register, offset: 0xB9F0 */ - __IO uint32_t ACCESS_CTRL115_ROOT_SET; /**< Access Control Register, offset: 0xB9F4 */ - __IO uint32_t ACCESS_CTRL115_ROOT_CLR; /**< Access Control Register, offset: 0xB9F8 */ - __IO uint32_t ACCESS_CTRL115_ROOT_TOG; /**< Access Control Register, offset: 0xB9FC */ - __IO uint32_t TARGET_ROOT116; /**< Target Register, offset: 0xBA00 */ - __IO uint32_t TARGET_ROOT116_SET; /**< Target Register, offset: 0xBA04 */ - __IO uint32_t TARGET_ROOT116_CLR; /**< Target Register, offset: 0xBA08 */ - __IO uint32_t TARGET_ROOT116_TOG; /**< Target Register, offset: 0xBA0C */ - uint8_t RESERVED_234[16]; - __IO uint32_t POST116; /**< Post Divider Register, offset: 0xBA20 */ - __IO uint32_t POST_ROOT116_SET; /**< Post Divider Register, offset: 0xBA24 */ - __IO uint32_t POST_ROOT116_CLR; /**< Post Divider Register, offset: 0xBA28 */ - __IO uint32_t POST_ROOT116_TOG; /**< Post Divider Register, offset: 0xBA2C */ - __IO uint32_t PRE116; /**< Pre Divider Register, offset: 0xBA30 */ - __IO uint32_t PRE_ROOT116_SET; /**< Pre Divider Register, offset: 0xBA34 */ - __IO uint32_t PRE_ROOT116_CLR; /**< Pre Divider Register, offset: 0xBA38 */ - __IO uint32_t PRE_ROOT116_TOG; /**< Pre Divider Register, offset: 0xBA3C */ - uint8_t RESERVED_235[48]; - __IO uint32_t ACCESS_CTRL116; /**< Access Control Register, offset: 0xBA70 */ - __IO uint32_t ACCESS_CTRL116_ROOT_SET; /**< Access Control Register, offset: 0xBA74 */ - __IO uint32_t ACCESS_CTRL116_ROOT_CLR; /**< Access Control Register, offset: 0xBA78 */ - __IO uint32_t ACCESS_CTRL116_ROOT_TOG; /**< Access Control Register, offset: 0xBA7C */ - __IO uint32_t TARGET_ROOT117; /**< Target Register, offset: 0xBA80 */ - __IO uint32_t TARGET_ROOT117_SET; /**< Target Register, offset: 0xBA84 */ - __IO uint32_t TARGET_ROOT117_CLR; /**< Target Register, offset: 0xBA88 */ - __IO uint32_t TARGET_ROOT117_TOG; /**< Target Register, offset: 0xBA8C */ - uint8_t RESERVED_236[16]; - __IO uint32_t POST117; /**< Post Divider Register, offset: 0xBAA0 */ - __IO uint32_t POST_ROOT117_SET; /**< Post Divider Register, offset: 0xBAA4 */ - __IO uint32_t POST_ROOT117_CLR; /**< Post Divider Register, offset: 0xBAA8 */ - __IO uint32_t POST_ROOT117_TOG; /**< Post Divider Register, offset: 0xBAAC */ - __IO uint32_t PRE117; /**< Pre Divider Register, offset: 0xBAB0 */ - __IO uint32_t PRE_ROOT117_SET; /**< Pre Divider Register, offset: 0xBAB4 */ - __IO uint32_t PRE_ROOT117_CLR; /**< Pre Divider Register, offset: 0xBAB8 */ - __IO uint32_t PRE_ROOT117_TOG; /**< Pre Divider Register, offset: 0xBABC */ - uint8_t RESERVED_237[48]; - __IO uint32_t ACCESS_CTRL117; /**< Access Control Register, offset: 0xBAF0 */ - __IO uint32_t ACCESS_CTRL117_ROOT_SET; /**< Access Control Register, offset: 0xBAF4 */ - __IO uint32_t ACCESS_CTRL117_ROOT_CLR; /**< Access Control Register, offset: 0xBAF8 */ - __IO uint32_t ACCESS_CTRL117_ROOT_TOG; /**< Access Control Register, offset: 0xBAFC */ - __IO uint32_t TARGET_ROOT118; /**< Target Register, offset: 0xBB00 */ - __IO uint32_t TARGET_ROOT118_SET; /**< Target Register, offset: 0xBB04 */ - __IO uint32_t TARGET_ROOT118_CLR; /**< Target Register, offset: 0xBB08 */ - __IO uint32_t TARGET_ROOT118_TOG; /**< Target Register, offset: 0xBB0C */ - uint8_t RESERVED_238[16]; - __IO uint32_t POST118; /**< Post Divider Register, offset: 0xBB20 */ - __IO uint32_t POST_ROOT118_SET; /**< Post Divider Register, offset: 0xBB24 */ - __IO uint32_t POST_ROOT118_CLR; /**< Post Divider Register, offset: 0xBB28 */ - __IO uint32_t POST_ROOT118_TOG; /**< Post Divider Register, offset: 0xBB2C */ - __IO uint32_t PRE118; /**< Pre Divider Register, offset: 0xBB30 */ - __IO uint32_t PRE_ROOT118_SET; /**< Pre Divider Register, offset: 0xBB34 */ - __IO uint32_t PRE_ROOT118_CLR; /**< Pre Divider Register, offset: 0xBB38 */ - __IO uint32_t PRE_ROOT118_TOG; /**< Pre Divider Register, offset: 0xBB3C */ - uint8_t RESERVED_239[48]; - __IO uint32_t ACCESS_CTRL118; /**< Access Control Register, offset: 0xBB70 */ - __IO uint32_t ACCESS_CTRL118_ROOT_SET; /**< Access Control Register, offset: 0xBB74 */ - __IO uint32_t ACCESS_CTRL118_ROOT_CLR; /**< Access Control Register, offset: 0xBB78 */ - __IO uint32_t ACCESS_CTRL118_ROOT_TOG; /**< Access Control Register, offset: 0xBB7C */ - __IO uint32_t TARGET_ROOT119; /**< Target Register, offset: 0xBB80 */ - __IO uint32_t TARGET_ROOT119_SET; /**< Target Register, offset: 0xBB84 */ - __IO uint32_t TARGET_ROOT119_CLR; /**< Target Register, offset: 0xBB88 */ - __IO uint32_t TARGET_ROOT119_TOG; /**< Target Register, offset: 0xBB8C */ - uint8_t RESERVED_240[16]; - __IO uint32_t POST119; /**< Post Divider Register, offset: 0xBBA0 */ - __IO uint32_t POST_ROOT119_SET; /**< Post Divider Register, offset: 0xBBA4 */ - __IO uint32_t POST_ROOT119_CLR; /**< Post Divider Register, offset: 0xBBA8 */ - __IO uint32_t POST_ROOT119_TOG; /**< Post Divider Register, offset: 0xBBAC */ - __IO uint32_t PRE119; /**< Pre Divider Register, offset: 0xBBB0 */ - __IO uint32_t PRE_ROOT119_SET; /**< Pre Divider Register, offset: 0xBBB4 */ - __IO uint32_t PRE_ROOT119_CLR; /**< Pre Divider Register, offset: 0xBBB8 */ - __IO uint32_t PRE_ROOT119_TOG; /**< Pre Divider Register, offset: 0xBBBC */ - uint8_t RESERVED_241[48]; - __IO uint32_t ACCESS_CTRL119; /**< Access Control Register, offset: 0xBBF0 */ - __IO uint32_t ACCESS_CTRL119_ROOT_SET; /**< Access Control Register, offset: 0xBBF4 */ - __IO uint32_t ACCESS_CTRL119_ROOT_CLR; /**< Access Control Register, offset: 0xBBF8 */ - __IO uint32_t ACCESS_CTRL119_ROOT_TOG; /**< Access Control Register, offset: 0xBBFC */ - __IO uint32_t TARGET_ROOT120; /**< Target Register, offset: 0xBC00 */ - __IO uint32_t TARGET_ROOT120_SET; /**< Target Register, offset: 0xBC04 */ - __IO uint32_t TARGET_ROOT120_CLR; /**< Target Register, offset: 0xBC08 */ - __IO uint32_t TARGET_ROOT120_TOG; /**< Target Register, offset: 0xBC0C */ - uint8_t RESERVED_242[16]; - __IO uint32_t POST120; /**< Post Divider Register, offset: 0xBC20 */ - __IO uint32_t POST_ROOT120_SET; /**< Post Divider Register, offset: 0xBC24 */ - __IO uint32_t POST_ROOT120_CLR; /**< Post Divider Register, offset: 0xBC28 */ - __IO uint32_t POST_ROOT120_TOG; /**< Post Divider Register, offset: 0xBC2C */ - __IO uint32_t PRE120; /**< Pre Divider Register, offset: 0xBC30 */ - __IO uint32_t PRE_ROOT120_SET; /**< Pre Divider Register, offset: 0xBC34 */ - __IO uint32_t PRE_ROOT120_CLR; /**< Pre Divider Register, offset: 0xBC38 */ - __IO uint32_t PRE_ROOT120_TOG; /**< Pre Divider Register, offset: 0xBC3C */ - uint8_t RESERVED_243[48]; - __IO uint32_t ACCESS_CTRL120; /**< Access Control Register, offset: 0xBC70 */ - __IO uint32_t ACCESS_CTRL120_ROOT_SET; /**< Access Control Register, offset: 0xBC74 */ - __IO uint32_t ACCESS_CTRL120_ROOT_CLR; /**< Access Control Register, offset: 0xBC78 */ - __IO uint32_t ACCESS_CTRL120_ROOT_TOG; /**< Access Control Register, offset: 0xBC7C */ + uint8_t RESERVED_0[2032]; + struct { /* offset: 0x800, array step: 0x10 */ + __IO uint32_t PLL_CTRL; /**< CCM PLL Control Register, array offset: 0x800, array step: 0x10 */ + __IO uint32_t PLL_CTRL_SET; /**< CCM PLL Control Register, array offset: 0x804, array step: 0x10 */ + __IO uint32_t PLL_CTRL_CLR; /**< CCM PLL Control Register, array offset: 0x808, array step: 0x10 */ + __IO uint32_t PLL_CTRL_TOG; /**< CCM PLL Control Register, array offset: 0x80C, array step: 0x10 */ + } PLL_CTRL[33]; + uint8_t RESERVED_1[13808]; + struct { /* offset: 0x4000, array step: 0x10 */ + __IO uint32_t CCGR; /**< CCM Clock Gating Register, array offset: 0x4000, array step: 0x10 */ + __IO uint32_t CCGR_SET; /**< CCM Clock Gating Register, array offset: 0x4004, array step: 0x10 */ + __IO uint32_t CCGR_CLR; /**< CCM Clock Gating Register, array offset: 0x4008, array step: 0x10 */ + __IO uint32_t CCGR_TOG; /**< CCM Clock Gating Register, array offset: 0x400C, array step: 0x10 */ + } CCGR[191]; + uint8_t RESERVED_2[13328]; + struct { /* offset: 0x8000, array step: 0x80 */ + __IO uint32_t TARGET_ROOT; /**< Target Register, array offset: 0x8000, array step: 0x80 */ + __IO uint32_t TARGET_ROOT_SET; /**< Target Register, array offset: 0x8004, array step: 0x80 */ + __IO uint32_t TARGET_ROOT_CLR; /**< Target Register, array offset: 0x8008, array step: 0x80 */ + __IO uint32_t TARGET_ROOT_TOG; /**< Target Register, array offset: 0x800C, array step: 0x80 */ + __IO uint32_t MISC; /**< Miscellaneous Register, array offset: 0x8010, array step: 0x80 */ + __IO uint32_t MISC_ROOT_SET; /**< Miscellaneous Register, array offset: 0x8014, array step: 0x80 */ + __IO uint32_t MISC_ROOT_CLR; /**< Miscellaneous Register, array offset: 0x8018, array step: 0x80 */ + __IO uint32_t MISC_ROOT_TOG; /**< Miscellaneous Register, array offset: 0x801C, array step: 0x80 */ + __IO uint32_t POST; /**< Post Divider Register, array offset: 0x8020, array step: 0x80 */ + __IO uint32_t POST_ROOT_SET; /**< Post Divider Register, array offset: 0x8024, array step: 0x80 */ + __IO uint32_t POST_ROOT_CLR; /**< Post Divider Register, array offset: 0x8028, array step: 0x80 */ + __IO uint32_t POST_ROOT_TOG; /**< Post Divider Register, array offset: 0x802C, array step: 0x80 */ + __IO uint32_t PRE; /**< Pre Divider Register, array offset: 0x8030, array step: 0x80 */ + __IO uint32_t PRE_ROOT_SET; /**< Pre Divider Register, array offset: 0x8034, array step: 0x80 */ + __IO uint32_t PRE_ROOT_CLR; /**< Pre Divider Register, array offset: 0x8038, array step: 0x80 */ + __IO uint32_t PRE_ROOT_TOG; /**< Pre Divider Register, array offset: 0x803C, array step: 0x80 */ + uint8_t RESERVED_0[48]; + __IO uint32_t ACCESS_CTRL; /**< Access Control Register, array offset: 0x8070, array step: 0x80 */ + __IO uint32_t ACCESS_CTRL_ROOT_SET; /**< Access Control Register, array offset: 0x8074, array step: 0x80 */ + __IO uint32_t ACCESS_CTRL_ROOT_CLR; /**< Access Control Register, array offset: 0x8078, array step: 0x80 */ + __IO uint32_t ACCESS_CTRL_ROOT_TOG; /**< Access Control Register, array offset: 0x807C, array step: 0x80 */ + } ACCESS_CTRL_ROOT_TOG[125]; } CCM_Type, *CCM_MemMapPtr; - /* ---------------------------------------------------------------------------- -- CCM - Register accessor macros ---------------------------------------------------------------------------- */ @@ -7013,2844 +4588,38 @@ typedef struct { #define CCM_GPR0_SET_REG(base) ((base)->GPR0_SET) #define CCM_GPR0_CLR_REG(base) ((base)->GPR0_CLR) #define CCM_GPR0_TOG_REG(base) ((base)->GPR0_TOG) -#define CCM_PLL_CTRL0_REG(base) ((base)->PLL_CTRL0) -#define CCM_PLL_CTRL0_SET_REG(base) ((base)->PLL_CTRL0_SET) -#define CCM_PLL_CTRL0_CLR_REG(base) ((base)->PLL_CTRL0_CLR) -#define CCM_PLL_CTRL0_TOG_REG(base) ((base)->PLL_CTRL0_TOG) -#define CCM_PLL_CTRL1_REG(base) ((base)->PLL_CTRL1) -#define CCM_PLL_CTRL1_SET_REG(base) ((base)->PLL_CTRL1_SET) -#define CCM_PLL_CTRL1_CLR_REG(base) ((base)->PLL_CTRL1_CLR) -#define CCM_PLL_CTRL1_TOG_REG(base) ((base)->PLL_CTRL1_TOG) -#define CCM_PLL_CTRL2_REG(base) ((base)->PLL_CTRL2) -#define CCM_PLL_CTRL2_SET_REG(base) ((base)->PLL_CTRL2_SET) -#define CCM_PLL_CTRL2_CLR_REG(base) ((base)->PLL_CTRL2_CLR) -#define CCM_PLL_CTRL2_TOG_REG(base) ((base)->PLL_CTRL2_TOG) -#define CCM_PLL_CTRL3_REG(base) ((base)->PLL_CTRL3) -#define CCM_PLL_CTRL3_SET_REG(base) ((base)->PLL_CTRL3_SET) -#define CCM_PLL_CTRL3_CLR_REG(base) ((base)->PLL_CTRL3_CLR) -#define CCM_PLL_CTRL3_TOG_REG(base) ((base)->PLL_CTRL3_TOG) -#define CCM_PLL_CTRL4_REG(base) ((base)->PLL_CTRL4) -#define CCM_PLL_CTRL4_SET_REG(base) ((base)->PLL_CTRL4_SET) -#define CCM_PLL_CTRL4_CLR_REG(base) ((base)->PLL_CTRL4_CLR) -#define CCM_PLL_CTRL4_TOG_REG(base) ((base)->PLL_CTRL4_TOG) -#define CCM_PLL_CTRL5_REG(base) ((base)->PLL_CTRL5) -#define CCM_PLL_CTRL5_SET_REG(base) ((base)->PLL_CTRL5_SET) -#define CCM_PLL_CTRL5_CLR_REG(base) ((base)->PLL_CTRL5_CLR) -#define CCM_PLL_CTRL5_TOG_REG(base) ((base)->PLL_CTRL5_TOG) -#define CCM_PLL_CTRL6_REG(base) ((base)->PLL_CTRL6) -#define CCM_PLL_CTRL6_SET_REG(base) ((base)->PLL_CTRL6_SET) -#define CCM_PLL_CTRL6_CLR_REG(base) ((base)->PLL_CTRL6_CLR) -#define CCM_PLL_CTRL6_TOG_REG(base) ((base)->PLL_CTRL6_TOG) -#define CCM_PLL_CTRL7_REG(base) ((base)->PLL_CTRL7) -#define CCM_PLL_CTRL7_SET_REG(base) ((base)->PLL_CTRL7_SET) -#define CCM_PLL_CTRL7_CLR_REG(base) ((base)->PLL_CTRL7_CLR) -#define CCM_PLL_CTRL7_TOG_REG(base) ((base)->PLL_CTRL7_TOG) -#define CCM_PLL_CTRL8_REG(base) ((base)->PLL_CTRL8) -#define CCM_PLL_CTRL8_SET_REG(base) ((base)->PLL_CTRL8_SET) -#define CCM_PLL_CTRL8_CLR_REG(base) ((base)->PLL_CTRL8_CLR) -#define CCM_PLL_CTRL8_TOG_REG(base) ((base)->PLL_CTRL8_TOG) -#define CCM_PLL_CTRL9_REG(base) ((base)->PLL_CTRL9) -#define CCM_PLL_CTRL9_SET_REG(base) ((base)->PLL_CTRL9_SET) -#define CCM_PLL_CTRL9_CLR_REG(base) ((base)->PLL_CTRL9_CLR) -#define CCM_PLL_CTRL9_TOG_REG(base) ((base)->PLL_CTRL9_TOG) -#define CCM_PLL_CTRL10_REG(base) ((base)->PLL_CTRL10) -#define CCM_PLL_CTRL10_SET_REG(base) ((base)->PLL_CTRL10_SET) -#define CCM_PLL_CTRL10_CLR_REG(base) ((base)->PLL_CTRL10_CLR) -#define CCM_PLL_CTRL10_TOG_REG(base) ((base)->PLL_CTRL10_TOG) -#define CCM_PLL_CTRL11_REG(base) ((base)->PLL_CTRL11) -#define CCM_PLL_CTRL11_SET_REG(base) ((base)->PLL_CTRL11_SET) -#define CCM_PLL_CTRL11_CLR_REG(base) ((base)->PLL_CTRL11_CLR) -#define CCM_PLL_CTRL11_TOG_REG(base) ((base)->PLL_CTRL11_TOG) -#define CCM_PLL_CTRL12_REG(base) ((base)->PLL_CTRL12) -#define CCM_PLL_CTRL12_SET_REG(base) ((base)->PLL_CTRL12_SET) -#define CCM_PLL_CTRL12_CLR_REG(base) ((base)->PLL_CTRL12_CLR) -#define CCM_PLL_CTRL12_TOG_REG(base) ((base)->PLL_CTRL12_TOG) -#define CCM_PLL_CTRL13_REG(base) ((base)->PLL_CTRL13) -#define CCM_PLL_CTRL13_SET_REG(base) ((base)->PLL_CTRL13_SET) -#define CCM_PLL_CTRL13_CLR_REG(base) ((base)->PLL_CTRL13_CLR) -#define CCM_PLL_CTRL13_TOG_REG(base) ((base)->PLL_CTRL13_TOG) -#define CCM_PLL_CTRL14_REG(base) ((base)->PLL_CTRL14) -#define CCM_PLL_CTRL14_SET_REG(base) ((base)->PLL_CTRL14_SET) -#define CCM_PLL_CTRL14_CLR_REG(base) ((base)->PLL_CTRL14_CLR) -#define CCM_PLL_CTRL14_TOG_REG(base) ((base)->PLL_CTRL14_TOG) -#define CCM_PLL_CTRL15_REG(base) ((base)->PLL_CTRL15) -#define CCM_PLL_CTRL15_SET_REG(base) ((base)->PLL_CTRL15_SET) -#define CCM_PLL_CTRL15_CLR_REG(base) ((base)->PLL_CTRL15_CLR) -#define CCM_PLL_CTRL15_TOG_REG(base) ((base)->PLL_CTRL15_TOG) -#define CCM_PLL_CTRL16_REG(base) ((base)->PLL_CTRL16) -#define CCM_PLL_CTRL16_SET_REG(base) ((base)->PLL_CTRL16_SET) -#define CCM_PLL_CTRL16_CLR_REG(base) ((base)->PLL_CTRL16_CLR) -#define CCM_PLL_CTRL16_TOG_REG(base) ((base)->PLL_CTRL16_TOG) -#define CCM_PLL_CTRL17_REG(base) ((base)->PLL_CTRL17) -#define CCM_PLL_CTRL17_SET_REG(base) ((base)->PLL_CTRL17_SET) -#define CCM_PLL_CTRL17_CLR_REG(base) ((base)->PLL_CTRL17_CLR) -#define CCM_PLL_CTRL17_TOG_REG(base) ((base)->PLL_CTRL17_TOG) -#define CCM_PLL_CTRL18_REG(base) ((base)->PLL_CTRL18) -#define CCM_PLL_CTRL18_SET_REG(base) ((base)->PLL_CTRL18_SET) -#define CCM_PLL_CTRL18_CLR_REG(base) ((base)->PLL_CTRL18_CLR) -#define CCM_PLL_CTRL18_TOG_REG(base) ((base)->PLL_CTRL18_TOG) -#define CCM_PLL_CTRL19_REG(base) ((base)->PLL_CTRL19) -#define CCM_PLL_CTRL19_SET_REG(base) ((base)->PLL_CTRL19_SET) -#define CCM_PLL_CTRL19_CLR_REG(base) ((base)->PLL_CTRL19_CLR) -#define CCM_PLL_CTRL19_TOG_REG(base) ((base)->PLL_CTRL19_TOG) -#define CCM_PLL_CTRL20_REG(base) ((base)->PLL_CTRL20) -#define CCM_PLL_CTRL20_SET_REG(base) ((base)->PLL_CTRL20_SET) -#define CCM_PLL_CTRL20_CLR_REG(base) ((base)->PLL_CTRL20_CLR) -#define CCM_PLL_CTRL20_TOG_REG(base) ((base)->PLL_CTRL20_TOG) -#define CCM_PLL_CTRL21_REG(base) ((base)->PLL_CTRL21) -#define CCM_PLL_CTRL21_SET_REG(base) ((base)->PLL_CTRL21_SET) -#define CCM_PLL_CTRL21_CLR_REG(base) ((base)->PLL_CTRL21_CLR) -#define CCM_PLL_CTRL21_TOG_REG(base) ((base)->PLL_CTRL21_TOG) -#define CCM_PLL_CTRL22_REG(base) ((base)->PLL_CTRL22) -#define CCM_PLL_CTRL22_SET_REG(base) ((base)->PLL_CTRL22_SET) -#define CCM_PLL_CTRL22_CLR_REG(base) ((base)->PLL_CTRL22_CLR) -#define CCM_PLL_CTRL22_TOG_REG(base) ((base)->PLL_CTRL22_TOG) -#define CCM_PLL_CTRL23_REG(base) ((base)->PLL_CTRL23) -#define CCM_PLL_CTRL23_SET_REG(base) ((base)->PLL_CTRL23_SET) -#define CCM_PLL_CTRL23_CLR_REG(base) ((base)->PLL_CTRL23_CLR) -#define CCM_PLL_CTRL23_TOG_REG(base) ((base)->PLL_CTRL23_TOG) -#define CCM_PLL_CTRL24_REG(base) ((base)->PLL_CTRL24) -#define CCM_PLL_CTRL24_SET_REG(base) ((base)->PLL_CTRL24_SET) -#define CCM_PLL_CTRL24_CLR_REG(base) ((base)->PLL_CTRL24_CLR) -#define CCM_PLL_CTRL24_TOG_REG(base) ((base)->PLL_CTRL24_TOG) -#define CCM_PLL_CTRL25_REG(base) ((base)->PLL_CTRL25) -#define CCM_PLL_CTRL25_SET_REG(base) ((base)->PLL_CTRL25_SET) -#define CCM_PLL_CTRL25_CLR_REG(base) ((base)->PLL_CTRL25_CLR) -#define CCM_PLL_CTRL25_TOG_REG(base) ((base)->PLL_CTRL25_TOG) -#define CCM_PLL_CTRL26_REG(base) ((base)->PLL_CTRL26) -#define CCM_PLL_CTRL26_SET_REG(base) ((base)->PLL_CTRL26_SET) -#define CCM_PLL_CTRL26_CLR_REG(base) ((base)->PLL_CTRL26_CLR) -#define CCM_PLL_CTRL26_TOG_REG(base) ((base)->PLL_CTRL26_TOG) -#define CCM_PLL_CTRL27_REG(base) ((base)->PLL_CTRL27) -#define CCM_PLL_CTRL27_SET_REG(base) ((base)->PLL_CTRL27_SET) -#define CCM_PLL_CTRL27_CLR_REG(base) ((base)->PLL_CTRL27_CLR) -#define CCM_PLL_CTRL27_TOG_REG(base) ((base)->PLL_CTRL27_TOG) -#define CCM_PLL_CTRL28_REG(base) ((base)->PLL_CTRL28) -#define CCM_PLL_CTRL28_SET_REG(base) ((base)->PLL_CTRL28_SET) -#define CCM_PLL_CTRL28_CLR_REG(base) ((base)->PLL_CTRL28_CLR) -#define CCM_PLL_CTRL28_TOG_REG(base) ((base)->PLL_CTRL28_TOG) -#define CCM_PLL_CTRL29_REG(base) ((base)->PLL_CTRL29) -#define CCM_PLL_CTRL29_SET_REG(base) ((base)->PLL_CTRL29_SET) -#define CCM_PLL_CTRL29_CLR_REG(base) ((base)->PLL_CTRL29_CLR) -#define CCM_PLL_CTRL29_TOG_REG(base) ((base)->PLL_CTRL29_TOG) -#define CCM_PLL_CTRL30_REG(base) ((base)->PLL_CTRL30) -#define CCM_PLL_CTRL30_SET_REG(base) ((base)->PLL_CTRL30_SET) -#define CCM_PLL_CTRL30_CLR_REG(base) ((base)->PLL_CTRL30_CLR) -#define CCM_PLL_CTRL30_TOG_REG(base) ((base)->PLL_CTRL30_TOG) -#define CCM_PLL_CTRL31_REG(base) ((base)->PLL_CTRL31) -#define CCM_PLL_CTRL31_SET_REG(base) ((base)->PLL_CTRL31_SET) -#define CCM_PLL_CTRL31_CLR_REG(base) ((base)->PLL_CTRL31_CLR) -#define CCM_PLL_CTRL31_TOG_REG(base) ((base)->PLL_CTRL31_TOG) -#define CCM_PLL_CTRL32_REG(base) ((base)->PLL_CTRL32) -#define CCM_PLL_CTRL32_SET_REG(base) ((base)->PLL_CTRL32_SET) -#define CCM_PLL_CTRL32_CLR_REG(base) ((base)->PLL_CTRL32_CLR) -#define CCM_PLL_CTRL32_TOG_REG(base) ((base)->PLL_CTRL32_TOG) -#define CCM_CCGR0_REG(base) ((base)->CCGR0) -#define CCM_CCGR0_SET_REG(base) ((base)->CCGR0_SET) -#define CCM_CCGR0_CLR_REG(base) ((base)->CCGR0_CLR) -#define CCM_CCGR0_TOG_REG(base) ((base)->CCGR0_TOG) -#define CCM_CCGR1_REG(base) ((base)->CCGR1) -#define CCM_CCGR1_SET_REG(base) ((base)->CCGR1_SET) -#define CCM_CCGR1_CLR_REG(base) ((base)->CCGR1_CLR) -#define CCM_CCGR1_TOG_REG(base) ((base)->CCGR1_TOG) -#define CCM_CCGR2_REG(base) ((base)->CCGR2) -#define CCM_CCGR2_SET_REG(base) ((base)->CCGR2_SET) -#define CCM_CCGR2_CLR_REG(base) ((base)->CCGR2_CLR) -#define CCM_CCGR2_TOG_REG(base) ((base)->CCGR2_TOG) -#define CCM_CCGR3_REG(base) ((base)->CCGR3) -#define CCM_CCGR3_SET_REG(base) ((base)->CCGR3_SET) -#define CCM_CCGR3_CLR_REG(base) ((base)->CCGR3_CLR) -#define CCM_CCGR3_TOG_REG(base) ((base)->CCGR3_TOG) -#define CCM_CCGR4_REG(base) ((base)->CCGR4) -#define CCM_CCGR4_SET_REG(base) ((base)->CCGR4_SET) -#define CCM_CCGR4_CLR_REG(base) ((base)->CCGR4_CLR) -#define CCM_CCGR4_TOG_REG(base) ((base)->CCGR4_TOG) -#define CCM_CCGR5_REG(base) ((base)->CCGR5) -#define CCM_CCGR5_SET_REG(base) ((base)->CCGR5_SET) -#define CCM_CCGR5_CLR_REG(base) ((base)->CCGR5_CLR) -#define CCM_CCGR5_TOG_REG(base) ((base)->CCGR5_TOG) -#define CCM_CCGR6_REG(base) ((base)->CCGR6) -#define CCM_CCGR6_SET_REG(base) ((base)->CCGR6_SET) -#define CCM_CCGR6_CLR_REG(base) ((base)->CCGR6_CLR) -#define CCM_CCGR6_TOG_REG(base) ((base)->CCGR6_TOG) -#define CCM_CCGR7_REG(base) ((base)->CCGR7) -#define CCM_CCGR7_SET_REG(base) ((base)->CCGR7_SET) -#define CCM_CCGR7_CLR_REG(base) ((base)->CCGR7_CLR) -#define CCM_CCGR7_TOG_REG(base) ((base)->CCGR7_TOG) -#define CCM_CCGR8_REG(base) ((base)->CCGR8) -#define CCM_CCGR8_SET_REG(base) ((base)->CCGR8_SET) -#define CCM_CCGR8_CLR_REG(base) ((base)->CCGR8_CLR) -#define CCM_CCGR8_TOG_REG(base) ((base)->CCGR8_TOG) -#define CCM_CCGR9_REG(base) ((base)->CCGR9) -#define CCM_CCGR9_SET_REG(base) ((base)->CCGR9_SET) -#define CCM_CCGR9_CLR_REG(base) ((base)->CCGR9_CLR) -#define CCM_CCGR9_TOG_REG(base) ((base)->CCGR9_TOG) -#define CCM_CCGR10_REG(base) ((base)->CCGR10) -#define CCM_CCGR10_SET_REG(base) ((base)->CCGR10_SET) -#define CCM_CCGR10_CLR_REG(base) ((base)->CCGR10_CLR) -#define CCM_CCGR10_TOG_REG(base) ((base)->CCGR10_TOG) -#define CCM_CCGR11_REG(base) ((base)->CCGR11) -#define CCM_CCGR11_SET_REG(base) ((base)->CCGR11_SET) -#define CCM_CCGR11_CLR_REG(base) ((base)->CCGR11_CLR) -#define CCM_CCGR11_TOG_REG(base) ((base)->CCGR11_TOG) -#define CCM_CCGR12_REG(base) ((base)->CCGR12) -#define CCM_CCGR12_SET_REG(base) ((base)->CCGR12_SET) -#define CCM_CCGR12_CLR_REG(base) ((base)->CCGR12_CLR) -#define CCM_CCGR12_TOG_REG(base) ((base)->CCGR12_TOG) -#define CCM_CCGR13_REG(base) ((base)->CCGR13) -#define CCM_CCGR13_SET_REG(base) ((base)->CCGR13_SET) -#define CCM_CCGR13_CLR_REG(base) ((base)->CCGR13_CLR) -#define CCM_CCGR13_TOG_REG(base) ((base)->CCGR13_TOG) -#define CCM_CCGR14_REG(base) ((base)->CCGR14) -#define CCM_CCGR14_SET_REG(base) ((base)->CCGR14_SET) -#define CCM_CCGR14_CLR_REG(base) ((base)->CCGR14_CLR) -#define CCM_CCGR14_TOG_REG(base) ((base)->CCGR14_TOG) -#define CCM_CCGR15_REG(base) ((base)->CCGR15) -#define CCM_CCGR15_SET_REG(base) ((base)->CCGR15_SET) -#define CCM_CCGR15_CLR_REG(base) ((base)->CCGR15_CLR) -#define CCM_CCGR15_TOG_REG(base) ((base)->CCGR15_TOG) -#define CCM_CCGR16_REG(base) ((base)->CCGR16) -#define CCM_CCGR16_SET_REG(base) ((base)->CCGR16_SET) -#define CCM_CCGR16_CLR_REG(base) ((base)->CCGR16_CLR) -#define CCM_CCGR16_TOG_REG(base) ((base)->CCGR16_TOG) -#define CCM_CCGR17_REG(base) ((base)->CCGR17) -#define CCM_CCGR17_SET_REG(base) ((base)->CCGR17_SET) -#define CCM_CCGR17_CLR_REG(base) ((base)->CCGR17_CLR) -#define CCM_CCGR17_TOG_REG(base) ((base)->CCGR17_TOG) -#define CCM_CCGR18_REG(base) ((base)->CCGR18) -#define CCM_CCGR18_SET_REG(base) ((base)->CCGR18_SET) -#define CCM_CCGR18_CLR_REG(base) ((base)->CCGR18_CLR) -#define CCM_CCGR18_TOG_REG(base) ((base)->CCGR18_TOG) -#define CCM_CCGR19_REG(base) ((base)->CCGR19) -#define CCM_CCGR19_SET_REG(base) ((base)->CCGR19_SET) -#define CCM_CCGR19_CLR_REG(base) ((base)->CCGR19_CLR) -#define CCM_CCGR19_TOG_REG(base) ((base)->CCGR19_TOG) -#define CCM_CCGR20_REG(base) ((base)->CCGR20) -#define CCM_CCGR20_SET_REG(base) ((base)->CCGR20_SET) -#define CCM_CCGR20_CLR_REG(base) ((base)->CCGR20_CLR) -#define CCM_CCGR20_TOG_REG(base) ((base)->CCGR20_TOG) -#define CCM_CCGR21_REG(base) ((base)->CCGR21) -#define CCM_CCGR21_SET_REG(base) ((base)->CCGR21_SET) -#define CCM_CCGR21_CLR_REG(base) ((base)->CCGR21_CLR) -#define CCM_CCGR21_TOG_REG(base) ((base)->CCGR21_TOG) -#define CCM_CCGR22_REG(base) ((base)->CCGR22) -#define CCM_CCGR22_SET_REG(base) ((base)->CCGR22_SET) -#define CCM_CCGR22_CLR_REG(base) ((base)->CCGR22_CLR) -#define CCM_CCGR22_TOG_REG(base) ((base)->CCGR22_TOG) -#define CCM_CCGR23_REG(base) ((base)->CCGR23) -#define CCM_CCGR23_SET_REG(base) ((base)->CCGR23_SET) -#define CCM_CCGR23_CLR_REG(base) ((base)->CCGR23_CLR) -#define CCM_CCGR23_TOG_REG(base) ((base)->CCGR23_TOG) -#define CCM_CCGR24_REG(base) ((base)->CCGR24) -#define CCM_CCGR24_SET_REG(base) ((base)->CCGR24_SET) -#define CCM_CCGR24_CLR_REG(base) ((base)->CCGR24_CLR) -#define CCM_CCGR24_TOG_REG(base) ((base)->CCGR24_TOG) -#define CCM_CCGR25_REG(base) ((base)->CCGR25) -#define CCM_CCGR25_SET_REG(base) ((base)->CCGR25_SET) -#define CCM_CCGR25_CLR_REG(base) ((base)->CCGR25_CLR) -#define CCM_CCGR25_TOG_REG(base) ((base)->CCGR25_TOG) -#define CCM_CCGR26_REG(base) ((base)->CCGR26) -#define CCM_CCGR26_SET_REG(base) ((base)->CCGR26_SET) -#define CCM_CCGR26_CLR_REG(base) ((base)->CCGR26_CLR) -#define CCM_CCGR26_TOG_REG(base) ((base)->CCGR26_TOG) -#define CCM_CCGR27_REG(base) ((base)->CCGR27) -#define CCM_CCGR27_SET_REG(base) ((base)->CCGR27_SET) -#define CCM_CCGR27_CLR_REG(base) ((base)->CCGR27_CLR) -#define CCM_CCGR27_TOG_REG(base) ((base)->CCGR27_TOG) -#define CCM_CCGR28_REG(base) ((base)->CCGR28) -#define CCM_CCGR28_SET_REG(base) ((base)->CCGR28_SET) -#define CCM_CCGR28_CLR_REG(base) ((base)->CCGR28_CLR) -#define CCM_CCGR28_TOG_REG(base) ((base)->CCGR28_TOG) -#define CCM_CCGR29_REG(base) ((base)->CCGR29) -#define CCM_CCGR29_SET_REG(base) ((base)->CCGR29_SET) -#define CCM_CCGR29_CLR_REG(base) ((base)->CCGR29_CLR) -#define CCM_CCGR29_TOG_REG(base) ((base)->CCGR29_TOG) -#define CCM_CCGR30_REG(base) ((base)->CCGR30) -#define CCM_CCGR30_SET_REG(base) ((base)->CCGR30_SET) -#define CCM_CCGR30_CLR_REG(base) ((base)->CCGR30_CLR) -#define CCM_CCGR30_TOG_REG(base) ((base)->CCGR30_TOG) -#define CCM_CCGR31_REG(base) ((base)->CCGR31) -#define CCM_CCGR31_SET_REG(base) ((base)->CCGR31_SET) -#define CCM_CCGR31_CLR_REG(base) ((base)->CCGR31_CLR) -#define CCM_CCGR31_TOG_REG(base) ((base)->CCGR31_TOG) -#define CCM_CCGR32_REG(base) ((base)->CCGR32) -#define CCM_CCGR32_SET_REG(base) ((base)->CCGR32_SET) -#define CCM_CCGR32_CLR_REG(base) ((base)->CCGR32_CLR) -#define CCM_CCGR32_TOG_REG(base) ((base)->CCGR32_TOG) -#define CCM_CCGR33_REG(base) ((base)->CCGR33) -#define CCM_CCGR33_SET_REG(base) ((base)->CCGR33_SET) -#define CCM_CCGR33_CLR_REG(base) ((base)->CCGR33_CLR) -#define CCM_CCGR33_TOG_REG(base) ((base)->CCGR33_TOG) -#define CCM_CCGR34_REG(base) ((base)->CCGR34) -#define CCM_CCGR34_SET_REG(base) ((base)->CCGR34_SET) -#define CCM_CCGR34_CLR_REG(base) ((base)->CCGR34_CLR) -#define CCM_CCGR34_TOG_REG(base) ((base)->CCGR34_TOG) -#define CCM_CCGR35_REG(base) ((base)->CCGR35) -#define CCM_CCGR35_SET_REG(base) ((base)->CCGR35_SET) -#define CCM_CCGR35_CLR_REG(base) ((base)->CCGR35_CLR) -#define CCM_CCGR35_TOG_REG(base) ((base)->CCGR35_TOG) -#define CCM_CCGR36_REG(base) ((base)->CCGR36) -#define CCM_CCGR36_SET_REG(base) ((base)->CCGR36_SET) -#define CCM_CCGR36_CLR_REG(base) ((base)->CCGR36_CLR) -#define CCM_CCGR36_TOG_REG(base) ((base)->CCGR36_TOG) -#define CCM_CCGR37_REG(base) ((base)->CCGR37) -#define CCM_CCGR37_SET_REG(base) ((base)->CCGR37_SET) -#define CCM_CCGR37_CLR_REG(base) ((base)->CCGR37_CLR) -#define CCM_CCGR37_TOG_REG(base) ((base)->CCGR37_TOG) -#define CCM_CCGR38_REG(base) ((base)->CCGR38) -#define CCM_CCGR38_SET_REG(base) ((base)->CCGR38_SET) -#define CCM_CCGR38_CLR_REG(base) ((base)->CCGR38_CLR) -#define CCM_CCGR38_TOG_REG(base) ((base)->CCGR38_TOG) -#define CCM_CCGR39_REG(base) ((base)->CCGR39) -#define CCM_CCGR39_SET_REG(base) ((base)->CCGR39_SET) -#define CCM_CCGR39_CLR_REG(base) ((base)->CCGR39_CLR) -#define CCM_CCGR39_TOG_REG(base) ((base)->CCGR39_TOG) -#define CCM_CCGR40_REG(base) ((base)->CCGR40) -#define CCM_CCGR40_SET_REG(base) ((base)->CCGR40_SET) -#define CCM_CCGR40_CLR_REG(base) ((base)->CCGR40_CLR) -#define CCM_CCGR40_TOG_REG(base) ((base)->CCGR40_TOG) -#define CCM_CCGR41_REG(base) ((base)->CCGR41) -#define CCM_CCGR41_SET_REG(base) ((base)->CCGR41_SET) -#define CCM_CCGR41_CLR_REG(base) ((base)->CCGR41_CLR) -#define CCM_CCGR41_TOG_REG(base) ((base)->CCGR41_TOG) -#define CCM_CCGR42_REG(base) ((base)->CCGR42) -#define CCM_CCGR42_SET_REG(base) ((base)->CCGR42_SET) -#define CCM_CCGR42_CLR_REG(base) ((base)->CCGR42_CLR) -#define CCM_CCGR42_TOG_REG(base) ((base)->CCGR42_TOG) -#define CCM_CCGR43_REG(base) ((base)->CCGR43) -#define CCM_CCGR43_SET_REG(base) ((base)->CCGR43_SET) -#define CCM_CCGR43_CLR_REG(base) ((base)->CCGR43_CLR) -#define CCM_CCGR43_TOG_REG(base) ((base)->CCGR43_TOG) -#define CCM_CCGR44_REG(base) ((base)->CCGR44) -#define CCM_CCGR44_SET_REG(base) ((base)->CCGR44_SET) -#define CCM_CCGR44_CLR_REG(base) ((base)->CCGR44_CLR) -#define CCM_CCGR44_TOG_REG(base) ((base)->CCGR44_TOG) -#define CCM_CCGR45_REG(base) ((base)->CCGR45) -#define CCM_CCGR45_SET_REG(base) ((base)->CCGR45_SET) -#define CCM_CCGR45_CLR_REG(base) ((base)->CCGR45_CLR) -#define CCM_CCGR45_TOG_REG(base) ((base)->CCGR45_TOG) -#define CCM_CCGR46_REG(base) ((base)->CCGR46) -#define CCM_CCGR46_SET_REG(base) ((base)->CCGR46_SET) -#define CCM_CCGR46_CLR_REG(base) ((base)->CCGR46_CLR) -#define CCM_CCGR46_TOG_REG(base) ((base)->CCGR46_TOG) -#define CCM_CCGR47_REG(base) ((base)->CCGR47) -#define CCM_CCGR47_SET_REG(base) ((base)->CCGR47_SET) -#define CCM_CCGR47_CLR_REG(base) ((base)->CCGR47_CLR) -#define CCM_CCGR47_TOG_REG(base) ((base)->CCGR47_TOG) -#define CCM_CCGR48_REG(base) ((base)->CCGR48) -#define CCM_CCGR48_SET_REG(base) ((base)->CCGR48_SET) -#define CCM_CCGR48_CLR_REG(base) ((base)->CCGR48_CLR) -#define CCM_CCGR48_TOG_REG(base) ((base)->CCGR48_TOG) -#define CCM_CCGR49_REG(base) ((base)->CCGR49) -#define CCM_CCGR49_SET_REG(base) ((base)->CCGR49_SET) -#define CCM_CCGR49_CLR_REG(base) ((base)->CCGR49_CLR) -#define CCM_CCGR49_TOG_REG(base) ((base)->CCGR49_TOG) -#define CCM_CCGR50_REG(base) ((base)->CCGR50) -#define CCM_CCGR50_SET_REG(base) ((base)->CCGR50_SET) -#define CCM_CCGR50_CLR_REG(base) ((base)->CCGR50_CLR) -#define CCM_CCGR50_TOG_REG(base) ((base)->CCGR50_TOG) -#define CCM_CCGR51_REG(base) ((base)->CCGR51) -#define CCM_CCGR51_SET_REG(base) ((base)->CCGR51_SET) -#define CCM_CCGR51_CLR_REG(base) ((base)->CCGR51_CLR) -#define CCM_CCGR51_TOG_REG(base) ((base)->CCGR51_TOG) -#define CCM_CCGR52_REG(base) ((base)->CCGR52) -#define CCM_CCGR52_SET_REG(base) ((base)->CCGR52_SET) -#define CCM_CCGR52_CLR_REG(base) ((base)->CCGR52_CLR) -#define CCM_CCGR52_TOG_REG(base) ((base)->CCGR52_TOG) -#define CCM_CCGR53_REG(base) ((base)->CCGR53) -#define CCM_CCGR53_SET_REG(base) ((base)->CCGR53_SET) -#define CCM_CCGR53_CLR_REG(base) ((base)->CCGR53_CLR) -#define CCM_CCGR53_TOG_REG(base) ((base)->CCGR53_TOG) -#define CCM_CCGR54_REG(base) ((base)->CCGR54) -#define CCM_CCGR54_SET_REG(base) ((base)->CCGR54_SET) -#define CCM_CCGR54_CLR_REG(base) ((base)->CCGR54_CLR) -#define CCM_CCGR54_TOG_REG(base) ((base)->CCGR54_TOG) -#define CCM_CCGR55_REG(base) ((base)->CCGR55) -#define CCM_CCGR55_SET_REG(base) ((base)->CCGR55_SET) -#define CCM_CCGR55_CLR_REG(base) ((base)->CCGR55_CLR) -#define CCM_CCGR55_TOG_REG(base) ((base)->CCGR55_TOG) -#define CCM_CCGR56_REG(base) ((base)->CCGR56) -#define CCM_CCGR56_SET_REG(base) ((base)->CCGR56_SET) -#define CCM_CCGR56_CLR_REG(base) ((base)->CCGR56_CLR) -#define CCM_CCGR56_TOG_REG(base) ((base)->CCGR56_TOG) -#define CCM_CCGR57_REG(base) ((base)->CCGR57) -#define CCM_CCGR57_SET_REG(base) ((base)->CCGR57_SET) -#define CCM_CCGR57_CLR_REG(base) ((base)->CCGR57_CLR) -#define CCM_CCGR57_TOG_REG(base) ((base)->CCGR57_TOG) -#define CCM_CCGR58_REG(base) ((base)->CCGR58) -#define CCM_CCGR58_SET_REG(base) ((base)->CCGR58_SET) -#define CCM_CCGR58_CLR_REG(base) ((base)->CCGR58_CLR) -#define CCM_CCGR58_TOG_REG(base) ((base)->CCGR58_TOG) -#define CCM_CCGR59_REG(base) ((base)->CCGR59) -#define CCM_CCGR59_SET_REG(base) ((base)->CCGR59_SET) -#define CCM_CCGR59_CLR_REG(base) ((base)->CCGR59_CLR) -#define CCM_CCGR59_TOG_REG(base) ((base)->CCGR59_TOG) -#define CCM_CCGR60_REG(base) ((base)->CCGR60) -#define CCM_CCGR60_SET_REG(base) ((base)->CCGR60_SET) -#define CCM_CCGR60_CLR_REG(base) ((base)->CCGR60_CLR) -#define CCM_CCGR60_TOG_REG(base) ((base)->CCGR60_TOG) -#define CCM_CCGR61_REG(base) ((base)->CCGR61) -#define CCM_CCGR61_SET_REG(base) ((base)->CCGR61_SET) -#define CCM_CCGR61_CLR_REG(base) ((base)->CCGR61_CLR) -#define CCM_CCGR61_TOG_REG(base) ((base)->CCGR61_TOG) -#define CCM_CCGR62_REG(base) ((base)->CCGR62) -#define CCM_CCGR62_SET_REG(base) ((base)->CCGR62_SET) -#define CCM_CCGR62_CLR_REG(base) ((base)->CCGR62_CLR) -#define CCM_CCGR62_TOG_REG(base) ((base)->CCGR62_TOG) -#define CCM_CCGR63_REG(base) ((base)->CCGR63) -#define CCM_CCGR63_SET_REG(base) ((base)->CCGR63_SET) -#define CCM_CCGR63_CLR_REG(base) ((base)->CCGR63_CLR) -#define CCM_CCGR63_TOG_REG(base) ((base)->CCGR63_TOG) -#define CCM_CCGR64_REG(base) ((base)->CCGR64) -#define CCM_CCGR64_SET_REG(base) ((base)->CCGR64_SET) -#define CCM_CCGR64_CLR_REG(base) ((base)->CCGR64_CLR) -#define CCM_CCGR64_TOG_REG(base) ((base)->CCGR64_TOG) -#define CCM_CCGR65_REG(base) ((base)->CCGR65) -#define CCM_CCGR65_SET_REG(base) ((base)->CCGR65_SET) -#define CCM_CCGR65_CLR_REG(base) ((base)->CCGR65_CLR) -#define CCM_CCGR65_TOG_REG(base) ((base)->CCGR65_TOG) -#define CCM_CCGR66_REG(base) ((base)->CCGR66) -#define CCM_CCGR66_SET_REG(base) ((base)->CCGR66_SET) -#define CCM_CCGR66_CLR_REG(base) ((base)->CCGR66_CLR) -#define CCM_CCGR66_TOG_REG(base) ((base)->CCGR66_TOG) -#define CCM_CCGR67_REG(base) ((base)->CCGR67) -#define CCM_CCGR67_SET_REG(base) ((base)->CCGR67_SET) -#define CCM_CCGR67_CLR_REG(base) ((base)->CCGR67_CLR) -#define CCM_CCGR67_TOG_REG(base) ((base)->CCGR67_TOG) -#define CCM_CCGR68_REG(base) ((base)->CCGR68) -#define CCM_CCGR68_SET_REG(base) ((base)->CCGR68_SET) -#define CCM_CCGR68_CLR_REG(base) ((base)->CCGR68_CLR) -#define CCM_CCGR68_TOG_REG(base) ((base)->CCGR68_TOG) -#define CCM_CCGR69_REG(base) ((base)->CCGR69) -#define CCM_CCGR69_SET_REG(base) ((base)->CCGR69_SET) -#define CCM_CCGR69_CLR_REG(base) ((base)->CCGR69_CLR) -#define CCM_CCGR69_TOG_REG(base) ((base)->CCGR69_TOG) -#define CCM_CCGR70_REG(base) ((base)->CCGR70) -#define CCM_CCGR70_SET_REG(base) ((base)->CCGR70_SET) -#define CCM_CCGR70_CLR_REG(base) ((base)->CCGR70_CLR) -#define CCM_CCGR70_TOG_REG(base) ((base)->CCGR70_TOG) -#define CCM_CCGR71_REG(base) ((base)->CCGR71) -#define CCM_CCGR71_SET_REG(base) ((base)->CCGR71_SET) -#define CCM_CCGR71_CLR_REG(base) ((base)->CCGR71_CLR) -#define CCM_CCGR71_TOG_REG(base) ((base)->CCGR71_TOG) -#define CCM_CCGR72_REG(base) ((base)->CCGR72) -#define CCM_CCGR72_SET_REG(base) ((base)->CCGR72_SET) -#define CCM_CCGR72_CLR_REG(base) ((base)->CCGR72_CLR) -#define CCM_CCGR72_TOG_REG(base) ((base)->CCGR72_TOG) -#define CCM_CCGR73_REG(base) ((base)->CCGR73) -#define CCM_CCGR73_SET_REG(base) ((base)->CCGR73_SET) -#define CCM_CCGR73_CLR_REG(base) ((base)->CCGR73_CLR) -#define CCM_CCGR73_TOG_REG(base) ((base)->CCGR73_TOG) -#define CCM_CCGR74_REG(base) ((base)->CCGR74) -#define CCM_CCGR74_SET_REG(base) ((base)->CCGR74_SET) -#define CCM_CCGR74_CLR_REG(base) ((base)->CCGR74_CLR) -#define CCM_CCGR74_TOG_REG(base) ((base)->CCGR74_TOG) -#define CCM_CCGR75_REG(base) ((base)->CCGR75) -#define CCM_CCGR75_SET_REG(base) ((base)->CCGR75_SET) -#define CCM_CCGR75_CLR_REG(base) ((base)->CCGR75_CLR) -#define CCM_CCGR75_TOG_REG(base) ((base)->CCGR75_TOG) -#define CCM_CCGR76_REG(base) ((base)->CCGR76) -#define CCM_CCGR76_SET_REG(base) ((base)->CCGR76_SET) -#define CCM_CCGR76_CLR_REG(base) ((base)->CCGR76_CLR) -#define CCM_CCGR76_TOG_REG(base) ((base)->CCGR76_TOG) -#define CCM_CCGR77_REG(base) ((base)->CCGR77) -#define CCM_CCGR77_SET_REG(base) ((base)->CCGR77_SET) -#define CCM_CCGR77_CLR_REG(base) ((base)->CCGR77_CLR) -#define CCM_CCGR77_TOG_REG(base) ((base)->CCGR77_TOG) -#define CCM_CCGR78_REG(base) ((base)->CCGR78) -#define CCM_CCGR78_SET_REG(base) ((base)->CCGR78_SET) -#define CCM_CCGR78_CLR_REG(base) ((base)->CCGR78_CLR) -#define CCM_CCGR78_TOG_REG(base) ((base)->CCGR78_TOG) -#define CCM_CCGR79_REG(base) ((base)->CCGR79) -#define CCM_CCGR79_SET_REG(base) ((base)->CCGR79_SET) -#define CCM_CCGR79_CLR_REG(base) ((base)->CCGR79_CLR) -#define CCM_CCGR79_TOG_REG(base) ((base)->CCGR79_TOG) -#define CCM_CCGR80_REG(base) ((base)->CCGR80) -#define CCM_CCGR80_SET_REG(base) ((base)->CCGR80_SET) -#define CCM_CCGR80_CLR_REG(base) ((base)->CCGR80_CLR) -#define CCM_CCGR80_TOG_REG(base) ((base)->CCGR80_TOG) -#define CCM_CCGR81_REG(base) ((base)->CCGR81) -#define CCM_CCGR81_SET_REG(base) ((base)->CCGR81_SET) -#define CCM_CCGR81_CLR_REG(base) ((base)->CCGR81_CLR) -#define CCM_CCGR81_TOG_REG(base) ((base)->CCGR81_TOG) -#define CCM_CCGR82_REG(base) ((base)->CCGR82) -#define CCM_CCGR82_SET_REG(base) ((base)->CCGR82_SET) -#define CCM_CCGR82_CLR_REG(base) ((base)->CCGR82_CLR) -#define CCM_CCGR82_TOG_REG(base) ((base)->CCGR82_TOG) -#define CCM_CCGR83_REG(base) ((base)->CCGR83) -#define CCM_CCGR83_SET_REG(base) ((base)->CCGR83_SET) -#define CCM_CCGR83_CLR_REG(base) ((base)->CCGR83_CLR) -#define CCM_CCGR83_TOG_REG(base) ((base)->CCGR83_TOG) -#define CCM_CCGR84_REG(base) ((base)->CCGR84) -#define CCM_CCGR84_SET_REG(base) ((base)->CCGR84_SET) -#define CCM_CCGR84_CLR_REG(base) ((base)->CCGR84_CLR) -#define CCM_CCGR84_TOG_REG(base) ((base)->CCGR84_TOG) -#define CCM_CCGR85_REG(base) ((base)->CCGR85) -#define CCM_CCGR85_SET_REG(base) ((base)->CCGR85_SET) -#define CCM_CCGR85_CLR_REG(base) ((base)->CCGR85_CLR) -#define CCM_CCGR85_TOG_REG(base) ((base)->CCGR85_TOG) -#define CCM_CCGR86_REG(base) ((base)->CCGR86) -#define CCM_CCGR86_SET_REG(base) ((base)->CCGR86_SET) -#define CCM_CCGR86_CLR_REG(base) ((base)->CCGR86_CLR) -#define CCM_CCGR86_TOG_REG(base) ((base)->CCGR86_TOG) -#define CCM_CCGR87_REG(base) ((base)->CCGR87) -#define CCM_CCGR87_SET_REG(base) ((base)->CCGR87_SET) -#define CCM_CCGR87_CLR_REG(base) ((base)->CCGR87_CLR) -#define CCM_CCGR87_TOG_REG(base) ((base)->CCGR87_TOG) -#define CCM_CCGR88_REG(base) ((base)->CCGR88) -#define CCM_CCGR88_SET_REG(base) ((base)->CCGR88_SET) -#define CCM_CCGR88_CLR_REG(base) ((base)->CCGR88_CLR) -#define CCM_CCGR88_TOG_REG(base) ((base)->CCGR88_TOG) -#define CCM_CCGR89_REG(base) ((base)->CCGR89) -#define CCM_CCGR89_SET_REG(base) ((base)->CCGR89_SET) -#define CCM_CCGR89_CLR_REG(base) ((base)->CCGR89_CLR) -#define CCM_CCGR89_TOG_REG(base) ((base)->CCGR89_TOG) -#define CCM_CCGR90_REG(base) ((base)->CCGR90) -#define CCM_CCGR90_SET_REG(base) ((base)->CCGR90_SET) -#define CCM_CCGR90_CLR_REG(base) ((base)->CCGR90_CLR) -#define CCM_CCGR90_TOG_REG(base) ((base)->CCGR90_TOG) -#define CCM_CCGR91_REG(base) ((base)->CCGR91) -#define CCM_CCGR91_SET_REG(base) ((base)->CCGR91_SET) -#define CCM_CCGR91_CLR_REG(base) ((base)->CCGR91_CLR) -#define CCM_CCGR91_TOG_REG(base) ((base)->CCGR91_TOG) -#define CCM_CCGR92_REG(base) ((base)->CCGR92) -#define CCM_CCGR92_SET_REG(base) ((base)->CCGR92_SET) -#define CCM_CCGR92_CLR_REG(base) ((base)->CCGR92_CLR) -#define CCM_CCGR92_TOG_REG(base) ((base)->CCGR92_TOG) -#define CCM_CCGR93_REG(base) ((base)->CCGR93) -#define CCM_CCGR93_SET_REG(base) ((base)->CCGR93_SET) -#define CCM_CCGR93_CLR_REG(base) ((base)->CCGR93_CLR) -#define CCM_CCGR93_TOG_REG(base) ((base)->CCGR93_TOG) -#define CCM_CCGR94_REG(base) ((base)->CCGR94) -#define CCM_CCGR94_SET_REG(base) ((base)->CCGR94_SET) -#define CCM_CCGR94_CLR_REG(base) ((base)->CCGR94_CLR) -#define CCM_CCGR94_TOG_REG(base) ((base)->CCGR94_TOG) -#define CCM_CCGR95_REG(base) ((base)->CCGR95) -#define CCM_CCGR95_SET_REG(base) ((base)->CCGR95_SET) -#define CCM_CCGR95_CLR_REG(base) ((base)->CCGR95_CLR) -#define CCM_CCGR95_TOG_REG(base) ((base)->CCGR95_TOG) -#define CCM_CCGR96_REG(base) ((base)->CCGR96) -#define CCM_CCGR96_SET_REG(base) ((base)->CCGR96_SET) -#define CCM_CCGR96_CLR_REG(base) ((base)->CCGR96_CLR) -#define CCM_CCGR96_TOG_REG(base) ((base)->CCGR96_TOG) -#define CCM_CCGR97_REG(base) ((base)->CCGR97) -#define CCM_CCGR97_SET_REG(base) ((base)->CCGR97_SET) -#define CCM_CCGR97_CLR_REG(base) ((base)->CCGR97_CLR) -#define CCM_CCGR97_TOG_REG(base) ((base)->CCGR97_TOG) -#define CCM_CCGR98_REG(base) ((base)->CCGR98) -#define CCM_CCGR98_SET_REG(base) ((base)->CCGR98_SET) -#define CCM_CCGR98_CLR_REG(base) ((base)->CCGR98_CLR) -#define CCM_CCGR98_TOG_REG(base) ((base)->CCGR98_TOG) -#define CCM_CCGR99_REG(base) ((base)->CCGR99) -#define CCM_CCGR99_SET_REG(base) ((base)->CCGR99_SET) -#define CCM_CCGR99_CLR_REG(base) ((base)->CCGR99_CLR) -#define CCM_CCGR99_TOG_REG(base) ((base)->CCGR99_TOG) -#define CCM_CCGR100_REG(base) ((base)->CCGR100) -#define CCM_CCGR100_SET_REG(base) ((base)->CCGR100_SET) -#define CCM_CCGR100_CLR_REG(base) ((base)->CCGR100_CLR) -#define CCM_CCGR100_TOG_REG(base) ((base)->CCGR100_TOG) -#define CCM_CCGR101_REG(base) ((base)->CCGR101) -#define CCM_CCGR101_SET_REG(base) ((base)->CCGR101_SET) -#define CCM_CCGR101_CLR_REG(base) ((base)->CCGR101_CLR) -#define CCM_CCGR101_TOG_REG(base) ((base)->CCGR101_TOG) -#define CCM_CCGR102_REG(base) ((base)->CCGR102) -#define CCM_CCGR102_SET_REG(base) ((base)->CCGR102_SET) -#define CCM_CCGR102_CLR_REG(base) ((base)->CCGR102_CLR) -#define CCM_CCGR102_TOG_REG(base) ((base)->CCGR102_TOG) -#define CCM_CCGR103_REG(base) ((base)->CCGR103) -#define CCM_CCGR103_SET_REG(base) ((base)->CCGR103_SET) -#define CCM_CCGR103_CLR_REG(base) ((base)->CCGR103_CLR) -#define CCM_CCGR103_TOG_REG(base) ((base)->CCGR103_TOG) -#define CCM_CCGR104_REG(base) ((base)->CCGR104) -#define CCM_CCGR104_SET_REG(base) ((base)->CCGR104_SET) -#define CCM_CCGR104_CLR_REG(base) ((base)->CCGR104_CLR) -#define CCM_CCGR104_TOG_REG(base) ((base)->CCGR104_TOG) -#define CCM_CCGR105_REG(base) ((base)->CCGR105) -#define CCM_CCGR105_SET_REG(base) ((base)->CCGR105_SET) -#define CCM_CCGR105_CLR_REG(base) ((base)->CCGR105_CLR) -#define CCM_CCGR105_TOG_REG(base) ((base)->CCGR105_TOG) -#define CCM_CCGR106_REG(base) ((base)->CCGR106) -#define CCM_CCGR106_SET_REG(base) ((base)->CCGR106_SET) -#define CCM_CCGR106_CLR_REG(base) ((base)->CCGR106_CLR) -#define CCM_CCGR106_TOG_REG(base) ((base)->CCGR106_TOG) -#define CCM_CCGR107_REG(base) ((base)->CCGR107) -#define CCM_CCGR107_SET_REG(base) ((base)->CCGR107_SET) -#define CCM_CCGR107_CLR_REG(base) ((base)->CCGR107_CLR) -#define CCM_CCGR107_TOG_REG(base) ((base)->CCGR107_TOG) -#define CCM_CCGR108_REG(base) ((base)->CCGR108) -#define CCM_CCGR108_SET_REG(base) ((base)->CCGR108_SET) -#define CCM_CCGR108_CLR_REG(base) ((base)->CCGR108_CLR) -#define CCM_CCGR108_TOG_REG(base) ((base)->CCGR108_TOG) -#define CCM_CCGR109_REG(base) ((base)->CCGR109) -#define CCM_CCGR109_SET_REG(base) ((base)->CCGR109_SET) -#define CCM_CCGR109_CLR_REG(base) ((base)->CCGR109_CLR) -#define CCM_CCGR109_TOG_REG(base) ((base)->CCGR109_TOG) -#define CCM_CCGR110_REG(base) ((base)->CCGR110) -#define CCM_CCGR110_SET_REG(base) ((base)->CCGR110_SET) -#define CCM_CCGR110_CLR_REG(base) ((base)->CCGR110_CLR) -#define CCM_CCGR110_TOG_REG(base) ((base)->CCGR110_TOG) -#define CCM_CCGR111_REG(base) ((base)->CCGR111) -#define CCM_CCGR111_SET_REG(base) ((base)->CCGR111_SET) -#define CCM_CCGR111_CLR_REG(base) ((base)->CCGR111_CLR) -#define CCM_CCGR111_TOG_REG(base) ((base)->CCGR111_TOG) -#define CCM_CCGR112_REG(base) ((base)->CCGR112) -#define CCM_CCGR112_SET_REG(base) ((base)->CCGR112_SET) -#define CCM_CCGR112_CLR_REG(base) ((base)->CCGR112_CLR) -#define CCM_CCGR112_TOG_REG(base) ((base)->CCGR112_TOG) -#define CCM_CCGR113_REG(base) ((base)->CCGR113) -#define CCM_CCGR113_SET_REG(base) ((base)->CCGR113_SET) -#define CCM_CCGR113_CLR_REG(base) ((base)->CCGR113_CLR) -#define CCM_CCGR113_TOG_REG(base) ((base)->CCGR113_TOG) -#define CCM_CCGR114_REG(base) ((base)->CCGR114) -#define CCM_CCGR114_SET_REG(base) ((base)->CCGR114_SET) -#define CCM_CCGR114_CLR_REG(base) ((base)->CCGR114_CLR) -#define CCM_CCGR114_TOG_REG(base) ((base)->CCGR114_TOG) -#define CCM_CCGR115_REG(base) ((base)->CCGR115) -#define CCM_CCGR115_SET_REG(base) ((base)->CCGR115_SET) -#define CCM_CCGR115_CLR_REG(base) ((base)->CCGR115_CLR) -#define CCM_CCGR115_TOG_REG(base) ((base)->CCGR115_TOG) -#define CCM_CCGR116_REG(base) ((base)->CCGR116) -#define CCM_CCGR116_SET_REG(base) ((base)->CCGR116_SET) -#define CCM_CCGR116_CLR_REG(base) ((base)->CCGR116_CLR) -#define CCM_CCGR116_TOG_REG(base) ((base)->CCGR116_TOG) -#define CCM_CCGR117_REG(base) ((base)->CCGR117) -#define CCM_CCGR117_SET_REG(base) ((base)->CCGR117_SET) -#define CCM_CCGR117_CLR_REG(base) ((base)->CCGR117_CLR) -#define CCM_CCGR117_TOG_REG(base) ((base)->CCGR117_TOG) -#define CCM_CCGR118_REG(base) ((base)->CCGR118) -#define CCM_CCGR118_SET_REG(base) ((base)->CCGR118_SET) -#define CCM_CCGR118_CLR_REG(base) ((base)->CCGR118_CLR) -#define CCM_CCGR118_TOG_REG(base) ((base)->CCGR118_TOG) -#define CCM_CCGR119_REG(base) ((base)->CCGR119) -#define CCM_CCGR119_SET_REG(base) ((base)->CCGR119_SET) -#define CCM_CCGR119_CLR_REG(base) ((base)->CCGR119_CLR) -#define CCM_CCGR119_TOG_REG(base) ((base)->CCGR119_TOG) -#define CCM_CCGR120_REG(base) ((base)->CCGR120) -#define CCM_CCGR120_SET_REG(base) ((base)->CCGR120_SET) -#define CCM_CCGR120_CLR_REG(base) ((base)->CCGR120_CLR) -#define CCM_CCGR120_TOG_REG(base) ((base)->CCGR120_TOG) -#define CCM_CCGR121_REG(base) ((base)->CCGR121) -#define CCM_CCGR121_SET_REG(base) ((base)->CCGR121_SET) -#define CCM_CCGR121_CLR_REG(base) ((base)->CCGR121_CLR) -#define CCM_CCGR121_TOG_REG(base) ((base)->CCGR121_TOG) -#define CCM_CCGR122_REG(base) ((base)->CCGR122) -#define CCM_CCGR122_SET_REG(base) ((base)->CCGR122_SET) -#define CCM_CCGR122_CLR_REG(base) ((base)->CCGR122_CLR) -#define CCM_CCGR122_TOG_REG(base) ((base)->CCGR122_TOG) -#define CCM_CCGR123_REG(base) ((base)->CCGR123) -#define CCM_CCGR123_SET_REG(base) ((base)->CCGR123_SET) -#define CCM_CCGR123_CLR_REG(base) ((base)->CCGR123_CLR) -#define CCM_CCGR123_TOG_REG(base) ((base)->CCGR123_TOG) -#define CCM_CCGR124_REG(base) ((base)->CCGR124) -#define CCM_CCGR124_SET_REG(base) ((base)->CCGR124_SET) -#define CCM_CCGR124_CLR_REG(base) ((base)->CCGR124_CLR) -#define CCM_CCGR124_TOG_REG(base) ((base)->CCGR124_TOG) -#define CCM_CCGR125_REG(base) ((base)->CCGR125) -#define CCM_CCGR125_SET_REG(base) ((base)->CCGR125_SET) -#define CCM_CCGR125_CLR_REG(base) ((base)->CCGR125_CLR) -#define CCM_CCGR125_TOG_REG(base) ((base)->CCGR125_TOG) -#define CCM_CCGR126_REG(base) ((base)->CCGR126) -#define CCM_CCGR126_SET_REG(base) ((base)->CCGR126_SET) -#define CCM_CCGR126_CLR_REG(base) ((base)->CCGR126_CLR) -#define CCM_CCGR126_TOG_REG(base) ((base)->CCGR126_TOG) -#define CCM_CCGR127_REG(base) ((base)->CCGR127) -#define CCM_CCGR127_SET_REG(base) ((base)->CCGR127_SET) -#define CCM_CCGR127_CLR_REG(base) ((base)->CCGR127_CLR) -#define CCM_CCGR127_TOG_REG(base) ((base)->CCGR127_TOG) -#define CCM_CCGR128_REG(base) ((base)->CCGR128) -#define CCM_CCGR128_SET_REG(base) ((base)->CCGR128_SET) -#define CCM_CCGR128_CLR_REG(base) ((base)->CCGR128_CLR) -#define CCM_CCGR128_TOG_REG(base) ((base)->CCGR128_TOG) -#define CCM_CCGR129_REG(base) ((base)->CCGR129) -#define CCM_CCGR129_SET_REG(base) ((base)->CCGR129_SET) -#define CCM_CCGR129_CLR_REG(base) ((base)->CCGR129_CLR) -#define CCM_CCGR129_TOG_REG(base) ((base)->CCGR129_TOG) -#define CCM_CCGR130_REG(base) ((base)->CCGR130) -#define CCM_CCGR130_SET_REG(base) ((base)->CCGR130_SET) -#define CCM_CCGR130_CLR_REG(base) ((base)->CCGR130_CLR) -#define CCM_CCGR130_TOG_REG(base) ((base)->CCGR130_TOG) -#define CCM_CCGR131_REG(base) ((base)->CCGR131) -#define CCM_CCGR131_SET_REG(base) ((base)->CCGR131_SET) -#define CCM_CCGR131_CLR_REG(base) ((base)->CCGR131_CLR) -#define CCM_CCGR131_TOG_REG(base) ((base)->CCGR131_TOG) -#define CCM_CCGR132_REG(base) ((base)->CCGR132) -#define CCM_CCGR132_SET_REG(base) ((base)->CCGR132_SET) -#define CCM_CCGR132_CLR_REG(base) ((base)->CCGR132_CLR) -#define CCM_CCGR132_TOG_REG(base) ((base)->CCGR132_TOG) -#define CCM_CCGR133_REG(base) ((base)->CCGR133) -#define CCM_CCGR133_SET_REG(base) ((base)->CCGR133_SET) -#define CCM_CCGR133_CLR_REG(base) ((base)->CCGR133_CLR) -#define CCM_CCGR133_TOG_REG(base) ((base)->CCGR133_TOG) -#define CCM_CCGR134_REG(base) ((base)->CCGR134) -#define CCM_CCGR134_SET_REG(base) ((base)->CCGR134_SET) -#define CCM_CCGR134_CLR_REG(base) ((base)->CCGR134_CLR) -#define CCM_CCGR134_TOG_REG(base) ((base)->CCGR134_TOG) -#define CCM_CCGR135_REG(base) ((base)->CCGR135) -#define CCM_CCGR135_SET_REG(base) ((base)->CCGR135_SET) -#define CCM_CCGR135_CLR_REG(base) ((base)->CCGR135_CLR) -#define CCM_CCGR135_TOG_REG(base) ((base)->CCGR135_TOG) -#define CCM_CCGR136_REG(base) ((base)->CCGR136) -#define CCM_CCGR136_SET_REG(base) ((base)->CCGR136_SET) -#define CCM_CCGR136_CLR_REG(base) ((base)->CCGR136_CLR) -#define CCM_CCGR136_TOG_REG(base) ((base)->CCGR136_TOG) -#define CCM_CCGR137_REG(base) ((base)->CCGR137) -#define CCM_CCGR137_SET_REG(base) ((base)->CCGR137_SET) -#define CCM_CCGR137_CLR_REG(base) ((base)->CCGR137_CLR) -#define CCM_CCGR137_TOG_REG(base) ((base)->CCGR137_TOG) -#define CCM_CCGR138_REG(base) ((base)->CCGR138) -#define CCM_CCGR138_SET_REG(base) ((base)->CCGR138_SET) -#define CCM_CCGR138_CLR_REG(base) ((base)->CCGR138_CLR) -#define CCM_CCGR138_TOG_REG(base) ((base)->CCGR138_TOG) -#define CCM_CCGR139_REG(base) ((base)->CCGR139) -#define CCM_CCGR139_SET_REG(base) ((base)->CCGR139_SET) -#define CCM_CCGR139_CLR_REG(base) ((base)->CCGR139_CLR) -#define CCM_CCGR139_TOG_REG(base) ((base)->CCGR139_TOG) -#define CCM_CCGR140_REG(base) ((base)->CCGR140) -#define CCM_CCGR140_SET_REG(base) ((base)->CCGR140_SET) -#define CCM_CCGR140_CLR_REG(base) ((base)->CCGR140_CLR) -#define CCM_CCGR140_TOG_REG(base) ((base)->CCGR140_TOG) -#define CCM_CCGR141_REG(base) ((base)->CCGR141) -#define CCM_CCGR141_SET_REG(base) ((base)->CCGR141_SET) -#define CCM_CCGR141_CLR_REG(base) ((base)->CCGR141_CLR) -#define CCM_CCGR141_TOG_REG(base) ((base)->CCGR141_TOG) -#define CCM_CCGR142_REG(base) ((base)->CCGR142) -#define CCM_CCGR142_SET_REG(base) ((base)->CCGR142_SET) -#define CCM_CCGR142_CLR_REG(base) ((base)->CCGR142_CLR) -#define CCM_CCGR142_TOG_REG(base) ((base)->CCGR142_TOG) -#define CCM_CCGR143_REG(base) ((base)->CCGR143) -#define CCM_CCGR143_SET_REG(base) ((base)->CCGR143_SET) -#define CCM_CCGR143_CLR_REG(base) ((base)->CCGR143_CLR) -#define CCM_CCGR143_TOG_REG(base) ((base)->CCGR143_TOG) -#define CCM_CCGR144_REG(base) ((base)->CCGR144) -#define CCM_CCGR144_SET_REG(base) ((base)->CCGR144_SET) -#define CCM_CCGR144_CLR_REG(base) ((base)->CCGR144_CLR) -#define CCM_CCGR144_TOG_REG(base) ((base)->CCGR144_TOG) -#define CCM_CCGR145_REG(base) ((base)->CCGR145) -#define CCM_CCGR145_SET_REG(base) ((base)->CCGR145_SET) -#define CCM_CCGR145_CLR_REG(base) ((base)->CCGR145_CLR) -#define CCM_CCGR145_TOG_REG(base) ((base)->CCGR145_TOG) -#define CCM_CCGR146_REG(base) ((base)->CCGR146) -#define CCM_CCGR146_SET_REG(base) ((base)->CCGR146_SET) -#define CCM_CCGR146_CLR_REG(base) ((base)->CCGR146_CLR) -#define CCM_CCGR146_TOG_REG(base) ((base)->CCGR146_TOG) -#define CCM_CCGR147_REG(base) ((base)->CCGR147) -#define CCM_CCGR147_SET_REG(base) ((base)->CCGR147_SET) -#define CCM_CCGR147_CLR_REG(base) ((base)->CCGR147_CLR) -#define CCM_CCGR147_TOG_REG(base) ((base)->CCGR147_TOG) -#define CCM_CCGR148_REG(base) ((base)->CCGR148) -#define CCM_CCGR148_SET_REG(base) ((base)->CCGR148_SET) -#define CCM_CCGR148_CLR_REG(base) ((base)->CCGR148_CLR) -#define CCM_CCGR148_TOG_REG(base) ((base)->CCGR148_TOG) -#define CCM_CCGR149_REG(base) ((base)->CCGR149) -#define CCM_CCGR149_SET_REG(base) ((base)->CCGR149_SET) -#define CCM_CCGR149_CLR_REG(base) ((base)->CCGR149_CLR) -#define CCM_CCGR149_TOG_REG(base) ((base)->CCGR149_TOG) -#define CCM_CCGR150_REG(base) ((base)->CCGR150) -#define CCM_CCGR150_SET_REG(base) ((base)->CCGR150_SET) -#define CCM_CCGR150_CLR_REG(base) ((base)->CCGR150_CLR) -#define CCM_CCGR150_TOG_REG(base) ((base)->CCGR150_TOG) -#define CCM_CCGR151_REG(base) ((base)->CCGR151) -#define CCM_CCGR151_SET_REG(base) ((base)->CCGR151_SET) -#define CCM_CCGR151_CLR_REG(base) ((base)->CCGR151_CLR) -#define CCM_CCGR151_TOG_REG(base) ((base)->CCGR151_TOG) -#define CCM_CCGR152_REG(base) ((base)->CCGR152) -#define CCM_CCGR152_SET_REG(base) ((base)->CCGR152_SET) -#define CCM_CCGR152_CLR_REG(base) ((base)->CCGR152_CLR) -#define CCM_CCGR152_TOG_REG(base) ((base)->CCGR152_TOG) -#define CCM_CCGR153_REG(base) ((base)->CCGR153) -#define CCM_CCGR153_SET_REG(base) ((base)->CCGR153_SET) -#define CCM_CCGR153_CLR_REG(base) ((base)->CCGR153_CLR) -#define CCM_CCGR153_TOG_REG(base) ((base)->CCGR153_TOG) -#define CCM_CCGR154_REG(base) ((base)->CCGR154) -#define CCM_CCGR154_SET_REG(base) ((base)->CCGR154_SET) -#define CCM_CCGR154_CLR_REG(base) ((base)->CCGR154_CLR) -#define CCM_CCGR154_TOG_REG(base) ((base)->CCGR154_TOG) -#define CCM_CCGR155_REG(base) ((base)->CCGR155) -#define CCM_CCGR155_SET_REG(base) ((base)->CCGR155_SET) -#define CCM_CCGR155_CLR_REG(base) ((base)->CCGR155_CLR) -#define CCM_CCGR155_TOG_REG(base) ((base)->CCGR155_TOG) -#define CCM_CCGR156_REG(base) ((base)->CCGR156) -#define CCM_CCGR156_SET_REG(base) ((base)->CCGR156_SET) -#define CCM_CCGR156_CLR_REG(base) ((base)->CCGR156_CLR) -#define CCM_CCGR156_TOG_REG(base) ((base)->CCGR156_TOG) -#define CCM_CCGR157_REG(base) ((base)->CCGR157) -#define CCM_CCGR157_SET_REG(base) ((base)->CCGR157_SET) -#define CCM_CCGR157_CLR_REG(base) ((base)->CCGR157_CLR) -#define CCM_CCGR157_TOG_REG(base) ((base)->CCGR157_TOG) -#define CCM_CCGR158_REG(base) ((base)->CCGR158) -#define CCM_CCGR158_SET_REG(base) ((base)->CCGR158_SET) -#define CCM_CCGR158_CLR_REG(base) ((base)->CCGR158_CLR) -#define CCM_CCGR158_TOG_REG(base) ((base)->CCGR158_TOG) -#define CCM_CCGR159_REG(base) ((base)->CCGR159) -#define CCM_CCGR159_SET_REG(base) ((base)->CCGR159_SET) -#define CCM_CCGR159_CLR_REG(base) ((base)->CCGR159_CLR) -#define CCM_CCGR159_TOG_REG(base) ((base)->CCGR159_TOG) -#define CCM_CCGR160_REG(base) ((base)->CCGR160) -#define CCM_CCGR160_SET_REG(base) ((base)->CCGR160_SET) -#define CCM_CCGR160_CLR_REG(base) ((base)->CCGR160_CLR) -#define CCM_CCGR160_TOG_REG(base) ((base)->CCGR160_TOG) -#define CCM_CCGR161_REG(base) ((base)->CCGR161) -#define CCM_CCGR161_SET_REG(base) ((base)->CCGR161_SET) -#define CCM_CCGR161_CLR_REG(base) ((base)->CCGR161_CLR) -#define CCM_CCGR161_TOG_REG(base) ((base)->CCGR161_TOG) -#define CCM_CCGR162_REG(base) ((base)->CCGR162) -#define CCM_CCGR162_SET_REG(base) ((base)->CCGR162_SET) -#define CCM_CCGR162_CLR_REG(base) ((base)->CCGR162_CLR) -#define CCM_CCGR162_TOG_REG(base) ((base)->CCGR162_TOG) -#define CCM_CCGR163_REG(base) ((base)->CCGR163) -#define CCM_CCGR163_SET_REG(base) ((base)->CCGR163_SET) -#define CCM_CCGR163_CLR_REG(base) ((base)->CCGR163_CLR) -#define CCM_CCGR163_TOG_REG(base) ((base)->CCGR163_TOG) -#define CCM_CCGR164_REG(base) ((base)->CCGR164) -#define CCM_CCGR164_SET_REG(base) ((base)->CCGR164_SET) -#define CCM_CCGR164_CLR_REG(base) ((base)->CCGR164_CLR) -#define CCM_CCGR164_TOG_REG(base) ((base)->CCGR164_TOG) -#define CCM_CCGR165_REG(base) ((base)->CCGR165) -#define CCM_CCGR165_SET_REG(base) ((base)->CCGR165_SET) -#define CCM_CCGR165_CLR_REG(base) ((base)->CCGR165_CLR) -#define CCM_CCGR165_TOG_REG(base) ((base)->CCGR165_TOG) -#define CCM_CCGR166_REG(base) ((base)->CCGR166) -#define CCM_CCGR166_SET_REG(base) ((base)->CCGR166_SET) -#define CCM_CCGR166_CLR_REG(base) ((base)->CCGR166_CLR) -#define CCM_CCGR166_TOG_REG(base) ((base)->CCGR166_TOG) -#define CCM_CCGR167_REG(base) ((base)->CCGR167) -#define CCM_CCGR167_SET_REG(base) ((base)->CCGR167_SET) -#define CCM_CCGR167_CLR_REG(base) ((base)->CCGR167_CLR) -#define CCM_CCGR167_TOG_REG(base) ((base)->CCGR167_TOG) -#define CCM_CCGR168_REG(base) ((base)->CCGR168) -#define CCM_CCGR168_SET_REG(base) ((base)->CCGR168_SET) -#define CCM_CCGR168_CLR_REG(base) ((base)->CCGR168_CLR) -#define CCM_CCGR168_TOG_REG(base) ((base)->CCGR168_TOG) -#define CCM_CCGR169_REG(base) ((base)->CCGR169) -#define CCM_CCGR169_SET_REG(base) ((base)->CCGR169_SET) -#define CCM_CCGR169_CLR_REG(base) ((base)->CCGR169_CLR) -#define CCM_CCGR169_TOG_REG(base) ((base)->CCGR169_TOG) -#define CCM_CCGR170_REG(base) ((base)->CCGR170) -#define CCM_CCGR170_SET_REG(base) ((base)->CCGR170_SET) -#define CCM_CCGR170_CLR_REG(base) ((base)->CCGR170_CLR) -#define CCM_CCGR170_TOG_REG(base) ((base)->CCGR170_TOG) -#define CCM_CCGR171_REG(base) ((base)->CCGR171) -#define CCM_CCGR171_SET_REG(base) ((base)->CCGR171_SET) -#define CCM_CCGR171_CLR_REG(base) ((base)->CCGR171_CLR) -#define CCM_CCGR171_TOG_REG(base) ((base)->CCGR171_TOG) -#define CCM_CCGR172_REG(base) ((base)->CCGR172) -#define CCM_CCGR172_SET_REG(base) ((base)->CCGR172_SET) -#define CCM_CCGR172_CLR_REG(base) ((base)->CCGR172_CLR) -#define CCM_CCGR172_TOG_REG(base) ((base)->CCGR172_TOG) -#define CCM_CCGR173_REG(base) ((base)->CCGR173) -#define CCM_CCGR173_SET_REG(base) ((base)->CCGR173_SET) -#define CCM_CCGR173_CLR_REG(base) ((base)->CCGR173_CLR) -#define CCM_CCGR173_TOG_REG(base) ((base)->CCGR173_TOG) -#define CCM_CCGR174_REG(base) ((base)->CCGR174) -#define CCM_CCGR174_SET_REG(base) ((base)->CCGR174_SET) -#define CCM_CCGR174_CLR_REG(base) ((base)->CCGR174_CLR) -#define CCM_CCGR174_TOG_REG(base) ((base)->CCGR174_TOG) -#define CCM_CCGR175_REG(base) ((base)->CCGR175) -#define CCM_CCGR175_SET_REG(base) ((base)->CCGR175_SET) -#define CCM_CCGR175_CLR_REG(base) ((base)->CCGR175_CLR) -#define CCM_CCGR175_TOG_REG(base) ((base)->CCGR175_TOG) -#define CCM_CCGR176_REG(base) ((base)->CCGR176) -#define CCM_CCGR176_SET_REG(base) ((base)->CCGR176_SET) -#define CCM_CCGR176_CLR_REG(base) ((base)->CCGR176_CLR) -#define CCM_CCGR176_TOG_REG(base) ((base)->CCGR176_TOG) -#define CCM_CCGR177_REG(base) ((base)->CCGR177) -#define CCM_CCGR177_SET_REG(base) ((base)->CCGR177_SET) -#define CCM_CCGR177_CLR_REG(base) ((base)->CCGR177_CLR) -#define CCM_CCGR177_TOG_REG(base) ((base)->CCGR177_TOG) -#define CCM_CCGR178_REG(base) ((base)->CCGR178) -#define CCM_CCGR178_SET_REG(base) ((base)->CCGR178_SET) -#define CCM_CCGR178_CLR_REG(base) ((base)->CCGR178_CLR) -#define CCM_CCGR178_TOG_REG(base) ((base)->CCGR178_TOG) -#define CCM_CCGR179_REG(base) ((base)->CCGR179) -#define CCM_CCGR179_SET_REG(base) ((base)->CCGR179_SET) -#define CCM_CCGR179_CLR_REG(base) ((base)->CCGR179_CLR) -#define CCM_CCGR179_TOG_REG(base) ((base)->CCGR179_TOG) -#define CCM_CCGR180_REG(base) ((base)->CCGR180) -#define CCM_CCGR180_SET_REG(base) ((base)->CCGR180_SET) -#define CCM_CCGR180_CLR_REG(base) ((base)->CCGR180_CLR) -#define CCM_CCGR180_TOG_REG(base) ((base)->CCGR180_TOG) -#define CCM_CCGR181_REG(base) ((base)->CCGR181) -#define CCM_CCGR181_SET_REG(base) ((base)->CCGR181_SET) -#define CCM_CCGR181_CLR_REG(base) ((base)->CCGR181_CLR) -#define CCM_CCGR181_TOG_REG(base) ((base)->CCGR181_TOG) -#define CCM_CCGR182_REG(base) ((base)->CCGR182) -#define CCM_CCGR182_SET_REG(base) ((base)->CCGR182_SET) -#define CCM_CCGR182_CLR_REG(base) ((base)->CCGR182_CLR) -#define CCM_CCGR182_TOG_REG(base) ((base)->CCGR182_TOG) -#define CCM_CCGR183_REG(base) ((base)->CCGR183) -#define CCM_CCGR183_SET_REG(base) ((base)->CCGR183_SET) -#define CCM_CCGR183_CLR_REG(base) ((base)->CCGR183_CLR) -#define CCM_CCGR183_TOG_REG(base) ((base)->CCGR183_TOG) -#define CCM_CCGR184_REG(base) ((base)->CCGR184) -#define CCM_CCGR184_SET_REG(base) ((base)->CCGR184_SET) -#define CCM_CCGR184_CLR_REG(base) ((base)->CCGR184_CLR) -#define CCM_CCGR184_TOG_REG(base) ((base)->CCGR184_TOG) -#define CCM_CCGR185_REG(base) ((base)->CCGR185) -#define CCM_CCGR185_SET_REG(base) ((base)->CCGR185_SET) -#define CCM_CCGR185_CLR_REG(base) ((base)->CCGR185_CLR) -#define CCM_CCGR185_TOG_REG(base) ((base)->CCGR185_TOG) -#define CCM_CCGR186_REG(base) ((base)->CCGR186) -#define CCM_CCGR186_SET_REG(base) ((base)->CCGR186_SET) -#define CCM_CCGR186_CLR_REG(base) ((base)->CCGR186_CLR) -#define CCM_CCGR186_TOG_REG(base) ((base)->CCGR186_TOG) -#define CCM_CCGR187_REG(base) ((base)->CCGR187) -#define CCM_CCGR187_SET_REG(base) ((base)->CCGR187_SET) -#define CCM_CCGR187_CLR_REG(base) ((base)->CCGR187_CLR) -#define CCM_CCGR187_TOG_REG(base) ((base)->CCGR187_TOG) -#define CCM_CCGR188_REG(base) ((base)->CCGR188) -#define CCM_CCGR188_SET_REG(base) ((base)->CCGR188_SET) -#define CCM_CCGR188_CLR_REG(base) ((base)->CCGR188_CLR) -#define CCM_CCGR188_TOG_REG(base) ((base)->CCGR188_TOG) -#define CCM_CCGR189_REG(base) ((base)->CCGR189) -#define CCM_CCGR189_SET_REG(base) ((base)->CCGR189_SET) -#define CCM_CCGR189_CLR_REG(base) ((base)->CCGR189_CLR) -#define CCM_CCGR189_TOG_REG(base) ((base)->CCGR189_TOG) -#define CCM_CCGR190_REG(base) ((base)->CCGR190) -#define CCM_CCGR190_SET_REG(base) ((base)->CCGR190_SET) -#define CCM_CCGR190_CLR_REG(base) ((base)->CCGR190_CLR) -#define CCM_CCGR190_TOG_REG(base) ((base)->CCGR190_TOG) -#define CCM_TARGET_ROOT0_REG(base) ((base)->TARGET_ROOT0) -#define CCM_TARGET_ROOT0_SET_REG(base) ((base)->TARGET_ROOT0_SET) -#define CCM_TARGET_ROOT0_CLR_REG(base) ((base)->TARGET_ROOT0_CLR) -#define CCM_TARGET_ROOT0_TOG_REG(base) ((base)->TARGET_ROOT0_TOG) -#define CCM_POST0_REG(base) ((base)->POST0) -#define CCM_POST_ROOT0_SET_REG(base) ((base)->POST_ROOT0_SET) -#define CCM_POST_ROOT0_CLR_REG(base) ((base)->POST_ROOT0_CLR) -#define CCM_POST_ROOT0_TOG_REG(base) ((base)->POST_ROOT0_TOG) -#define CCM_PRE0_REG(base) ((base)->PRE0) -#define CCM_PRE_ROOT0_SET_REG(base) ((base)->PRE_ROOT0_SET) -#define CCM_PRE_ROOT0_CLR_REG(base) ((base)->PRE_ROOT0_CLR) -#define CCM_PRE_ROOT0_TOG_REG(base) ((base)->PRE_ROOT0_TOG) -#define CCM_ACCESS_CTRL0_REG(base) ((base)->ACCESS_CTRL0) -#define CCM_ACCESS_CTRL0_ROOT_SET_REG(base) ((base)->ACCESS_CTRL0_ROOT_SET) -#define CCM_ACCESS_CTRL0_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL0_ROOT_CLR) -#define CCM_ACCESS_CTRL0_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL0_ROOT_TOG) -#define CCM_TARGET_ROOT1_REG(base) ((base)->TARGET_ROOT1) -#define CCM_TARGET_ROOT1_SET_REG(base) ((base)->TARGET_ROOT1_SET) -#define CCM_TARGET_ROOT1_CLR_REG(base) ((base)->TARGET_ROOT1_CLR) -#define CCM_TARGET_ROOT1_TOG_REG(base) ((base)->TARGET_ROOT1_TOG) -#define CCM_POST1_REG(base) ((base)->POST1) -#define CCM_POST_ROOT1_SET_REG(base) ((base)->POST_ROOT1_SET) -#define CCM_POST_ROOT1_CLR_REG(base) ((base)->POST_ROOT1_CLR) -#define CCM_POST_ROOT1_TOG_REG(base) ((base)->POST_ROOT1_TOG) -#define CCM_PRE1_REG(base) ((base)->PRE1) -#define CCM_PRE_ROOT1_SET_REG(base) ((base)->PRE_ROOT1_SET) -#define CCM_PRE_ROOT1_CLR_REG(base) ((base)->PRE_ROOT1_CLR) -#define CCM_PRE_ROOT1_TOG_REG(base) ((base)->PRE_ROOT1_TOG) -#define CCM_ACCESS_CTRL1_REG(base) ((base)->ACCESS_CTRL1) -#define CCM_ACCESS_CTRL1_ROOT_SET_REG(base) ((base)->ACCESS_CTRL1_ROOT_SET) -#define CCM_ACCESS_CTRL1_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL1_ROOT_CLR) -#define CCM_ACCESS_CTRL1_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL1_ROOT_TOG) -#define CCM_TARGET_ROOT2_REG(base) ((base)->TARGET_ROOT2) -#define CCM_TARGET_ROOT2_SET_REG(base) ((base)->TARGET_ROOT2_SET) -#define CCM_TARGET_ROOT2_CLR_REG(base) ((base)->TARGET_ROOT2_CLR) -#define CCM_TARGET_ROOT2_TOG_REG(base) ((base)->TARGET_ROOT2_TOG) -#define CCM_POST2_REG(base) ((base)->POST2) -#define CCM_POST_ROOT2_SET_REG(base) ((base)->POST_ROOT2_SET) -#define CCM_POST_ROOT2_CLR_REG(base) ((base)->POST_ROOT2_CLR) -#define CCM_POST_ROOT2_TOG_REG(base) ((base)->POST_ROOT2_TOG) -#define CCM_PRE2_REG(base) ((base)->PRE2) -#define CCM_PRE_ROOT2_SET_REG(base) ((base)->PRE_ROOT2_SET) -#define CCM_PRE_ROOT2_CLR_REG(base) ((base)->PRE_ROOT2_CLR) -#define CCM_PRE_ROOT2_TOG_REG(base) ((base)->PRE_ROOT2_TOG) -#define CCM_ACCESS_CTRL2_REG(base) ((base)->ACCESS_CTRL2) -#define CCM_ACCESS_CTRL2_ROOT_SET_REG(base) ((base)->ACCESS_CTRL2_ROOT_SET) -#define CCM_ACCESS_CTRL2_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL2_ROOT_CLR) -#define CCM_ACCESS_CTRL2_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL2_ROOT_TOG) -#define CCM_TARGET_ROOT3_REG(base) ((base)->TARGET_ROOT3) -#define CCM_TARGET_ROOT3_SET_REG(base) ((base)->TARGET_ROOT3_SET) -#define CCM_TARGET_ROOT3_CLR_REG(base) ((base)->TARGET_ROOT3_CLR) -#define CCM_TARGET_ROOT3_TOG_REG(base) ((base)->TARGET_ROOT3_TOG) -#define CCM_POST3_REG(base) ((base)->POST3) -#define CCM_POST_ROOT3_SET_REG(base) ((base)->POST_ROOT3_SET) -#define CCM_POST_ROOT3_CLR_REG(base) ((base)->POST_ROOT3_CLR) -#define CCM_POST_ROOT3_TOG_REG(base) ((base)->POST_ROOT3_TOG) -#define CCM_PRE3_REG(base) ((base)->PRE3) -#define CCM_PRE_ROOT3_SET_REG(base) ((base)->PRE_ROOT3_SET) -#define CCM_PRE_ROOT3_CLR_REG(base) ((base)->PRE_ROOT3_CLR) -#define CCM_PRE_ROOT3_TOG_REG(base) ((base)->PRE_ROOT3_TOG) -#define CCM_ACCESS_CTRL3_REG(base) ((base)->ACCESS_CTRL3) -#define CCM_ACCESS_CTRL3_ROOT_SET_REG(base) ((base)->ACCESS_CTRL3_ROOT_SET) -#define CCM_ACCESS_CTRL3_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL3_ROOT_CLR) -#define CCM_ACCESS_CTRL3_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL3_ROOT_TOG) -#define CCM_TARGET_ROOT4_REG(base) ((base)->TARGET_ROOT4) -#define CCM_TARGET_ROOT4_SET_REG(base) ((base)->TARGET_ROOT4_SET) -#define CCM_TARGET_ROOT4_CLR_REG(base) ((base)->TARGET_ROOT4_CLR) -#define CCM_TARGET_ROOT4_TOG_REG(base) ((base)->TARGET_ROOT4_TOG) -#define CCM_POST4_REG(base) ((base)->POST4) -#define CCM_POST_ROOT4_SET_REG(base) ((base)->POST_ROOT4_SET) -#define CCM_POST_ROOT4_CLR_REG(base) ((base)->POST_ROOT4_CLR) -#define CCM_POST_ROOT4_TOG_REG(base) ((base)->POST_ROOT4_TOG) -#define CCM_PRE4_REG(base) ((base)->PRE4) -#define CCM_PRE_ROOT4_SET_REG(base) ((base)->PRE_ROOT4_SET) -#define CCM_PRE_ROOT4_CLR_REG(base) ((base)->PRE_ROOT4_CLR) -#define CCM_PRE_ROOT4_TOG_REG(base) ((base)->PRE_ROOT4_TOG) -#define CCM_ACCESS_CTRL4_REG(base) ((base)->ACCESS_CTRL4) -#define CCM_ACCESS_CTRL4_ROOT_SET_REG(base) ((base)->ACCESS_CTRL4_ROOT_SET) -#define CCM_ACCESS_CTRL4_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL4_ROOT_CLR) -#define CCM_ACCESS_CTRL4_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL4_ROOT_TOG) -#define CCM_TARGET_ROOT5_REG(base) ((base)->TARGET_ROOT5) -#define CCM_TARGET_ROOT5_SET_REG(base) ((base)->TARGET_ROOT5_SET) -#define CCM_TARGET_ROOT5_CLR_REG(base) ((base)->TARGET_ROOT5_CLR) -#define CCM_TARGET_ROOT5_TOG_REG(base) ((base)->TARGET_ROOT5_TOG) -#define CCM_POST5_REG(base) ((base)->POST5) -#define CCM_POST_ROOT5_SET_REG(base) ((base)->POST_ROOT5_SET) -#define CCM_POST_ROOT5_CLR_REG(base) ((base)->POST_ROOT5_CLR) -#define CCM_POST_ROOT5_TOG_REG(base) ((base)->POST_ROOT5_TOG) -#define CCM_PRE5_REG(base) ((base)->PRE5) -#define CCM_PRE_ROOT5_SET_REG(base) ((base)->PRE_ROOT5_SET) -#define CCM_PRE_ROOT5_CLR_REG(base) ((base)->PRE_ROOT5_CLR) -#define CCM_PRE_ROOT5_TOG_REG(base) ((base)->PRE_ROOT5_TOG) -#define CCM_ACCESS_CTRL5_REG(base) ((base)->ACCESS_CTRL5) -#define CCM_ACCESS_CTRL5_ROOT_SET_REG(base) ((base)->ACCESS_CTRL5_ROOT_SET) -#define CCM_ACCESS_CTRL5_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL5_ROOT_CLR) -#define CCM_ACCESS_CTRL5_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL5_ROOT_TOG) -#define CCM_TARGET_ROOT6_REG(base) ((base)->TARGET_ROOT6) -#define CCM_TARGET_ROOT6_SET_REG(base) ((base)->TARGET_ROOT6_SET) -#define CCM_TARGET_ROOT6_CLR_REG(base) ((base)->TARGET_ROOT6_CLR) -#define CCM_TARGET_ROOT6_TOG_REG(base) ((base)->TARGET_ROOT6_TOG) -#define CCM_POST6_REG(base) ((base)->POST6) -#define CCM_POST_ROOT6_SET_REG(base) ((base)->POST_ROOT6_SET) -#define CCM_POST_ROOT6_CLR_REG(base) ((base)->POST_ROOT6_CLR) -#define CCM_POST_ROOT6_TOG_REG(base) ((base)->POST_ROOT6_TOG) -#define CCM_PRE6_REG(base) ((base)->PRE6) -#define CCM_PRE_ROOT6_SET_REG(base) ((base)->PRE_ROOT6_SET) -#define CCM_PRE_ROOT6_CLR_REG(base) ((base)->PRE_ROOT6_CLR) -#define CCM_PRE_ROOT6_TOG_REG(base) ((base)->PRE_ROOT6_TOG) -#define CCM_ACCESS_CTRL6_REG(base) ((base)->ACCESS_CTRL6) -#define CCM_ACCESS_CTRL6_ROOT_SET_REG(base) ((base)->ACCESS_CTRL6_ROOT_SET) -#define CCM_ACCESS_CTRL6_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL6_ROOT_CLR) -#define CCM_ACCESS_CTRL6_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL6_ROOT_TOG) -#define CCM_TARGET_ROOT7_REG(base) ((base)->TARGET_ROOT7) -#define CCM_TARGET_ROOT7_SET_REG(base) ((base)->TARGET_ROOT7_SET) -#define CCM_TARGET_ROOT7_CLR_REG(base) ((base)->TARGET_ROOT7_CLR) -#define CCM_TARGET_ROOT7_TOG_REG(base) ((base)->TARGET_ROOT7_TOG) -#define CCM_POST7_REG(base) ((base)->POST7) -#define CCM_POST_ROOT7_SET_REG(base) ((base)->POST_ROOT7_SET) -#define CCM_POST_ROOT7_CLR_REG(base) ((base)->POST_ROOT7_CLR) -#define CCM_POST_ROOT7_TOG_REG(base) ((base)->POST_ROOT7_TOG) -#define CCM_PRE7_REG(base) ((base)->PRE7) -#define CCM_PRE_ROOT7_SET_REG(base) ((base)->PRE_ROOT7_SET) -#define CCM_PRE_ROOT7_CLR_REG(base) ((base)->PRE_ROOT7_CLR) -#define CCM_PRE_ROOT7_TOG_REG(base) ((base)->PRE_ROOT7_TOG) -#define CCM_ACCESS_CTRL7_REG(base) ((base)->ACCESS_CTRL7) -#define CCM_ACCESS_CTRL7_ROOT_SET_REG(base) ((base)->ACCESS_CTRL7_ROOT_SET) -#define CCM_ACCESS_CTRL7_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL7_ROOT_CLR) -#define CCM_ACCESS_CTRL7_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL7_ROOT_TOG) -#define CCM_TARGET_ROOT8_REG(base) ((base)->TARGET_ROOT8) -#define CCM_TARGET_ROOT8_SET_REG(base) ((base)->TARGET_ROOT8_SET) -#define CCM_TARGET_ROOT8_CLR_REG(base) ((base)->TARGET_ROOT8_CLR) -#define CCM_TARGET_ROOT8_TOG_REG(base) ((base)->TARGET_ROOT8_TOG) -#define CCM_POST8_REG(base) ((base)->POST8) -#define CCM_POST_ROOT8_SET_REG(base) ((base)->POST_ROOT8_SET) -#define CCM_POST_ROOT8_CLR_REG(base) ((base)->POST_ROOT8_CLR) -#define CCM_POST_ROOT8_TOG_REG(base) ((base)->POST_ROOT8_TOG) -#define CCM_PRE8_REG(base) ((base)->PRE8) -#define CCM_PRE_ROOT8_SET_REG(base) ((base)->PRE_ROOT8_SET) -#define CCM_PRE_ROOT8_CLR_REG(base) ((base)->PRE_ROOT8_CLR) -#define CCM_PRE_ROOT8_TOG_REG(base) ((base)->PRE_ROOT8_TOG) -#define CCM_ACCESS_CTRL8_REG(base) ((base)->ACCESS_CTRL8) -#define CCM_ACCESS_CTRL8_ROOT_SET_REG(base) ((base)->ACCESS_CTRL8_ROOT_SET) -#define CCM_ACCESS_CTRL8_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL8_ROOT_CLR) -#define CCM_ACCESS_CTRL8_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL8_ROOT_TOG) -#define CCM_TARGET_ROOT9_REG(base) ((base)->TARGET_ROOT9) -#define CCM_TARGET_ROOT9_SET_REG(base) ((base)->TARGET_ROOT9_SET) -#define CCM_TARGET_ROOT9_CLR_REG(base) ((base)->TARGET_ROOT9_CLR) -#define CCM_TARGET_ROOT9_TOG_REG(base) ((base)->TARGET_ROOT9_TOG) -#define CCM_POST9_REG(base) ((base)->POST9) -#define CCM_POST_ROOT9_SET_REG(base) ((base)->POST_ROOT9_SET) -#define CCM_POST_ROOT9_CLR_REG(base) ((base)->POST_ROOT9_CLR) -#define CCM_POST_ROOT9_TOG_REG(base) ((base)->POST_ROOT9_TOG) -#define CCM_PRE9_REG(base) ((base)->PRE9) -#define CCM_PRE_ROOT9_SET_REG(base) ((base)->PRE_ROOT9_SET) -#define CCM_PRE_ROOT9_CLR_REG(base) ((base)->PRE_ROOT9_CLR) -#define CCM_PRE_ROOT9_TOG_REG(base) ((base)->PRE_ROOT9_TOG) -#define CCM_ACCESS_CTRL9_REG(base) ((base)->ACCESS_CTRL9) -#define CCM_ACCESS_CTRL9_ROOT_SET_REG(base) ((base)->ACCESS_CTRL9_ROOT_SET) -#define CCM_ACCESS_CTRL9_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL9_ROOT_CLR) -#define CCM_ACCESS_CTRL9_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL9_ROOT_TOG) -#define CCM_TARGET_ROOT10_REG(base) ((base)->TARGET_ROOT10) -#define CCM_TARGET_ROOT10_SET_REG(base) ((base)->TARGET_ROOT10_SET) -#define CCM_TARGET_ROOT10_CLR_REG(base) ((base)->TARGET_ROOT10_CLR) -#define CCM_TARGET_ROOT10_TOG_REG(base) ((base)->TARGET_ROOT10_TOG) -#define CCM_POST10_REG(base) ((base)->POST10) -#define CCM_POST_ROOT10_SET_REG(base) ((base)->POST_ROOT10_SET) -#define CCM_POST_ROOT10_CLR_REG(base) ((base)->POST_ROOT10_CLR) -#define CCM_POST_ROOT10_TOG_REG(base) ((base)->POST_ROOT10_TOG) -#define CCM_PRE10_REG(base) ((base)->PRE10) -#define CCM_PRE_ROOT10_SET_REG(base) ((base)->PRE_ROOT10_SET) -#define CCM_PRE_ROOT10_CLR_REG(base) ((base)->PRE_ROOT10_CLR) -#define CCM_PRE_ROOT10_TOG_REG(base) ((base)->PRE_ROOT10_TOG) -#define CCM_ACCESS_CTRL10_REG(base) ((base)->ACCESS_CTRL10) -#define CCM_ACCESS_CTRL10_ROOT_SET_REG(base) ((base)->ACCESS_CTRL10_ROOT_SET) -#define CCM_ACCESS_CTRL10_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL10_ROOT_CLR) -#define CCM_ACCESS_CTRL10_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL10_ROOT_TOG) -#define CCM_TARGET_ROOT11_REG(base) ((base)->TARGET_ROOT11) -#define CCM_TARGET_ROOT11_SET_REG(base) ((base)->TARGET_ROOT11_SET) -#define CCM_TARGET_ROOT11_CLR_REG(base) ((base)->TARGET_ROOT11_CLR) -#define CCM_TARGET_ROOT11_TOG_REG(base) ((base)->TARGET_ROOT11_TOG) -#define CCM_POST11_REG(base) ((base)->POST11) -#define CCM_POST_ROOT11_SET_REG(base) ((base)->POST_ROOT11_SET) -#define CCM_POST_ROOT11_CLR_REG(base) ((base)->POST_ROOT11_CLR) -#define CCM_POST_ROOT11_TOG_REG(base) ((base)->POST_ROOT11_TOG) -#define CCM_PRE11_REG(base) ((base)->PRE11) -#define CCM_PRE_ROOT11_SET_REG(base) ((base)->PRE_ROOT11_SET) -#define CCM_PRE_ROOT11_CLR_REG(base) ((base)->PRE_ROOT11_CLR) -#define CCM_PRE_ROOT11_TOG_REG(base) ((base)->PRE_ROOT11_TOG) -#define CCM_ACCESS_CTRL11_REG(base) ((base)->ACCESS_CTRL11) -#define CCM_ACCESS_CTRL11_ROOT_SET_REG(base) ((base)->ACCESS_CTRL11_ROOT_SET) -#define CCM_ACCESS_CTRL11_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL11_ROOT_CLR) -#define CCM_ACCESS_CTRL11_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL11_ROOT_TOG) -#define CCM_TARGET_ROOT12_REG(base) ((base)->TARGET_ROOT12) -#define CCM_TARGET_ROOT12_SET_REG(base) ((base)->TARGET_ROOT12_SET) -#define CCM_TARGET_ROOT12_CLR_REG(base) ((base)->TARGET_ROOT12_CLR) -#define CCM_TARGET_ROOT12_TOG_REG(base) ((base)->TARGET_ROOT12_TOG) -#define CCM_POST12_REG(base) ((base)->POST12) -#define CCM_POST_ROOT12_SET_REG(base) ((base)->POST_ROOT12_SET) -#define CCM_POST_ROOT12_CLR_REG(base) ((base)->POST_ROOT12_CLR) -#define CCM_POST_ROOT12_TOG_REG(base) ((base)->POST_ROOT12_TOG) -#define CCM_PRE12_REG(base) ((base)->PRE12) -#define CCM_PRE_ROOT12_SET_REG(base) ((base)->PRE_ROOT12_SET) -#define CCM_PRE_ROOT12_CLR_REG(base) ((base)->PRE_ROOT12_CLR) -#define CCM_PRE_ROOT12_TOG_REG(base) ((base)->PRE_ROOT12_TOG) -#define CCM_ACCESS_CTRL12_REG(base) ((base)->ACCESS_CTRL12) -#define CCM_ACCESS_CTRL12_ROOT_SET_REG(base) ((base)->ACCESS_CTRL12_ROOT_SET) -#define CCM_ACCESS_CTRL12_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL12_ROOT_CLR) -#define CCM_ACCESS_CTRL12_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL12_ROOT_TOG) -#define CCM_TARGET_ROOT13_REG(base) ((base)->TARGET_ROOT13) -#define CCM_TARGET_ROOT13_SET_REG(base) ((base)->TARGET_ROOT13_SET) -#define CCM_TARGET_ROOT13_CLR_REG(base) ((base)->TARGET_ROOT13_CLR) -#define CCM_TARGET_ROOT13_TOG_REG(base) ((base)->TARGET_ROOT13_TOG) -#define CCM_POST13_REG(base) ((base)->POST13) -#define CCM_POST_ROOT13_SET_REG(base) ((base)->POST_ROOT13_SET) -#define CCM_POST_ROOT13_CLR_REG(base) ((base)->POST_ROOT13_CLR) -#define CCM_POST_ROOT13_TOG_REG(base) ((base)->POST_ROOT13_TOG) -#define CCM_PRE13_REG(base) ((base)->PRE13) -#define CCM_PRE_ROOT13_SET_REG(base) ((base)->PRE_ROOT13_SET) -#define CCM_PRE_ROOT13_CLR_REG(base) ((base)->PRE_ROOT13_CLR) -#define CCM_PRE_ROOT13_TOG_REG(base) ((base)->PRE_ROOT13_TOG) -#define CCM_ACCESS_CTRL13_REG(base) ((base)->ACCESS_CTRL13) -#define CCM_ACCESS_CTRL13_ROOT_SET_REG(base) ((base)->ACCESS_CTRL13_ROOT_SET) -#define CCM_ACCESS_CTRL13_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL13_ROOT_CLR) -#define CCM_ACCESS_CTRL13_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL13_ROOT_TOG) -#define CCM_TARGET_ROOT14_REG(base) ((base)->TARGET_ROOT14) -#define CCM_TARGET_ROOT14_SET_REG(base) ((base)->TARGET_ROOT14_SET) -#define CCM_TARGET_ROOT14_CLR_REG(base) ((base)->TARGET_ROOT14_CLR) -#define CCM_TARGET_ROOT14_TOG_REG(base) ((base)->TARGET_ROOT14_TOG) -#define CCM_POST14_REG(base) ((base)->POST14) -#define CCM_POST_ROOT14_SET_REG(base) ((base)->POST_ROOT14_SET) -#define CCM_POST_ROOT14_CLR_REG(base) ((base)->POST_ROOT14_CLR) -#define CCM_POST_ROOT14_TOG_REG(base) ((base)->POST_ROOT14_TOG) -#define CCM_PRE14_REG(base) ((base)->PRE14) -#define CCM_PRE_ROOT14_SET_REG(base) ((base)->PRE_ROOT14_SET) -#define CCM_PRE_ROOT14_CLR_REG(base) ((base)->PRE_ROOT14_CLR) -#define CCM_PRE_ROOT14_TOG_REG(base) ((base)->PRE_ROOT14_TOG) -#define CCM_ACCESS_CTRL14_REG(base) ((base)->ACCESS_CTRL14) -#define CCM_ACCESS_CTRL14_ROOT_SET_REG(base) ((base)->ACCESS_CTRL14_ROOT_SET) -#define CCM_ACCESS_CTRL14_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL14_ROOT_CLR) -#define CCM_ACCESS_CTRL14_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL14_ROOT_TOG) -#define CCM_TARGET_ROOT15_REG(base) ((base)->TARGET_ROOT15) -#define CCM_TARGET_ROOT15_SET_REG(base) ((base)->TARGET_ROOT15_SET) -#define CCM_TARGET_ROOT15_CLR_REG(base) ((base)->TARGET_ROOT15_CLR) -#define CCM_TARGET_ROOT15_TOG_REG(base) ((base)->TARGET_ROOT15_TOG) -#define CCM_POST15_REG(base) ((base)->POST15) -#define CCM_POST_ROOT15_SET_REG(base) ((base)->POST_ROOT15_SET) -#define CCM_POST_ROOT15_CLR_REG(base) ((base)->POST_ROOT15_CLR) -#define CCM_POST_ROOT15_TOG_REG(base) ((base)->POST_ROOT15_TOG) -#define CCM_PRE15_REG(base) ((base)->PRE15) -#define CCM_PRE_ROOT15_SET_REG(base) ((base)->PRE_ROOT15_SET) -#define CCM_PRE_ROOT15_CLR_REG(base) ((base)->PRE_ROOT15_CLR) -#define CCM_PRE_ROOT15_TOG_REG(base) ((base)->PRE_ROOT15_TOG) -#define CCM_ACCESS_CTRL15_REG(base) ((base)->ACCESS_CTRL15) -#define CCM_ACCESS_CTRL15_ROOT_SET_REG(base) ((base)->ACCESS_CTRL15_ROOT_SET) -#define CCM_ACCESS_CTRL15_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL15_ROOT_CLR) -#define CCM_ACCESS_CTRL15_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL15_ROOT_TOG) -#define CCM_TARGET_ROOT16_REG(base) ((base)->TARGET_ROOT16) -#define CCM_TARGET_ROOT16_SET_REG(base) ((base)->TARGET_ROOT16_SET) -#define CCM_TARGET_ROOT16_CLR_REG(base) ((base)->TARGET_ROOT16_CLR) -#define CCM_TARGET_ROOT16_TOG_REG(base) ((base)->TARGET_ROOT16_TOG) -#define CCM_POST16_REG(base) ((base)->POST16) -#define CCM_POST_ROOT16_SET_REG(base) ((base)->POST_ROOT16_SET) -#define CCM_POST_ROOT16_CLR_REG(base) ((base)->POST_ROOT16_CLR) -#define CCM_POST_ROOT16_TOG_REG(base) ((base)->POST_ROOT16_TOG) -#define CCM_PRE16_REG(base) ((base)->PRE16) -#define CCM_PRE_ROOT16_SET_REG(base) ((base)->PRE_ROOT16_SET) -#define CCM_PRE_ROOT16_CLR_REG(base) ((base)->PRE_ROOT16_CLR) -#define CCM_PRE_ROOT16_TOG_REG(base) ((base)->PRE_ROOT16_TOG) -#define CCM_ACCESS_CTRL16_REG(base) ((base)->ACCESS_CTRL16) -#define CCM_ACCESS_CTRL16_ROOT_SET_REG(base) ((base)->ACCESS_CTRL16_ROOT_SET) -#define CCM_ACCESS_CTRL16_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL16_ROOT_CLR) -#define CCM_ACCESS_CTRL16_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL16_ROOT_TOG) -#define CCM_TARGET_ROOT17_REG(base) ((base)->TARGET_ROOT17) -#define CCM_TARGET_ROOT17_SET_REG(base) ((base)->TARGET_ROOT17_SET) -#define CCM_TARGET_ROOT17_CLR_REG(base) ((base)->TARGET_ROOT17_CLR) -#define CCM_TARGET_ROOT17_TOG_REG(base) ((base)->TARGET_ROOT17_TOG) -#define CCM_POST17_REG(base) ((base)->POST17) -#define CCM_POST_ROOT17_SET_REG(base) ((base)->POST_ROOT17_SET) -#define CCM_POST_ROOT17_CLR_REG(base) ((base)->POST_ROOT17_CLR) -#define CCM_POST_ROOT17_TOG_REG(base) ((base)->POST_ROOT17_TOG) -#define CCM_PRE17_REG(base) ((base)->PRE17) -#define CCM_PRE_ROOT17_SET_REG(base) ((base)->PRE_ROOT17_SET) -#define CCM_PRE_ROOT17_CLR_REG(base) ((base)->PRE_ROOT17_CLR) -#define CCM_PRE_ROOT17_TOG_REG(base) ((base)->PRE_ROOT17_TOG) -#define CCM_ACCESS_CTRL17_REG(base) ((base)->ACCESS_CTRL17) -#define CCM_ACCESS_CTRL17_ROOT_SET_REG(base) ((base)->ACCESS_CTRL17_ROOT_SET) -#define CCM_ACCESS_CTRL17_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL17_ROOT_CLR) -#define CCM_ACCESS_CTRL17_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL17_ROOT_TOG) -#define CCM_TARGET_ROOT18_REG(base) ((base)->TARGET_ROOT18) -#define CCM_TARGET_ROOT18_SET_REG(base) ((base)->TARGET_ROOT18_SET) -#define CCM_TARGET_ROOT18_CLR_REG(base) ((base)->TARGET_ROOT18_CLR) -#define CCM_TARGET_ROOT18_TOG_REG(base) ((base)->TARGET_ROOT18_TOG) -#define CCM_POST18_REG(base) ((base)->POST18) -#define CCM_POST_ROOT18_SET_REG(base) ((base)->POST_ROOT18_SET) -#define CCM_POST_ROOT18_CLR_REG(base) ((base)->POST_ROOT18_CLR) -#define CCM_POST_ROOT18_TOG_REG(base) ((base)->POST_ROOT18_TOG) -#define CCM_PRE18_REG(base) ((base)->PRE18) -#define CCM_PRE_ROOT18_SET_REG(base) ((base)->PRE_ROOT18_SET) -#define CCM_PRE_ROOT18_CLR_REG(base) ((base)->PRE_ROOT18_CLR) -#define CCM_PRE_ROOT18_TOG_REG(base) ((base)->PRE_ROOT18_TOG) -#define CCM_ACCESS_CTRL18_REG(base) ((base)->ACCESS_CTRL18) -#define CCM_ACCESS_CTRL18_ROOT_SET_REG(base) ((base)->ACCESS_CTRL18_ROOT_SET) -#define CCM_ACCESS_CTRL18_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL18_ROOT_CLR) -#define CCM_ACCESS_CTRL18_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL18_ROOT_TOG) -#define CCM_TARGET_ROOT19_REG(base) ((base)->TARGET_ROOT19) -#define CCM_TARGET_ROOT19_SET_REG(base) ((base)->TARGET_ROOT19_SET) -#define CCM_TARGET_ROOT19_CLR_REG(base) ((base)->TARGET_ROOT19_CLR) -#define CCM_TARGET_ROOT19_TOG_REG(base) ((base)->TARGET_ROOT19_TOG) -#define CCM_POST19_REG(base) ((base)->POST19) -#define CCM_POST_ROOT19_SET_REG(base) ((base)->POST_ROOT19_SET) -#define CCM_POST_ROOT19_CLR_REG(base) ((base)->POST_ROOT19_CLR) -#define CCM_POST_ROOT19_TOG_REG(base) ((base)->POST_ROOT19_TOG) -#define CCM_PRE19_REG(base) ((base)->PRE19) -#define CCM_PRE_ROOT19_SET_REG(base) ((base)->PRE_ROOT19_SET) -#define CCM_PRE_ROOT19_CLR_REG(base) ((base)->PRE_ROOT19_CLR) -#define CCM_PRE_ROOT19_TOG_REG(base) ((base)->PRE_ROOT19_TOG) -#define CCM_ACCESS_CTRL19_REG(base) ((base)->ACCESS_CTRL19) -#define CCM_ACCESS_CTRL19_ROOT_SET_REG(base) ((base)->ACCESS_CTRL19_ROOT_SET) -#define CCM_ACCESS_CTRL19_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL19_ROOT_CLR) -#define CCM_ACCESS_CTRL19_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL19_ROOT_TOG) -#define CCM_TARGET_ROOT20_REG(base) ((base)->TARGET_ROOT20) -#define CCM_TARGET_ROOT20_SET_REG(base) ((base)->TARGET_ROOT20_SET) -#define CCM_TARGET_ROOT20_CLR_REG(base) ((base)->TARGET_ROOT20_CLR) -#define CCM_TARGET_ROOT20_TOG_REG(base) ((base)->TARGET_ROOT20_TOG) -#define CCM_POST20_REG(base) ((base)->POST20) -#define CCM_POST_ROOT20_SET_REG(base) ((base)->POST_ROOT20_SET) -#define CCM_POST_ROOT20_CLR_REG(base) ((base)->POST_ROOT20_CLR) -#define CCM_POST_ROOT20_TOG_REG(base) ((base)->POST_ROOT20_TOG) -#define CCM_PRE20_REG(base) ((base)->PRE20) -#define CCM_PRE_ROOT20_SET_REG(base) ((base)->PRE_ROOT20_SET) -#define CCM_PRE_ROOT20_CLR_REG(base) ((base)->PRE_ROOT20_CLR) -#define CCM_PRE_ROOT20_TOG_REG(base) ((base)->PRE_ROOT20_TOG) -#define CCM_ACCESS_CTRL20_REG(base) ((base)->ACCESS_CTRL20) -#define CCM_ACCESS_CTRL20_ROOT_SET_REG(base) ((base)->ACCESS_CTRL20_ROOT_SET) -#define CCM_ACCESS_CTRL20_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL20_ROOT_CLR) -#define CCM_ACCESS_CTRL20_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL20_ROOT_TOG) -#define CCM_TARGET_ROOT21_REG(base) ((base)->TARGET_ROOT21) -#define CCM_TARGET_ROOT21_SET_REG(base) ((base)->TARGET_ROOT21_SET) -#define CCM_TARGET_ROOT21_CLR_REG(base) ((base)->TARGET_ROOT21_CLR) -#define CCM_TARGET_ROOT21_TOG_REG(base) ((base)->TARGET_ROOT21_TOG) -#define CCM_POST21_REG(base) ((base)->POST21) -#define CCM_POST_ROOT21_SET_REG(base) ((base)->POST_ROOT21_SET) -#define CCM_POST_ROOT21_CLR_REG(base) ((base)->POST_ROOT21_CLR) -#define CCM_POST_ROOT21_TOG_REG(base) ((base)->POST_ROOT21_TOG) -#define CCM_PRE21_REG(base) ((base)->PRE21) -#define CCM_PRE_ROOT21_SET_REG(base) ((base)->PRE_ROOT21_SET) -#define CCM_PRE_ROOT21_CLR_REG(base) ((base)->PRE_ROOT21_CLR) -#define CCM_PRE_ROOT21_TOG_REG(base) ((base)->PRE_ROOT21_TOG) -#define CCM_ACCESS_CTRL21_REG(base) ((base)->ACCESS_CTRL21) -#define CCM_ACCESS_CTRL21_ROOT_SET_REG(base) ((base)->ACCESS_CTRL21_ROOT_SET) -#define CCM_ACCESS_CTRL21_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL21_ROOT_CLR) -#define CCM_ACCESS_CTRL21_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL21_ROOT_TOG) -#define CCM_TARGET_ROOT22_REG(base) ((base)->TARGET_ROOT22) -#define CCM_TARGET_ROOT22_SET_REG(base) ((base)->TARGET_ROOT22_SET) -#define CCM_TARGET_ROOT22_CLR_REG(base) ((base)->TARGET_ROOT22_CLR) -#define CCM_TARGET_ROOT22_TOG_REG(base) ((base)->TARGET_ROOT22_TOG) -#define CCM_POST22_REG(base) ((base)->POST22) -#define CCM_POST_ROOT22_SET_REG(base) ((base)->POST_ROOT22_SET) -#define CCM_POST_ROOT22_CLR_REG(base) ((base)->POST_ROOT22_CLR) -#define CCM_POST_ROOT22_TOG_REG(base) ((base)->POST_ROOT22_TOG) -#define CCM_PRE22_REG(base) ((base)->PRE22) -#define CCM_PRE_ROOT22_SET_REG(base) ((base)->PRE_ROOT22_SET) -#define CCM_PRE_ROOT22_CLR_REG(base) ((base)->PRE_ROOT22_CLR) -#define CCM_PRE_ROOT22_TOG_REG(base) ((base)->PRE_ROOT22_TOG) -#define CCM_ACCESS_CTRL22_REG(base) ((base)->ACCESS_CTRL22) -#define CCM_ACCESS_CTRL22_ROOT_SET_REG(base) ((base)->ACCESS_CTRL22_ROOT_SET) -#define CCM_ACCESS_CTRL22_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL22_ROOT_CLR) -#define CCM_ACCESS_CTRL22_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL22_ROOT_TOG) -#define CCM_TARGET_ROOT23_REG(base) ((base)->TARGET_ROOT23) -#define CCM_TARGET_ROOT23_SET_REG(base) ((base)->TARGET_ROOT23_SET) -#define CCM_TARGET_ROOT23_CLR_REG(base) ((base)->TARGET_ROOT23_CLR) -#define CCM_TARGET_ROOT23_TOG_REG(base) ((base)->TARGET_ROOT23_TOG) -#define CCM_POST23_REG(base) ((base)->POST23) -#define CCM_POST_ROOT23_SET_REG(base) ((base)->POST_ROOT23_SET) -#define CCM_POST_ROOT23_CLR_REG(base) ((base)->POST_ROOT23_CLR) -#define CCM_POST_ROOT23_TOG_REG(base) ((base)->POST_ROOT23_TOG) -#define CCM_PRE23_REG(base) ((base)->PRE23) -#define CCM_PRE_ROOT23_SET_REG(base) ((base)->PRE_ROOT23_SET) -#define CCM_PRE_ROOT23_CLR_REG(base) ((base)->PRE_ROOT23_CLR) -#define CCM_PRE_ROOT23_TOG_REG(base) ((base)->PRE_ROOT23_TOG) -#define CCM_ACCESS_CTRL23_REG(base) ((base)->ACCESS_CTRL23) -#define CCM_ACCESS_CTRL23_ROOT_SET_REG(base) ((base)->ACCESS_CTRL23_ROOT_SET) -#define CCM_ACCESS_CTRL23_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL23_ROOT_CLR) -#define CCM_ACCESS_CTRL23_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL23_ROOT_TOG) -#define CCM_TARGET_ROOT24_REG(base) ((base)->TARGET_ROOT24) -#define CCM_TARGET_ROOT24_SET_REG(base) ((base)->TARGET_ROOT24_SET) -#define CCM_TARGET_ROOT24_CLR_REG(base) ((base)->TARGET_ROOT24_CLR) -#define CCM_TARGET_ROOT24_TOG_REG(base) ((base)->TARGET_ROOT24_TOG) -#define CCM_POST24_REG(base) ((base)->POST24) -#define CCM_POST_ROOT24_SET_REG(base) ((base)->POST_ROOT24_SET) -#define CCM_POST_ROOT24_CLR_REG(base) ((base)->POST_ROOT24_CLR) -#define CCM_POST_ROOT24_TOG_REG(base) ((base)->POST_ROOT24_TOG) -#define CCM_PRE24_REG(base) ((base)->PRE24) -#define CCM_PRE_ROOT24_SET_REG(base) ((base)->PRE_ROOT24_SET) -#define CCM_PRE_ROOT24_CLR_REG(base) ((base)->PRE_ROOT24_CLR) -#define CCM_PRE_ROOT24_TOG_REG(base) ((base)->PRE_ROOT24_TOG) -#define CCM_ACCESS_CTRL24_REG(base) ((base)->ACCESS_CTRL24) -#define CCM_ACCESS_CTRL24_ROOT_SET_REG(base) ((base)->ACCESS_CTRL24_ROOT_SET) -#define CCM_ACCESS_CTRL24_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL24_ROOT_CLR) -#define CCM_ACCESS_CTRL24_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL24_ROOT_TOG) -#define CCM_TARGET_ROOT25_REG(base) ((base)->TARGET_ROOT25) -#define CCM_TARGET_ROOT25_SET_REG(base) ((base)->TARGET_ROOT25_SET) -#define CCM_TARGET_ROOT25_CLR_REG(base) ((base)->TARGET_ROOT25_CLR) -#define CCM_TARGET_ROOT25_TOG_REG(base) ((base)->TARGET_ROOT25_TOG) -#define CCM_POST25_REG(base) ((base)->POST25) -#define CCM_POST_ROOT25_SET_REG(base) ((base)->POST_ROOT25_SET) -#define CCM_POST_ROOT25_CLR_REG(base) ((base)->POST_ROOT25_CLR) -#define CCM_POST_ROOT25_TOG_REG(base) ((base)->POST_ROOT25_TOG) -#define CCM_PRE25_REG(base) ((base)->PRE25) -#define CCM_PRE_ROOT25_SET_REG(base) ((base)->PRE_ROOT25_SET) -#define CCM_PRE_ROOT25_CLR_REG(base) ((base)->PRE_ROOT25_CLR) -#define CCM_PRE_ROOT25_TOG_REG(base) ((base)->PRE_ROOT25_TOG) -#define CCM_ACCESS_CTRL25_REG(base) ((base)->ACCESS_CTRL25) -#define CCM_ACCESS_CTRL25_ROOT_SET_REG(base) ((base)->ACCESS_CTRL25_ROOT_SET) -#define CCM_ACCESS_CTRL25_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL25_ROOT_CLR) -#define CCM_ACCESS_CTRL25_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL25_ROOT_TOG) -#define CCM_TARGET_ROOT26_REG(base) ((base)->TARGET_ROOT26) -#define CCM_TARGET_ROOT26_SET_REG(base) ((base)->TARGET_ROOT26_SET) -#define CCM_TARGET_ROOT26_CLR_REG(base) ((base)->TARGET_ROOT26_CLR) -#define CCM_TARGET_ROOT26_TOG_REG(base) ((base)->TARGET_ROOT26_TOG) -#define CCM_POST26_REG(base) ((base)->POST26) -#define CCM_POST_ROOT26_SET_REG(base) ((base)->POST_ROOT26_SET) -#define CCM_POST_ROOT26_CLR_REG(base) ((base)->POST_ROOT26_CLR) -#define CCM_POST_ROOT26_TOG_REG(base) ((base)->POST_ROOT26_TOG) -#define CCM_PRE26_REG(base) ((base)->PRE26) -#define CCM_PRE_ROOT26_SET_REG(base) ((base)->PRE_ROOT26_SET) -#define CCM_PRE_ROOT26_CLR_REG(base) ((base)->PRE_ROOT26_CLR) -#define CCM_PRE_ROOT26_TOG_REG(base) ((base)->PRE_ROOT26_TOG) -#define CCM_ACCESS_CTRL26_REG(base) ((base)->ACCESS_CTRL26) -#define CCM_ACCESS_CTRL26_ROOT_SET_REG(base) ((base)->ACCESS_CTRL26_ROOT_SET) -#define CCM_ACCESS_CTRL26_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL26_ROOT_CLR) -#define CCM_ACCESS_CTRL26_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL26_ROOT_TOG) -#define CCM_TARGET_ROOT27_REG(base) ((base)->TARGET_ROOT27) -#define CCM_TARGET_ROOT27_SET_REG(base) ((base)->TARGET_ROOT27_SET) -#define CCM_TARGET_ROOT27_CLR_REG(base) ((base)->TARGET_ROOT27_CLR) -#define CCM_TARGET_ROOT27_TOG_REG(base) ((base)->TARGET_ROOT27_TOG) -#define CCM_POST27_REG(base) ((base)->POST27) -#define CCM_POST_ROOT27_SET_REG(base) ((base)->POST_ROOT27_SET) -#define CCM_POST_ROOT27_CLR_REG(base) ((base)->POST_ROOT27_CLR) -#define CCM_POST_ROOT27_TOG_REG(base) ((base)->POST_ROOT27_TOG) -#define CCM_PRE27_REG(base) ((base)->PRE27) -#define CCM_PRE_ROOT27_SET_REG(base) ((base)->PRE_ROOT27_SET) -#define CCM_PRE_ROOT27_CLR_REG(base) ((base)->PRE_ROOT27_CLR) -#define CCM_PRE_ROOT27_TOG_REG(base) ((base)->PRE_ROOT27_TOG) -#define CCM_ACCESS_CTRL27_REG(base) ((base)->ACCESS_CTRL27) -#define CCM_ACCESS_CTRL27_ROOT_SET_REG(base) ((base)->ACCESS_CTRL27_ROOT_SET) -#define CCM_ACCESS_CTRL27_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL27_ROOT_CLR) -#define CCM_ACCESS_CTRL27_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL27_ROOT_TOG) -#define CCM_TARGET_ROOT28_REG(base) ((base)->TARGET_ROOT28) -#define CCM_TARGET_ROOT28_SET_REG(base) ((base)->TARGET_ROOT28_SET) -#define CCM_TARGET_ROOT28_CLR_REG(base) ((base)->TARGET_ROOT28_CLR) -#define CCM_TARGET_ROOT28_TOG_REG(base) ((base)->TARGET_ROOT28_TOG) -#define CCM_POST28_REG(base) ((base)->POST28) -#define CCM_POST_ROOT28_SET_REG(base) ((base)->POST_ROOT28_SET) -#define CCM_POST_ROOT28_CLR_REG(base) ((base)->POST_ROOT28_CLR) -#define CCM_POST_ROOT28_TOG_REG(base) ((base)->POST_ROOT28_TOG) -#define CCM_PRE28_REG(base) ((base)->PRE28) -#define CCM_PRE_ROOT28_SET_REG(base) ((base)->PRE_ROOT28_SET) -#define CCM_PRE_ROOT28_CLR_REG(base) ((base)->PRE_ROOT28_CLR) -#define CCM_PRE_ROOT28_TOG_REG(base) ((base)->PRE_ROOT28_TOG) -#define CCM_ACCESS_CTRL28_REG(base) ((base)->ACCESS_CTRL28) -#define CCM_ACCESS_CTRL28_ROOT_SET_REG(base) ((base)->ACCESS_CTRL28_ROOT_SET) -#define CCM_ACCESS_CTRL28_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL28_ROOT_CLR) -#define CCM_ACCESS_CTRL28_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL28_ROOT_TOG) -#define CCM_TARGET_ROOT29_REG(base) ((base)->TARGET_ROOT29) -#define CCM_TARGET_ROOT29_SET_REG(base) ((base)->TARGET_ROOT29_SET) -#define CCM_TARGET_ROOT29_CLR_REG(base) ((base)->TARGET_ROOT29_CLR) -#define CCM_TARGET_ROOT29_TOG_REG(base) ((base)->TARGET_ROOT29_TOG) -#define CCM_POST29_REG(base) ((base)->POST29) -#define CCM_POST_ROOT29_SET_REG(base) ((base)->POST_ROOT29_SET) -#define CCM_POST_ROOT29_CLR_REG(base) ((base)->POST_ROOT29_CLR) -#define CCM_POST_ROOT29_TOG_REG(base) ((base)->POST_ROOT29_TOG) -#define CCM_PRE29_REG(base) ((base)->PRE29) -#define CCM_PRE_ROOT29_SET_REG(base) ((base)->PRE_ROOT29_SET) -#define CCM_PRE_ROOT29_CLR_REG(base) ((base)->PRE_ROOT29_CLR) -#define CCM_PRE_ROOT29_TOG_REG(base) ((base)->PRE_ROOT29_TOG) -#define CCM_ACCESS_CTRL29_REG(base) ((base)->ACCESS_CTRL29) -#define CCM_ACCESS_CTRL29_ROOT_SET_REG(base) ((base)->ACCESS_CTRL29_ROOT_SET) -#define CCM_ACCESS_CTRL29_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL29_ROOT_CLR) -#define CCM_ACCESS_CTRL29_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL29_ROOT_TOG) -#define CCM_TARGET_ROOT30_REG(base) ((base)->TARGET_ROOT30) -#define CCM_TARGET_ROOT30_SET_REG(base) ((base)->TARGET_ROOT30_SET) -#define CCM_TARGET_ROOT30_CLR_REG(base) ((base)->TARGET_ROOT30_CLR) -#define CCM_TARGET_ROOT30_TOG_REG(base) ((base)->TARGET_ROOT30_TOG) -#define CCM_POST30_REG(base) ((base)->POST30) -#define CCM_POST_ROOT30_SET_REG(base) ((base)->POST_ROOT30_SET) -#define CCM_POST_ROOT30_CLR_REG(base) ((base)->POST_ROOT30_CLR) -#define CCM_POST_ROOT30_TOG_REG(base) ((base)->POST_ROOT30_TOG) -#define CCM_PRE30_REG(base) ((base)->PRE30) -#define CCM_PRE_ROOT30_SET_REG(base) ((base)->PRE_ROOT30_SET) -#define CCM_PRE_ROOT30_CLR_REG(base) ((base)->PRE_ROOT30_CLR) -#define CCM_PRE_ROOT30_TOG_REG(base) ((base)->PRE_ROOT30_TOG) -#define CCM_ACCESS_CTRL30_REG(base) ((base)->ACCESS_CTRL30) -#define CCM_ACCESS_CTRL30_ROOT_SET_REG(base) ((base)->ACCESS_CTRL30_ROOT_SET) -#define CCM_ACCESS_CTRL30_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL30_ROOT_CLR) -#define CCM_ACCESS_CTRL30_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL30_ROOT_TOG) -#define CCM_TARGET_ROOT31_REG(base) ((base)->TARGET_ROOT31) -#define CCM_TARGET_ROOT31_SET_REG(base) ((base)->TARGET_ROOT31_SET) -#define CCM_TARGET_ROOT31_CLR_REG(base) ((base)->TARGET_ROOT31_CLR) -#define CCM_TARGET_ROOT31_TOG_REG(base) ((base)->TARGET_ROOT31_TOG) -#define CCM_POST31_REG(base) ((base)->POST31) -#define CCM_POST_ROOT31_SET_REG(base) ((base)->POST_ROOT31_SET) -#define CCM_POST_ROOT31_CLR_REG(base) ((base)->POST_ROOT31_CLR) -#define CCM_POST_ROOT31_TOG_REG(base) ((base)->POST_ROOT31_TOG) -#define CCM_PRE31_REG(base) ((base)->PRE31) -#define CCM_PRE_ROOT31_SET_REG(base) ((base)->PRE_ROOT31_SET) -#define CCM_PRE_ROOT31_CLR_REG(base) ((base)->PRE_ROOT31_CLR) -#define CCM_PRE_ROOT31_TOG_REG(base) ((base)->PRE_ROOT31_TOG) -#define CCM_ACCESS_CTRL31_REG(base) ((base)->ACCESS_CTRL31) -#define CCM_ACCESS_CTRL31_ROOT_SET_REG(base) ((base)->ACCESS_CTRL31_ROOT_SET) -#define CCM_ACCESS_CTRL31_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL31_ROOT_CLR) -#define CCM_ACCESS_CTRL31_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL31_ROOT_TOG) -#define CCM_TARGET_ROOT32_REG(base) ((base)->TARGET_ROOT32) -#define CCM_TARGET_ROOT32_SET_REG(base) ((base)->TARGET_ROOT32_SET) -#define CCM_TARGET_ROOT32_CLR_REG(base) ((base)->TARGET_ROOT32_CLR) -#define CCM_TARGET_ROOT32_TOG_REG(base) ((base)->TARGET_ROOT32_TOG) -#define CCM_POST32_REG(base) ((base)->POST32) -#define CCM_POST_ROOT32_SET_REG(base) ((base)->POST_ROOT32_SET) -#define CCM_POST_ROOT32_CLR_REG(base) ((base)->POST_ROOT32_CLR) -#define CCM_POST_ROOT32_TOG_REG(base) ((base)->POST_ROOT32_TOG) -#define CCM_PRE32_REG(base) ((base)->PRE32) -#define CCM_PRE_ROOT32_SET_REG(base) ((base)->PRE_ROOT32_SET) -#define CCM_PRE_ROOT32_CLR_REG(base) ((base)->PRE_ROOT32_CLR) -#define CCM_PRE_ROOT32_TOG_REG(base) ((base)->PRE_ROOT32_TOG) -#define CCM_ACCESS_CTRL32_REG(base) ((base)->ACCESS_CTRL32) -#define CCM_ACCESS_CTRL32_ROOT_SET_REG(base) ((base)->ACCESS_CTRL32_ROOT_SET) -#define CCM_ACCESS_CTRL32_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL32_ROOT_CLR) -#define CCM_ACCESS_CTRL32_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL32_ROOT_TOG) -#define CCM_TARGET_ROOT33_REG(base) ((base)->TARGET_ROOT33) -#define CCM_TARGET_ROOT33_SET_REG(base) ((base)->TARGET_ROOT33_SET) -#define CCM_TARGET_ROOT33_CLR_REG(base) ((base)->TARGET_ROOT33_CLR) -#define CCM_TARGET_ROOT33_TOG_REG(base) ((base)->TARGET_ROOT33_TOG) -#define CCM_POST33_REG(base) ((base)->POST33) -#define CCM_POST_ROOT33_SET_REG(base) ((base)->POST_ROOT33_SET) -#define CCM_POST_ROOT33_CLR_REG(base) ((base)->POST_ROOT33_CLR) -#define CCM_POST_ROOT33_TOG_REG(base) ((base)->POST_ROOT33_TOG) -#define CCM_PRE33_REG(base) ((base)->PRE33) -#define CCM_PRE_ROOT33_SET_REG(base) ((base)->PRE_ROOT33_SET) -#define CCM_PRE_ROOT33_CLR_REG(base) ((base)->PRE_ROOT33_CLR) -#define CCM_PRE_ROOT33_TOG_REG(base) ((base)->PRE_ROOT33_TOG) -#define CCM_ACCESS_CTRL33_REG(base) ((base)->ACCESS_CTRL33) -#define CCM_ACCESS_CTRL33_ROOT_SET_REG(base) ((base)->ACCESS_CTRL33_ROOT_SET) -#define CCM_ACCESS_CTRL33_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL33_ROOT_CLR) -#define CCM_ACCESS_CTRL33_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL33_ROOT_TOG) -#define CCM_TARGET_ROOT34_REG(base) ((base)->TARGET_ROOT34) -#define CCM_TARGET_ROOT34_SET_REG(base) ((base)->TARGET_ROOT34_SET) -#define CCM_TARGET_ROOT34_CLR_REG(base) ((base)->TARGET_ROOT34_CLR) -#define CCM_TARGET_ROOT34_TOG_REG(base) ((base)->TARGET_ROOT34_TOG) -#define CCM_POST34_REG(base) ((base)->POST34) -#define CCM_POST_ROOT34_SET_REG(base) ((base)->POST_ROOT34_SET) -#define CCM_POST_ROOT34_CLR_REG(base) ((base)->POST_ROOT34_CLR) -#define CCM_POST_ROOT34_TOG_REG(base) ((base)->POST_ROOT34_TOG) -#define CCM_PRE34_REG(base) ((base)->PRE34) -#define CCM_PRE_ROOT34_SET_REG(base) ((base)->PRE_ROOT34_SET) -#define CCM_PRE_ROOT34_CLR_REG(base) ((base)->PRE_ROOT34_CLR) -#define CCM_PRE_ROOT34_TOG_REG(base) ((base)->PRE_ROOT34_TOG) -#define CCM_ACCESS_CTRL34_REG(base) ((base)->ACCESS_CTRL34) -#define CCM_ACCESS_CTRL34_ROOT_SET_REG(base) ((base)->ACCESS_CTRL34_ROOT_SET) -#define CCM_ACCESS_CTRL34_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL34_ROOT_CLR) -#define CCM_ACCESS_CTRL34_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL34_ROOT_TOG) -#define CCM_TARGET_ROOT35_REG(base) ((base)->TARGET_ROOT35) -#define CCM_TARGET_ROOT35_SET_REG(base) ((base)->TARGET_ROOT35_SET) -#define CCM_TARGET_ROOT35_CLR_REG(base) ((base)->TARGET_ROOT35_CLR) -#define CCM_TARGET_ROOT35_TOG_REG(base) ((base)->TARGET_ROOT35_TOG) -#define CCM_POST35_REG(base) ((base)->POST35) -#define CCM_POST_ROOT35_SET_REG(base) ((base)->POST_ROOT35_SET) -#define CCM_POST_ROOT35_CLR_REG(base) ((base)->POST_ROOT35_CLR) -#define CCM_POST_ROOT35_TOG_REG(base) ((base)->POST_ROOT35_TOG) -#define CCM_PRE35_REG(base) ((base)->PRE35) -#define CCM_PRE_ROOT35_SET_REG(base) ((base)->PRE_ROOT35_SET) -#define CCM_PRE_ROOT35_CLR_REG(base) ((base)->PRE_ROOT35_CLR) -#define CCM_PRE_ROOT35_TOG_REG(base) ((base)->PRE_ROOT35_TOG) -#define CCM_ACCESS_CTRL35_REG(base) ((base)->ACCESS_CTRL35) -#define CCM_ACCESS_CTRL35_ROOT_SET_REG(base) ((base)->ACCESS_CTRL35_ROOT_SET) -#define CCM_ACCESS_CTRL35_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL35_ROOT_CLR) -#define CCM_ACCESS_CTRL35_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL35_ROOT_TOG) -#define CCM_TARGET_ROOT36_REG(base) ((base)->TARGET_ROOT36) -#define CCM_TARGET_ROOT36_SET_REG(base) ((base)->TARGET_ROOT36_SET) -#define CCM_TARGET_ROOT36_CLR_REG(base) ((base)->TARGET_ROOT36_CLR) -#define CCM_TARGET_ROOT36_TOG_REG(base) ((base)->TARGET_ROOT36_TOG) -#define CCM_POST36_REG(base) ((base)->POST36) -#define CCM_POST_ROOT36_SET_REG(base) ((base)->POST_ROOT36_SET) -#define CCM_POST_ROOT36_CLR_REG(base) ((base)->POST_ROOT36_CLR) -#define CCM_POST_ROOT36_TOG_REG(base) ((base)->POST_ROOT36_TOG) -#define CCM_PRE36_REG(base) ((base)->PRE36) -#define CCM_PRE_ROOT36_SET_REG(base) ((base)->PRE_ROOT36_SET) -#define CCM_PRE_ROOT36_CLR_REG(base) ((base)->PRE_ROOT36_CLR) -#define CCM_PRE_ROOT36_TOG_REG(base) ((base)->PRE_ROOT36_TOG) -#define CCM_ACCESS_CTRL36_REG(base) ((base)->ACCESS_CTRL36) -#define CCM_ACCESS_CTRL36_ROOT_SET_REG(base) ((base)->ACCESS_CTRL36_ROOT_SET) -#define CCM_ACCESS_CTRL36_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL36_ROOT_CLR) -#define CCM_ACCESS_CTRL36_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL36_ROOT_TOG) -#define CCM_TARGET_ROOT37_REG(base) ((base)->TARGET_ROOT37) -#define CCM_TARGET_ROOT37_SET_REG(base) ((base)->TARGET_ROOT37_SET) -#define CCM_TARGET_ROOT37_CLR_REG(base) ((base)->TARGET_ROOT37_CLR) -#define CCM_TARGET_ROOT37_TOG_REG(base) ((base)->TARGET_ROOT37_TOG) -#define CCM_POST37_REG(base) ((base)->POST37) -#define CCM_POST_ROOT37_SET_REG(base) ((base)->POST_ROOT37_SET) -#define CCM_POST_ROOT37_CLR_REG(base) ((base)->POST_ROOT37_CLR) -#define CCM_POST_ROOT37_TOG_REG(base) ((base)->POST_ROOT37_TOG) -#define CCM_PRE37_REG(base) ((base)->PRE37) -#define CCM_PRE_ROOT37_SET_REG(base) ((base)->PRE_ROOT37_SET) -#define CCM_PRE_ROOT37_CLR_REG(base) ((base)->PRE_ROOT37_CLR) -#define CCM_PRE_ROOT37_TOG_REG(base) ((base)->PRE_ROOT37_TOG) -#define CCM_ACCESS_CTRL37_REG(base) ((base)->ACCESS_CTRL37) -#define CCM_ACCESS_CTRL37_ROOT_SET_REG(base) ((base)->ACCESS_CTRL37_ROOT_SET) -#define CCM_ACCESS_CTRL37_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL37_ROOT_CLR) -#define CCM_ACCESS_CTRL37_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL37_ROOT_TOG) -#define CCM_TARGET_ROOT38_REG(base) ((base)->TARGET_ROOT38) -#define CCM_TARGET_ROOT38_SET_REG(base) ((base)->TARGET_ROOT38_SET) -#define CCM_TARGET_ROOT38_CLR_REG(base) ((base)->TARGET_ROOT38_CLR) -#define CCM_TARGET_ROOT38_TOG_REG(base) ((base)->TARGET_ROOT38_TOG) -#define CCM_POST38_REG(base) ((base)->POST38) -#define CCM_POST_ROOT38_SET_REG(base) ((base)->POST_ROOT38_SET) -#define CCM_POST_ROOT38_CLR_REG(base) ((base)->POST_ROOT38_CLR) -#define CCM_POST_ROOT38_TOG_REG(base) ((base)->POST_ROOT38_TOG) -#define CCM_PRE38_REG(base) ((base)->PRE38) -#define CCM_PRE_ROOT38_SET_REG(base) ((base)->PRE_ROOT38_SET) -#define CCM_PRE_ROOT38_CLR_REG(base) ((base)->PRE_ROOT38_CLR) -#define CCM_PRE_ROOT38_TOG_REG(base) ((base)->PRE_ROOT38_TOG) -#define CCM_ACCESS_CTRL38_REG(base) ((base)->ACCESS_CTRL38) -#define CCM_ACCESS_CTRL38_ROOT_SET_REG(base) ((base)->ACCESS_CTRL38_ROOT_SET) -#define CCM_ACCESS_CTRL38_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL38_ROOT_CLR) -#define CCM_ACCESS_CTRL38_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL38_ROOT_TOG) -#define CCM_TARGET_ROOT39_REG(base) ((base)->TARGET_ROOT39) -#define CCM_TARGET_ROOT39_SET_REG(base) ((base)->TARGET_ROOT39_SET) -#define CCM_TARGET_ROOT39_CLR_REG(base) ((base)->TARGET_ROOT39_CLR) -#define CCM_TARGET_ROOT39_TOG_REG(base) ((base)->TARGET_ROOT39_TOG) -#define CCM_POST39_REG(base) ((base)->POST39) -#define CCM_POST_ROOT39_SET_REG(base) ((base)->POST_ROOT39_SET) -#define CCM_POST_ROOT39_CLR_REG(base) ((base)->POST_ROOT39_CLR) -#define CCM_POST_ROOT39_TOG_REG(base) ((base)->POST_ROOT39_TOG) -#define CCM_PRE39_REG(base) ((base)->PRE39) -#define CCM_PRE_ROOT39_SET_REG(base) ((base)->PRE_ROOT39_SET) -#define CCM_PRE_ROOT39_CLR_REG(base) ((base)->PRE_ROOT39_CLR) -#define CCM_PRE_ROOT39_TOG_REG(base) ((base)->PRE_ROOT39_TOG) -#define CCM_ACCESS_CTRL39_REG(base) ((base)->ACCESS_CTRL39) -#define CCM_ACCESS_CTRL39_ROOT_SET_REG(base) ((base)->ACCESS_CTRL39_ROOT_SET) -#define CCM_ACCESS_CTRL39_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL39_ROOT_CLR) -#define CCM_ACCESS_CTRL39_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL39_ROOT_TOG) -#define CCM_TARGET_ROOT40_REG(base) ((base)->TARGET_ROOT40) -#define CCM_TARGET_ROOT40_SET_REG(base) ((base)->TARGET_ROOT40_SET) -#define CCM_TARGET_ROOT40_CLR_REG(base) ((base)->TARGET_ROOT40_CLR) -#define CCM_TARGET_ROOT40_TOG_REG(base) ((base)->TARGET_ROOT40_TOG) -#define CCM_POST40_REG(base) ((base)->POST40) -#define CCM_POST_ROOT40_SET_REG(base) ((base)->POST_ROOT40_SET) -#define CCM_POST_ROOT40_CLR_REG(base) ((base)->POST_ROOT40_CLR) -#define CCM_POST_ROOT40_TOG_REG(base) ((base)->POST_ROOT40_TOG) -#define CCM_PRE40_REG(base) ((base)->PRE40) -#define CCM_PRE_ROOT40_SET_REG(base) ((base)->PRE_ROOT40_SET) -#define CCM_PRE_ROOT40_CLR_REG(base) ((base)->PRE_ROOT40_CLR) -#define CCM_PRE_ROOT40_TOG_REG(base) ((base)->PRE_ROOT40_TOG) -#define CCM_ACCESS_CTRL40_REG(base) ((base)->ACCESS_CTRL40) -#define CCM_ACCESS_CTRL40_ROOT_SET_REG(base) ((base)->ACCESS_CTRL40_ROOT_SET) -#define CCM_ACCESS_CTRL40_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL40_ROOT_CLR) -#define CCM_ACCESS_CTRL40_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL40_ROOT_TOG) -#define CCM_TARGET_ROOT41_REG(base) ((base)->TARGET_ROOT41) -#define CCM_TARGET_ROOT41_SET_REG(base) ((base)->TARGET_ROOT41_SET) -#define CCM_TARGET_ROOT41_CLR_REG(base) ((base)->TARGET_ROOT41_CLR) -#define CCM_TARGET_ROOT41_TOG_REG(base) ((base)->TARGET_ROOT41_TOG) -#define CCM_POST41_REG(base) ((base)->POST41) -#define CCM_POST_ROOT41_SET_REG(base) ((base)->POST_ROOT41_SET) -#define CCM_POST_ROOT41_CLR_REG(base) ((base)->POST_ROOT41_CLR) -#define CCM_POST_ROOT41_TOG_REG(base) ((base)->POST_ROOT41_TOG) -#define CCM_PRE41_REG(base) ((base)->PRE41) -#define CCM_PRE_ROOT41_SET_REG(base) ((base)->PRE_ROOT41_SET) -#define CCM_PRE_ROOT41_CLR_REG(base) ((base)->PRE_ROOT41_CLR) -#define CCM_PRE_ROOT41_TOG_REG(base) ((base)->PRE_ROOT41_TOG) -#define CCM_ACCESS_CTRL41_REG(base) ((base)->ACCESS_CTRL41) -#define CCM_ACCESS_CTRL41_ROOT_SET_REG(base) ((base)->ACCESS_CTRL41_ROOT_SET) -#define CCM_ACCESS_CTRL41_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL41_ROOT_CLR) -#define CCM_ACCESS_CTRL41_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL41_ROOT_TOG) -#define CCM_TARGET_ROOT42_REG(base) ((base)->TARGET_ROOT42) -#define CCM_TARGET_ROOT42_SET_REG(base) ((base)->TARGET_ROOT42_SET) -#define CCM_TARGET_ROOT42_CLR_REG(base) ((base)->TARGET_ROOT42_CLR) -#define CCM_TARGET_ROOT42_TOG_REG(base) ((base)->TARGET_ROOT42_TOG) -#define CCM_POST42_REG(base) ((base)->POST42) -#define CCM_POST_ROOT42_SET_REG(base) ((base)->POST_ROOT42_SET) -#define CCM_POST_ROOT42_CLR_REG(base) ((base)->POST_ROOT42_CLR) -#define CCM_POST_ROOT42_TOG_REG(base) ((base)->POST_ROOT42_TOG) -#define CCM_PRE42_REG(base) ((base)->PRE42) -#define CCM_PRE_ROOT42_SET_REG(base) ((base)->PRE_ROOT42_SET) -#define CCM_PRE_ROOT42_CLR_REG(base) ((base)->PRE_ROOT42_CLR) -#define CCM_PRE_ROOT42_TOG_REG(base) ((base)->PRE_ROOT42_TOG) -#define CCM_ACCESS_CTRL42_REG(base) ((base)->ACCESS_CTRL42) -#define CCM_ACCESS_CTRL42_ROOT_SET_REG(base) ((base)->ACCESS_CTRL42_ROOT_SET) -#define CCM_ACCESS_CTRL42_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL42_ROOT_CLR) -#define CCM_ACCESS_CTRL42_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL42_ROOT_TOG) -#define CCM_TARGET_ROOT43_REG(base) ((base)->TARGET_ROOT43) -#define CCM_TARGET_ROOT43_SET_REG(base) ((base)->TARGET_ROOT43_SET) -#define CCM_TARGET_ROOT43_CLR_REG(base) ((base)->TARGET_ROOT43_CLR) -#define CCM_TARGET_ROOT43_TOG_REG(base) ((base)->TARGET_ROOT43_TOG) -#define CCM_POST43_REG(base) ((base)->POST43) -#define CCM_POST_ROOT43_SET_REG(base) ((base)->POST_ROOT43_SET) -#define CCM_POST_ROOT43_CLR_REG(base) ((base)->POST_ROOT43_CLR) -#define CCM_POST_ROOT43_TOG_REG(base) ((base)->POST_ROOT43_TOG) -#define CCM_PRE43_REG(base) ((base)->PRE43) -#define CCM_PRE_ROOT43_SET_REG(base) ((base)->PRE_ROOT43_SET) -#define CCM_PRE_ROOT43_CLR_REG(base) ((base)->PRE_ROOT43_CLR) -#define CCM_PRE_ROOT43_TOG_REG(base) ((base)->PRE_ROOT43_TOG) -#define CCM_ACCESS_CTRL43_REG(base) ((base)->ACCESS_CTRL43) -#define CCM_ACCESS_CTRL43_ROOT_SET_REG(base) ((base)->ACCESS_CTRL43_ROOT_SET) -#define CCM_ACCESS_CTRL43_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL43_ROOT_CLR) -#define CCM_ACCESS_CTRL43_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL43_ROOT_TOG) -#define CCM_TARGET_ROOT44_REG(base) ((base)->TARGET_ROOT44) -#define CCM_TARGET_ROOT44_SET_REG(base) ((base)->TARGET_ROOT44_SET) -#define CCM_TARGET_ROOT44_CLR_REG(base) ((base)->TARGET_ROOT44_CLR) -#define CCM_TARGET_ROOT44_TOG_REG(base) ((base)->TARGET_ROOT44_TOG) -#define CCM_POST44_REG(base) ((base)->POST44) -#define CCM_POST_ROOT44_SET_REG(base) ((base)->POST_ROOT44_SET) -#define CCM_POST_ROOT44_CLR_REG(base) ((base)->POST_ROOT44_CLR) -#define CCM_POST_ROOT44_TOG_REG(base) ((base)->POST_ROOT44_TOG) -#define CCM_PRE44_REG(base) ((base)->PRE44) -#define CCM_PRE_ROOT44_SET_REG(base) ((base)->PRE_ROOT44_SET) -#define CCM_PRE_ROOT44_CLR_REG(base) ((base)->PRE_ROOT44_CLR) -#define CCM_PRE_ROOT44_TOG_REG(base) ((base)->PRE_ROOT44_TOG) -#define CCM_ACCESS_CTRL44_REG(base) ((base)->ACCESS_CTRL44) -#define CCM_ACCESS_CTRL44_ROOT_SET_REG(base) ((base)->ACCESS_CTRL44_ROOT_SET) -#define CCM_ACCESS_CTRL44_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL44_ROOT_CLR) -#define CCM_ACCESS_CTRL44_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL44_ROOT_TOG) -#define CCM_TARGET_ROOT45_REG(base) ((base)->TARGET_ROOT45) -#define CCM_TARGET_ROOT45_SET_REG(base) ((base)->TARGET_ROOT45_SET) -#define CCM_TARGET_ROOT45_CLR_REG(base) ((base)->TARGET_ROOT45_CLR) -#define CCM_TARGET_ROOT45_TOG_REG(base) ((base)->TARGET_ROOT45_TOG) -#define CCM_POST45_REG(base) ((base)->POST45) -#define CCM_POST_ROOT45_SET_REG(base) ((base)->POST_ROOT45_SET) -#define CCM_POST_ROOT45_CLR_REG(base) ((base)->POST_ROOT45_CLR) -#define CCM_POST_ROOT45_TOG_REG(base) ((base)->POST_ROOT45_TOG) -#define CCM_PRE45_REG(base) ((base)->PRE45) -#define CCM_PRE_ROOT45_SET_REG(base) ((base)->PRE_ROOT45_SET) -#define CCM_PRE_ROOT45_CLR_REG(base) ((base)->PRE_ROOT45_CLR) -#define CCM_PRE_ROOT45_TOG_REG(base) ((base)->PRE_ROOT45_TOG) -#define CCM_ACCESS_CTRL45_REG(base) ((base)->ACCESS_CTRL45) -#define CCM_ACCESS_CTRL45_ROOT_SET_REG(base) ((base)->ACCESS_CTRL45_ROOT_SET) -#define CCM_ACCESS_CTRL45_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL45_ROOT_CLR) -#define CCM_ACCESS_CTRL45_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL45_ROOT_TOG) -#define CCM_TARGET_ROOT46_REG(base) ((base)->TARGET_ROOT46) -#define CCM_TARGET_ROOT46_SET_REG(base) ((base)->TARGET_ROOT46_SET) -#define CCM_TARGET_ROOT46_CLR_REG(base) ((base)->TARGET_ROOT46_CLR) -#define CCM_TARGET_ROOT46_TOG_REG(base) ((base)->TARGET_ROOT46_TOG) -#define CCM_POST46_REG(base) ((base)->POST46) -#define CCM_POST_ROOT46_SET_REG(base) ((base)->POST_ROOT46_SET) -#define CCM_POST_ROOT46_CLR_REG(base) ((base)->POST_ROOT46_CLR) -#define CCM_POST_ROOT46_TOG_REG(base) ((base)->POST_ROOT46_TOG) -#define CCM_PRE46_REG(base) ((base)->PRE46) -#define CCM_PRE_ROOT46_SET_REG(base) ((base)->PRE_ROOT46_SET) -#define CCM_PRE_ROOT46_CLR_REG(base) ((base)->PRE_ROOT46_CLR) -#define CCM_PRE_ROOT46_TOG_REG(base) ((base)->PRE_ROOT46_TOG) -#define CCM_ACCESS_CTRL46_REG(base) ((base)->ACCESS_CTRL46) -#define CCM_ACCESS_CTRL46_ROOT_SET_REG(base) ((base)->ACCESS_CTRL46_ROOT_SET) -#define CCM_ACCESS_CTRL46_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL46_ROOT_CLR) -#define CCM_ACCESS_CTRL46_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL46_ROOT_TOG) -#define CCM_TARGET_ROOT47_REG(base) ((base)->TARGET_ROOT47) -#define CCM_TARGET_ROOT47_SET_REG(base) ((base)->TARGET_ROOT47_SET) -#define CCM_TARGET_ROOT47_CLR_REG(base) ((base)->TARGET_ROOT47_CLR) -#define CCM_TARGET_ROOT47_TOG_REG(base) ((base)->TARGET_ROOT47_TOG) -#define CCM_POST47_REG(base) ((base)->POST47) -#define CCM_POST_ROOT47_SET_REG(base) ((base)->POST_ROOT47_SET) -#define CCM_POST_ROOT47_CLR_REG(base) ((base)->POST_ROOT47_CLR) -#define CCM_POST_ROOT47_TOG_REG(base) ((base)->POST_ROOT47_TOG) -#define CCM_PRE47_REG(base) ((base)->PRE47) -#define CCM_PRE_ROOT47_SET_REG(base) ((base)->PRE_ROOT47_SET) -#define CCM_PRE_ROOT47_CLR_REG(base) ((base)->PRE_ROOT47_CLR) -#define CCM_PRE_ROOT47_TOG_REG(base) ((base)->PRE_ROOT47_TOG) -#define CCM_ACCESS_CTRL47_REG(base) ((base)->ACCESS_CTRL47) -#define CCM_ACCESS_CTRL47_ROOT_SET_REG(base) ((base)->ACCESS_CTRL47_ROOT_SET) -#define CCM_ACCESS_CTRL47_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL47_ROOT_CLR) -#define CCM_ACCESS_CTRL47_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL47_ROOT_TOG) -#define CCM_TARGET_ROOT48_REG(base) ((base)->TARGET_ROOT48) -#define CCM_TARGET_ROOT48_SET_REG(base) ((base)->TARGET_ROOT48_SET) -#define CCM_TARGET_ROOT48_CLR_REG(base) ((base)->TARGET_ROOT48_CLR) -#define CCM_TARGET_ROOT48_TOG_REG(base) ((base)->TARGET_ROOT48_TOG) -#define CCM_POST48_REG(base) ((base)->POST48) -#define CCM_POST_ROOT48_SET_REG(base) ((base)->POST_ROOT48_SET) -#define CCM_POST_ROOT48_CLR_REG(base) ((base)->POST_ROOT48_CLR) -#define CCM_POST_ROOT48_TOG_REG(base) ((base)->POST_ROOT48_TOG) -#define CCM_PRE48_REG(base) ((base)->PRE48) -#define CCM_PRE_ROOT48_SET_REG(base) ((base)->PRE_ROOT48_SET) -#define CCM_PRE_ROOT48_CLR_REG(base) ((base)->PRE_ROOT48_CLR) -#define CCM_PRE_ROOT48_TOG_REG(base) ((base)->PRE_ROOT48_TOG) -#define CCM_ACCESS_CTRL48_REG(base) ((base)->ACCESS_CTRL48) -#define CCM_ACCESS_CTRL48_ROOT_SET_REG(base) ((base)->ACCESS_CTRL48_ROOT_SET) -#define CCM_ACCESS_CTRL48_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL48_ROOT_CLR) -#define CCM_ACCESS_CTRL48_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL48_ROOT_TOG) -#define CCM_TARGET_ROOT49_REG(base) ((base)->TARGET_ROOT49) -#define CCM_TARGET_ROOT49_SET_REG(base) ((base)->TARGET_ROOT49_SET) -#define CCM_TARGET_ROOT49_CLR_REG(base) ((base)->TARGET_ROOT49_CLR) -#define CCM_TARGET_ROOT49_TOG_REG(base) ((base)->TARGET_ROOT49_TOG) -#define CCM_POST49_REG(base) ((base)->POST49) -#define CCM_POST_ROOT49_SET_REG(base) ((base)->POST_ROOT49_SET) -#define CCM_POST_ROOT49_CLR_REG(base) ((base)->POST_ROOT49_CLR) -#define CCM_POST_ROOT49_TOG_REG(base) ((base)->POST_ROOT49_TOG) -#define CCM_PRE49_REG(base) ((base)->PRE49) -#define CCM_PRE_ROOT49_SET_REG(base) ((base)->PRE_ROOT49_SET) -#define CCM_PRE_ROOT49_CLR_REG(base) ((base)->PRE_ROOT49_CLR) -#define CCM_PRE_ROOT49_TOG_REG(base) ((base)->PRE_ROOT49_TOG) -#define CCM_ACCESS_CTRL49_REG(base) ((base)->ACCESS_CTRL49) -#define CCM_ACCESS_CTRL49_ROOT_SET_REG(base) ((base)->ACCESS_CTRL49_ROOT_SET) -#define CCM_ACCESS_CTRL49_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL49_ROOT_CLR) -#define CCM_ACCESS_CTRL49_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL49_ROOT_TOG) -#define CCM_TARGET_ROOT50_REG(base) ((base)->TARGET_ROOT50) -#define CCM_TARGET_ROOT50_SET_REG(base) ((base)->TARGET_ROOT50_SET) -#define CCM_TARGET_ROOT50_CLR_REG(base) ((base)->TARGET_ROOT50_CLR) -#define CCM_TARGET_ROOT50_TOG_REG(base) ((base)->TARGET_ROOT50_TOG) -#define CCM_POST50_REG(base) ((base)->POST50) -#define CCM_POST_ROOT50_SET_REG(base) ((base)->POST_ROOT50_SET) -#define CCM_POST_ROOT50_CLR_REG(base) ((base)->POST_ROOT50_CLR) -#define CCM_POST_ROOT50_TOG_REG(base) ((base)->POST_ROOT50_TOG) -#define CCM_PRE50_REG(base) ((base)->PRE50) -#define CCM_PRE_ROOT50_SET_REG(base) ((base)->PRE_ROOT50_SET) -#define CCM_PRE_ROOT50_CLR_REG(base) ((base)->PRE_ROOT50_CLR) -#define CCM_PRE_ROOT50_TOG_REG(base) ((base)->PRE_ROOT50_TOG) -#define CCM_ACCESS_CTRL50_REG(base) ((base)->ACCESS_CTRL50) -#define CCM_ACCESS_CTRL50_ROOT_SET_REG(base) ((base)->ACCESS_CTRL50_ROOT_SET) -#define CCM_ACCESS_CTRL50_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL50_ROOT_CLR) -#define CCM_ACCESS_CTRL50_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL50_ROOT_TOG) -#define CCM_TARGET_ROOT51_REG(base) ((base)->TARGET_ROOT51) -#define CCM_TARGET_ROOT51_SET_REG(base) ((base)->TARGET_ROOT51_SET) -#define CCM_TARGET_ROOT51_CLR_REG(base) ((base)->TARGET_ROOT51_CLR) -#define CCM_TARGET_ROOT51_TOG_REG(base) ((base)->TARGET_ROOT51_TOG) -#define CCM_POST51_REG(base) ((base)->POST51) -#define CCM_POST_ROOT51_SET_REG(base) ((base)->POST_ROOT51_SET) -#define CCM_POST_ROOT51_CLR_REG(base) ((base)->POST_ROOT51_CLR) -#define CCM_POST_ROOT51_TOG_REG(base) ((base)->POST_ROOT51_TOG) -#define CCM_PRE51_REG(base) ((base)->PRE51) -#define CCM_PRE_ROOT51_SET_REG(base) ((base)->PRE_ROOT51_SET) -#define CCM_PRE_ROOT51_CLR_REG(base) ((base)->PRE_ROOT51_CLR) -#define CCM_PRE_ROOT51_TOG_REG(base) ((base)->PRE_ROOT51_TOG) -#define CCM_ACCESS_CTRL51_REG(base) ((base)->ACCESS_CTRL51) -#define CCM_ACCESS_CTRL51_ROOT_SET_REG(base) ((base)->ACCESS_CTRL51_ROOT_SET) -#define CCM_ACCESS_CTRL51_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL51_ROOT_CLR) -#define CCM_ACCESS_CTRL51_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL51_ROOT_TOG) -#define CCM_TARGET_ROOT52_REG(base) ((base)->TARGET_ROOT52) -#define CCM_TARGET_ROOT52_SET_REG(base) ((base)->TARGET_ROOT52_SET) -#define CCM_TARGET_ROOT52_CLR_REG(base) ((base)->TARGET_ROOT52_CLR) -#define CCM_TARGET_ROOT52_TOG_REG(base) ((base)->TARGET_ROOT52_TOG) -#define CCM_POST52_REG(base) ((base)->POST52) -#define CCM_POST_ROOT52_SET_REG(base) ((base)->POST_ROOT52_SET) -#define CCM_POST_ROOT52_CLR_REG(base) ((base)->POST_ROOT52_CLR) -#define CCM_POST_ROOT52_TOG_REG(base) ((base)->POST_ROOT52_TOG) -#define CCM_PRE52_REG(base) ((base)->PRE52) -#define CCM_PRE_ROOT52_SET_REG(base) ((base)->PRE_ROOT52_SET) -#define CCM_PRE_ROOT52_CLR_REG(base) ((base)->PRE_ROOT52_CLR) -#define CCM_PRE_ROOT52_TOG_REG(base) ((base)->PRE_ROOT52_TOG) -#define CCM_ACCESS_CTRL52_REG(base) ((base)->ACCESS_CTRL52) -#define CCM_ACCESS_CTRL52_ROOT_SET_REG(base) ((base)->ACCESS_CTRL52_ROOT_SET) -#define CCM_ACCESS_CTRL52_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL52_ROOT_CLR) -#define CCM_ACCESS_CTRL52_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL52_ROOT_TOG) -#define CCM_TARGET_ROOT53_REG(base) ((base)->TARGET_ROOT53) -#define CCM_TARGET_ROOT53_SET_REG(base) ((base)->TARGET_ROOT53_SET) -#define CCM_TARGET_ROOT53_CLR_REG(base) ((base)->TARGET_ROOT53_CLR) -#define CCM_TARGET_ROOT53_TOG_REG(base) ((base)->TARGET_ROOT53_TOG) -#define CCM_POST53_REG(base) ((base)->POST53) -#define CCM_POST_ROOT53_SET_REG(base) ((base)->POST_ROOT53_SET) -#define CCM_POST_ROOT53_CLR_REG(base) ((base)->POST_ROOT53_CLR) -#define CCM_POST_ROOT53_TOG_REG(base) ((base)->POST_ROOT53_TOG) -#define CCM_PRE53_REG(base) ((base)->PRE53) -#define CCM_PRE_ROOT53_SET_REG(base) ((base)->PRE_ROOT53_SET) -#define CCM_PRE_ROOT53_CLR_REG(base) ((base)->PRE_ROOT53_CLR) -#define CCM_PRE_ROOT53_TOG_REG(base) ((base)->PRE_ROOT53_TOG) -#define CCM_ACCESS_CTRL53_REG(base) ((base)->ACCESS_CTRL53) -#define CCM_ACCESS_CTRL53_ROOT_SET_REG(base) ((base)->ACCESS_CTRL53_ROOT_SET) -#define CCM_ACCESS_CTRL53_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL53_ROOT_CLR) -#define CCM_ACCESS_CTRL53_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL53_ROOT_TOG) -#define CCM_TARGET_ROOT54_REG(base) ((base)->TARGET_ROOT54) -#define CCM_TARGET_ROOT54_SET_REG(base) ((base)->TARGET_ROOT54_SET) -#define CCM_TARGET_ROOT54_CLR_REG(base) ((base)->TARGET_ROOT54_CLR) -#define CCM_TARGET_ROOT54_TOG_REG(base) ((base)->TARGET_ROOT54_TOG) -#define CCM_POST54_REG(base) ((base)->POST54) -#define CCM_POST_ROOT54_SET_REG(base) ((base)->POST_ROOT54_SET) -#define CCM_POST_ROOT54_CLR_REG(base) ((base)->POST_ROOT54_CLR) -#define CCM_POST_ROOT54_TOG_REG(base) ((base)->POST_ROOT54_TOG) -#define CCM_PRE54_REG(base) ((base)->PRE54) -#define CCM_PRE_ROOT54_SET_REG(base) ((base)->PRE_ROOT54_SET) -#define CCM_PRE_ROOT54_CLR_REG(base) ((base)->PRE_ROOT54_CLR) -#define CCM_PRE_ROOT54_TOG_REG(base) ((base)->PRE_ROOT54_TOG) -#define CCM_ACCESS_CTRL54_REG(base) ((base)->ACCESS_CTRL54) -#define CCM_ACCESS_CTRL54_ROOT_SET_REG(base) ((base)->ACCESS_CTRL54_ROOT_SET) -#define CCM_ACCESS_CTRL54_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL54_ROOT_CLR) -#define CCM_ACCESS_CTRL54_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL54_ROOT_TOG) -#define CCM_TARGET_ROOT55_REG(base) ((base)->TARGET_ROOT55) -#define CCM_TARGET_ROOT55_SET_REG(base) ((base)->TARGET_ROOT55_SET) -#define CCM_TARGET_ROOT55_CLR_REG(base) ((base)->TARGET_ROOT55_CLR) -#define CCM_TARGET_ROOT55_TOG_REG(base) ((base)->TARGET_ROOT55_TOG) -#define CCM_POST55_REG(base) ((base)->POST55) -#define CCM_POST_ROOT55_SET_REG(base) ((base)->POST_ROOT55_SET) -#define CCM_POST_ROOT55_CLR_REG(base) ((base)->POST_ROOT55_CLR) -#define CCM_POST_ROOT55_TOG_REG(base) ((base)->POST_ROOT55_TOG) -#define CCM_PRE55_REG(base) ((base)->PRE55) -#define CCM_PRE_ROOT55_SET_REG(base) ((base)->PRE_ROOT55_SET) -#define CCM_PRE_ROOT55_CLR_REG(base) ((base)->PRE_ROOT55_CLR) -#define CCM_PRE_ROOT55_TOG_REG(base) ((base)->PRE_ROOT55_TOG) -#define CCM_ACCESS_CTRL55_REG(base) ((base)->ACCESS_CTRL55) -#define CCM_ACCESS_CTRL55_ROOT_SET_REG(base) ((base)->ACCESS_CTRL55_ROOT_SET) -#define CCM_ACCESS_CTRL55_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL55_ROOT_CLR) -#define CCM_ACCESS_CTRL55_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL55_ROOT_TOG) -#define CCM_TARGET_ROOT56_REG(base) ((base)->TARGET_ROOT56) -#define CCM_TARGET_ROOT56_SET_REG(base) ((base)->TARGET_ROOT56_SET) -#define CCM_TARGET_ROOT56_CLR_REG(base) ((base)->TARGET_ROOT56_CLR) -#define CCM_TARGET_ROOT56_TOG_REG(base) ((base)->TARGET_ROOT56_TOG) -#define CCM_POST56_REG(base) ((base)->POST56) -#define CCM_POST_ROOT56_SET_REG(base) ((base)->POST_ROOT56_SET) -#define CCM_POST_ROOT56_CLR_REG(base) ((base)->POST_ROOT56_CLR) -#define CCM_POST_ROOT56_TOG_REG(base) ((base)->POST_ROOT56_TOG) -#define CCM_PRE56_REG(base) ((base)->PRE56) -#define CCM_PRE_ROOT56_SET_REG(base) ((base)->PRE_ROOT56_SET) -#define CCM_PRE_ROOT56_CLR_REG(base) ((base)->PRE_ROOT56_CLR) -#define CCM_PRE_ROOT56_TOG_REG(base) ((base)->PRE_ROOT56_TOG) -#define CCM_ACCESS_CTRL56_REG(base) ((base)->ACCESS_CTRL56) -#define CCM_ACCESS_CTRL56_ROOT_SET_REG(base) ((base)->ACCESS_CTRL56_ROOT_SET) -#define CCM_ACCESS_CTRL56_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL56_ROOT_CLR) -#define CCM_ACCESS_CTRL56_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL56_ROOT_TOG) -#define CCM_TARGET_ROOT57_REG(base) ((base)->TARGET_ROOT57) -#define CCM_TARGET_ROOT57_SET_REG(base) ((base)->TARGET_ROOT57_SET) -#define CCM_TARGET_ROOT57_CLR_REG(base) ((base)->TARGET_ROOT57_CLR) -#define CCM_TARGET_ROOT57_TOG_REG(base) ((base)->TARGET_ROOT57_TOG) -#define CCM_POST57_REG(base) ((base)->POST57) -#define CCM_POST_ROOT57_SET_REG(base) ((base)->POST_ROOT57_SET) -#define CCM_POST_ROOT57_CLR_REG(base) ((base)->POST_ROOT57_CLR) -#define CCM_POST_ROOT57_TOG_REG(base) ((base)->POST_ROOT57_TOG) -#define CCM_PRE57_REG(base) ((base)->PRE57) -#define CCM_PRE_ROOT57_SET_REG(base) ((base)->PRE_ROOT57_SET) -#define CCM_PRE_ROOT57_CLR_REG(base) ((base)->PRE_ROOT57_CLR) -#define CCM_PRE_ROOT57_TOG_REG(base) ((base)->PRE_ROOT57_TOG) -#define CCM_ACCESS_CTRL57_REG(base) ((base)->ACCESS_CTRL57) -#define CCM_ACCESS_CTRL57_ROOT_SET_REG(base) ((base)->ACCESS_CTRL57_ROOT_SET) -#define CCM_ACCESS_CTRL57_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL57_ROOT_CLR) -#define CCM_ACCESS_CTRL57_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL57_ROOT_TOG) -#define CCM_TARGET_ROOT58_REG(base) ((base)->TARGET_ROOT58) -#define CCM_TARGET_ROOT58_SET_REG(base) ((base)->TARGET_ROOT58_SET) -#define CCM_TARGET_ROOT58_CLR_REG(base) ((base)->TARGET_ROOT58_CLR) -#define CCM_TARGET_ROOT58_TOG_REG(base) ((base)->TARGET_ROOT58_TOG) -#define CCM_POST58_REG(base) ((base)->POST58) -#define CCM_POST_ROOT58_SET_REG(base) ((base)->POST_ROOT58_SET) -#define CCM_POST_ROOT58_CLR_REG(base) ((base)->POST_ROOT58_CLR) -#define CCM_POST_ROOT58_TOG_REG(base) ((base)->POST_ROOT58_TOG) -#define CCM_PRE58_REG(base) ((base)->PRE58) -#define CCM_PRE_ROOT58_SET_REG(base) ((base)->PRE_ROOT58_SET) -#define CCM_PRE_ROOT58_CLR_REG(base) ((base)->PRE_ROOT58_CLR) -#define CCM_PRE_ROOT58_TOG_REG(base) ((base)->PRE_ROOT58_TOG) -#define CCM_ACCESS_CTRL58_REG(base) ((base)->ACCESS_CTRL58) -#define CCM_ACCESS_CTRL58_ROOT_SET_REG(base) ((base)->ACCESS_CTRL58_ROOT_SET) -#define CCM_ACCESS_CTRL58_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL58_ROOT_CLR) -#define CCM_ACCESS_CTRL58_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL58_ROOT_TOG) -#define CCM_TARGET_ROOT59_REG(base) ((base)->TARGET_ROOT59) -#define CCM_TARGET_ROOT59_SET_REG(base) ((base)->TARGET_ROOT59_SET) -#define CCM_TARGET_ROOT59_CLR_REG(base) ((base)->TARGET_ROOT59_CLR) -#define CCM_TARGET_ROOT59_TOG_REG(base) ((base)->TARGET_ROOT59_TOG) -#define CCM_POST59_REG(base) ((base)->POST59) -#define CCM_POST_ROOT59_SET_REG(base) ((base)->POST_ROOT59_SET) -#define CCM_POST_ROOT59_CLR_REG(base) ((base)->POST_ROOT59_CLR) -#define CCM_POST_ROOT59_TOG_REG(base) ((base)->POST_ROOT59_TOG) -#define CCM_PRE59_REG(base) ((base)->PRE59) -#define CCM_PRE_ROOT59_SET_REG(base) ((base)->PRE_ROOT59_SET) -#define CCM_PRE_ROOT59_CLR_REG(base) ((base)->PRE_ROOT59_CLR) -#define CCM_PRE_ROOT59_TOG_REG(base) ((base)->PRE_ROOT59_TOG) -#define CCM_ACCESS_CTRL59_REG(base) ((base)->ACCESS_CTRL59) -#define CCM_ACCESS_CTRL59_ROOT_SET_REG(base) ((base)->ACCESS_CTRL59_ROOT_SET) -#define CCM_ACCESS_CTRL59_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL59_ROOT_CLR) -#define CCM_ACCESS_CTRL59_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL59_ROOT_TOG) -#define CCM_TARGET_ROOT60_REG(base) ((base)->TARGET_ROOT60) -#define CCM_TARGET_ROOT60_SET_REG(base) ((base)->TARGET_ROOT60_SET) -#define CCM_TARGET_ROOT60_CLR_REG(base) ((base)->TARGET_ROOT60_CLR) -#define CCM_TARGET_ROOT60_TOG_REG(base) ((base)->TARGET_ROOT60_TOG) -#define CCM_POST60_REG(base) ((base)->POST60) -#define CCM_POST_ROOT60_SET_REG(base) ((base)->POST_ROOT60_SET) -#define CCM_POST_ROOT60_CLR_REG(base) ((base)->POST_ROOT60_CLR) -#define CCM_POST_ROOT60_TOG_REG(base) ((base)->POST_ROOT60_TOG) -#define CCM_PRE60_REG(base) ((base)->PRE60) -#define CCM_PRE_ROOT60_SET_REG(base) ((base)->PRE_ROOT60_SET) -#define CCM_PRE_ROOT60_CLR_REG(base) ((base)->PRE_ROOT60_CLR) -#define CCM_PRE_ROOT60_TOG_REG(base) ((base)->PRE_ROOT60_TOG) -#define CCM_ACCESS_CTRL60_REG(base) ((base)->ACCESS_CTRL60) -#define CCM_ACCESS_CTRL60_ROOT_SET_REG(base) ((base)->ACCESS_CTRL60_ROOT_SET) -#define CCM_ACCESS_CTRL60_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL60_ROOT_CLR) -#define CCM_ACCESS_CTRL60_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL60_ROOT_TOG) -#define CCM_TARGET_ROOT61_REG(base) ((base)->TARGET_ROOT61) -#define CCM_TARGET_ROOT61_SET_REG(base) ((base)->TARGET_ROOT61_SET) -#define CCM_TARGET_ROOT61_CLR_REG(base) ((base)->TARGET_ROOT61_CLR) -#define CCM_TARGET_ROOT61_TOG_REG(base) ((base)->TARGET_ROOT61_TOG) -#define CCM_POST61_REG(base) ((base)->POST61) -#define CCM_POST_ROOT61_SET_REG(base) ((base)->POST_ROOT61_SET) -#define CCM_POST_ROOT61_CLR_REG(base) ((base)->POST_ROOT61_CLR) -#define CCM_POST_ROOT61_TOG_REG(base) ((base)->POST_ROOT61_TOG) -#define CCM_PRE61_REG(base) ((base)->PRE61) -#define CCM_PRE_ROOT61_SET_REG(base) ((base)->PRE_ROOT61_SET) -#define CCM_PRE_ROOT61_CLR_REG(base) ((base)->PRE_ROOT61_CLR) -#define CCM_PRE_ROOT61_TOG_REG(base) ((base)->PRE_ROOT61_TOG) -#define CCM_ACCESS_CTRL61_REG(base) ((base)->ACCESS_CTRL61) -#define CCM_ACCESS_CTRL61_ROOT_SET_REG(base) ((base)->ACCESS_CTRL61_ROOT_SET) -#define CCM_ACCESS_CTRL61_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL61_ROOT_CLR) -#define CCM_ACCESS_CTRL61_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL61_ROOT_TOG) -#define CCM_TARGET_ROOT62_REG(base) ((base)->TARGET_ROOT62) -#define CCM_TARGET_ROOT62_SET_REG(base) ((base)->TARGET_ROOT62_SET) -#define CCM_TARGET_ROOT62_CLR_REG(base) ((base)->TARGET_ROOT62_CLR) -#define CCM_TARGET_ROOT62_TOG_REG(base) ((base)->TARGET_ROOT62_TOG) -#define CCM_POST62_REG(base) ((base)->POST62) -#define CCM_POST_ROOT62_SET_REG(base) ((base)->POST_ROOT62_SET) -#define CCM_POST_ROOT62_CLR_REG(base) ((base)->POST_ROOT62_CLR) -#define CCM_POST_ROOT62_TOG_REG(base) ((base)->POST_ROOT62_TOG) -#define CCM_PRE62_REG(base) ((base)->PRE62) -#define CCM_PRE_ROOT62_SET_REG(base) ((base)->PRE_ROOT62_SET) -#define CCM_PRE_ROOT62_CLR_REG(base) ((base)->PRE_ROOT62_CLR) -#define CCM_PRE_ROOT62_TOG_REG(base) ((base)->PRE_ROOT62_TOG) -#define CCM_ACCESS_CTRL62_REG(base) ((base)->ACCESS_CTRL62) -#define CCM_ACCESS_CTRL62_ROOT_SET_REG(base) ((base)->ACCESS_CTRL62_ROOT_SET) -#define CCM_ACCESS_CTRL62_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL62_ROOT_CLR) -#define CCM_ACCESS_CTRL62_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL62_ROOT_TOG) -#define CCM_TARGET_ROOT63_REG(base) ((base)->TARGET_ROOT63) -#define CCM_TARGET_ROOT63_SET_REG(base) ((base)->TARGET_ROOT63_SET) -#define CCM_TARGET_ROOT63_CLR_REG(base) ((base)->TARGET_ROOT63_CLR) -#define CCM_TARGET_ROOT63_TOG_REG(base) ((base)->TARGET_ROOT63_TOG) -#define CCM_POST63_REG(base) ((base)->POST63) -#define CCM_POST_ROOT63_SET_REG(base) ((base)->POST_ROOT63_SET) -#define CCM_POST_ROOT63_CLR_REG(base) ((base)->POST_ROOT63_CLR) -#define CCM_POST_ROOT63_TOG_REG(base) ((base)->POST_ROOT63_TOG) -#define CCM_PRE63_REG(base) ((base)->PRE63) -#define CCM_PRE_ROOT63_SET_REG(base) ((base)->PRE_ROOT63_SET) -#define CCM_PRE_ROOT63_CLR_REG(base) ((base)->PRE_ROOT63_CLR) -#define CCM_PRE_ROOT63_TOG_REG(base) ((base)->PRE_ROOT63_TOG) -#define CCM_ACCESS_CTRL63_REG(base) ((base)->ACCESS_CTRL63) -#define CCM_ACCESS_CTRL63_ROOT_SET_REG(base) ((base)->ACCESS_CTRL63_ROOT_SET) -#define CCM_ACCESS_CTRL63_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL63_ROOT_CLR) -#define CCM_ACCESS_CTRL63_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL63_ROOT_TOG) -#define CCM_TARGET_ROOT64_REG(base) ((base)->TARGET_ROOT64) -#define CCM_TARGET_ROOT64_SET_REG(base) ((base)->TARGET_ROOT64_SET) -#define CCM_TARGET_ROOT64_CLR_REG(base) ((base)->TARGET_ROOT64_CLR) -#define CCM_TARGET_ROOT64_TOG_REG(base) ((base)->TARGET_ROOT64_TOG) -#define CCM_POST64_REG(base) ((base)->POST64) -#define CCM_POST_ROOT64_SET_REG(base) ((base)->POST_ROOT64_SET) -#define CCM_POST_ROOT64_CLR_REG(base) ((base)->POST_ROOT64_CLR) -#define CCM_POST_ROOT64_TOG_REG(base) ((base)->POST_ROOT64_TOG) -#define CCM_PRE64_REG(base) ((base)->PRE64) -#define CCM_PRE_ROOT64_SET_REG(base) ((base)->PRE_ROOT64_SET) -#define CCM_PRE_ROOT64_CLR_REG(base) ((base)->PRE_ROOT64_CLR) -#define CCM_PRE_ROOT64_TOG_REG(base) ((base)->PRE_ROOT64_TOG) -#define CCM_ACCESS_CTRL64_REG(base) ((base)->ACCESS_CTRL64) -#define CCM_ACCESS_CTRL64_ROOT_SET_REG(base) ((base)->ACCESS_CTRL64_ROOT_SET) -#define CCM_ACCESS_CTRL64_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL64_ROOT_CLR) -#define CCM_ACCESS_CTRL64_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL64_ROOT_TOG) -#define CCM_TARGET_ROOT65_REG(base) ((base)->TARGET_ROOT65) -#define CCM_TARGET_ROOT65_SET_REG(base) ((base)->TARGET_ROOT65_SET) -#define CCM_TARGET_ROOT65_CLR_REG(base) ((base)->TARGET_ROOT65_CLR) -#define CCM_TARGET_ROOT65_TOG_REG(base) ((base)->TARGET_ROOT65_TOG) -#define CCM_POST65_REG(base) ((base)->POST65) -#define CCM_POST_ROOT65_SET_REG(base) ((base)->POST_ROOT65_SET) -#define CCM_POST_ROOT65_CLR_REG(base) ((base)->POST_ROOT65_CLR) -#define CCM_POST_ROOT65_TOG_REG(base) ((base)->POST_ROOT65_TOG) -#define CCM_PRE65_REG(base) ((base)->PRE65) -#define CCM_PRE_ROOT65_SET_REG(base) ((base)->PRE_ROOT65_SET) -#define CCM_PRE_ROOT65_CLR_REG(base) ((base)->PRE_ROOT65_CLR) -#define CCM_PRE_ROOT65_TOG_REG(base) ((base)->PRE_ROOT65_TOG) -#define CCM_ACCESS_CTRL65_REG(base) ((base)->ACCESS_CTRL65) -#define CCM_ACCESS_CTRL65_ROOT_SET_REG(base) ((base)->ACCESS_CTRL65_ROOT_SET) -#define CCM_ACCESS_CTRL65_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL65_ROOT_CLR) -#define CCM_ACCESS_CTRL65_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL65_ROOT_TOG) -#define CCM_TARGET_ROOT66_REG(base) ((base)->TARGET_ROOT66) -#define CCM_TARGET_ROOT66_SET_REG(base) ((base)->TARGET_ROOT66_SET) -#define CCM_TARGET_ROOT66_CLR_REG(base) ((base)->TARGET_ROOT66_CLR) -#define CCM_TARGET_ROOT66_TOG_REG(base) ((base)->TARGET_ROOT66_TOG) -#define CCM_POST66_REG(base) ((base)->POST66) -#define CCM_POST_ROOT66_SET_REG(base) ((base)->POST_ROOT66_SET) -#define CCM_POST_ROOT66_CLR_REG(base) ((base)->POST_ROOT66_CLR) -#define CCM_POST_ROOT66_TOG_REG(base) ((base)->POST_ROOT66_TOG) -#define CCM_PRE66_REG(base) ((base)->PRE66) -#define CCM_PRE_ROOT66_SET_REG(base) ((base)->PRE_ROOT66_SET) -#define CCM_PRE_ROOT66_CLR_REG(base) ((base)->PRE_ROOT66_CLR) -#define CCM_PRE_ROOT66_TOG_REG(base) ((base)->PRE_ROOT66_TOG) -#define CCM_ACCESS_CTRL66_REG(base) ((base)->ACCESS_CTRL66) -#define CCM_ACCESS_CTRL66_ROOT_SET_REG(base) ((base)->ACCESS_CTRL66_ROOT_SET) -#define CCM_ACCESS_CTRL66_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL66_ROOT_CLR) -#define CCM_ACCESS_CTRL66_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL66_ROOT_TOG) -#define CCM_TARGET_ROOT67_REG(base) ((base)->TARGET_ROOT67) -#define CCM_TARGET_ROOT67_SET_REG(base) ((base)->TARGET_ROOT67_SET) -#define CCM_TARGET_ROOT67_CLR_REG(base) ((base)->TARGET_ROOT67_CLR) -#define CCM_TARGET_ROOT67_TOG_REG(base) ((base)->TARGET_ROOT67_TOG) -#define CCM_POST67_REG(base) ((base)->POST67) -#define CCM_POST_ROOT67_SET_REG(base) ((base)->POST_ROOT67_SET) -#define CCM_POST_ROOT67_CLR_REG(base) ((base)->POST_ROOT67_CLR) -#define CCM_POST_ROOT67_TOG_REG(base) ((base)->POST_ROOT67_TOG) -#define CCM_PRE67_REG(base) ((base)->PRE67) -#define CCM_PRE_ROOT67_SET_REG(base) ((base)->PRE_ROOT67_SET) -#define CCM_PRE_ROOT67_CLR_REG(base) ((base)->PRE_ROOT67_CLR) -#define CCM_PRE_ROOT67_TOG_REG(base) ((base)->PRE_ROOT67_TOG) -#define CCM_ACCESS_CTRL67_REG(base) ((base)->ACCESS_CTRL67) -#define CCM_ACCESS_CTRL67_ROOT_SET_REG(base) ((base)->ACCESS_CTRL67_ROOT_SET) -#define CCM_ACCESS_CTRL67_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL67_ROOT_CLR) -#define CCM_ACCESS_CTRL67_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL67_ROOT_TOG) -#define CCM_TARGET_ROOT68_REG(base) ((base)->TARGET_ROOT68) -#define CCM_TARGET_ROOT68_SET_REG(base) ((base)->TARGET_ROOT68_SET) -#define CCM_TARGET_ROOT68_CLR_REG(base) ((base)->TARGET_ROOT68_CLR) -#define CCM_TARGET_ROOT68_TOG_REG(base) ((base)->TARGET_ROOT68_TOG) -#define CCM_POST68_REG(base) ((base)->POST68) -#define CCM_POST_ROOT68_SET_REG(base) ((base)->POST_ROOT68_SET) -#define CCM_POST_ROOT68_CLR_REG(base) ((base)->POST_ROOT68_CLR) -#define CCM_POST_ROOT68_TOG_REG(base) ((base)->POST_ROOT68_TOG) -#define CCM_PRE68_REG(base) ((base)->PRE68) -#define CCM_PRE_ROOT68_SET_REG(base) ((base)->PRE_ROOT68_SET) -#define CCM_PRE_ROOT68_CLR_REG(base) ((base)->PRE_ROOT68_CLR) -#define CCM_PRE_ROOT68_TOG_REG(base) ((base)->PRE_ROOT68_TOG) -#define CCM_ACCESS_CTRL68_REG(base) ((base)->ACCESS_CTRL68) -#define CCM_ACCESS_CTRL68_ROOT_SET_REG(base) ((base)->ACCESS_CTRL68_ROOT_SET) -#define CCM_ACCESS_CTRL68_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL68_ROOT_CLR) -#define CCM_ACCESS_CTRL68_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL68_ROOT_TOG) -#define CCM_TARGET_ROOT69_REG(base) ((base)->TARGET_ROOT69) -#define CCM_TARGET_ROOT69_SET_REG(base) ((base)->TARGET_ROOT69_SET) -#define CCM_TARGET_ROOT69_CLR_REG(base) ((base)->TARGET_ROOT69_CLR) -#define CCM_TARGET_ROOT69_TOG_REG(base) ((base)->TARGET_ROOT69_TOG) -#define CCM_POST69_REG(base) ((base)->POST69) -#define CCM_POST_ROOT69_SET_REG(base) ((base)->POST_ROOT69_SET) -#define CCM_POST_ROOT69_CLR_REG(base) ((base)->POST_ROOT69_CLR) -#define CCM_POST_ROOT69_TOG_REG(base) ((base)->POST_ROOT69_TOG) -#define CCM_PRE69_REG(base) ((base)->PRE69) -#define CCM_PRE_ROOT69_SET_REG(base) ((base)->PRE_ROOT69_SET) -#define CCM_PRE_ROOT69_CLR_REG(base) ((base)->PRE_ROOT69_CLR) -#define CCM_PRE_ROOT69_TOG_REG(base) ((base)->PRE_ROOT69_TOG) -#define CCM_ACCESS_CTRL69_REG(base) ((base)->ACCESS_CTRL69) -#define CCM_ACCESS_CTRL69_ROOT_SET_REG(base) ((base)->ACCESS_CTRL69_ROOT_SET) -#define CCM_ACCESS_CTRL69_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL69_ROOT_CLR) -#define CCM_ACCESS_CTRL69_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL69_ROOT_TOG) -#define CCM_TARGET_ROOT70_REG(base) ((base)->TARGET_ROOT70) -#define CCM_TARGET_ROOT70_SET_REG(base) ((base)->TARGET_ROOT70_SET) -#define CCM_TARGET_ROOT70_CLR_REG(base) ((base)->TARGET_ROOT70_CLR) -#define CCM_TARGET_ROOT70_TOG_REG(base) ((base)->TARGET_ROOT70_TOG) -#define CCM_POST70_REG(base) ((base)->POST70) -#define CCM_POST_ROOT70_SET_REG(base) ((base)->POST_ROOT70_SET) -#define CCM_POST_ROOT70_CLR_REG(base) ((base)->POST_ROOT70_CLR) -#define CCM_POST_ROOT70_TOG_REG(base) ((base)->POST_ROOT70_TOG) -#define CCM_PRE70_REG(base) ((base)->PRE70) -#define CCM_PRE_ROOT70_SET_REG(base) ((base)->PRE_ROOT70_SET) -#define CCM_PRE_ROOT70_CLR_REG(base) ((base)->PRE_ROOT70_CLR) -#define CCM_PRE_ROOT70_TOG_REG(base) ((base)->PRE_ROOT70_TOG) -#define CCM_ACCESS_CTRL70_REG(base) ((base)->ACCESS_CTRL70) -#define CCM_ACCESS_CTRL70_ROOT_SET_REG(base) ((base)->ACCESS_CTRL70_ROOT_SET) -#define CCM_ACCESS_CTRL70_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL70_ROOT_CLR) -#define CCM_ACCESS_CTRL70_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL70_ROOT_TOG) -#define CCM_TARGET_ROOT71_REG(base) ((base)->TARGET_ROOT71) -#define CCM_TARGET_ROOT71_SET_REG(base) ((base)->TARGET_ROOT71_SET) -#define CCM_TARGET_ROOT71_CLR_REG(base) ((base)->TARGET_ROOT71_CLR) -#define CCM_TARGET_ROOT71_TOG_REG(base) ((base)->TARGET_ROOT71_TOG) -#define CCM_POST71_REG(base) ((base)->POST71) -#define CCM_POST_ROOT71_SET_REG(base) ((base)->POST_ROOT71_SET) -#define CCM_POST_ROOT71_CLR_REG(base) ((base)->POST_ROOT71_CLR) -#define CCM_POST_ROOT71_TOG_REG(base) ((base)->POST_ROOT71_TOG) -#define CCM_PRE71_REG(base) ((base)->PRE71) -#define CCM_PRE_ROOT71_SET_REG(base) ((base)->PRE_ROOT71_SET) -#define CCM_PRE_ROOT71_CLR_REG(base) ((base)->PRE_ROOT71_CLR) -#define CCM_PRE_ROOT71_TOG_REG(base) ((base)->PRE_ROOT71_TOG) -#define CCM_ACCESS_CTRL71_REG(base) ((base)->ACCESS_CTRL71) -#define CCM_ACCESS_CTRL71_ROOT_SET_REG(base) ((base)->ACCESS_CTRL71_ROOT_SET) -#define CCM_ACCESS_CTRL71_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL71_ROOT_CLR) -#define CCM_ACCESS_CTRL71_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL71_ROOT_TOG) -#define CCM_TARGET_ROOT72_REG(base) ((base)->TARGET_ROOT72) -#define CCM_TARGET_ROOT72_SET_REG(base) ((base)->TARGET_ROOT72_SET) -#define CCM_TARGET_ROOT72_CLR_REG(base) ((base)->TARGET_ROOT72_CLR) -#define CCM_TARGET_ROOT72_TOG_REG(base) ((base)->TARGET_ROOT72_TOG) -#define CCM_POST72_REG(base) ((base)->POST72) -#define CCM_POST_ROOT72_SET_REG(base) ((base)->POST_ROOT72_SET) -#define CCM_POST_ROOT72_CLR_REG(base) ((base)->POST_ROOT72_CLR) -#define CCM_POST_ROOT72_TOG_REG(base) ((base)->POST_ROOT72_TOG) -#define CCM_PRE72_REG(base) ((base)->PRE72) -#define CCM_PRE_ROOT72_SET_REG(base) ((base)->PRE_ROOT72_SET) -#define CCM_PRE_ROOT72_CLR_REG(base) ((base)->PRE_ROOT72_CLR) -#define CCM_PRE_ROOT72_TOG_REG(base) ((base)->PRE_ROOT72_TOG) -#define CCM_ACCESS_CTRL72_REG(base) ((base)->ACCESS_CTRL72) -#define CCM_ACCESS_CTRL72_ROOT_SET_REG(base) ((base)->ACCESS_CTRL72_ROOT_SET) -#define CCM_ACCESS_CTRL72_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL72_ROOT_CLR) -#define CCM_ACCESS_CTRL72_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL72_ROOT_TOG) -#define CCM_TARGET_ROOT73_REG(base) ((base)->TARGET_ROOT73) -#define CCM_TARGET_ROOT73_SET_REG(base) ((base)->TARGET_ROOT73_SET) -#define CCM_TARGET_ROOT73_CLR_REG(base) ((base)->TARGET_ROOT73_CLR) -#define CCM_TARGET_ROOT73_TOG_REG(base) ((base)->TARGET_ROOT73_TOG) -#define CCM_POST73_REG(base) ((base)->POST73) -#define CCM_POST_ROOT73_SET_REG(base) ((base)->POST_ROOT73_SET) -#define CCM_POST_ROOT73_CLR_REG(base) ((base)->POST_ROOT73_CLR) -#define CCM_POST_ROOT73_TOG_REG(base) ((base)->POST_ROOT73_TOG) -#define CCM_PRE73_REG(base) ((base)->PRE73) -#define CCM_PRE_ROOT73_SET_REG(base) ((base)->PRE_ROOT73_SET) -#define CCM_PRE_ROOT73_CLR_REG(base) ((base)->PRE_ROOT73_CLR) -#define CCM_PRE_ROOT73_TOG_REG(base) ((base)->PRE_ROOT73_TOG) -#define CCM_ACCESS_CTRL73_REG(base) ((base)->ACCESS_CTRL73) -#define CCM_ACCESS_CTRL73_ROOT_SET_REG(base) ((base)->ACCESS_CTRL73_ROOT_SET) -#define CCM_ACCESS_CTRL73_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL73_ROOT_CLR) -#define CCM_ACCESS_CTRL73_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL73_ROOT_TOG) -#define CCM_TARGET_ROOT74_REG(base) ((base)->TARGET_ROOT74) -#define CCM_TARGET_ROOT74_SET_REG(base) ((base)->TARGET_ROOT74_SET) -#define CCM_TARGET_ROOT74_CLR_REG(base) ((base)->TARGET_ROOT74_CLR) -#define CCM_TARGET_ROOT74_TOG_REG(base) ((base)->TARGET_ROOT74_TOG) -#define CCM_POST74_REG(base) ((base)->POST74) -#define CCM_POST_ROOT74_SET_REG(base) ((base)->POST_ROOT74_SET) -#define CCM_POST_ROOT74_CLR_REG(base) ((base)->POST_ROOT74_CLR) -#define CCM_POST_ROOT74_TOG_REG(base) ((base)->POST_ROOT74_TOG) -#define CCM_PRE74_REG(base) ((base)->PRE74) -#define CCM_PRE_ROOT74_SET_REG(base) ((base)->PRE_ROOT74_SET) -#define CCM_PRE_ROOT74_CLR_REG(base) ((base)->PRE_ROOT74_CLR) -#define CCM_PRE_ROOT74_TOG_REG(base) ((base)->PRE_ROOT74_TOG) -#define CCM_ACCESS_CTRL74_REG(base) ((base)->ACCESS_CTRL74) -#define CCM_ACCESS_CTRL74_ROOT_SET_REG(base) ((base)->ACCESS_CTRL74_ROOT_SET) -#define CCM_ACCESS_CTRL74_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL74_ROOT_CLR) -#define CCM_ACCESS_CTRL74_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL74_ROOT_TOG) -#define CCM_TARGET_ROOT75_REG(base) ((base)->TARGET_ROOT75) -#define CCM_TARGET_ROOT75_SET_REG(base) ((base)->TARGET_ROOT75_SET) -#define CCM_TARGET_ROOT75_CLR_REG(base) ((base)->TARGET_ROOT75_CLR) -#define CCM_TARGET_ROOT75_TOG_REG(base) ((base)->TARGET_ROOT75_TOG) -#define CCM_POST75_REG(base) ((base)->POST75) -#define CCM_POST_ROOT75_SET_REG(base) ((base)->POST_ROOT75_SET) -#define CCM_POST_ROOT75_CLR_REG(base) ((base)->POST_ROOT75_CLR) -#define CCM_POST_ROOT75_TOG_REG(base) ((base)->POST_ROOT75_TOG) -#define CCM_PRE75_REG(base) ((base)->PRE75) -#define CCM_PRE_ROOT75_SET_REG(base) ((base)->PRE_ROOT75_SET) -#define CCM_PRE_ROOT75_CLR_REG(base) ((base)->PRE_ROOT75_CLR) -#define CCM_PRE_ROOT75_TOG_REG(base) ((base)->PRE_ROOT75_TOG) -#define CCM_ACCESS_CTRL75_REG(base) ((base)->ACCESS_CTRL75) -#define CCM_ACCESS_CTRL75_ROOT_SET_REG(base) ((base)->ACCESS_CTRL75_ROOT_SET) -#define CCM_ACCESS_CTRL75_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL75_ROOT_CLR) -#define CCM_ACCESS_CTRL75_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL75_ROOT_TOG) -#define CCM_TARGET_ROOT76_REG(base) ((base)->TARGET_ROOT76) -#define CCM_TARGET_ROOT76_SET_REG(base) ((base)->TARGET_ROOT76_SET) -#define CCM_TARGET_ROOT76_CLR_REG(base) ((base)->TARGET_ROOT76_CLR) -#define CCM_TARGET_ROOT76_TOG_REG(base) ((base)->TARGET_ROOT76_TOG) -#define CCM_POST76_REG(base) ((base)->POST76) -#define CCM_POST_ROOT76_SET_REG(base) ((base)->POST_ROOT76_SET) -#define CCM_POST_ROOT76_CLR_REG(base) ((base)->POST_ROOT76_CLR) -#define CCM_POST_ROOT76_TOG_REG(base) ((base)->POST_ROOT76_TOG) -#define CCM_PRE76_REG(base) ((base)->PRE76) -#define CCM_PRE_ROOT76_SET_REG(base) ((base)->PRE_ROOT76_SET) -#define CCM_PRE_ROOT76_CLR_REG(base) ((base)->PRE_ROOT76_CLR) -#define CCM_PRE_ROOT76_TOG_REG(base) ((base)->PRE_ROOT76_TOG) -#define CCM_ACCESS_CTRL76_REG(base) ((base)->ACCESS_CTRL76) -#define CCM_ACCESS_CTRL76_ROOT_SET_REG(base) ((base)->ACCESS_CTRL76_ROOT_SET) -#define CCM_ACCESS_CTRL76_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL76_ROOT_CLR) -#define CCM_ACCESS_CTRL76_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL76_ROOT_TOG) -#define CCM_TARGET_ROOT77_REG(base) ((base)->TARGET_ROOT77) -#define CCM_TARGET_ROOT77_SET_REG(base) ((base)->TARGET_ROOT77_SET) -#define CCM_TARGET_ROOT77_CLR_REG(base) ((base)->TARGET_ROOT77_CLR) -#define CCM_TARGET_ROOT77_TOG_REG(base) ((base)->TARGET_ROOT77_TOG) -#define CCM_POST77_REG(base) ((base)->POST77) -#define CCM_POST_ROOT77_SET_REG(base) ((base)->POST_ROOT77_SET) -#define CCM_POST_ROOT77_CLR_REG(base) ((base)->POST_ROOT77_CLR) -#define CCM_POST_ROOT77_TOG_REG(base) ((base)->POST_ROOT77_TOG) -#define CCM_PRE77_REG(base) ((base)->PRE77) -#define CCM_PRE_ROOT77_SET_REG(base) ((base)->PRE_ROOT77_SET) -#define CCM_PRE_ROOT77_CLR_REG(base) ((base)->PRE_ROOT77_CLR) -#define CCM_PRE_ROOT77_TOG_REG(base) ((base)->PRE_ROOT77_TOG) -#define CCM_ACCESS_CTRL77_REG(base) ((base)->ACCESS_CTRL77) -#define CCM_ACCESS_CTRL77_ROOT_SET_REG(base) ((base)->ACCESS_CTRL77_ROOT_SET) -#define CCM_ACCESS_CTRL77_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL77_ROOT_CLR) -#define CCM_ACCESS_CTRL77_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL77_ROOT_TOG) -#define CCM_TARGET_ROOT78_REG(base) ((base)->TARGET_ROOT78) -#define CCM_TARGET_ROOT78_SET_REG(base) ((base)->TARGET_ROOT78_SET) -#define CCM_TARGET_ROOT78_CLR_REG(base) ((base)->TARGET_ROOT78_CLR) -#define CCM_TARGET_ROOT78_TOG_REG(base) ((base)->TARGET_ROOT78_TOG) -#define CCM_POST78_REG(base) ((base)->POST78) -#define CCM_POST_ROOT78_SET_REG(base) ((base)->POST_ROOT78_SET) -#define CCM_POST_ROOT78_CLR_REG(base) ((base)->POST_ROOT78_CLR) -#define CCM_POST_ROOT78_TOG_REG(base) ((base)->POST_ROOT78_TOG) -#define CCM_PRE78_REG(base) ((base)->PRE78) -#define CCM_PRE_ROOT78_SET_REG(base) ((base)->PRE_ROOT78_SET) -#define CCM_PRE_ROOT78_CLR_REG(base) ((base)->PRE_ROOT78_CLR) -#define CCM_PRE_ROOT78_TOG_REG(base) ((base)->PRE_ROOT78_TOG) -#define CCM_ACCESS_CTRL78_REG(base) ((base)->ACCESS_CTRL78) -#define CCM_ACCESS_CTRL78_ROOT_SET_REG(base) ((base)->ACCESS_CTRL78_ROOT_SET) -#define CCM_ACCESS_CTRL78_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL78_ROOT_CLR) -#define CCM_ACCESS_CTRL78_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL78_ROOT_TOG) -#define CCM_TARGET_ROOT79_REG(base) ((base)->TARGET_ROOT79) -#define CCM_TARGET_ROOT79_SET_REG(base) ((base)->TARGET_ROOT79_SET) -#define CCM_TARGET_ROOT79_CLR_REG(base) ((base)->TARGET_ROOT79_CLR) -#define CCM_TARGET_ROOT79_TOG_REG(base) ((base)->TARGET_ROOT79_TOG) -#define CCM_POST79_REG(base) ((base)->POST79) -#define CCM_POST_ROOT79_SET_REG(base) ((base)->POST_ROOT79_SET) -#define CCM_POST_ROOT79_CLR_REG(base) ((base)->POST_ROOT79_CLR) -#define CCM_POST_ROOT79_TOG_REG(base) ((base)->POST_ROOT79_TOG) -#define CCM_PRE79_REG(base) ((base)->PRE79) -#define CCM_PRE_ROOT79_SET_REG(base) ((base)->PRE_ROOT79_SET) -#define CCM_PRE_ROOT79_CLR_REG(base) ((base)->PRE_ROOT79_CLR) -#define CCM_PRE_ROOT79_TOG_REG(base) ((base)->PRE_ROOT79_TOG) -#define CCM_ACCESS_CTRL79_REG(base) ((base)->ACCESS_CTRL79) -#define CCM_ACCESS_CTRL79_ROOT_SET_REG(base) ((base)->ACCESS_CTRL79_ROOT_SET) -#define CCM_ACCESS_CTRL79_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL79_ROOT_CLR) -#define CCM_ACCESS_CTRL79_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL79_ROOT_TOG) -#define CCM_TARGET_ROOT80_REG(base) ((base)->TARGET_ROOT80) -#define CCM_TARGET_ROOT80_SET_REG(base) ((base)->TARGET_ROOT80_SET) -#define CCM_TARGET_ROOT80_CLR_REG(base) ((base)->TARGET_ROOT80_CLR) -#define CCM_TARGET_ROOT80_TOG_REG(base) ((base)->TARGET_ROOT80_TOG) -#define CCM_POST80_REG(base) ((base)->POST80) -#define CCM_POST_ROOT80_SET_REG(base) ((base)->POST_ROOT80_SET) -#define CCM_POST_ROOT80_CLR_REG(base) ((base)->POST_ROOT80_CLR) -#define CCM_POST_ROOT80_TOG_REG(base) ((base)->POST_ROOT80_TOG) -#define CCM_PRE80_REG(base) ((base)->PRE80) -#define CCM_PRE_ROOT80_SET_REG(base) ((base)->PRE_ROOT80_SET) -#define CCM_PRE_ROOT80_CLR_REG(base) ((base)->PRE_ROOT80_CLR) -#define CCM_PRE_ROOT80_TOG_REG(base) ((base)->PRE_ROOT80_TOG) -#define CCM_ACCESS_CTRL80_REG(base) ((base)->ACCESS_CTRL80) -#define CCM_ACCESS_CTRL80_ROOT_SET_REG(base) ((base)->ACCESS_CTRL80_ROOT_SET) -#define CCM_ACCESS_CTRL80_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL80_ROOT_CLR) -#define CCM_ACCESS_CTRL80_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL80_ROOT_TOG) -#define CCM_TARGET_ROOT81_REG(base) ((base)->TARGET_ROOT81) -#define CCM_TARGET_ROOT81_SET_REG(base) ((base)->TARGET_ROOT81_SET) -#define CCM_TARGET_ROOT81_CLR_REG(base) ((base)->TARGET_ROOT81_CLR) -#define CCM_TARGET_ROOT81_TOG_REG(base) ((base)->TARGET_ROOT81_TOG) -#define CCM_POST81_REG(base) ((base)->POST81) -#define CCM_POST_ROOT81_SET_REG(base) ((base)->POST_ROOT81_SET) -#define CCM_POST_ROOT81_CLR_REG(base) ((base)->POST_ROOT81_CLR) -#define CCM_POST_ROOT81_TOG_REG(base) ((base)->POST_ROOT81_TOG) -#define CCM_PRE81_REG(base) ((base)->PRE81) -#define CCM_PRE_ROOT81_SET_REG(base) ((base)->PRE_ROOT81_SET) -#define CCM_PRE_ROOT81_CLR_REG(base) ((base)->PRE_ROOT81_CLR) -#define CCM_PRE_ROOT81_TOG_REG(base) ((base)->PRE_ROOT81_TOG) -#define CCM_ACCESS_CTRL81_REG(base) ((base)->ACCESS_CTRL81) -#define CCM_ACCESS_CTRL81_ROOT_SET_REG(base) ((base)->ACCESS_CTRL81_ROOT_SET) -#define CCM_ACCESS_CTRL81_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL81_ROOT_CLR) -#define CCM_ACCESS_CTRL81_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL81_ROOT_TOG) -#define CCM_TARGET_ROOT82_REG(base) ((base)->TARGET_ROOT82) -#define CCM_TARGET_ROOT82_SET_REG(base) ((base)->TARGET_ROOT82_SET) -#define CCM_TARGET_ROOT82_CLR_REG(base) ((base)->TARGET_ROOT82_CLR) -#define CCM_TARGET_ROOT82_TOG_REG(base) ((base)->TARGET_ROOT82_TOG) -#define CCM_POST82_REG(base) ((base)->POST82) -#define CCM_POST_ROOT82_SET_REG(base) ((base)->POST_ROOT82_SET) -#define CCM_POST_ROOT82_CLR_REG(base) ((base)->POST_ROOT82_CLR) -#define CCM_POST_ROOT82_TOG_REG(base) ((base)->POST_ROOT82_TOG) -#define CCM_PRE82_REG(base) ((base)->PRE82) -#define CCM_PRE_ROOT82_SET_REG(base) ((base)->PRE_ROOT82_SET) -#define CCM_PRE_ROOT82_CLR_REG(base) ((base)->PRE_ROOT82_CLR) -#define CCM_PRE_ROOT82_TOG_REG(base) ((base)->PRE_ROOT82_TOG) -#define CCM_ACCESS_CTRL82_REG(base) ((base)->ACCESS_CTRL82) -#define CCM_ACCESS_CTRL82_ROOT_SET_REG(base) ((base)->ACCESS_CTRL82_ROOT_SET) -#define CCM_ACCESS_CTRL82_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL82_ROOT_CLR) -#define CCM_ACCESS_CTRL82_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL82_ROOT_TOG) -#define CCM_TARGET_ROOT83_REG(base) ((base)->TARGET_ROOT83) -#define CCM_TARGET_ROOT83_SET_REG(base) ((base)->TARGET_ROOT83_SET) -#define CCM_TARGET_ROOT83_CLR_REG(base) ((base)->TARGET_ROOT83_CLR) -#define CCM_TARGET_ROOT83_TOG_REG(base) ((base)->TARGET_ROOT83_TOG) -#define CCM_POST83_REG(base) ((base)->POST83) -#define CCM_POST_ROOT83_SET_REG(base) ((base)->POST_ROOT83_SET) -#define CCM_POST_ROOT83_CLR_REG(base) ((base)->POST_ROOT83_CLR) -#define CCM_POST_ROOT83_TOG_REG(base) ((base)->POST_ROOT83_TOG) -#define CCM_PRE83_REG(base) ((base)->PRE83) -#define CCM_PRE_ROOT83_SET_REG(base) ((base)->PRE_ROOT83_SET) -#define CCM_PRE_ROOT83_CLR_REG(base) ((base)->PRE_ROOT83_CLR) -#define CCM_PRE_ROOT83_TOG_REG(base) ((base)->PRE_ROOT83_TOG) -#define CCM_ACCESS_CTRL83_REG(base) ((base)->ACCESS_CTRL83) -#define CCM_ACCESS_CTRL83_ROOT_SET_REG(base) ((base)->ACCESS_CTRL83_ROOT_SET) -#define CCM_ACCESS_CTRL83_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL83_ROOT_CLR) -#define CCM_ACCESS_CTRL83_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL83_ROOT_TOG) -#define CCM_TARGET_ROOT84_REG(base) ((base)->TARGET_ROOT84) -#define CCM_TARGET_ROOT84_SET_REG(base) ((base)->TARGET_ROOT84_SET) -#define CCM_TARGET_ROOT84_CLR_REG(base) ((base)->TARGET_ROOT84_CLR) -#define CCM_TARGET_ROOT84_TOG_REG(base) ((base)->TARGET_ROOT84_TOG) -#define CCM_POST84_REG(base) ((base)->POST84) -#define CCM_POST_ROOT84_SET_REG(base) ((base)->POST_ROOT84_SET) -#define CCM_POST_ROOT84_CLR_REG(base) ((base)->POST_ROOT84_CLR) -#define CCM_POST_ROOT84_TOG_REG(base) ((base)->POST_ROOT84_TOG) -#define CCM_PRE84_REG(base) ((base)->PRE84) -#define CCM_PRE_ROOT84_SET_REG(base) ((base)->PRE_ROOT84_SET) -#define CCM_PRE_ROOT84_CLR_REG(base) ((base)->PRE_ROOT84_CLR) -#define CCM_PRE_ROOT84_TOG_REG(base) ((base)->PRE_ROOT84_TOG) -#define CCM_ACCESS_CTRL84_REG(base) ((base)->ACCESS_CTRL84) -#define CCM_ACCESS_CTRL84_ROOT_SET_REG(base) ((base)->ACCESS_CTRL84_ROOT_SET) -#define CCM_ACCESS_CTRL84_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL84_ROOT_CLR) -#define CCM_ACCESS_CTRL84_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL84_ROOT_TOG) -#define CCM_TARGET_ROOT85_REG(base) ((base)->TARGET_ROOT85) -#define CCM_TARGET_ROOT85_SET_REG(base) ((base)->TARGET_ROOT85_SET) -#define CCM_TARGET_ROOT85_CLR_REG(base) ((base)->TARGET_ROOT85_CLR) -#define CCM_TARGET_ROOT85_TOG_REG(base) ((base)->TARGET_ROOT85_TOG) -#define CCM_POST85_REG(base) ((base)->POST85) -#define CCM_POST_ROOT85_SET_REG(base) ((base)->POST_ROOT85_SET) -#define CCM_POST_ROOT85_CLR_REG(base) ((base)->POST_ROOT85_CLR) -#define CCM_POST_ROOT85_TOG_REG(base) ((base)->POST_ROOT85_TOG) -#define CCM_PRE85_REG(base) ((base)->PRE85) -#define CCM_PRE_ROOT85_SET_REG(base) ((base)->PRE_ROOT85_SET) -#define CCM_PRE_ROOT85_CLR_REG(base) ((base)->PRE_ROOT85_CLR) -#define CCM_PRE_ROOT85_TOG_REG(base) ((base)->PRE_ROOT85_TOG) -#define CCM_ACCESS_CTRL85_REG(base) ((base)->ACCESS_CTRL85) -#define CCM_ACCESS_CTRL85_ROOT_SET_REG(base) ((base)->ACCESS_CTRL85_ROOT_SET) -#define CCM_ACCESS_CTRL85_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL85_ROOT_CLR) -#define CCM_ACCESS_CTRL85_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL85_ROOT_TOG) -#define CCM_TARGET_ROOT86_REG(base) ((base)->TARGET_ROOT86) -#define CCM_TARGET_ROOT86_SET_REG(base) ((base)->TARGET_ROOT86_SET) -#define CCM_TARGET_ROOT86_CLR_REG(base) ((base)->TARGET_ROOT86_CLR) -#define CCM_TARGET_ROOT86_TOG_REG(base) ((base)->TARGET_ROOT86_TOG) -#define CCM_POST86_REG(base) ((base)->POST86) -#define CCM_POST_ROOT86_SET_REG(base) ((base)->POST_ROOT86_SET) -#define CCM_POST_ROOT86_CLR_REG(base) ((base)->POST_ROOT86_CLR) -#define CCM_POST_ROOT86_TOG_REG(base) ((base)->POST_ROOT86_TOG) -#define CCM_PRE86_REG(base) ((base)->PRE86) -#define CCM_PRE_ROOT86_SET_REG(base) ((base)->PRE_ROOT86_SET) -#define CCM_PRE_ROOT86_CLR_REG(base) ((base)->PRE_ROOT86_CLR) -#define CCM_PRE_ROOT86_TOG_REG(base) ((base)->PRE_ROOT86_TOG) -#define CCM_ACCESS_CTRL86_REG(base) ((base)->ACCESS_CTRL86) -#define CCM_ACCESS_CTRL86_ROOT_SET_REG(base) ((base)->ACCESS_CTRL86_ROOT_SET) -#define CCM_ACCESS_CTRL86_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL86_ROOT_CLR) -#define CCM_ACCESS_CTRL86_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL86_ROOT_TOG) -#define CCM_TARGET_ROOT87_REG(base) ((base)->TARGET_ROOT87) -#define CCM_TARGET_ROOT87_SET_REG(base) ((base)->TARGET_ROOT87_SET) -#define CCM_TARGET_ROOT87_CLR_REG(base) ((base)->TARGET_ROOT87_CLR) -#define CCM_TARGET_ROOT87_TOG_REG(base) ((base)->TARGET_ROOT87_TOG) -#define CCM_POST87_REG(base) ((base)->POST87) -#define CCM_POST_ROOT87_SET_REG(base) ((base)->POST_ROOT87_SET) -#define CCM_POST_ROOT87_CLR_REG(base) ((base)->POST_ROOT87_CLR) -#define CCM_POST_ROOT87_TOG_REG(base) ((base)->POST_ROOT87_TOG) -#define CCM_PRE87_REG(base) ((base)->PRE87) -#define CCM_PRE_ROOT87_SET_REG(base) ((base)->PRE_ROOT87_SET) -#define CCM_PRE_ROOT87_CLR_REG(base) ((base)->PRE_ROOT87_CLR) -#define CCM_PRE_ROOT87_TOG_REG(base) ((base)->PRE_ROOT87_TOG) -#define CCM_ACCESS_CTRL87_REG(base) ((base)->ACCESS_CTRL87) -#define CCM_ACCESS_CTRL87_ROOT_SET_REG(base) ((base)->ACCESS_CTRL87_ROOT_SET) -#define CCM_ACCESS_CTRL87_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL87_ROOT_CLR) -#define CCM_ACCESS_CTRL87_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL87_ROOT_TOG) -#define CCM_TARGET_ROOT88_REG(base) ((base)->TARGET_ROOT88) -#define CCM_TARGET_ROOT88_SET_REG(base) ((base)->TARGET_ROOT88_SET) -#define CCM_TARGET_ROOT88_CLR_REG(base) ((base)->TARGET_ROOT88_CLR) -#define CCM_TARGET_ROOT88_TOG_REG(base) ((base)->TARGET_ROOT88_TOG) -#define CCM_POST88_REG(base) ((base)->POST88) -#define CCM_POST_ROOT88_SET_REG(base) ((base)->POST_ROOT88_SET) -#define CCM_POST_ROOT88_CLR_REG(base) ((base)->POST_ROOT88_CLR) -#define CCM_POST_ROOT88_TOG_REG(base) ((base)->POST_ROOT88_TOG) -#define CCM_PRE88_REG(base) ((base)->PRE88) -#define CCM_PRE_ROOT88_SET_REG(base) ((base)->PRE_ROOT88_SET) -#define CCM_PRE_ROOT88_CLR_REG(base) ((base)->PRE_ROOT88_CLR) -#define CCM_PRE_ROOT88_TOG_REG(base) ((base)->PRE_ROOT88_TOG) -#define CCM_ACCESS_CTRL88_REG(base) ((base)->ACCESS_CTRL88) -#define CCM_ACCESS_CTRL88_ROOT_SET_REG(base) ((base)->ACCESS_CTRL88_ROOT_SET) -#define CCM_ACCESS_CTRL88_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL88_ROOT_CLR) -#define CCM_ACCESS_CTRL88_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL88_ROOT_TOG) -#define CCM_TARGET_ROOT89_REG(base) ((base)->TARGET_ROOT89) -#define CCM_TARGET_ROOT89_SET_REG(base) ((base)->TARGET_ROOT89_SET) -#define CCM_TARGET_ROOT89_CLR_REG(base) ((base)->TARGET_ROOT89_CLR) -#define CCM_TARGET_ROOT89_TOG_REG(base) ((base)->TARGET_ROOT89_TOG) -#define CCM_POST89_REG(base) ((base)->POST89) -#define CCM_POST_ROOT89_SET_REG(base) ((base)->POST_ROOT89_SET) -#define CCM_POST_ROOT89_CLR_REG(base) ((base)->POST_ROOT89_CLR) -#define CCM_POST_ROOT89_TOG_REG(base) ((base)->POST_ROOT89_TOG) -#define CCM_PRE89_REG(base) ((base)->PRE89) -#define CCM_PRE_ROOT89_SET_REG(base) ((base)->PRE_ROOT89_SET) -#define CCM_PRE_ROOT89_CLR_REG(base) ((base)->PRE_ROOT89_CLR) -#define CCM_PRE_ROOT89_TOG_REG(base) ((base)->PRE_ROOT89_TOG) -#define CCM_ACCESS_CTRL89_REG(base) ((base)->ACCESS_CTRL89) -#define CCM_ACCESS_CTRL89_ROOT_SET_REG(base) ((base)->ACCESS_CTRL89_ROOT_SET) -#define CCM_ACCESS_CTRL89_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL89_ROOT_CLR) -#define CCM_ACCESS_CTRL89_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL89_ROOT_TOG) -#define CCM_TARGET_ROOT90_REG(base) ((base)->TARGET_ROOT90) -#define CCM_TARGET_ROOT90_SET_REG(base) ((base)->TARGET_ROOT90_SET) -#define CCM_TARGET_ROOT90_CLR_REG(base) ((base)->TARGET_ROOT90_CLR) -#define CCM_TARGET_ROOT90_TOG_REG(base) ((base)->TARGET_ROOT90_TOG) -#define CCM_POST90_REG(base) ((base)->POST90) -#define CCM_POST_ROOT90_SET_REG(base) ((base)->POST_ROOT90_SET) -#define CCM_POST_ROOT90_CLR_REG(base) ((base)->POST_ROOT90_CLR) -#define CCM_POST_ROOT90_TOG_REG(base) ((base)->POST_ROOT90_TOG) -#define CCM_PRE90_REG(base) ((base)->PRE90) -#define CCM_PRE_ROOT90_SET_REG(base) ((base)->PRE_ROOT90_SET) -#define CCM_PRE_ROOT90_CLR_REG(base) ((base)->PRE_ROOT90_CLR) -#define CCM_PRE_ROOT90_TOG_REG(base) ((base)->PRE_ROOT90_TOG) -#define CCM_ACCESS_CTRL90_REG(base) ((base)->ACCESS_CTRL90) -#define CCM_ACCESS_CTRL90_ROOT_SET_REG(base) ((base)->ACCESS_CTRL90_ROOT_SET) -#define CCM_ACCESS_CTRL90_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL90_ROOT_CLR) -#define CCM_ACCESS_CTRL90_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL90_ROOT_TOG) -#define CCM_TARGET_ROOT91_REG(base) ((base)->TARGET_ROOT91) -#define CCM_TARGET_ROOT91_SET_REG(base) ((base)->TARGET_ROOT91_SET) -#define CCM_TARGET_ROOT91_CLR_REG(base) ((base)->TARGET_ROOT91_CLR) -#define CCM_TARGET_ROOT91_TOG_REG(base) ((base)->TARGET_ROOT91_TOG) -#define CCM_POST91_REG(base) ((base)->POST91) -#define CCM_POST_ROOT91_SET_REG(base) ((base)->POST_ROOT91_SET) -#define CCM_POST_ROOT91_CLR_REG(base) ((base)->POST_ROOT91_CLR) -#define CCM_POST_ROOT91_TOG_REG(base) ((base)->POST_ROOT91_TOG) -#define CCM_PRE91_REG(base) ((base)->PRE91) -#define CCM_PRE_ROOT91_SET_REG(base) ((base)->PRE_ROOT91_SET) -#define CCM_PRE_ROOT91_CLR_REG(base) ((base)->PRE_ROOT91_CLR) -#define CCM_PRE_ROOT91_TOG_REG(base) ((base)->PRE_ROOT91_TOG) -#define CCM_ACCESS_CTRL91_REG(base) ((base)->ACCESS_CTRL91) -#define CCM_ACCESS_CTRL91_ROOT_SET_REG(base) ((base)->ACCESS_CTRL91_ROOT_SET) -#define CCM_ACCESS_CTRL91_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL91_ROOT_CLR) -#define CCM_ACCESS_CTRL91_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL91_ROOT_TOG) -#define CCM_TARGET_ROOT92_REG(base) ((base)->TARGET_ROOT92) -#define CCM_TARGET_ROOT92_SET_REG(base) ((base)->TARGET_ROOT92_SET) -#define CCM_TARGET_ROOT92_CLR_REG(base) ((base)->TARGET_ROOT92_CLR) -#define CCM_TARGET_ROOT92_TOG_REG(base) ((base)->TARGET_ROOT92_TOG) -#define CCM_POST92_REG(base) ((base)->POST92) -#define CCM_POST_ROOT92_SET_REG(base) ((base)->POST_ROOT92_SET) -#define CCM_POST_ROOT92_CLR_REG(base) ((base)->POST_ROOT92_CLR) -#define CCM_POST_ROOT92_TOG_REG(base) ((base)->POST_ROOT92_TOG) -#define CCM_PRE92_REG(base) ((base)->PRE92) -#define CCM_PRE_ROOT92_SET_REG(base) ((base)->PRE_ROOT92_SET) -#define CCM_PRE_ROOT92_CLR_REG(base) ((base)->PRE_ROOT92_CLR) -#define CCM_PRE_ROOT92_TOG_REG(base) ((base)->PRE_ROOT92_TOG) -#define CCM_ACCESS_CTRL92_REG(base) ((base)->ACCESS_CTRL92) -#define CCM_ACCESS_CTRL92_ROOT_SET_REG(base) ((base)->ACCESS_CTRL92_ROOT_SET) -#define CCM_ACCESS_CTRL92_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL92_ROOT_CLR) -#define CCM_ACCESS_CTRL92_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL92_ROOT_TOG) -#define CCM_TARGET_ROOT93_REG(base) ((base)->TARGET_ROOT93) -#define CCM_TARGET_ROOT93_SET_REG(base) ((base)->TARGET_ROOT93_SET) -#define CCM_TARGET_ROOT93_CLR_REG(base) ((base)->TARGET_ROOT93_CLR) -#define CCM_TARGET_ROOT93_TOG_REG(base) ((base)->TARGET_ROOT93_TOG) -#define CCM_POST93_REG(base) ((base)->POST93) -#define CCM_POST_ROOT93_SET_REG(base) ((base)->POST_ROOT93_SET) -#define CCM_POST_ROOT93_CLR_REG(base) ((base)->POST_ROOT93_CLR) -#define CCM_POST_ROOT93_TOG_REG(base) ((base)->POST_ROOT93_TOG) -#define CCM_PRE93_REG(base) ((base)->PRE93) -#define CCM_PRE_ROOT93_SET_REG(base) ((base)->PRE_ROOT93_SET) -#define CCM_PRE_ROOT93_CLR_REG(base) ((base)->PRE_ROOT93_CLR) -#define CCM_PRE_ROOT93_TOG_REG(base) ((base)->PRE_ROOT93_TOG) -#define CCM_ACCESS_CTRL93_REG(base) ((base)->ACCESS_CTRL93) -#define CCM_ACCESS_CTRL93_ROOT_SET_REG(base) ((base)->ACCESS_CTRL93_ROOT_SET) -#define CCM_ACCESS_CTRL93_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL93_ROOT_CLR) -#define CCM_ACCESS_CTRL93_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL93_ROOT_TOG) -#define CCM_TARGET_ROOT94_REG(base) ((base)->TARGET_ROOT94) -#define CCM_TARGET_ROOT94_SET_REG(base) ((base)->TARGET_ROOT94_SET) -#define CCM_TARGET_ROOT94_CLR_REG(base) ((base)->TARGET_ROOT94_CLR) -#define CCM_TARGET_ROOT94_TOG_REG(base) ((base)->TARGET_ROOT94_TOG) -#define CCM_POST94_REG(base) ((base)->POST94) -#define CCM_POST_ROOT94_SET_REG(base) ((base)->POST_ROOT94_SET) -#define CCM_POST_ROOT94_CLR_REG(base) ((base)->POST_ROOT94_CLR) -#define CCM_POST_ROOT94_TOG_REG(base) ((base)->POST_ROOT94_TOG) -#define CCM_PRE94_REG(base) ((base)->PRE94) -#define CCM_PRE_ROOT94_SET_REG(base) ((base)->PRE_ROOT94_SET) -#define CCM_PRE_ROOT94_CLR_REG(base) ((base)->PRE_ROOT94_CLR) -#define CCM_PRE_ROOT94_TOG_REG(base) ((base)->PRE_ROOT94_TOG) -#define CCM_ACCESS_CTRL94_REG(base) ((base)->ACCESS_CTRL94) -#define CCM_ACCESS_CTRL94_ROOT_SET_REG(base) ((base)->ACCESS_CTRL94_ROOT_SET) -#define CCM_ACCESS_CTRL94_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL94_ROOT_CLR) -#define CCM_ACCESS_CTRL94_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL94_ROOT_TOG) -#define CCM_TARGET_ROOT95_REG(base) ((base)->TARGET_ROOT95) -#define CCM_TARGET_ROOT95_SET_REG(base) ((base)->TARGET_ROOT95_SET) -#define CCM_TARGET_ROOT95_CLR_REG(base) ((base)->TARGET_ROOT95_CLR) -#define CCM_TARGET_ROOT95_TOG_REG(base) ((base)->TARGET_ROOT95_TOG) -#define CCM_POST95_REG(base) ((base)->POST95) -#define CCM_POST_ROOT95_SET_REG(base) ((base)->POST_ROOT95_SET) -#define CCM_POST_ROOT95_CLR_REG(base) ((base)->POST_ROOT95_CLR) -#define CCM_POST_ROOT95_TOG_REG(base) ((base)->POST_ROOT95_TOG) -#define CCM_PRE95_REG(base) ((base)->PRE95) -#define CCM_PRE_ROOT95_SET_REG(base) ((base)->PRE_ROOT95_SET) -#define CCM_PRE_ROOT95_CLR_REG(base) ((base)->PRE_ROOT95_CLR) -#define CCM_PRE_ROOT95_TOG_REG(base) ((base)->PRE_ROOT95_TOG) -#define CCM_ACCESS_CTRL95_REG(base) ((base)->ACCESS_CTRL95) -#define CCM_ACCESS_CTRL95_ROOT_SET_REG(base) ((base)->ACCESS_CTRL95_ROOT_SET) -#define CCM_ACCESS_CTRL95_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL95_ROOT_CLR) -#define CCM_ACCESS_CTRL95_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL95_ROOT_TOG) -#define CCM_TARGET_ROOT96_REG(base) ((base)->TARGET_ROOT96) -#define CCM_TARGET_ROOT96_SET_REG(base) ((base)->TARGET_ROOT96_SET) -#define CCM_TARGET_ROOT96_CLR_REG(base) ((base)->TARGET_ROOT96_CLR) -#define CCM_TARGET_ROOT96_TOG_REG(base) ((base)->TARGET_ROOT96_TOG) -#define CCM_POST96_REG(base) ((base)->POST96) -#define CCM_POST_ROOT96_SET_REG(base) ((base)->POST_ROOT96_SET) -#define CCM_POST_ROOT96_CLR_REG(base) ((base)->POST_ROOT96_CLR) -#define CCM_POST_ROOT96_TOG_REG(base) ((base)->POST_ROOT96_TOG) -#define CCM_PRE96_REG(base) ((base)->PRE96) -#define CCM_PRE_ROOT96_SET_REG(base) ((base)->PRE_ROOT96_SET) -#define CCM_PRE_ROOT96_CLR_REG(base) ((base)->PRE_ROOT96_CLR) -#define CCM_PRE_ROOT96_TOG_REG(base) ((base)->PRE_ROOT96_TOG) -#define CCM_ACCESS_CTRL96_REG(base) ((base)->ACCESS_CTRL96) -#define CCM_ACCESS_CTRL96_ROOT_SET_REG(base) ((base)->ACCESS_CTRL96_ROOT_SET) -#define CCM_ACCESS_CTRL96_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL96_ROOT_CLR) -#define CCM_ACCESS_CTRL96_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL96_ROOT_TOG) -#define CCM_TARGET_ROOT97_REG(base) ((base)->TARGET_ROOT97) -#define CCM_TARGET_ROOT97_SET_REG(base) ((base)->TARGET_ROOT97_SET) -#define CCM_TARGET_ROOT97_CLR_REG(base) ((base)->TARGET_ROOT97_CLR) -#define CCM_TARGET_ROOT97_TOG_REG(base) ((base)->TARGET_ROOT97_TOG) -#define CCM_POST97_REG(base) ((base)->POST97) -#define CCM_POST_ROOT97_SET_REG(base) ((base)->POST_ROOT97_SET) -#define CCM_POST_ROOT97_CLR_REG(base) ((base)->POST_ROOT97_CLR) -#define CCM_POST_ROOT97_TOG_REG(base) ((base)->POST_ROOT97_TOG) -#define CCM_PRE97_REG(base) ((base)->PRE97) -#define CCM_PRE_ROOT97_SET_REG(base) ((base)->PRE_ROOT97_SET) -#define CCM_PRE_ROOT97_CLR_REG(base) ((base)->PRE_ROOT97_CLR) -#define CCM_PRE_ROOT97_TOG_REG(base) ((base)->PRE_ROOT97_TOG) -#define CCM_ACCESS_CTRL97_REG(base) ((base)->ACCESS_CTRL97) -#define CCM_ACCESS_CTRL97_ROOT_SET_REG(base) ((base)->ACCESS_CTRL97_ROOT_SET) -#define CCM_ACCESS_CTRL97_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL97_ROOT_CLR) -#define CCM_ACCESS_CTRL97_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL97_ROOT_TOG) -#define CCM_TARGET_ROOT98_REG(base) ((base)->TARGET_ROOT98) -#define CCM_TARGET_ROOT98_SET_REG(base) ((base)->TARGET_ROOT98_SET) -#define CCM_TARGET_ROOT98_CLR_REG(base) ((base)->TARGET_ROOT98_CLR) -#define CCM_TARGET_ROOT98_TOG_REG(base) ((base)->TARGET_ROOT98_TOG) -#define CCM_POST98_REG(base) ((base)->POST98) -#define CCM_POST_ROOT98_SET_REG(base) ((base)->POST_ROOT98_SET) -#define CCM_POST_ROOT98_CLR_REG(base) ((base)->POST_ROOT98_CLR) -#define CCM_POST_ROOT98_TOG_REG(base) ((base)->POST_ROOT98_TOG) -#define CCM_PRE98_REG(base) ((base)->PRE98) -#define CCM_PRE_ROOT98_SET_REG(base) ((base)->PRE_ROOT98_SET) -#define CCM_PRE_ROOT98_CLR_REG(base) ((base)->PRE_ROOT98_CLR) -#define CCM_PRE_ROOT98_TOG_REG(base) ((base)->PRE_ROOT98_TOG) -#define CCM_ACCESS_CTRL98_REG(base) ((base)->ACCESS_CTRL98) -#define CCM_ACCESS_CTRL98_ROOT_SET_REG(base) ((base)->ACCESS_CTRL98_ROOT_SET) -#define CCM_ACCESS_CTRL98_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL98_ROOT_CLR) -#define CCM_ACCESS_CTRL98_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL98_ROOT_TOG) -#define CCM_TARGET_ROOT99_REG(base) ((base)->TARGET_ROOT99) -#define CCM_TARGET_ROOT99_SET_REG(base) ((base)->TARGET_ROOT99_SET) -#define CCM_TARGET_ROOT99_CLR_REG(base) ((base)->TARGET_ROOT99_CLR) -#define CCM_TARGET_ROOT99_TOG_REG(base) ((base)->TARGET_ROOT99_TOG) -#define CCM_POST99_REG(base) ((base)->POST99) -#define CCM_POST_ROOT99_SET_REG(base) ((base)->POST_ROOT99_SET) -#define CCM_POST_ROOT99_CLR_REG(base) ((base)->POST_ROOT99_CLR) -#define CCM_POST_ROOT99_TOG_REG(base) ((base)->POST_ROOT99_TOG) -#define CCM_PRE99_REG(base) ((base)->PRE99) -#define CCM_PRE_ROOT99_SET_REG(base) ((base)->PRE_ROOT99_SET) -#define CCM_PRE_ROOT99_CLR_REG(base) ((base)->PRE_ROOT99_CLR) -#define CCM_PRE_ROOT99_TOG_REG(base) ((base)->PRE_ROOT99_TOG) -#define CCM_ACCESS_CTRL99_REG(base) ((base)->ACCESS_CTRL99) -#define CCM_ACCESS_CTRL99_ROOT_SET_REG(base) ((base)->ACCESS_CTRL99_ROOT_SET) -#define CCM_ACCESS_CTRL99_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL99_ROOT_CLR) -#define CCM_ACCESS_CTRL99_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL99_ROOT_TOG) -#define CCM_TARGET_ROOT100_REG(base) ((base)->TARGET_ROOT100) -#define CCM_TARGET_ROOT100_SET_REG(base) ((base)->TARGET_ROOT100_SET) -#define CCM_TARGET_ROOT100_CLR_REG(base) ((base)->TARGET_ROOT100_CLR) -#define CCM_TARGET_ROOT100_TOG_REG(base) ((base)->TARGET_ROOT100_TOG) -#define CCM_POST100_REG(base) ((base)->POST100) -#define CCM_POST_ROOT100_SET_REG(base) ((base)->POST_ROOT100_SET) -#define CCM_POST_ROOT100_CLR_REG(base) ((base)->POST_ROOT100_CLR) -#define CCM_POST_ROOT100_TOG_REG(base) ((base)->POST_ROOT100_TOG) -#define CCM_PRE100_REG(base) ((base)->PRE100) -#define CCM_PRE_ROOT100_SET_REG(base) ((base)->PRE_ROOT100_SET) -#define CCM_PRE_ROOT100_CLR_REG(base) ((base)->PRE_ROOT100_CLR) -#define CCM_PRE_ROOT100_TOG_REG(base) ((base)->PRE_ROOT100_TOG) -#define CCM_ACCESS_CTRL100_REG(base) ((base)->ACCESS_CTRL100) -#define CCM_ACCESS_CTRL100_ROOT_SET_REG(base) ((base)->ACCESS_CTRL100_ROOT_SET) -#define CCM_ACCESS_CTRL100_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL100_ROOT_CLR) -#define CCM_ACCESS_CTRL100_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL100_ROOT_TOG) -#define CCM_TARGET_ROOT101_REG(base) ((base)->TARGET_ROOT101) -#define CCM_TARGET_ROOT101_SET_REG(base) ((base)->TARGET_ROOT101_SET) -#define CCM_TARGET_ROOT101_CLR_REG(base) ((base)->TARGET_ROOT101_CLR) -#define CCM_TARGET_ROOT101_TOG_REG(base) ((base)->TARGET_ROOT101_TOG) -#define CCM_POST101_REG(base) ((base)->POST101) -#define CCM_POST_ROOT101_SET_REG(base) ((base)->POST_ROOT101_SET) -#define CCM_POST_ROOT101_CLR_REG(base) ((base)->POST_ROOT101_CLR) -#define CCM_POST_ROOT101_TOG_REG(base) ((base)->POST_ROOT101_TOG) -#define CCM_PRE101_REG(base) ((base)->PRE101) -#define CCM_PRE_ROOT101_SET_REG(base) ((base)->PRE_ROOT101_SET) -#define CCM_PRE_ROOT101_CLR_REG(base) ((base)->PRE_ROOT101_CLR) -#define CCM_PRE_ROOT101_TOG_REG(base) ((base)->PRE_ROOT101_TOG) -#define CCM_ACCESS_CTRL101_REG(base) ((base)->ACCESS_CTRL101) -#define CCM_ACCESS_CTRL101_ROOT_SET_REG(base) ((base)->ACCESS_CTRL101_ROOT_SET) -#define CCM_ACCESS_CTRL101_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL101_ROOT_CLR) -#define CCM_ACCESS_CTRL101_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL101_ROOT_TOG) -#define CCM_TARGET_ROOT102_REG(base) ((base)->TARGET_ROOT102) -#define CCM_TARGET_ROOT102_SET_REG(base) ((base)->TARGET_ROOT102_SET) -#define CCM_TARGET_ROOT102_CLR_REG(base) ((base)->TARGET_ROOT102_CLR) -#define CCM_TARGET_ROOT102_TOG_REG(base) ((base)->TARGET_ROOT102_TOG) -#define CCM_POST102_REG(base) ((base)->POST102) -#define CCM_POST_ROOT102_SET_REG(base) ((base)->POST_ROOT102_SET) -#define CCM_POST_ROOT102_CLR_REG(base) ((base)->POST_ROOT102_CLR) -#define CCM_POST_ROOT102_TOG_REG(base) ((base)->POST_ROOT102_TOG) -#define CCM_PRE102_REG(base) ((base)->PRE102) -#define CCM_PRE_ROOT102_SET_REG(base) ((base)->PRE_ROOT102_SET) -#define CCM_PRE_ROOT102_CLR_REG(base) ((base)->PRE_ROOT102_CLR) -#define CCM_PRE_ROOT102_TOG_REG(base) ((base)->PRE_ROOT102_TOG) -#define CCM_ACCESS_CTRL102_REG(base) ((base)->ACCESS_CTRL102) -#define CCM_ACCESS_CTRL102_ROOT_SET_REG(base) ((base)->ACCESS_CTRL102_ROOT_SET) -#define CCM_ACCESS_CTRL102_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL102_ROOT_CLR) -#define CCM_ACCESS_CTRL102_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL102_ROOT_TOG) -#define CCM_TARGET_ROOT103_REG(base) ((base)->TARGET_ROOT103) -#define CCM_TARGET_ROOT103_SET_REG(base) ((base)->TARGET_ROOT103_SET) -#define CCM_TARGET_ROOT103_CLR_REG(base) ((base)->TARGET_ROOT103_CLR) -#define CCM_TARGET_ROOT103_TOG_REG(base) ((base)->TARGET_ROOT103_TOG) -#define CCM_POST103_REG(base) ((base)->POST103) -#define CCM_POST_ROOT103_SET_REG(base) ((base)->POST_ROOT103_SET) -#define CCM_POST_ROOT103_CLR_REG(base) ((base)->POST_ROOT103_CLR) -#define CCM_POST_ROOT103_TOG_REG(base) ((base)->POST_ROOT103_TOG) -#define CCM_PRE103_REG(base) ((base)->PRE103) -#define CCM_PRE_ROOT103_SET_REG(base) ((base)->PRE_ROOT103_SET) -#define CCM_PRE_ROOT103_CLR_REG(base) ((base)->PRE_ROOT103_CLR) -#define CCM_PRE_ROOT103_TOG_REG(base) ((base)->PRE_ROOT103_TOG) -#define CCM_ACCESS_CTRL103_REG(base) ((base)->ACCESS_CTRL103) -#define CCM_ACCESS_CTRL103_ROOT_SET_REG(base) ((base)->ACCESS_CTRL103_ROOT_SET) -#define CCM_ACCESS_CTRL103_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL103_ROOT_CLR) -#define CCM_ACCESS_CTRL103_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL103_ROOT_TOG) -#define CCM_TARGET_ROOT104_REG(base) ((base)->TARGET_ROOT104) -#define CCM_TARGET_ROOT104_SET_REG(base) ((base)->TARGET_ROOT104_SET) -#define CCM_TARGET_ROOT104_CLR_REG(base) ((base)->TARGET_ROOT104_CLR) -#define CCM_TARGET_ROOT104_TOG_REG(base) ((base)->TARGET_ROOT104_TOG) -#define CCM_POST104_REG(base) ((base)->POST104) -#define CCM_POST_ROOT104_SET_REG(base) ((base)->POST_ROOT104_SET) -#define CCM_POST_ROOT104_CLR_REG(base) ((base)->POST_ROOT104_CLR) -#define CCM_POST_ROOT104_TOG_REG(base) ((base)->POST_ROOT104_TOG) -#define CCM_PRE104_REG(base) ((base)->PRE104) -#define CCM_PRE_ROOT104_SET_REG(base) ((base)->PRE_ROOT104_SET) -#define CCM_PRE_ROOT104_CLR_REG(base) ((base)->PRE_ROOT104_CLR) -#define CCM_PRE_ROOT104_TOG_REG(base) ((base)->PRE_ROOT104_TOG) -#define CCM_ACCESS_CTRL104_REG(base) ((base)->ACCESS_CTRL104) -#define CCM_ACCESS_CTRL104_ROOT_SET_REG(base) ((base)->ACCESS_CTRL104_ROOT_SET) -#define CCM_ACCESS_CTRL104_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL104_ROOT_CLR) -#define CCM_ACCESS_CTRL104_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL104_ROOT_TOG) -#define CCM_TARGET_ROOT105_REG(base) ((base)->TARGET_ROOT105) -#define CCM_TARGET_ROOT105_SET_REG(base) ((base)->TARGET_ROOT105_SET) -#define CCM_TARGET_ROOT105_CLR_REG(base) ((base)->TARGET_ROOT105_CLR) -#define CCM_TARGET_ROOT105_TOG_REG(base) ((base)->TARGET_ROOT105_TOG) -#define CCM_POST105_REG(base) ((base)->POST105) -#define CCM_POST_ROOT105_SET_REG(base) ((base)->POST_ROOT105_SET) -#define CCM_POST_ROOT105_CLR_REG(base) ((base)->POST_ROOT105_CLR) -#define CCM_POST_ROOT105_TOG_REG(base) ((base)->POST_ROOT105_TOG) -#define CCM_PRE105_REG(base) ((base)->PRE105) -#define CCM_PRE_ROOT105_SET_REG(base) ((base)->PRE_ROOT105_SET) -#define CCM_PRE_ROOT105_CLR_REG(base) ((base)->PRE_ROOT105_CLR) -#define CCM_PRE_ROOT105_TOG_REG(base) ((base)->PRE_ROOT105_TOG) -#define CCM_ACCESS_CTRL105_REG(base) ((base)->ACCESS_CTRL105) -#define CCM_ACCESS_CTRL105_ROOT_SET_REG(base) ((base)->ACCESS_CTRL105_ROOT_SET) -#define CCM_ACCESS_CTRL105_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL105_ROOT_CLR) -#define CCM_ACCESS_CTRL105_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL105_ROOT_TOG) -#define CCM_TARGET_ROOT106_REG(base) ((base)->TARGET_ROOT106) -#define CCM_TARGET_ROOT106_SET_REG(base) ((base)->TARGET_ROOT106_SET) -#define CCM_TARGET_ROOT106_CLR_REG(base) ((base)->TARGET_ROOT106_CLR) -#define CCM_TARGET_ROOT106_TOG_REG(base) ((base)->TARGET_ROOT106_TOG) -#define CCM_POST106_REG(base) ((base)->POST106) -#define CCM_POST_ROOT106_SET_REG(base) ((base)->POST_ROOT106_SET) -#define CCM_POST_ROOT106_CLR_REG(base) ((base)->POST_ROOT106_CLR) -#define CCM_POST_ROOT106_TOG_REG(base) ((base)->POST_ROOT106_TOG) -#define CCM_PRE106_REG(base) ((base)->PRE106) -#define CCM_PRE_ROOT106_SET_REG(base) ((base)->PRE_ROOT106_SET) -#define CCM_PRE_ROOT106_CLR_REG(base) ((base)->PRE_ROOT106_CLR) -#define CCM_PRE_ROOT106_TOG_REG(base) ((base)->PRE_ROOT106_TOG) -#define CCM_ACCESS_CTRL106_REG(base) ((base)->ACCESS_CTRL106) -#define CCM_ACCESS_CTRL106_ROOT_SET_REG(base) ((base)->ACCESS_CTRL106_ROOT_SET) -#define CCM_ACCESS_CTRL106_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL106_ROOT_CLR) -#define CCM_ACCESS_CTRL106_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL106_ROOT_TOG) -#define CCM_TARGET_ROOT107_REG(base) ((base)->TARGET_ROOT107) -#define CCM_TARGET_ROOT107_SET_REG(base) ((base)->TARGET_ROOT107_SET) -#define CCM_TARGET_ROOT107_CLR_REG(base) ((base)->TARGET_ROOT107_CLR) -#define CCM_TARGET_ROOT107_TOG_REG(base) ((base)->TARGET_ROOT107_TOG) -#define CCM_POST107_REG(base) ((base)->POST107) -#define CCM_POST_ROOT107_SET_REG(base) ((base)->POST_ROOT107_SET) -#define CCM_POST_ROOT107_CLR_REG(base) ((base)->POST_ROOT107_CLR) -#define CCM_POST_ROOT107_TOG_REG(base) ((base)->POST_ROOT107_TOG) -#define CCM_PRE107_REG(base) ((base)->PRE107) -#define CCM_PRE_ROOT107_SET_REG(base) ((base)->PRE_ROOT107_SET) -#define CCM_PRE_ROOT107_CLR_REG(base) ((base)->PRE_ROOT107_CLR) -#define CCM_PRE_ROOT107_TOG_REG(base) ((base)->PRE_ROOT107_TOG) -#define CCM_ACCESS_CTRL107_REG(base) ((base)->ACCESS_CTRL107) -#define CCM_ACCESS_CTRL107_ROOT_SET_REG(base) ((base)->ACCESS_CTRL107_ROOT_SET) -#define CCM_ACCESS_CTRL107_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL107_ROOT_CLR) -#define CCM_ACCESS_CTRL107_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL107_ROOT_TOG) -#define CCM_TARGET_ROOT108_REG(base) ((base)->TARGET_ROOT108) -#define CCM_TARGET_ROOT108_SET_REG(base) ((base)->TARGET_ROOT108_SET) -#define CCM_TARGET_ROOT108_CLR_REG(base) ((base)->TARGET_ROOT108_CLR) -#define CCM_TARGET_ROOT108_TOG_REG(base) ((base)->TARGET_ROOT108_TOG) -#define CCM_POST108_REG(base) ((base)->POST108) -#define CCM_POST_ROOT108_SET_REG(base) ((base)->POST_ROOT108_SET) -#define CCM_POST_ROOT108_CLR_REG(base) ((base)->POST_ROOT108_CLR) -#define CCM_POST_ROOT108_TOG_REG(base) ((base)->POST_ROOT108_TOG) -#define CCM_PRE108_REG(base) ((base)->PRE108) -#define CCM_PRE_ROOT108_SET_REG(base) ((base)->PRE_ROOT108_SET) -#define CCM_PRE_ROOT108_CLR_REG(base) ((base)->PRE_ROOT108_CLR) -#define CCM_PRE_ROOT108_TOG_REG(base) ((base)->PRE_ROOT108_TOG) -#define CCM_ACCESS_CTRL108_REG(base) ((base)->ACCESS_CTRL108) -#define CCM_ACCESS_CTRL108_ROOT_SET_REG(base) ((base)->ACCESS_CTRL108_ROOT_SET) -#define CCM_ACCESS_CTRL108_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL108_ROOT_CLR) -#define CCM_ACCESS_CTRL108_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL108_ROOT_TOG) -#define CCM_TARGET_ROOT109_REG(base) ((base)->TARGET_ROOT109) -#define CCM_TARGET_ROOT109_SET_REG(base) ((base)->TARGET_ROOT109_SET) -#define CCM_TARGET_ROOT109_CLR_REG(base) ((base)->TARGET_ROOT109_CLR) -#define CCM_TARGET_ROOT109_TOG_REG(base) ((base)->TARGET_ROOT109_TOG) -#define CCM_POST109_REG(base) ((base)->POST109) -#define CCM_POST_ROOT109_SET_REG(base) ((base)->POST_ROOT109_SET) -#define CCM_POST_ROOT109_CLR_REG(base) ((base)->POST_ROOT109_CLR) -#define CCM_POST_ROOT109_TOG_REG(base) ((base)->POST_ROOT109_TOG) -#define CCM_PRE109_REG(base) ((base)->PRE109) -#define CCM_PRE_ROOT109_SET_REG(base) ((base)->PRE_ROOT109_SET) -#define CCM_PRE_ROOT109_CLR_REG(base) ((base)->PRE_ROOT109_CLR) -#define CCM_PRE_ROOT109_TOG_REG(base) ((base)->PRE_ROOT109_TOG) -#define CCM_ACCESS_CTRL109_REG(base) ((base)->ACCESS_CTRL109) -#define CCM_ACCESS_CTRL109_ROOT_SET_REG(base) ((base)->ACCESS_CTRL109_ROOT_SET) -#define CCM_ACCESS_CTRL109_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL109_ROOT_CLR) -#define CCM_ACCESS_CTRL109_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL109_ROOT_TOG) -#define CCM_TARGET_ROOT110_REG(base) ((base)->TARGET_ROOT110) -#define CCM_TARGET_ROOT110_SET_REG(base) ((base)->TARGET_ROOT110_SET) -#define CCM_TARGET_ROOT110_CLR_REG(base) ((base)->TARGET_ROOT110_CLR) -#define CCM_TARGET_ROOT110_TOG_REG(base) ((base)->TARGET_ROOT110_TOG) -#define CCM_POST110_REG(base) ((base)->POST110) -#define CCM_POST_ROOT110_SET_REG(base) ((base)->POST_ROOT110_SET) -#define CCM_POST_ROOT110_CLR_REG(base) ((base)->POST_ROOT110_CLR) -#define CCM_POST_ROOT110_TOG_REG(base) ((base)->POST_ROOT110_TOG) -#define CCM_PRE110_REG(base) ((base)->PRE110) -#define CCM_PRE_ROOT110_SET_REG(base) ((base)->PRE_ROOT110_SET) -#define CCM_PRE_ROOT110_CLR_REG(base) ((base)->PRE_ROOT110_CLR) -#define CCM_PRE_ROOT110_TOG_REG(base) ((base)->PRE_ROOT110_TOG) -#define CCM_ACCESS_CTRL110_REG(base) ((base)->ACCESS_CTRL110) -#define CCM_ACCESS_CTRL110_ROOT_SET_REG(base) ((base)->ACCESS_CTRL110_ROOT_SET) -#define CCM_ACCESS_CTRL110_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL110_ROOT_CLR) -#define CCM_ACCESS_CTRL110_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL110_ROOT_TOG) -#define CCM_TARGET_ROOT111_REG(base) ((base)->TARGET_ROOT111) -#define CCM_TARGET_ROOT111_SET_REG(base) ((base)->TARGET_ROOT111_SET) -#define CCM_TARGET_ROOT111_CLR_REG(base) ((base)->TARGET_ROOT111_CLR) -#define CCM_TARGET_ROOT111_TOG_REG(base) ((base)->TARGET_ROOT111_TOG) -#define CCM_POST111_REG(base) ((base)->POST111) -#define CCM_POST_ROOT111_SET_REG(base) ((base)->POST_ROOT111_SET) -#define CCM_POST_ROOT111_CLR_REG(base) ((base)->POST_ROOT111_CLR) -#define CCM_POST_ROOT111_TOG_REG(base) ((base)->POST_ROOT111_TOG) -#define CCM_PRE111_REG(base) ((base)->PRE111) -#define CCM_PRE_ROOT111_SET_REG(base) ((base)->PRE_ROOT111_SET) -#define CCM_PRE_ROOT111_CLR_REG(base) ((base)->PRE_ROOT111_CLR) -#define CCM_PRE_ROOT111_TOG_REG(base) ((base)->PRE_ROOT111_TOG) -#define CCM_ACCESS_CTRL111_REG(base) ((base)->ACCESS_CTRL111) -#define CCM_ACCESS_CTRL111_ROOT_SET_REG(base) ((base)->ACCESS_CTRL111_ROOT_SET) -#define CCM_ACCESS_CTRL111_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL111_ROOT_CLR) -#define CCM_ACCESS_CTRL111_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL111_ROOT_TOG) -#define CCM_TARGET_ROOT112_REG(base) ((base)->TARGET_ROOT112) -#define CCM_TARGET_ROOT112_SET_REG(base) ((base)->TARGET_ROOT112_SET) -#define CCM_TARGET_ROOT112_CLR_REG(base) ((base)->TARGET_ROOT112_CLR) -#define CCM_TARGET_ROOT112_TOG_REG(base) ((base)->TARGET_ROOT112_TOG) -#define CCM_POST112_REG(base) ((base)->POST112) -#define CCM_POST_ROOT112_SET_REG(base) ((base)->POST_ROOT112_SET) -#define CCM_POST_ROOT112_CLR_REG(base) ((base)->POST_ROOT112_CLR) -#define CCM_POST_ROOT112_TOG_REG(base) ((base)->POST_ROOT112_TOG) -#define CCM_PRE112_REG(base) ((base)->PRE112) -#define CCM_PRE_ROOT112_SET_REG(base) ((base)->PRE_ROOT112_SET) -#define CCM_PRE_ROOT112_CLR_REG(base) ((base)->PRE_ROOT112_CLR) -#define CCM_PRE_ROOT112_TOG_REG(base) ((base)->PRE_ROOT112_TOG) -#define CCM_ACCESS_CTRL112_REG(base) ((base)->ACCESS_CTRL112) -#define CCM_ACCESS_CTRL112_ROOT_SET_REG(base) ((base)->ACCESS_CTRL112_ROOT_SET) -#define CCM_ACCESS_CTRL112_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL112_ROOT_CLR) -#define CCM_ACCESS_CTRL112_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL112_ROOT_TOG) -#define CCM_TARGET_ROOT113_REG(base) ((base)->TARGET_ROOT113) -#define CCM_TARGET_ROOT113_SET_REG(base) ((base)->TARGET_ROOT113_SET) -#define CCM_TARGET_ROOT113_CLR_REG(base) ((base)->TARGET_ROOT113_CLR) -#define CCM_TARGET_ROOT113_TOG_REG(base) ((base)->TARGET_ROOT113_TOG) -#define CCM_POST113_REG(base) ((base)->POST113) -#define CCM_POST_ROOT113_SET_REG(base) ((base)->POST_ROOT113_SET) -#define CCM_POST_ROOT113_CLR_REG(base) ((base)->POST_ROOT113_CLR) -#define CCM_POST_ROOT113_TOG_REG(base) ((base)->POST_ROOT113_TOG) -#define CCM_PRE113_REG(base) ((base)->PRE113) -#define CCM_PRE_ROOT113_SET_REG(base) ((base)->PRE_ROOT113_SET) -#define CCM_PRE_ROOT113_CLR_REG(base) ((base)->PRE_ROOT113_CLR) -#define CCM_PRE_ROOT113_TOG_REG(base) ((base)->PRE_ROOT113_TOG) -#define CCM_ACCESS_CTRL113_REG(base) ((base)->ACCESS_CTRL113) -#define CCM_ACCESS_CTRL113_ROOT_SET_REG(base) ((base)->ACCESS_CTRL113_ROOT_SET) -#define CCM_ACCESS_CTRL113_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL113_ROOT_CLR) -#define CCM_ACCESS_CTRL113_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL113_ROOT_TOG) -#define CCM_TARGET_ROOT114_REG(base) ((base)->TARGET_ROOT114) -#define CCM_TARGET_ROOT114_SET_REG(base) ((base)->TARGET_ROOT114_SET) -#define CCM_TARGET_ROOT114_CLR_REG(base) ((base)->TARGET_ROOT114_CLR) -#define CCM_TARGET_ROOT114_TOG_REG(base) ((base)->TARGET_ROOT114_TOG) -#define CCM_POST114_REG(base) ((base)->POST114) -#define CCM_POST_ROOT114_SET_REG(base) ((base)->POST_ROOT114_SET) -#define CCM_POST_ROOT114_CLR_REG(base) ((base)->POST_ROOT114_CLR) -#define CCM_POST_ROOT114_TOG_REG(base) ((base)->POST_ROOT114_TOG) -#define CCM_PRE114_REG(base) ((base)->PRE114) -#define CCM_PRE_ROOT114_SET_REG(base) ((base)->PRE_ROOT114_SET) -#define CCM_PRE_ROOT114_CLR_REG(base) ((base)->PRE_ROOT114_CLR) -#define CCM_PRE_ROOT114_TOG_REG(base) ((base)->PRE_ROOT114_TOG) -#define CCM_ACCESS_CTRL114_REG(base) ((base)->ACCESS_CTRL114) -#define CCM_ACCESS_CTRL114_ROOT_SET_REG(base) ((base)->ACCESS_CTRL114_ROOT_SET) -#define CCM_ACCESS_CTRL114_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL114_ROOT_CLR) -#define CCM_ACCESS_CTRL114_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL114_ROOT_TOG) -#define CCM_TARGET_ROOT115_REG(base) ((base)->TARGET_ROOT115) -#define CCM_TARGET_ROOT115_SET_REG(base) ((base)->TARGET_ROOT115_SET) -#define CCM_TARGET_ROOT115_CLR_REG(base) ((base)->TARGET_ROOT115_CLR) -#define CCM_TARGET_ROOT115_TOG_REG(base) ((base)->TARGET_ROOT115_TOG) -#define CCM_POST115_REG(base) ((base)->POST115) -#define CCM_POST_ROOT115_SET_REG(base) ((base)->POST_ROOT115_SET) -#define CCM_POST_ROOT115_CLR_REG(base) ((base)->POST_ROOT115_CLR) -#define CCM_POST_ROOT115_TOG_REG(base) ((base)->POST_ROOT115_TOG) -#define CCM_PRE115_REG(base) ((base)->PRE115) -#define CCM_PRE_ROOT115_SET_REG(base) ((base)->PRE_ROOT115_SET) -#define CCM_PRE_ROOT115_CLR_REG(base) ((base)->PRE_ROOT115_CLR) -#define CCM_PRE_ROOT115_TOG_REG(base) ((base)->PRE_ROOT115_TOG) -#define CCM_ACCESS_CTRL115_REG(base) ((base)->ACCESS_CTRL115) -#define CCM_ACCESS_CTRL115_ROOT_SET_REG(base) ((base)->ACCESS_CTRL115_ROOT_SET) -#define CCM_ACCESS_CTRL115_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL115_ROOT_CLR) -#define CCM_ACCESS_CTRL115_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL115_ROOT_TOG) -#define CCM_TARGET_ROOT116_REG(base) ((base)->TARGET_ROOT116) -#define CCM_TARGET_ROOT116_SET_REG(base) ((base)->TARGET_ROOT116_SET) -#define CCM_TARGET_ROOT116_CLR_REG(base) ((base)->TARGET_ROOT116_CLR) -#define CCM_TARGET_ROOT116_TOG_REG(base) ((base)->TARGET_ROOT116_TOG) -#define CCM_POST116_REG(base) ((base)->POST116) -#define CCM_POST_ROOT116_SET_REG(base) ((base)->POST_ROOT116_SET) -#define CCM_POST_ROOT116_CLR_REG(base) ((base)->POST_ROOT116_CLR) -#define CCM_POST_ROOT116_TOG_REG(base) ((base)->POST_ROOT116_TOG) -#define CCM_PRE116_REG(base) ((base)->PRE116) -#define CCM_PRE_ROOT116_SET_REG(base) ((base)->PRE_ROOT116_SET) -#define CCM_PRE_ROOT116_CLR_REG(base) ((base)->PRE_ROOT116_CLR) -#define CCM_PRE_ROOT116_TOG_REG(base) ((base)->PRE_ROOT116_TOG) -#define CCM_ACCESS_CTRL116_REG(base) ((base)->ACCESS_CTRL116) -#define CCM_ACCESS_CTRL116_ROOT_SET_REG(base) ((base)->ACCESS_CTRL116_ROOT_SET) -#define CCM_ACCESS_CTRL116_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL116_ROOT_CLR) -#define CCM_ACCESS_CTRL116_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL116_ROOT_TOG) -#define CCM_TARGET_ROOT117_REG(base) ((base)->TARGET_ROOT117) -#define CCM_TARGET_ROOT117_SET_REG(base) ((base)->TARGET_ROOT117_SET) -#define CCM_TARGET_ROOT117_CLR_REG(base) ((base)->TARGET_ROOT117_CLR) -#define CCM_TARGET_ROOT117_TOG_REG(base) ((base)->TARGET_ROOT117_TOG) -#define CCM_POST117_REG(base) ((base)->POST117) -#define CCM_POST_ROOT117_SET_REG(base) ((base)->POST_ROOT117_SET) -#define CCM_POST_ROOT117_CLR_REG(base) ((base)->POST_ROOT117_CLR) -#define CCM_POST_ROOT117_TOG_REG(base) ((base)->POST_ROOT117_TOG) -#define CCM_PRE117_REG(base) ((base)->PRE117) -#define CCM_PRE_ROOT117_SET_REG(base) ((base)->PRE_ROOT117_SET) -#define CCM_PRE_ROOT117_CLR_REG(base) ((base)->PRE_ROOT117_CLR) -#define CCM_PRE_ROOT117_TOG_REG(base) ((base)->PRE_ROOT117_TOG) -#define CCM_ACCESS_CTRL117_REG(base) ((base)->ACCESS_CTRL117) -#define CCM_ACCESS_CTRL117_ROOT_SET_REG(base) ((base)->ACCESS_CTRL117_ROOT_SET) -#define CCM_ACCESS_CTRL117_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL117_ROOT_CLR) -#define CCM_ACCESS_CTRL117_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL117_ROOT_TOG) -#define CCM_TARGET_ROOT118_REG(base) ((base)->TARGET_ROOT118) -#define CCM_TARGET_ROOT118_SET_REG(base) ((base)->TARGET_ROOT118_SET) -#define CCM_TARGET_ROOT118_CLR_REG(base) ((base)->TARGET_ROOT118_CLR) -#define CCM_TARGET_ROOT118_TOG_REG(base) ((base)->TARGET_ROOT118_TOG) -#define CCM_POST118_REG(base) ((base)->POST118) -#define CCM_POST_ROOT118_SET_REG(base) ((base)->POST_ROOT118_SET) -#define CCM_POST_ROOT118_CLR_REG(base) ((base)->POST_ROOT118_CLR) -#define CCM_POST_ROOT118_TOG_REG(base) ((base)->POST_ROOT118_TOG) -#define CCM_PRE118_REG(base) ((base)->PRE118) -#define CCM_PRE_ROOT118_SET_REG(base) ((base)->PRE_ROOT118_SET) -#define CCM_PRE_ROOT118_CLR_REG(base) ((base)->PRE_ROOT118_CLR) -#define CCM_PRE_ROOT118_TOG_REG(base) ((base)->PRE_ROOT118_TOG) -#define CCM_ACCESS_CTRL118_REG(base) ((base)->ACCESS_CTRL118) -#define CCM_ACCESS_CTRL118_ROOT_SET_REG(base) ((base)->ACCESS_CTRL118_ROOT_SET) -#define CCM_ACCESS_CTRL118_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL118_ROOT_CLR) -#define CCM_ACCESS_CTRL118_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL118_ROOT_TOG) -#define CCM_TARGET_ROOT119_REG(base) ((base)->TARGET_ROOT119) -#define CCM_TARGET_ROOT119_SET_REG(base) ((base)->TARGET_ROOT119_SET) -#define CCM_TARGET_ROOT119_CLR_REG(base) ((base)->TARGET_ROOT119_CLR) -#define CCM_TARGET_ROOT119_TOG_REG(base) ((base)->TARGET_ROOT119_TOG) -#define CCM_POST119_REG(base) ((base)->POST119) -#define CCM_POST_ROOT119_SET_REG(base) ((base)->POST_ROOT119_SET) -#define CCM_POST_ROOT119_CLR_REG(base) ((base)->POST_ROOT119_CLR) -#define CCM_POST_ROOT119_TOG_REG(base) ((base)->POST_ROOT119_TOG) -#define CCM_PRE119_REG(base) ((base)->PRE119) -#define CCM_PRE_ROOT119_SET_REG(base) ((base)->PRE_ROOT119_SET) -#define CCM_PRE_ROOT119_CLR_REG(base) ((base)->PRE_ROOT119_CLR) -#define CCM_PRE_ROOT119_TOG_REG(base) ((base)->PRE_ROOT119_TOG) -#define CCM_ACCESS_CTRL119_REG(base) ((base)->ACCESS_CTRL119) -#define CCM_ACCESS_CTRL119_ROOT_SET_REG(base) ((base)->ACCESS_CTRL119_ROOT_SET) -#define CCM_ACCESS_CTRL119_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL119_ROOT_CLR) -#define CCM_ACCESS_CTRL119_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL119_ROOT_TOG) -#define CCM_TARGET_ROOT120_REG(base) ((base)->TARGET_ROOT120) -#define CCM_TARGET_ROOT120_SET_REG(base) ((base)->TARGET_ROOT120_SET) -#define CCM_TARGET_ROOT120_CLR_REG(base) ((base)->TARGET_ROOT120_CLR) -#define CCM_TARGET_ROOT120_TOG_REG(base) ((base)->TARGET_ROOT120_TOG) -#define CCM_POST120_REG(base) ((base)->POST120) -#define CCM_POST_ROOT120_SET_REG(base) ((base)->POST_ROOT120_SET) -#define CCM_POST_ROOT120_CLR_REG(base) ((base)->POST_ROOT120_CLR) -#define CCM_POST_ROOT120_TOG_REG(base) ((base)->POST_ROOT120_TOG) -#define CCM_PRE120_REG(base) ((base)->PRE120) -#define CCM_PRE_ROOT120_SET_REG(base) ((base)->PRE_ROOT120_SET) -#define CCM_PRE_ROOT120_CLR_REG(base) ((base)->PRE_ROOT120_CLR) -#define CCM_PRE_ROOT120_TOG_REG(base) ((base)->PRE_ROOT120_TOG) -#define CCM_ACCESS_CTRL120_REG(base) ((base)->ACCESS_CTRL120) -#define CCM_ACCESS_CTRL120_ROOT_SET_REG(base) ((base)->ACCESS_CTRL120_ROOT_SET) -#define CCM_ACCESS_CTRL120_ROOT_CLR_REG(base) ((base)->ACCESS_CTRL120_ROOT_CLR) -#define CCM_ACCESS_CTRL120_ROOT_TOG_REG(base) ((base)->ACCESS_CTRL120_ROOT_TOG) +#define CCM_PLL_CTRL_REG(base,index) ((base)->PLL_CTRL[index].PLL_CTRL) +#define CCM_PLL_CTRL_SET_REG(base,index) ((base)->PLL_CTRL[index].PLL_CTRL_SET) +#define CCM_PLL_CTRL_CLR_REG(base,index) ((base)->PLL_CTRL[index].PLL_CTRL_CLR) +#define CCM_PLL_CTRL_TOG_REG(base,index) ((base)->PLL_CTRL[index].PLL_CTRL_TOG) +#define CCM_CCGR_REG(base,index) ((base)->CCGR[index].CCGR) +#define CCM_CCGR_SET_REG(base,index) ((base)->CCGR[index].CCGR_SET) +#define CCM_CCGR_CLR_REG(base,index) ((base)->CCGR[index].CCGR_CLR) +#define CCM_CCGR_TOG_REG(base,index) ((base)->CCGR[index].CCGR_TOG) +#define CCM_TARGET_ROOT_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].TARGET_ROOT) +#define CCM_TARGET_ROOT_SET_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].TARGET_ROOT_SET) +#define CCM_TARGET_ROOT_CLR_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].TARGET_ROOT_CLR) +#define CCM_TARGET_ROOT_TOG_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].TARGET_ROOT_TOG) +#define CCM_MISC_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].MISC) +#define CCM_MISC_ROOT_SET_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].MISC_ROOT_SET) +#define CCM_MISC_ROOT_CLR_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].MISC_ROOT_CLR) +#define CCM_MISC_ROOT_TOG_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].MISC_ROOT_TOG) +#define CCM_POST_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].POST) +#define CCM_POST_ROOT_SET_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].POST_ROOT_SET) +#define CCM_POST_ROOT_CLR_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].POST_ROOT_CLR) +#define CCM_POST_ROOT_TOG_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].POST_ROOT_TOG) +#define CCM_PRE_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].PRE) +#define CCM_PRE_ROOT_SET_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].PRE_ROOT_SET) +#define CCM_PRE_ROOT_CLR_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].PRE_ROOT_CLR) +#define CCM_PRE_ROOT_TOG_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].PRE_ROOT_TOG) +#define CCM_ACCESS_CTRL_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].ACCESS_CTRL) +#define CCM_ACCESS_CTRL_ROOT_SET_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].ACCESS_CTRL_ROOT_SET) +#define CCM_ACCESS_CTRL_ROOT_CLR_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].ACCESS_CTRL_ROOT_CLR) +#define CCM_ACCESS_CTRL_ROOT_TOG_REG(base,index) ((base)->ACCESS_CTRL_ROOT_TOG[index].ACCESS_CTRL_ROOT_TOG) /*! * @} */ /* end of group CCM_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- CCM Register Masks ---------------------------------------------------------------------------- */ @@ -9876,47651 +4645,461 @@ typedef struct { #define CCM_GPR0_TOG_GP0_MASK 0xFFFFFFFFu #define CCM_GPR0_TOG_GP0_SHIFT 0 #define CCM_GPR0_TOG_GP0(x) (((uint32_t)(((uint32_t)(x))<CSIFBUF_PARA) #define CSI_CSIIMAG_PARA_REG(base) ((base)->CSIIMAG_PARA) #define CSI_CSICR18_REG(base) ((base)->CSICR18) -#define CSI_CSICR19_REG(base) ((base)->CSICR19) /*! * @} */ /* end of group CSI_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- CSI Register Masks ---------------------------------------------------------------------------- */ @@ -62122,6 +10412,9 @@ typedef struct { #define CSI_CSIFBUF_PARA_FBUF_STRIDE_MASK 0xFFFFu #define CSI_CSIFBUF_PARA_FBUF_STRIDE_SHIFT 0 #define CSI_CSIFBUF_PARA_FBUF_STRIDE(x) (((uint32_t)(((uint32_t)(x))<INIT3) #define DDRC_INIT4_REG(base) ((base)->INIT4) #define DDRC_INIT5_REG(base) ((base)->INIT5) +#define DDRC_RANKCTL_REG(base) ((base)->RANKCTL) #define DDRC_DRAMTMG0_REG(base) ((base)->DRAMTMG0) #define DDRC_DRAMTMG1_REG(base) ((base)->DRAMTMG1) #define DDRC_DRAMTMG2_REG(base) ((base)->DRAMTMG2) @@ -62424,8 +10709,6 @@ typedef struct { /*! * @} */ /* end of group DDRC_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- DDRC Register Masks ---------------------------------------------------------------------------- */ @@ -62464,6 +10747,9 @@ typedef struct { #define DDRC_STAT_SELFREF_TYPE_MASK 0x30u #define DDRC_STAT_SELFREF_TYPE_SHIFT 4 #define DDRC_STAT_SELFREF_TYPE(x) (((uint32_t)(((uint32_t)(x))<PHY_CON1) #define DDR_PHY_PHY_CON2_REG(base) ((base)->PHY_CON2) #define DDR_PHY_PHY_CON3_REG(base) ((base)->PHY_CON3) -#define DDR_PHY_CON4_REG(base) ((base)->CON4) +#define DDR_PHY_PHY_CON4_REG(base) ((base)->PHY_CON4) #define DDR_PHY_PHY_CON5_REG(base) ((base)->PHY_CON5) #define DDR_PHY_LP_CON0_REG(base) ((base)->LP_CON0) #define DDR_PHY_RODT_CON0_REG(base) ((base)->RODT_CON0) @@ -63520,8 +11804,6 @@ typedef struct { /*! * @} */ /* end of group DDR_PHY_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- DDR_PHY Register Masks ---------------------------------------------------------------------------- */ @@ -63586,16 +11868,16 @@ typedef struct { #define DDR_PHY_PHY_CON3_WRLVL_RESP_SHIFT 24 #define DDR_PHY_PHY_CON3_WL_CAL_RESP_MASK 0x8000000u #define DDR_PHY_PHY_CON3_WL_CAL_RESP_SHIFT 27 -/* CON4 Bit Fields */ -#define DDR_PHY_CON4_CTRL_RDLAT_MASK 0x1Fu -#define DDR_PHY_CON4_CTRL_RDLAT_SHIFT 0 -#define DDR_PHY_CON4_CTRL_RDLAT(x) (((uint32_t)(((uint32_t)(x))<CSCR[index].CSGCR1) -#define EIM_CSGCR2_REG(base,index) ((base)->CSCR[index].CSGCR2) -#define EIM_CSRCR1_REG(base,index) ((base)->CSCR[index].CSRCR1) -#define EIM_CSRCR2_REG(base,index) ((base)->CSCR[index].CSRCR2) -#define EIM_CSWCR1_REG(base,index) ((base)->CSCR[index].CSWCR1) -#define EIM_CSWCR2_REG(base,index) ((base)->CSCR[index].CSWCR2) +#define EIM_CSGCR1_REG(base,index) ((base)->CS[index].CSGCR1) +#define EIM_CSGCR2_REG(base,index) ((base)->CS[index].CSGCR2) +#define EIM_CSRCR1_REG(base,index) ((base)->CS[index].CSRCR1) +#define EIM_CSRCR2_REG(base,index) ((base)->CS[index].CSRCR2) +#define EIM_CSWCR1_REG(base,index) ((base)->CS[index].CSWCR1) +#define EIM_CSWCR2_REG(base,index) ((base)->CS[index].CSWCR2) #define EIM_WCR_REG(base) ((base)->WCR) #define EIM_DCR_REG(base) ((base)->DCR) #define EIM_DSR_REG(base) ((base)->DSR) @@ -64498,8 +12770,6 @@ typedef struct { /*! * @} */ /* end of group EIM_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- EIM Register Masks ---------------------------------------------------------------------------- */ @@ -64722,18 +12992,18 @@ typedef struct { * @} */ /* end of group EIM_Register_Masks */ - /* EIM - Peripheral instance base addresses */ /** Peripheral EIM base address */ #define EIM_BASE (0x30BC0000u) /** Peripheral EIM base pointer */ #define EIM ((EIM_Type *)EIM_BASE) #define EIM_BASE_PTR (EIM) -/** Array initializer of EIM peripheral base adresses */ +/** Array initializer of EIM peripheral base addresses */ #define EIM_BASE_ADDRS { EIM_BASE } /** Array initializer of EIM peripheral base pointers */ #define EIM_BASE_PTRS { EIM } - +/** Interrupt vectors for the EIM peripheral type */ +#define EIM_IRQS { EIM_IRQn } /* ---------------------------------------------------------------------------- -- EIM - Register accessor macros ---------------------------------------------------------------------------- */ @@ -64787,7 +13057,6 @@ typedef struct { #define EIM_DSR EIM_DSR_REG(EIM_BASE_PTR) #define EIM_WIAR EIM_WIAR_REG(EIM_BASE_PTR) #define EIM_EAR EIM_EAR_REG(EIM_BASE_PTR) - /* EIM - Register array accessors */ #define EIM_CSGCR1(index) EIM_CSGCR1_REG(EIM_BASE_PTR,index) #define EIM_CSGCR2(index) EIM_CSGCR2_REG(EIM_BASE_PTR,index) @@ -64795,7 +13064,6 @@ typedef struct { #define EIM_CSRCR2(index) EIM_CSRCR2_REG(EIM_BASE_PTR,index) #define EIM_CSWCR1(index) EIM_CSWCR1_REG(EIM_BASE_PTR,index) #define EIM_CSWCR2(index) EIM_CSWCR2_REG(EIM_BASE_PTR,index) - /*! * @} */ /* end of group EIM_Register_Accessor_Macros */ @@ -64805,392 +13073,6 @@ typedef struct { * @} */ /* end of group EIM_Peripheral */ - -/* ---------------------------------------------------------------------------- - -- EMVSIM Peripheral Access Layer - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup EMVSIM_Peripheral_Access_Layer EMVSIM Peripheral Access Layer - * @{ - */ - -/** EMVSIM - Register Layout Typedef */ -typedef struct { - __IO uint32_t VER_ID; /**< Version ID Register, offset: 0x0 */ - __IO uint32_t PARAM; /**< Parameter Register, offset: 0x4 */ - __IO uint32_t CLKCFG; /**< Clock Configuration Register, offset: 0x8 */ - __IO uint32_t DIVISOR; /**< Baud Rate Divisor Register, offset: 0xC */ - __IO uint32_t CTRL; /**< Control Register, offset: 0x10 */ - __IO uint32_t INT_MASK; /**< Interrupt Mask Register, offset: 0x14 */ - __IO uint32_t RX_THD; /**< Receiver Threshold Register, offset: 0x18 */ - __IO uint32_t TX_THD; /**< Transmitter Threshold Register, offset: 0x1C */ - __I uint32_t RX_STATUS; /**< Receive Status Register, offset: 0x20 */ - __I uint32_t TX_STATUS; /**< Transmitter Status Register, offset: 0x24 */ - __IO uint32_t PCSR; /**< Port Control and Status Register, offset: 0x28 */ - __I uint32_t RX_BUF; /**< Receive Data Read Buffer, offset: 0x2C */ - __O uint32_t TX_BUF; /**< Transmit Data Buffer, offset: 0x30 */ - __IO uint32_t TX_GETU; /**< Transmitter Guard ETU Value Register, offset: 0x34 */ - __IO uint32_t CWT_VAL; /**< Character Wait Time Value Register, offset: 0x38 */ - __IO uint32_t BWT_VAL; /**< Block Wait Time Value Register, offset: 0x3C */ - __IO uint32_t BGT_VAL; /**< Block Guard Time Value Register, offset: 0x40 */ - __IO uint32_t GPCNT0_VAL; /**< General Purpose Counter 0 Timeout Value Register, offset: 0x44 */ - __IO uint32_t GPCNT1_VAL; /**< General Purpose Counter 1 Timeout Value, offset: 0x48 */ -} EMVSIM_Type, *EMVSIM_MemMapPtr; - -/* ---------------------------------------------------------------------------- - -- EMVSIM - Register accessor macros - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup EMVSIM_Register_Accessor_Macros EMVSIM - Register accessor macros - * @{ - */ - - -/* EMVSIM - Register accessors */ -#define EMVSIM_VER_ID_REG(base) ((base)->VER_ID) -#define EMVSIM_PARAM_REG(base) ((base)->PARAM) -#define EMVSIM_CLKCFG_REG(base) ((base)->CLKCFG) -#define EMVSIM_DIVISOR_REG(base) ((base)->DIVISOR) -#define EMVSIM_CTRL_REG(base) ((base)->CTRL) -#define EMVSIM_INT_MASK_REG(base) ((base)->INT_MASK) -#define EMVSIM_RX_THD_REG(base) ((base)->RX_THD) -#define EMVSIM_TX_THD_REG(base) ((base)->TX_THD) -#define EMVSIM_RX_STATUS_REG(base) ((base)->RX_STATUS) -#define EMVSIM_TX_STATUS_REG(base) ((base)->TX_STATUS) -#define EMVSIM_PCSR_REG(base) ((base)->PCSR) -#define EMVSIM_RX_BUF_REG(base) ((base)->RX_BUF) -#define EMVSIM_TX_BUF_REG(base) ((base)->TX_BUF) -#define EMVSIM_TX_GETU_REG(base) ((base)->TX_GETU) -#define EMVSIM_CWT_VAL_REG(base) ((base)->CWT_VAL) -#define EMVSIM_BWT_VAL_REG(base) ((base)->BWT_VAL) -#define EMVSIM_BGT_VAL_REG(base) ((base)->BGT_VAL) -#define EMVSIM_GPCNT0_VAL_REG(base) ((base)->GPCNT0_VAL) -#define EMVSIM_GPCNT1_VAL_REG(base) ((base)->GPCNT1_VAL) - -/*! - * @} - */ /* end of group EMVSIM_Register_Accessor_Macros */ - - -/* ---------------------------------------------------------------------------- - -- EMVSIM Register Masks - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup EMVSIM_Register_Masks EMVSIM Register Masks - * @{ - */ - -/* VER_ID Bit Fields */ -#define EMVSIM_VER_ID_VER_MASK 0xFFFFFFFFu -#define EMVSIM_VER_ID_VER_SHIFT 0 -#define EMVSIM_VER_ID_VER(x) (((uint32_t)(((uint32_t)(x))<ATINC) #define ENET_ATSTMP_REG(base) ((base)->ATSTMP) #define ENET_TGSR_REG(base) ((base)->TGSR) -#define ENET_TCSR_REG(base,index) ((base)->CHANNEL[index].TCSR) -#define ENET_TCCR_REG(base,index) ((base)->CHANNEL[index].TCCR) +#define ENET_TCSR_REG(base,index) ((base)->TC[index].TCSR) +#define ENET_TCCR_REG(base,index) ((base)->TC[index].TCCR) /*! * @} */ /* end of group ENET_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- ENET Register Masks ---------------------------------------------------------------------------- */ @@ -65769,7 +13648,7 @@ typedef struct { #define ENET_TDSR1_X_DES_START_SHIFT 3 #define ENET_TDSR1_X_DES_START(x) (((uint32_t)(((uint32_t)(x))<CTRL_SET) #define EPDC_CTRL_CLR_REG(base) ((base)->CTRL_CLR) #define EPDC_CTRL_TOG_REG(base) ((base)->CTRL_TOG) +#define EPDC_WB_ADDR_TCE_REG(base) ((base)->WB_ADDR_TCE) #define EPDC_WVADDR_REG(base) ((base)->WVADDR) #define EPDC_WB_ADDR_REG(base) ((base)->WB_ADDR) #define EPDC_RES_REG(base) ((base)->RES) @@ -66805,6 +14687,10 @@ typedef struct { #define EPDC_FORMAT_SET_REG(base) ((base)->FORMAT_SET) #define EPDC_FORMAT_CLR_REG(base) ((base)->FORMAT_CLR) #define EPDC_FORMAT_TOG_REG(base) ((base)->FORMAT_TOG) +#define EPDC_WB_FIELD0_REG(base) ((base)->WB_FIELD0) +#define EPDC_WB_FIELD1_REG(base) ((base)->WB_FIELD1) +#define EPDC_WB_FIELD2_REG(base) ((base)->WB_FIELD2) +#define EPDC_WB_FIELD3_REG(base) ((base)->WB_FIELD3) #define EPDC_FIFOCTRL_REG(base) ((base)->FIFOCTRL) #define EPDC_FIFOCTRL_SET_REG(base) ((base)->FIFOCTRL_SET) #define EPDC_FIFOCTRL_CLR_REG(base) ((base)->FIFOCTRL_CLR) @@ -66823,6 +14709,14 @@ typedef struct { #define EPDC_UPD_FIXED_TOG_REG(base) ((base)->UPD_FIXED_TOG) #define EPDC_TEMP_REG(base) ((base)->TEMP) #define EPDC_AUTOWV_LUT_REG(base) ((base)->AUTOWV_LUT) +#define EPDC_LUT_STANDBY1_REG(base) ((base)->LUT_STANDBY1) +#define EPDC_LUT_STANDBY1_SET_REG(base) ((base)->LUT_STANDBY1_SET) +#define EPDC_LUT_STANDBY1_CLR_REG(base) ((base)->LUT_STANDBY1_CLR) +#define EPDC_LUT_STANDBY1_TOG_REG(base) ((base)->LUT_STANDBY1_TOG) +#define EPDC_LUT_STANDBY2_REG(base) ((base)->LUT_STANDBY2) +#define EPDC_LUT_STANDBY2_SET_REG(base) ((base)->LUT_STANDBY2_SET) +#define EPDC_LUT_STANDBY2_CLR_REG(base) ((base)->LUT_STANDBY2_CLR) +#define EPDC_LUT_STANDBY2_TOG_REG(base) ((base)->LUT_STANDBY2_TOG) #define EPDC_TCE_CTRL_REG(base) ((base)->TCE_CTRL) #define EPDC_TCE_CTRL_SET_REG(base) ((base)->TCE_CTRL_SET) #define EPDC_TCE_CTRL_CLR_REG(base) ((base)->TCE_CTRL_CLR) @@ -66986,14 +14880,11 @@ typedef struct { #define EPDC_PIGEON_15_2_REG(base) ((base)->PIGEON_15_2) #define EPDC_PIGEON_16_0_REG(base) ((base)->PIGEON_16_0) #define EPDC_PIGEON_16_1_REG(base) ((base)->PIGEON_16_1) -#define EPDC_WB_ADDR_TCE_REG(base) ((base)->WB_ADDR_TCE) #define EPDC_PIGEON_16_2_REG(base) ((base)->PIGEON_16_2) /*! * @} */ /* end of group EPDC_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- EPDC Register Masks ---------------------------------------------------------------------------- */ @@ -67004,8 +14895,6 @@ typedef struct { */ /* CTRL Bit Fields */ -#define EPDC_CTRL_BURST_LEN_8_MASK 0x1u -#define EPDC_CTRL_BURST_LEN_8_SHIFT 0 #define EPDC_CTRL_LUT_DATA_SWIZZLE_MASK 0x30u #define EPDC_CTRL_LUT_DATA_SWIZZLE_SHIFT 4 #define EPDC_CTRL_LUT_DATA_SWIZZLE(x) (((uint32_t)(((uint32_t)(x))<PORT1_CNTL) +#define SIM_SETUP_REG(base) ((base)->SETUP) +#define SIM_PORT1_DETECT_REG(base) ((base)->PORT1_DETECT) +#define SIM_XMT_BUF_REG(base) ((base)->XMT_BUF) +#define SIM_RCV_BUF_REG(base) ((base)->RCV_BUF) +#define SIM_PORT0_CNTL_REG(base) ((base)->PORT0_CNTL) +#define SIM_CNTL_REG(base) ((base)->CNTL) +#define SIM_CLK_PRESCALER_REG(base) ((base)->CLK_PRESCALER) +#define SIM_RCV_THRESHOLD_REG(base) ((base)->RCV_THRESHOLD) +#define SIM_ENABLE_REG(base) ((base)->ENABLE) +#define SIM_XMT_STATUS_REG(base) ((base)->XMT_STATUS) +#define SIM_RCV_STATUS_REG(base) ((base)->RCV_STATUS) +#define SIM_INT_MASK_REG(base) ((base)->INT_MASK) +#define SIM_PORT0_DETECT_REG(base) ((base)->PORT0_DETECT) +#define SIM_DATA_FORMAT_REG(base) ((base)->DATA_FORMAT) +#define SIM_XMT_THRESHOLD_REG(base) ((base)->XMT_THRESHOLD) +#define SIM_GUARD_CNTL_REG(base) ((base)->GUARD_CNTL) +#define SIM_OD_CONFIG_REG(base) ((base)->OD_CONFIG) +#define SIM_RESET_CNTL_REG(base) ((base)->RESET_CNTL) +#define SIM_CHAR_WAIT_REG(base) ((base)->CHAR_WAIT) +#define SIM_GPCNT_REG(base) ((base)->GPCNT) +#define SIM_DIVISOR_REG(base) ((base)->DIVISOR) +#define SIM_BWT_REG(base) ((base)->BWT) +#define SIM_BGT_REG(base) ((base)->BGT) +#define SIM_BWT_H_REG(base) ((base)->BWT_H) +#define SIM_XMT_FIFO_STAT_REG(base) ((base)->XMT_FIFO_STAT) +#define SIM_RCV_FIFO_CNT_REG(base) ((base)->RCV_FIFO_CNT) +#define SIM_RCV_FIFO_WPTR_REG(base) ((base)->RCV_FIFO_WPTR) +#define SIM_RCV_FIFO_RPTR_REG(base) ((base)->RCV_FIFO_RPTR) + +/*! + * @} + */ /* end of group SIM_Register_Accessor_Macros */ +/* ---------------------------------------------------------------------------- + -- SIM Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup SIM_Register_Masks SIM Register Masks + * @{ + */ + +/* PORT1_CNTL Bit Fields */ +#define SIM_PORT1_CNTL_SAPD1_MASK 0x1u +#define SIM_PORT1_CNTL_SAPD1_SHIFT 0 +#define SIM_PORT1_CNTL_SVEN1_MASK 0x2u +#define SIM_PORT1_CNTL_SVEN1_SHIFT 1 +#define SIM_PORT1_CNTL_STEN1_MASK 0x4u +#define SIM_PORT1_CNTL_STEN1_SHIFT 2 +#define SIM_PORT1_CNTL_SRST1_MASK 0x8u +#define SIM_PORT1_CNTL_SRST1_SHIFT 3 +#define SIM_PORT1_CNTL_SCEN1_MASK 0x10u +#define SIM_PORT1_CNTL_SCEN1_SHIFT 4 +#define SIM_PORT1_CNTL_SCSP1_MASK 0x20u +#define SIM_PORT1_CNTL_SCSP1_SHIFT 5 +#define SIM_PORT1_CNTL_VOLT3_1_MASK 0x40u +#define SIM_PORT1_CNTL_VOLT3_1_SHIFT 6 +#define SIM_PORT1_CNTL_SFPD1_MASK 0x80u +#define SIM_PORT1_CNTL_SFPD1_SHIFT 7 +/* SETUP Bit Fields */ +#define SIM_SETUP_AMODE_MASK 0x1u +#define SIM_SETUP_AMODE_SHIFT 0 +#define SIM_SETUP_SPS_MASK 0x2u +#define SIM_SETUP_SPS_SHIFT 1 +/* PORT1_DETECT Bit Fields */ +#define SIM_PORT1_DETECT_SDIM1_MASK 0x1u +#define SIM_PORT1_DETECT_SDIM1_SHIFT 0 +#define SIM_PORT1_DETECT_SDI1_MASK 0x2u +#define SIM_PORT1_DETECT_SDI1_SHIFT 1 +#define SIM_PORT1_DETECT_SPDP1_MASK 0x4u +#define SIM_PORT1_DETECT_SPDP1_SHIFT 2 +#define SIM_PORT1_DETECT_SPDS1_MASK 0x8u +#define SIM_PORT1_DETECT_SPDS1_SHIFT 3 +/* XMT_BUF Bit Fields */ +#define SIM_XMT_BUF_XMT_MASK 0xFFu +#define SIM_XMT_BUF_XMT_SHIFT 0 +#define SIM_XMT_BUF_XMT(x) (((uint32_t)(((uint32_t)(x))<DEADTIME) #define FTM_EXTTRIG_REG(base) ((base)->EXTTRIG) #define FTM_POL_REG(base) ((base)->POL) -#define FTM_FMS_REG(base) ((base)->FMS) #define FTM_FILTER_REG(base) ((base)->FILTER) -#define FTM_FLTCTRL_REG(base) ((base)->FLTCTRL) #define FTM_QDCTRL_REG(base) ((base)->QDCTRL) #define FTM_CONF_REG(base) ((base)->CONF) -#define FTM_FLTPOL_REG(base) ((base)->FLTPOL) #define FTM_SYNCONF_REG(base) ((base)->SYNCONF) #define FTM_INVCTRL_REG(base) ((base)->INVCTRL) #define FTM_SWOCTRL_REG(base) ((base)->SWOCTRL) @@ -69277,8 +17777,6 @@ typedef struct { /*! * @} */ /* end of group FTM_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- FTM Register Masks ---------------------------------------------------------------------------- */ @@ -69312,6 +17810,8 @@ typedef struct { /* CSC Bit Fields */ #define FTM_CSC_DMA_MASK 0x1u #define FTM_CSC_DMA_SHIFT 0 +#define FTM_CSC_ICRST_MASK 0x2u +#define FTM_CSC_ICRST_SHIFT 1 #define FTM_CSC_ELSA_MASK 0x4u #define FTM_CSC_ELSA_SHIFT 2 #define FTM_CSC_ELSB_MASK 0x8u @@ -69360,11 +17860,6 @@ typedef struct { #define FTM_MODE_PWMSYNC_SHIFT 3 #define FTM_MODE_CAPTEST_MASK 0x10u #define FTM_MODE_CAPTEST_SHIFT 4 -#define FTM_MODE_FAULTM_MASK 0x60u -#define FTM_MODE_FAULTM_SHIFT 5 -#define FTM_MODE_FAULTM(x) (((uint32_t)(((uint32_t)(x))<CNTR) -#define GPC_PGR_REG(base) ((base)->PGR) -#define GPC_IMR1_REG(base) ((base)->IMR1) -#define GPC_IMR2_REG(base) ((base)->IMR2) -#define GPC_IMR3_REG(base) ((base)->IMR3) -#define GPC_IMR4_REG(base) ((base)->IMR4) -#define GPC_ISR1_REG(base) ((base)->ISR1) -#define GPC_ISR2_REG(base) ((base)->ISR2) -#define GPC_ISR3_REG(base) ((base)->ISR3) -#define GPC_ISR4_REG(base) ((base)->ISR4) -#define GPC_A9_LPSR_REG(base) ((base)->A9_LPSR) -#define GPC_M4_LPSR_REG(base) ((base)->M4_LPSR) -#define GPC_DR_REG(base) ((base)->DR) +#define GPC_LPCR_A7_BSC_REG(base) ((base)->LPCR_A7_BSC) +#define GPC_LPCR_A7_AD_REG(base) ((base)->LPCR_A7_AD) +#define GPC_LPCR_M4_REG(base) ((base)->LPCR_M4) +#define GPC_SLPCR_REG(base) ((base)->SLPCR) +#define GPC_MLPCR_REG(base) ((base)->MLPCR) +#define GPC_PGC_ACK_SEL_A7_REG(base) ((base)->PGC_ACK_SEL_A7) +#define GPC_PGC_ACK_SEL_M4_REG(base) ((base)->PGC_ACK_SEL_M4) +#define GPC_MISC_REG(base) ((base)->MISC) +#define GPC_IMR1_CORE0_A7_REG(base) ((base)->IMR1_CORE0_A7) +#define GPC_IMR2_CORE0_A7_REG(base) ((base)->IMR2_CORE0_A7) +#define GPC_IMR3_CORE0_A7_REG(base) ((base)->IMR3_CORE0_A7) +#define GPC_IMR4_CORE0_A7_REG(base) ((base)->IMR4_CORE0_A7) +#define GPC_IMR1_CORE1_A7_REG(base) ((base)->IMR1_CORE1_A7) +#define GPC_IMR2_CORE1_A7_REG(base) ((base)->IMR2_CORE1_A7) +#define GPC_IMR3_CORE1_A7_REG(base) ((base)->IMR3_CORE1_A7) +#define GPC_IMR4_CORE1_A7_REG(base) ((base)->IMR4_CORE1_A7) +#define GPC_IMR1_M4_REG(base) ((base)->IMR1_M4) +#define GPC_IMR2_M4_REG(base) ((base)->IMR2_M4) +#define GPC_IMR3_M4_REG(base) ((base)->IMR3_M4) +#define GPC_IMR4_M4_REG(base) ((base)->IMR4_M4) +#define GPC_ISR1_A7_REG(base) ((base)->ISR1_A7) +#define GPC_ISR2_A7_REG(base) ((base)->ISR2_A7) +#define GPC_ISR3_A7_REG(base) ((base)->ISR3_A7) +#define GPC_ISR4_A7_REG(base) ((base)->ISR4_A7) +#define GPC_ISR1_M4_REG(base) ((base)->ISR1_M4) +#define GPC_ISR2_M4_REG(base) ((base)->ISR2_M4) +#define GPC_ISR3_M4_REG(base) ((base)->ISR3_M4) +#define GPC_ISR4_M4_REG(base) ((base)->ISR4_M4) +#define GPC_SLT_CFG_REG(base,index) ((base)->SLT_CFG[index]) +#define GPC_PGC_CPU_MAPPING_REG(base) ((base)->PGC_CPU_MAPPING) +#define GPC_CPU_PGC_SW_PUP_REQ_REG(base) ((base)->CPU_PGC_SW_PUP_REQ) +#define GPC_PU_PGC_SW_PUP_REQ_REG(base) ((base)->PU_PGC_SW_PUP_REQ) +#define GPC_CPU_PGC_SW_PDN_REQ_REG(base) ((base)->CPU_PGC_SW_PDN_REQ) +#define GPC_PU_PGC_SW_PDN_REQ_REG(base) ((base)->PU_PGC_SW_PDN_REQ) +#define GPC_LPS_A7_REG(base) ((base)->LPS_A7) +#define GPC_LPS_M4_REG(base) ((base)->LPS_M4) +#define GPC_GPC_GPR_REG(base) ((base)->GPC_GPR) +#define GPC_GTOR_REG(base) ((base)->GTOR) +#define GPC_DEBUG_ADDR1_REG(base) ((base)->DEBUG_ADDR1) +#define GPC_DEBUG_ADDR2_REG(base) ((base)->DEBUG_ADDR2) +#define GPC_CPU_PGC_PUP_STATUS1_REG(base) ((base)->CPU_PGC_PUP_STATUS1) +#define GPC_A7_PU_PGC_PUP_STATUS_REG(base,index) ((base)->A7_PU_PGC_PUP_STATUS[index]) +#define GPC_M4_PU_PGC_PUP_STATUS_REG(base,index) ((base)->M4_PU_PGC_PUP_STATUS[index]) +#define GPC_CPU_PGC_PDN_STATUS1_REG(base) ((base)->CPU_PGC_PDN_STATUS1) +#define GPC_A7_PU_PGC_PDN_STATUS_REG(base,index) ((base)->A7_PU_PGC_PDN_STATUS[index]) +#define GPC_M4_PU_PGC_PDN_STATUS_REG(base,index) ((base)->M4_PU_PGC_PDN_STATUS[index]) +#define GPC_A7_MIX_PDN_FLG_REG(base) ((base)->A7_MIX_PDN_FLG) +#define GPC_A7_PU_PDN_FLG_REG(base) ((base)->A7_PU_PDN_FLG) +#define GPC_M4_MIX_PDN_FLG_REG(base) ((base)->M4_MIX_PDN_FLG) +#define GPC_M4_PU_PDN_FLG_REG(base) ((base)->M4_PU_PDN_FLG) /*! * @} */ /* end of group GPC_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- GPC Register Masks ---------------------------------------------------------------------------- */ @@ -69840,165 +18403,629 @@ typedef struct { * @{ */ -/* CNTR Bit Fields */ -#define GPC_CNTR_gpu_vpu_pdn_req_MASK 0x1u -#define GPC_CNTR_gpu_vpu_pdn_req_SHIFT 0 -#define GPC_CNTR_gpu_vpu_pup_req_MASK 0x2u -#define GPC_CNTR_gpu_vpu_pup_req_SHIFT 1 -#define GPC_CNTR_MEGA_PDN_REQ_MASK 0x4u -#define GPC_CNTR_MEGA_PDN_REQ_SHIFT 2 -#define GPC_CNTR_MEGA_PUP_REQ_MASK 0x8u -#define GPC_CNTR_MEGA_PUP_REQ_SHIFT 3 -#define GPC_CNTR_DISPLAY_PDN_REQ_MASK 0x10u -#define GPC_CNTR_DISPLAY_PDN_REQ_SHIFT 4 -#define GPC_CNTR_DISPLAY_PUP_REQ_MASK 0x20u -#define GPC_CNTR_DISPLAY_PUP_REQ_SHIFT 5 -#define GPC_CNTR_PCIE_PHY_PDN_REQ_MASK 0x40u -#define GPC_CNTR_PCIE_PHY_PDN_REQ_SHIFT 6 -#define GPC_CNTR_PCIE_PHY_PUP_REQ_MASK 0x80u -#define GPC_CNTR_PCIE_PHY_PUP_REQ_SHIFT 7 -#define GPC_CNTR_DVFS0CR_MASK 0x10000u -#define GPC_CNTR_DVFS0CR_SHIFT 16 -#define GPC_CNTR_VADC_ANALOG_OFF_MASK 0x20000u -#define GPC_CNTR_VADC_ANALOG_OFF_SHIFT 17 -#define GPC_CNTR_VADC_EXT_PWD_N_MASK 0x40000u -#define GPC_CNTR_VADC_EXT_PWD_N_SHIFT 18 -#define GPC_CNTR_GPCIRQM_MASK 0x200000u -#define GPC_CNTR_GPCIRQM_SHIFT 21 -#define GPC_CNTR_L2_PGE_MASK 0x400000u -#define GPC_CNTR_L2_PGE_SHIFT 22 -/* PGR Bit Fields */ -#define GPC_PGR_DRCIC_MASK 0x60000000u -#define GPC_PGR_DRCIC_SHIFT 29 -#define GPC_PGR_DRCIC(x) (((uint32_t)(((uint32_t)(x))<A7CORE0_CTRL) +#define GPC_PGC_A7CORE0_PUPSCR_REG(base) ((base)->A7CORE0_PUPSCR) +#define GPC_PGC_A7CORE0_PDNSCR_REG(base) ((base)->A7CORE0_PDNSCR) +#define GPC_PGC_A7CORE0_SR_REG(base) ((base)->A7CORE0_SR) +#define GPC_PGC_A7CORE1_CTRL_REG(base) ((base)->A7CORE1_CTRL) +#define GPC_PGC_A7CORE1_PUPSCR_REG(base) ((base)->A7CORE1_PUPSCR) +#define GPC_PGC_A7CORE1_PDNSCR_REG(base) ((base)->A7CORE1_PDNSCR) +#define GPC_PGC_A7CORE1_SR_REG(base) ((base)->A7CORE1_SR) +#define GPC_PGC_A7SCU_CTRL_REG(base) ((base)->A7SCU_CTRL) +#define GPC_PGC_A7SCU_PUPSCR_REG(base) ((base)->A7SCU_PUPSCR) +#define GPC_PGC_A7SCU_PDNSCR_REG(base) ((base)->A7SCU_PDNSCR) +#define GPC_PGC_A7SCU_SR_REG(base) ((base)->A7SCU_SR) +#define GPC_PGC_SCU_AUXSW_REG(base) ((base)->SCU_AUXSW) +#define GPC_PGC_MIX_CTRL_REG(base) ((base)->MIX_CTRL) +#define GPC_PGC_MIX_PUPSCR_REG(base) ((base)->MIX_PUPSCR) +#define GPC_PGC_MIX_PDNSCR_REG(base) ((base)->MIX_PDNSCR) +#define GPC_PGC_MIX_SR_REG(base) ((base)->MIX_SR) +#define GPC_PGC_MIPI_CTRL_REG(base) ((base)->MIPI_CTRL) +#define GPC_PGC_MIPI_PUPSCR_REG(base) ((base)->MIPI_PUPSCR) +#define GPC_PGC_MIPI_PDNSCR_REG(base) ((base)->MIPI_PDNSCR) +#define GPC_PGC_MIPI_SR_REG(base) ((base)->MIPI_SR) +#define GPC_PGC_MIPI_AUXSW_REG(base) ((base)->MIPI_AUXSW) +#define GPC_PGC_PCIE_CTRL_REG(base) ((base)->PCIE_CTRL) +#define GPC_PGC_PCIE_PUPSCR_REG(base) ((base)->PCIE_PUPSCR) +#define GPC_PGC_PCIE_PDNSCR_REG(base) ((base)->PCIE_PDNSCR) +#define GPC_PGC_PCIE_SR_REG(base) ((base)->PCIE_SR) +#define GPC_PGC_PCIE_AUXSW_REG(base) ((base)->PCIE_AUXSW) +#define GPC_PGC_HSIC_CTRL_REG(base) ((base)->HSIC_CTRL) +#define GPC_PGC_HSIC_PUPSCR_REG(base) ((base)->HSIC_PUPSCR) +#define GPC_PGC_HSIC_PDNSCR_REG(base) ((base)->HSIC_PDNSCR) +#define GPC_PGC_HSIC_SR_REG(base) ((base)->HSIC_SR) + +/*! + * @} + */ /* end of group GPC_PGC_Register_Accessor_Macros */ +/* ---------------------------------------------------------------------------- + -- GPC_PGC Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup GPC_PGC_Register_Masks GPC_PGC Register Masks + * @{ + */ + +/* A7CORE0_CTRL Bit Fields */ +#define GPC_PGC_A7CORE0_CTRL_PCR_MASK 0x1u +#define GPC_PGC_A7CORE0_CTRL_PCR_SHIFT 0 +#define GPC_PGC_A7CORE0_CTRL_L2RSTDIS_MASK 0x7Eu +#define GPC_PGC_A7CORE0_CTRL_L2RSTDIS_SHIFT 1 +#define GPC_PGC_A7CORE0_CTRL_L2RSTDIS(x) (((uint32_t)(((uint32_t)(x))<SW_PAD_CTL_PAD_UART2_TX_DATA) #define IOMUXC_SW_PAD_CTL_PAD_UART3_RX_DATA_REG(base) ((base)->SW_PAD_CTL_PAD_UART3_RX_DATA) #define IOMUXC_SW_PAD_CTL_PAD_UART3_TX_DATA_REG(base) ((base)->SW_PAD_CTL_PAD_UART3_TX_DATA) -#define IOMUXC_SW_PAD_CTL_PAD_UART3_RTS_REG(base) ((base)->SW_PAD_CTL_PAD_UART3_RTS) -#define IOMUXC_SW_PAD_CTL_PAD_UART3_CTS_REG(base) ((base)->SW_PAD_CTL_PAD_UART3_CTS) +#define IOMUXC_SW_PAD_CTL_PAD_UART3_RTS_B_REG(base) ((base)->SW_PAD_CTL_PAD_UART3_RTS_B) +#define IOMUXC_SW_PAD_CTL_PAD_UART3_CTS_B_REG(base) ((base)->SW_PAD_CTL_PAD_UART3_CTS_B) #define IOMUXC_SW_PAD_CTL_PAD_I2C1_SCL_REG(base) ((base)->SW_PAD_CTL_PAD_I2C1_SCL) #define IOMUXC_SW_PAD_CTL_PAD_I2C1_SDA_REG(base) ((base)->SW_PAD_CTL_PAD_I2C1_SDA) #define IOMUXC_SW_PAD_CTL_PAD_I2C2_SCL_REG(base) ((base)->SW_PAD_CTL_PAD_I2C2_SCL) @@ -72811,10 +22454,10 @@ typedef struct { #define IOMUXC_ECSPI4_MISO_SELECT_INPUT_REG(base) ((base)->ECSPI4_MISO_SELECT_INPUT) #define IOMUXC_ECSPI4_MOSI_SELECT_INPUT_REG(base) ((base)->ECSPI4_MOSI_SELECT_INPUT) #define IOMUXC_ECSPI4_SS0_B_SELECT_INPUT_REG(base) ((base)->ECSPI4_SS0_B_SELECT_INPUT) -#define IOMUXC_CCM_ENET_REF_CLK1_SELECT_INPUT_REG(base) ((base)->CCM_ENET_REF_CLK1_SELECT_INPUT) +#define IOMUXC_CCM_ENET1_REF_CLK_SELECT_INPUT_REG(base) ((base)->CCM_ENET1_REF_CLK_SELECT_INPUT) #define IOMUXC_ENET1_MDIO_SELECT_INPUT_REG(base) ((base)->ENET1_MDIO_SELECT_INPUT) #define IOMUXC_ENET1_RX_CLK_SELECT_INPUT_REG(base) ((base)->ENET1_RX_CLK_SELECT_INPUT) -#define IOMUXC_CCM_ENET_REF_CLK2_SELECT_INPUT_REG(base) ((base)->CCM_ENET_REF_CLK2_SELECT_INPUT) +#define IOMUXC_CCM_ENET2_REF_CLK_SELECT_INPUT_REG(base) ((base)->CCM_ENET2_REF_CLK_SELECT_INPUT) #define IOMUXC_ENET2_MDIO_SELECT_INPUT_REG(base) ((base)->ENET2_MDIO_SELECT_INPUT) #define IOMUXC_ENET2_RX_CLK_SELECT_INPUT_REG(base) ((base)->ENET2_RX_CLK_SELECT_INPUT) #define IOMUXC_EPDC_PWR_IRQ_SELECT_INPUT_REG(base) ((base)->EPDC_PWR_IRQ_SELECT_INPUT) @@ -72934,8 +22577,6 @@ typedef struct { /*! * @} */ /* end of group IOMUXC_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- IOMUXC Register Masks ---------------------------------------------------------------------------- */ @@ -74898,32 +24539,32 @@ typedef struct { #define IOMUXC_SW_PAD_CTL_PAD_UART3_TX_DATA_PS_MASK 0x60u #define IOMUXC_SW_PAD_CTL_PAD_UART3_TX_DATA_PS_SHIFT 5 #define IOMUXC_SW_PAD_CTL_PAD_UART3_TX_DATA_PS(x) (((uint32_t)(((uint32_t)(x))<IOMUXC_LPSR_GPR0) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR1_REG(base) ((base)->IOMUXC_LPSR_GPR1) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR2_REG(base) ((base)->IOMUXC_LPSR_GPR2) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR3_REG(base) ((base)->IOMUXC_LPSR_GPR3) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR4_REG(base) ((base)->IOMUXC_LPSR_GPR4) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR5_REG(base) ((base)->IOMUXC_LPSR_GPR5) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR6_REG(base) ((base)->IOMUXC_LPSR_GPR6) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR7_REG(base) ((base)->IOMUXC_LPSR_GPR7) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR8_REG(base) ((base)->IOMUXC_LPSR_GPR8) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR9_REG(base) ((base)->IOMUXC_LPSR_GPR9) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR10_REG(base) ((base)->IOMUXC_LPSR_GPR10) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR11_REG(base) ((base)->IOMUXC_LPSR_GPR11) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR12_REG(base) ((base)->IOMUXC_LPSR_GPR12) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR13_REG(base) ((base)->IOMUXC_LPSR_GPR13) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR14_REG(base) ((base)->IOMUXC_LPSR_GPR14) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR15_REG(base) ((base)->IOMUXC_LPSR_GPR15) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR16_REG(base) ((base)->IOMUXC_LPSR_GPR16) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR17_REG(base) ((base)->IOMUXC_LPSR_GPR17) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR18_REG(base) ((base)->IOMUXC_LPSR_GPR18) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR19_REG(base) ((base)->IOMUXC_LPSR_GPR19) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR20_REG(base) ((base)->IOMUXC_LPSR_GPR20) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR21_REG(base) ((base)->IOMUXC_LPSR_GPR21) +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR22_REG(base) ((base)->IOMUXC_LPSR_GPR22) + +/*! + * @} + */ /* end of group IOMUXC_LPSR_GPR_Register_Accessor_Macros */ +/* ---------------------------------------------------------------------------- + -- IOMUXC_LPSR_GPR Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup IOMUXC_LPSR_GPR_Register_Masks IOMUXC_LPSR_GPR Register Masks + * @{ + */ + +/* IOMUXC_LPSR_GPR0 Bit Fields */ +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR0_GP_MASK 0xFFFFFFFFu +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR0_GP_SHIFT 0 +#define IOMUXC_LPSR_GPR_IOMUXC_LPSR_GPR0_GP(x) (((uint32_t)(((uint32_t)(x))<CSIS_CMN_CTRL) +#define MIPI_CSI2_CSIS_CLK_CTRL_REG(base) ((base)->CSIS_CLK_CTRL) +#define MIPI_CSI2_CSIS_INT_MSK_REG(base) ((base)->CSIS_INT_MSK) +#define MIPI_CSI2_CSIS_INT_SRC_REG(base) ((base)->CSIS_INT_SRC) +#define MIPI_CSI2_DPHY_STATUS_REG(base) ((base)->DPHY_STATUS) +#define MIPI_CSI2_DPHY_CMN_CTRL_REG(base) ((base)->DPHY_CMN_CTRL) +#define MIPI_CSI2_DPHY_BCTRL_L_REG(base) ((base)->DPHY_BCTRL_L) +#define MIPI_CSI2_DPHY_BCTRL_H_REG(base) ((base)->DPHY_BCTRL_H) +#define MIPI_CSI2_DPHY_SCTRL_L_REG(base) ((base)->DPHY_SCTRL_L) +#define MIPI_CSI2_DPHY_SCTRL_H_REG(base) ((base)->DPHY_SCTRL_H) +#define MIPI_CSI2_ISP_CONFIG_CH0_REG(base) ((base)->ISP_CONFIG_CH0) +#define MIPI_CSI2_ISP_RESOL_CH0_REG(base) ((base)->ISP_RESOL_CH0) +#define MIPI_CSI2_ISP_SYNC_CH0_REG(base) ((base)->ISP_SYNC_CH0) +#define MIPI_CSI2_SDW_CONFIG_CH0_REG(base) ((base)->SDW_CONFIG_CH0) +#define MIPI_CSI2_SDW_RESOL_CH0_REG(base) ((base)->SDW_RESOL_CH0) +#define MIPI_CSI2_SDW_SYNC_CH0_REG(base) ((base)->SDW_SYNC_CH0) +#define MIPI_CSI2_DBG_CTRL_REG(base) ((base)->DBG_CTRL) +#define MIPI_CSI2_DBG_INTR_MSK_REG(base) ((base)->DBG_INTR_MSK) +#define MIPI_CSI2_DBG_INTR_SRC_REG(base) ((base)->DBG_INTR_SRC) +#define MIPI_CSI2_NON_IMG_DATA_REG(base) ((base)->NON_IMG_DATA) + +/*! + * @} + */ /* end of group MIPI_CSI2_Register_Accessor_Macros */ +/* ---------------------------------------------------------------------------- + -- MIPI_CSI2 Register Masks + ---------------------------------------------------------------------------- */ + +/*! + * @addtogroup MIPI_CSI2_Register_Masks MIPI_CSI2 Register Masks + * @{ + */ + +/* CSIS_CMN_CTRL Bit Fields */ +#define MIPI_CSI2_CSIS_CMN_CTRL_CSI_EN_MASK 0x1u +#define MIPI_CSI2_CSIS_CMN_CTRL_CSI_EN_SHIFT 0 +#define MIPI_CSI2_CSIS_CMN_CTRL_SW_REST_MASK 0x2u +#define MIPI_CSI2_CSIS_CMN_CTRL_SW_REST_SHIFT 1 +#define MIPI_CSI2_CSIS_CMN_CTRL_UPDATE_SHADOW_CTRL_MASK 0x4u +#define MIPI_CSI2_CSIS_CMN_CTRL_UPDATE_SHADOW_CTRL_SHIFT 2 +#define MIPI_CSI2_CSIS_CMN_CTRL_RSVD3_MASK 0xF8u +#define MIPI_CSI2_CSIS_CMN_CTRL_RSVD3_SHIFT 3 +#define MIPI_CSI2_CSIS_CMN_CTRL_RSVD3(x) (((uint32_t)(((uint32_t)(x))<PLLCTRL1) #define MIPI_DSI_PLLCTRL2_REG(base) ((base)->PLLCTRL2) #define MIPI_DSI_PLLTMR_REG(base) ((base)->PLLTMR) -#define MIPI_DSI_PHYCTRL_B1_REG(base) ((base)->PHYCTRL_B.PHYCTRL_B1) -#define MIPI_DSI_PHYCTRL_B2_REG(base) ((base)->PHYCTRL_B.PHYCTRL_B2) -#define MIPI_DSI_PHYCTRL_M1_REG(base) ((base)->PHYCTRL_M.PHYCTRL_M1) -#define MIPI_DSI_PHYCTRL_M2_REG(base) ((base)->PHYCTRL_M.PHYCTRL_M2) +#define MIPI_DSI_PHYCTRL_B1_REG(base) ((base)->PHYCTRL_B1) +#define MIPI_DSI_PHYCTRL_B2_REG(base) ((base)->PHYCTRL_B2) +#define MIPI_DSI_PHYCTRL_M1_REG(base) ((base)->PHYCTRL_M1) +#define MIPI_DSI_PHYCTRL_M2_REG(base) ((base)->PHYCTRL_M2) #define MIPI_DSI_PHYTIMING_REG(base) ((base)->PHYTIMING) #define MIPI_DSI_PHYTIMING1_REG(base) ((base)->PHYTIMING1) #define MIPI_DSI_PHYTIMING2_REG(base) ((base)->PHYTIMING2) @@ -79949,8 +30337,6 @@ typedef struct { /*! * @} */ /* end of group MIPI_DSI_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- MIPI_DSI Register Masks ---------------------------------------------------------------------------- */ @@ -80401,18 +30787,18 @@ typedef struct { * @} */ /* end of group MIPI_DSI_Register_Masks */ - /* MIPI_DSI - Peripheral instance base addresses */ /** Peripheral MIPI_DSI base address */ #define MIPI_DSI_BASE (0x30760000u) /** Peripheral MIPI_DSI base pointer */ #define MIPI_DSI ((MIPI_DSI_Type *)MIPI_DSI_BASE) #define MIPI_DSI_BASE_PTR (MIPI_DSI) -/** Array initializer of MIPI_DSI peripheral base adresses */ +/** Array initializer of MIPI_DSI peripheral base addresses */ #define MIPI_DSI_BASE_ADDRS { MIPI_DSI_BASE } /** Array initializer of MIPI_DSI peripheral base pointers */ #define MIPI_DSI_BASE_PTRS { MIPI_DSI } - +/** Interrupt vectors for the MIPI_DSI peripheral type */ +#define MIPI_DSI_IRQS { MIPI_DSI_IRQn } /* ---------------------------------------------------------------------------- -- MIPI_DSI - Register accessor macros ---------------------------------------------------------------------------- */ @@ -80459,7 +30845,6 @@ typedef struct { #define MIPI_DSI_PHYTIMING MIPI_DSI_PHYTIMING_REG(MIPI_DSI_BASE_PTR) #define MIPI_DSI_PHYTIMING1 MIPI_DSI_PHYTIMING1_REG(MIPI_DSI_BASE_PTR) #define MIPI_DSI_PHYTIMING2 MIPI_DSI_PHYTIMING2_REG(MIPI_DSI_BASE_PTR) - /*! * @} */ /* end of group MIPI_DSI_Register_Accessor_Macros */ @@ -80469,481 +30854,22 @@ typedef struct { * @} */ /* end of group MIPI_DSI_Peripheral */ - /* ---------------------------------------------------------------------------- - -- MIPI_HSI Peripheral Access Layer + -- MU Peripheral Access Layer ---------------------------------------------------------------------------- */ /*! - * @addtogroup MIPI_HSI_Peripheral_Access_Layer MIPI_HSI Peripheral Access Layer + * @addtogroup MU_Peripheral_Access_Layer MU Peripheral Access Layer * @{ */ -/** MIPI_HSI - Register Layout Typedef */ +/** MU - Register Layout Typedef */ typedef struct { - uint8_t RESERVED_0[4]; - __IO uint32_t CSIS_CMN_CTRL; /**< CSIS Common Control, offset: 0x4 */ - __IO uint32_t CSIS_CLK_CTRL; /**< CSIS Clock gate Control, offset: 0x8 */ - uint8_t RESERVED_1[4]; - __IO uint32_t CSIS_INT_MSK; /**< CSIS Interrupt Mask, offset: 0x10 */ - __IO uint32_t CSIS_INT_SRC; /**< CSIS Interrupt Source, offset: 0x14 */ - uint8_t RESERVED_2[8]; - __IO uint32_t DPHY_STATUS; /**< D-PHY Status, offset: 0x20 */ - __IO uint32_t DPHY_CMN_CTRL; /**< D-PHY Common Control, offset: 0x24 */ - uint8_t RESERVED_3[8]; - __IO uint32_t DPHY_BCTRL_L; /**< D-PHY Master and Slave Control register low, offset: 0x30 */ - __IO uint32_t DPHY_BCTRL_H; /**< D-PHY Master and Slave Control register high, offset: 0x34 */ - __IO uint32_t DPHY_SCTRL_L; /**< D-PHY Slave Control register low, offset: 0x38 */ - __IO uint32_t DPHY_SCTRL_H; /**< D-PHY Slave Control register high, offset: 0x3C */ - __IO uint32_t ISP_CONFIG_CH0; /**< ISP Configuration register of CH0, offset: 0x40 */ - __IO uint32_t ISP_RESOL_CH0; /**< ISP Image Resolution register of CH0, offset: 0x44 */ - __IO uint32_t ISP_SYNC_CH0; /**< ISP SYNC register of CH0, offset: 0x48 */ - uint8_t RESERVED_4[52]; - __IO uint32_t SDW_CONFIG_CH0; /**< Shadow Configuration register of CH0, offset: 0x80 */ - __IO uint32_t SDW_RESOL_CH0; /**< Shadow Resolution register of CH0, offset: 0x84 */ - __IO uint32_t SDW_SYNC_CH0; /**< Shadow SYNC register of CH0, offset: 0x88 */ - uint8_t RESERVED_5[52]; - __IO uint32_t DBG_CTRL; /**< Debug Control register, offset: 0xC0 */ - __IO uint32_t DBG_INTR_MSK; /**< Debug Interrupt Mask, offset: 0xC4 */ - __IO uint32_t DBG_INTR_SRC; /**< Debug Interrupt Mask, offset: 0xC8 */ - uint8_t RESERVED_6[7988]; - __IO uint32_t NON_IMG_DATA; /**< Non Image Data, offset: 0x2000 */ -} MIPI_HSI_Type, *MIPI_HSI_MemMapPtr; - -/* ---------------------------------------------------------------------------- - -- MIPI_HSI - Register accessor macros - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup MIPI_HSI_Register_Accessor_Macros MIPI_HSI - Register accessor macros - * @{ - */ - - -/* MIPI_HSI - Register accessors */ -#define MIPI_HSI_CSIS_CMN_CTRL_REG(base) ((base)->CSIS_CMN_CTRL) -#define MIPI_HSI_CSIS_CLK_CTRL_REG(base) ((base)->CSIS_CLK_CTRL) -#define MIPI_HSI_CSIS_INT_MSK_REG(base) ((base)->CSIS_INT_MSK) -#define MIPI_HSI_CSIS_INT_SRC_REG(base) ((base)->CSIS_INT_SRC) -#define MIPI_HSI_DPHY_STATUS_REG(base) ((base)->DPHY_STATUS) -#define MIPI_HSI_DPHY_CMN_CTRL_REG(base) ((base)->DPHY_CMN_CTRL) -#define MIPI_HSI_DPHY_BCTRL_L_REG(base) ((base)->DPHY_BCTRL_L) -#define MIPI_HSI_DPHY_BCTRL_H_REG(base) ((base)->DPHY_BCTRL_H) -#define MIPI_HSI_DPHY_SCTRL_L_REG(base) ((base)->DPHY_SCTRL_L) -#define MIPI_HSI_DPHY_SCTRL_H_REG(base) ((base)->DPHY_SCTRL_H) -#define MIPI_HSI_ISP_CONFIG_CH0_REG(base) ((base)->ISP_CONFIG_CH0) -#define MIPI_HSI_ISP_RESOL_CH0_REG(base) ((base)->ISP_RESOL_CH0) -#define MIPI_HSI_ISP_SYNC_CH0_REG(base) ((base)->ISP_SYNC_CH0) -#define MIPI_HSI_SDW_CONFIG_CH0_REG(base) ((base)->SDW_CONFIG_CH0) -#define MIPI_HSI_SDW_RESOL_CH0_REG(base) ((base)->SDW_RESOL_CH0) -#define MIPI_HSI_SDW_SYNC_CH0_REG(base) ((base)->SDW_SYNC_CH0) -#define MIPI_HSI_DBG_CTRL_REG(base) ((base)->DBG_CTRL) -#define MIPI_HSI_DBG_INTR_MSK_REG(base) ((base)->DBG_INTR_MSK) -#define MIPI_HSI_DBG_INTR_SRC_REG(base) ((base)->DBG_INTR_SRC) -#define MIPI_HSI_NON_IMG_DATA_REG(base) ((base)->NON_IMG_DATA) - -/*! - * @} - */ /* end of group MIPI_HSI_Register_Accessor_Macros */ - - -/* ---------------------------------------------------------------------------- - -- MIPI_HSI Register Masks - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup MIPI_HSI_Register_Masks MIPI_HSI Register Masks - * @{ - */ - -/* CSIS_CMN_CTRL Bit Fields */ -#define MIPI_HSI_CSIS_CMN_CTRL_CSI_EN_MASK 0x1u -#define MIPI_HSI_CSIS_CMN_CTRL_CSI_EN_SHIFT 0 -#define MIPI_HSI_CSIS_CMN_CTRL_SW_REST_MASK 0x2u -#define MIPI_HSI_CSIS_CMN_CTRL_SW_REST_SHIFT 1 -#define MIPI_HSI_CSIS_CMN_CTRL_UPDATE_SHADOW_CTRL_MASK 0x4u -#define MIPI_HSI_CSIS_CMN_CTRL_UPDATE_SHADOW_CTRL_SHIFT 2 -#define MIPI_HSI_CSIS_CMN_CTRL_RSVD3_MASK 0xF8u -#define MIPI_HSI_CSIS_CMN_CTRL_RSVD3_SHIFT 3 -#define MIPI_HSI_CSIS_CMN_CTRL_RSVD3(x) (((uint32_t)(((uint32_t)(x))<MAU_KEY5) #define OCOTP_MAU_KEY6_REG(base) ((base)->MAU_KEY6) #define OCOTP_MAU_KEY7_REG(base) ((base)->MAU_KEY7) -#define OCOTP_ROM_PATCH0_REG(base) ((base)->ROM_PATCH0) -#define OCOTP_ROM_PATCH1_REG(base) ((base)->ROM_PATCH1) -#define OCOTP_ROM_PATCH2_REG(base) ((base)->ROM_PATCH2) -#define OCOTP_ROM_PATCH3_REG(base) ((base)->ROM_PATCH3) -#define OCOTP_ROM_PATCH4_REG(base) ((base)->ROM_PATCH4) -#define OCOTP_ROM_PATCH5_REG(base) ((base)->ROM_PATCH5) -#define OCOTP_ROM_PATCH6_REG(base) ((base)->ROM_PATCH6) -#define OCOTP_ROM_PATCH7_REG(base) ((base)->ROM_PATCH7) #define OCOTP_GP10_REG(base) ((base)->GP10) #define OCOTP_GP11_REG(base) ((base)->GP11) #define OCOTP_GP20_REG(base) ((base)->GP20) @@ -81366,8 +31251,6 @@ typedef struct { /*! * @} */ /* end of group OCOTP_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- OCOTP Register Masks ---------------------------------------------------------------------------- */ @@ -81473,11 +31356,11 @@ typedef struct { #define OCOTP_TIMING_PROG_MASK 0xFFFu #define OCOTP_TIMING_PROG_SHIFT 0 #define OCOTP_TIMING_PROG(x) (((uint32_t)(((uint32_t)(x))<GPU_CTRL) -#define PGC_GPU_PUPSCR_REG(base) ((base)->GPU_PUPSCR) -#define PGC_GPU_PDNSCR_REG(base) ((base)->GPU_PDNSCR) -#define PGC_GPU_SR_REG(base) ((base)->GPU_SR) -#define PGC_CPU_CTRL_REG(base) ((base)->CPU_CTRL) -#define PGC_CPU_PUPSCR_REG(base) ((base)->CPU_PUPSCR) -#define PGC_CPU_PDNSCR_REG(base) ((base)->CPU_PDNSCR) -#define PGC_CPU_SR_REG(base) ((base)->CPU_SR) - -/*! - * @} - */ /* end of group PGC_Register_Accessor_Macros */ - - -/* ---------------------------------------------------------------------------- - -- PGC Register Masks - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup PGC_Register_Masks PGC Register Masks - * @{ - */ - -/* GPU_CTRL Bit Fields */ -#define PGC_GPU_CTRL_PCR_MASK 0x1u -#define PGC_GPU_CTRL_PCR_SHIFT 0 -/* GPU_PUPSCR Bit Fields */ -#define PGC_GPU_PUPSCR_SW_MASK 0x3Fu -#define PGC_GPU_PUPSCR_SW_SHIFT 0 -#define PGC_GPU_PUPSCR_SW(x) (((uint32_t)(((uint32_t)(x))<REG_LPSR_1P0_SET) #define PMU_REG_LPSR_1P0_CLR_REG(base) ((base)->REG_LPSR_1P0_CLR) #define PMU_REG_LPSR_1P0_TOG_REG(base) ((base)->REG_LPSR_1P0_TOG) -#define PMU_REG_3P0_REG(base) ((base)->REG_3P0) -#define PMU_REG_3P0_SET_REG(base) ((base)->REG_3P0_SET) -#define PMU_REG_3P0_CLR_REG(base) ((base)->REG_3P0_CLR) -#define PMU_REG_3P0_TOG_REG(base) ((base)->REG_3P0_TOG) #define PMU_REF_REG(base) ((base)->REF) #define PMU_REF_SET_REG(base) ((base)->REF_SET) #define PMU_REF_CLR_REG(base) ((base)->REF_CLR) @@ -82722,8 +32381,6 @@ typedef struct { /*! * @} */ /* end of group PMU_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- PMU Register Masks ---------------------------------------------------------------------------- */ @@ -83293,126 +32950,6 @@ typedef struct { #define PMU_REG_LPSR_1P0_TOG_RSVD1_MASK 0xFF000000u #define PMU_REG_LPSR_1P0_TOG_RSVD1_SHIFT 24 #define PMU_REG_LPSR_1P0_TOG_RSVD1(x) (((uint32_t)(((uint32_t)(x))<CTRL) -#define PXP_STAT_REG(base) ((base)->STAT) -#define PXP_OUT_CTRL_REG(base) ((base)->OUT_CTRL) -#define PXP_OUT_BUF_REG(base) ((base)->OUT_BUF) -#define PXP_OUT_BUF2_REG(base) ((base)->OUT_BUF2) -#define PXP_OUT_PITCH_REG(base) ((base)->OUT_PITCH) -#define PXP_OUT_LRC_REG(base) ((base)->OUT_LRC) -#define PXP_OUT_PS_ULC_REG(base) ((base)->OUT_PS_ULC) -#define PXP_OUT_PS_LRC_REG(base) ((base)->OUT_PS_LRC) -#define PXP_OUT_AS_ULC_REG(base) ((base)->OUT_AS_ULC) -#define PXP_OUT_AS_LRC_REG(base) ((base)->OUT_AS_LRC) -#define PXP_PS_CTRL_REG(base) ((base)->PS_CTRL) -#define PXP_PS_BUF_REG(base) ((base)->PS_BUF) -#define PXP_PS_UBUF_REG(base) ((base)->PS_UBUF) -#define PXP_PS_VBUF_REG(base) ((base)->PS_VBUF) -#define PXP_PS_PITCH_REG(base) ((base)->PS_PITCH) +#define PXP_HW_PXP_CTRL_REG(base) ((base)->HW_PXP_CTRL) +#define PXP_HW_PXP_STAT_REG(base) ((base)->HW_PXP_STAT) +#define PXP_HW_PXP_OUT_CTRL_REG(base) ((base)->HW_PXP_OUT_CTRL) +#define PXP_HW_PXP_OUT_BUF_REG(base) ((base)->HW_PXP_OUT_BUF) +#define PXP_HW_PXP_OUT_BUF2_REG(base) ((base)->HW_PXP_OUT_BUF2) +#define PXP_HW_PXP_OUT_PITCH_REG(base) ((base)->HW_PXP_OUT_PITCH) +#define PXP_HW_PXP_OUT_LRC_REG(base) ((base)->HW_PXP_OUT_LRC) +#define PXP_HW_PXP_OUT_PS_ULC_REG(base) ((base)->HW_PXP_OUT_PS_ULC) +#define PXP_HW_PXP_OUT_PS_LRC_REG(base) ((base)->HW_PXP_OUT_PS_LRC) +#define PXP_HW_PXP_OUT_AS_ULC_REG(base) ((base)->HW_PXP_OUT_AS_ULC) +#define PXP_HW_PXP_OUT_AS_LRC_REG(base) ((base)->HW_PXP_OUT_AS_LRC) +#define PXP_HW_PXP_PS_CTRL_REG(base) ((base)->HW_PXP_PS_CTRL) +#define PXP_HW_PXP_PS_BUF_REG(base) ((base)->HW_PXP_PS_BUF) +#define PXP_HW_PXP_PS_UBUF_REG(base) ((base)->HW_PXP_PS_UBUF) +#define PXP_HW_PXP_PS_VBUF_REG(base) ((base)->HW_PXP_PS_VBUF) +#define PXP_HW_PXP_PS_PITCH_REG(base) ((base)->HW_PXP_PS_PITCH) #define PXP_HW_PXP_PS_BACKGROUND_0_REG(base) ((base)->HW_PXP_PS_BACKGROUND_0) -#define PXP_PS_SCALE_REG(base) ((base)->PS_SCALE) -#define PXP_PS_OFFSET_REG(base) ((base)->PS_OFFSET) +#define PXP_HW_PXP_PS_SCALE_REG(base) ((base)->HW_PXP_PS_SCALE) +#define PXP_HW_PXP_PS_OFFSET_REG(base) ((base)->HW_PXP_PS_OFFSET) #define PXP_HW_PXP_PS_CLRKEYLOW_0_REG(base) ((base)->HW_PXP_PS_CLRKEYLOW_0) #define PXP_HW_PXP_PS_CLRKEYHIGH_0_REG(base) ((base)->HW_PXP_PS_CLRKEYHIGH_0) -#define PXP_AS_CTRL_REG(base) ((base)->AS_CTRL) -#define PXP_AS_BUF_REG(base) ((base)->AS_BUF) -#define PXP_AS_PITCH_REG(base) ((base)->AS_PITCH) +#define PXP_HW_PXP_AS_CTRL_REG(base) ((base)->HW_PXP_AS_CTRL) +#define PXP_HW_PXP_AS_BUF_REG(base) ((base)->HW_PXP_AS_BUF) +#define PXP_HW_PXP_AS_PITCH_REG(base) ((base)->HW_PXP_AS_PITCH) #define PXP_HW_PXP_AS_CLRKEYLOW_0_REG(base) ((base)->HW_PXP_AS_CLRKEYLOW_0) #define PXP_HW_PXP_AS_CLRKEYHIGH_0_REG(base) ((base)->HW_PXP_AS_CLRKEYHIGH_0) -#define PXP_CSC1_COEF0_REG(base) ((base)->CSC1_COEF0) -#define PXP_CSC1_COEF1_REG(base) ((base)->CSC1_COEF1) -#define PXP_CSC1_COEF2_REG(base) ((base)->CSC1_COEF2) -#define PXP_CSC2_CTRL_REG(base) ((base)->CSC2_CTRL) -#define PXP_CSC2_COEF0_REG(base) ((base)->CSC2_COEF0) -#define PXP_CSC2_COEF1_REG(base) ((base)->CSC2_COEF1) -#define PXP_CSC2_COEF2_REG(base) ((base)->CSC2_COEF2) -#define PXP_CSC2_COEF3_REG(base) ((base)->CSC2_COEF3) -#define PXP_CSC2_COEF4_REG(base) ((base)->CSC2_COEF4) -#define PXP_CSC2_COEF5_REG(base) ((base)->CSC2_COEF5) -#define PXP_LUT_CTRL_REG(base) ((base)->LUT_CTRL) -#define PXP_LUT_ADDR_REG(base) ((base)->LUT_ADDR) -#define PXP_LUT_DATA_REG(base) ((base)->LUT_DATA) -#define PXP_LUT_EXTMEM_REG(base) ((base)->LUT_EXTMEM) -#define PXP_CFA_REG(base) ((base)->CFA) +#define PXP_HW_PXP_CSC1_COEF0_REG(base) ((base)->HW_PXP_CSC1_COEF0) +#define PXP_HW_PXP_CSC1_COEF1_REG(base) ((base)->HW_PXP_CSC1_COEF1) +#define PXP_HW_PXP_CSC1_COEF2_REG(base) ((base)->HW_PXP_CSC1_COEF2) +#define PXP_HW_PXP_CSC2_CTRL_REG(base) ((base)->HW_PXP_CSC2_CTRL) +#define PXP_HW_PXP_CSC2_COEF0_REG(base) ((base)->HW_PXP_CSC2_COEF0) +#define PXP_HW_PXP_CSC2_COEF1_REG(base) ((base)->HW_PXP_CSC2_COEF1) +#define PXP_HW_PXP_CSC2_COEF2_REG(base) ((base)->HW_PXP_CSC2_COEF2) +#define PXP_HW_PXP_CSC2_COEF3_REG(base) ((base)->HW_PXP_CSC2_COEF3) +#define PXP_HW_PXP_CSC2_COEF4_REG(base) ((base)->HW_PXP_CSC2_COEF4) +#define PXP_HW_PXP_CSC2_COEF5_REG(base) ((base)->HW_PXP_CSC2_COEF5) +#define PXP_HW_PXP_LUT_CTRL_REG(base) ((base)->HW_PXP_LUT_CTRL) +#define PXP_HW_PXP_LUT_ADDR_REG(base) ((base)->HW_PXP_LUT_ADDR) +#define PXP_HW_PXP_LUT_DATA_REG(base) ((base)->HW_PXP_LUT_DATA) +#define PXP_HW_PXP_LUT_EXTMEM_REG(base) ((base)->HW_PXP_LUT_EXTMEM) +#define PXP_HW_PXP_CFA_REG(base) ((base)->HW_PXP_CFA) #define PXP_HW_PXP_ALPHA_A_CTRL_REG(base) ((base)->HW_PXP_ALPHA_A_CTRL) #define PXP_HW_PXP_ALPHA_B_CTRL_REG(base) ((base)->HW_PXP_ALPHA_B_CTRL) #define PXP_HW_PXP_ALPHA_B_CTRL_1_REG(base) ((base)->HW_PXP_ALPHA_B_CTRL_1) @@ -84443,7 +33966,7 @@ typedef struct { #define PXP_HW_PXP_INIT_MEM_DATA_HIGH_REG(base) ((base)->HW_PXP_INIT_MEM_DATA_HIGH) #define PXP_HW_PXP_IRQ_MASK_REG(base) ((base)->HW_PXP_IRQ_MASK) #define PXP_HW_PXP_IRQ_REG(base) ((base)->HW_PXP_IRQ) -#define PXP_NEXT_REG(base) ((base)->NEXT) +#define PXP_HW_PXP_NEXT_REG(base) ((base)->HW_PXP_NEXT) #define PXP_HW_PXP_INPUT_FETCH_CTRL_CH0_REG(base) ((base)->HW_PXP_INPUT_FETCH_CTRL_CH0) #define PXP_HW_PXP_INPUT_FETCH_CTRL_CH1_REG(base) ((base)->HW_PXP_INPUT_FETCH_CTRL_CH1) #define PXP_HW_PXP_INPUT_FETCH_STATUS_CH0_REG(base) ((base)->HW_PXP_INPUT_FETCH_STATUS_CH0) @@ -84583,14 +34106,14 @@ typedef struct { #define PXP_HW_PXP_HIST_B_ACTIVE_AREA_Y_REG(base) ((base)->HW_PXP_HIST_B_ACTIVE_AREA_Y) #define PXP_HW_PXP_HIST_B_RAW_STAT0_REG(base) ((base)->HW_PXP_HIST_B_RAW_STAT0) #define PXP_HW_PXP_HIST_B_RAW_STAT1_REG(base) ((base)->HW_PXP_HIST_B_RAW_STAT1) -#define PXP_HIST2_PARAM_REG(base) ((base)->HIST2_PARAM) -#define PXP_HIST4_PARAM_REG(base) ((base)->HIST4_PARAM) -#define PXP_HIST8_PARAM0_REG(base) ((base)->HIST8_PARAM0) -#define PXP_HIST8_PARAM1_REG(base) ((base)->HIST8_PARAM1) -#define PXP_HIST16_PARAM0_REG(base) ((base)->HIST16_PARAM0) -#define PXP_HIST16_PARAM1_REG(base) ((base)->HIST16_PARAM1) -#define PXP_HIST16_PARAM2_REG(base) ((base)->HIST16_PARAM2) -#define PXP_HIST16_PARAM3_REG(base) ((base)->HIST16_PARAM3) +#define PXP_HW_PXP_HIST2_PARAM_REG(base) ((base)->HW_PXP_HIST2_PARAM) +#define PXP_HW_PXP_HIST4_PARAM_REG(base) ((base)->HW_PXP_HIST4_PARAM) +#define PXP_HW_PXP_HIST8_PARAM0_REG(base) ((base)->HW_PXP_HIST8_PARAM0) +#define PXP_HW_PXP_HIST8_PARAM1_REG(base) ((base)->HW_PXP_HIST8_PARAM1) +#define PXP_HW_PXP_HIST16_PARAM0_REG(base) ((base)->HW_PXP_HIST16_PARAM0) +#define PXP_HW_PXP_HIST16_PARAM1_REG(base) ((base)->HW_PXP_HIST16_PARAM1) +#define PXP_HW_PXP_HIST16_PARAM2_REG(base) ((base)->HW_PXP_HIST16_PARAM2) +#define PXP_HW_PXP_HIST16_PARAM3_REG(base) ((base)->HW_PXP_HIST16_PARAM3) #define PXP_HW_PXP_HIST32_PARAM0_REG(base) ((base)->HW_PXP_HIST32_PARAM0) #define PXP_HW_PXP_HIST32_PARAM1_REG(base) ((base)->HW_PXP_HIST32_PARAM1) #define PXP_HW_PXP_HIST32_PARAM2_REG(base) ((base)->HW_PXP_HIST32_PARAM2) @@ -84624,8 +34147,6 @@ typedef struct { /*! * @} */ /* end of group PXP_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- PXP Register Masks ---------------------------------------------------------------------------- */ @@ -84635,231 +34156,231 @@ typedef struct { * @{ */ -/* CTRL Bit Fields */ -#define PXP_CTRL_ENABLE_MASK 0x1u -#define PXP_CTRL_ENABLE_SHIFT 0 -#define PXP_CTRL_IRQ_ENABLE_MASK 0x2u -#define PXP_CTRL_IRQ_ENABLE_SHIFT 1 -#define PXP_CTRL_NEXT_IRQ_ENABLE_MASK 0x4u -#define PXP_CTRL_NEXT_IRQ_ENABLE_SHIFT 2 -#define PXP_CTRL_LUT_DMA_IRQ_ENABLE_MASK 0x8u -#define PXP_CTRL_LUT_DMA_IRQ_ENABLE_SHIFT 3 -#define PXP_CTRL_ENABLE_LCD0_HANDSHAKE_MASK 0x10u -#define PXP_CTRL_ENABLE_LCD0_HANDSHAKE_SHIFT 4 -#define PXP_CTRL_HANDSHAKE_ABORT_SKIP_MASK 0x20u -#define PXP_CTRL_HANDSHAKE_ABORT_SKIP_SHIFT 5 -#define PXP_CTRL_RSVD0_MASK 0xC0u -#define PXP_CTRL_RSVD0_SHIFT 6 -#define PXP_CTRL_RSVD0(x) (((uint32_t)(((uint32_t)(x))<GATE[index]) -#define RDC_SEMAPHORE_RSTGT_R_REG(base) ((base)->RSTGT_R) #define RDC_SEMAPHORE_RSTGT_W_REG(base) ((base)->RSTGT_W) +#define RDC_SEMAPHORE_RSTGT_R_REG(base) ((base)->RSTGT_R) /*! * @} */ /* end of group RDC_SEMAPHORE_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- RDC_SEMAPHORE Register Masks ---------------------------------------------------------------------------- */ @@ -89470,6 +38895,13 @@ typedef struct { #define RDC_SEMAPHORE_GATE_LDOM_MASK 0x60u #define RDC_SEMAPHORE_GATE_LDOM_SHIFT 5 #define RDC_SEMAPHORE_GATE_LDOM(x) (((uint8_t)(((uint8_t)(x))<DC0PTR) -#define SDMABP_INTR_REG(base) ((base)->INTR) -#define SDMABP_STOP_STAT_REG(base) ((base)->STOP_STAT) -#define SDMABP_DSTART_REG(base) ((base)->DSTART) -#define SDMABP_EVTERR_REG(base) ((base)->EVTERR) -#define SDMABP_INTRMASK_REG(base) ((base)->INTRMASK) -#define SDMABP_EVTERRDBG_REG(base) ((base)->EVTERRDBG) - -/*! - * @} - */ /* end of group SDMABP_Register_Accessor_Macros */ - - -/* ---------------------------------------------------------------------------- - -- SDMABP Register Masks - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup SDMABP_Register_Masks SDMABP Register Masks - * @{ - */ - -/* DC0PTR Bit Fields */ -#define SDMABP_DC0PTR_DC0PTR_MASK 0xFFFFFFFFu -#define SDMABP_DC0PTR_DC0PTR_SHIFT 0 -#define SDMABP_DC0PTR_DC0PTR(x) (((uint32_t)(((uint32_t)(x))<CCPRI.CCPRI) -#define SDMACORE_CCPTR_REG(base) ((base)->CCPTR.CCPTR) -#define SDMACORE_CCR_REG(base) ((base)->CCR.CCR) -#define SDMACORE_EAA_REG(base) ((base)->EAA.EAA) -#define SDMACORE_EAB_REG(base) ((base)->EAB.EAB) -#define SDMACORE_EAM_REG(base) ((base)->EAM.EAM) -#define SDMACORE_ECOUNT_REG(base) ((base)->ECOUNT.ECOUNT) -#define SDMACORE_ECTL_REG(base) ((base)->ECTL.ECTL) -#define SDMACORE_ED_REG(base) ((base)->ED.ED) -#define SDMACORE_EDM_REG(base) ((base)->EDM.EDM) -#define SDMACORE_EVENTS_REG(base) ((base)->EVENTS.EVENTS) -#define SDMACORE_MC0PTR_REG(base) ((base)->MC0PTR) -#define SDMACORE_NCPRI_REG(base) ((base)->NCPRI.NCPRI) -#define SDMACORE_NCR_REG(base) ((base)->NCR.NCR) -#define SDMACORE_ENDIANNESS_REG(base) ((base)->ENDIANNESS.ENDIANNESS) -#define SDMACORE_EVENTS2_REG(base) ((base)->EVENTS2.EVENTS2) -#define SDMACORE_MCHN0ADDR_REG(base) ((base)->MCHN0ADDR.MCHN0ADDR) -#define SDMACORE_OSTAT_REG(base) ((base)->OSTAT.OSTAT) -#define SDMACORE_RTB_REG(base) ((base)->RTB) -#define SDMACORE_SDMA_LOCK_REG(base) ((base)->SDMA_LOCK.SDMA_LOCK) -#define SDMACORE_TB_REG(base) ((base)->TB.TB) - -/*! - * @} - */ /* end of group SDMACORE_Register_Accessor_Macros */ - - -/* ---------------------------------------------------------------------------- - -- SDMACORE Register Masks - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup SDMACORE_Register_Masks SDMACORE Register Masks - * @{ - */ - -/* CCPRI Bit Fields */ -#define SDMACORE_CCPRI_CCPRI_MASK 0x7u -#define SDMACORE_CCPRI_CCPRI_SHIFT 0 -#define SDMACORE_CCPRI_CCPRI(x) (((uint32_t)(((uint32_t)(x))<Gate03) -#define SEMA4_GATE02_REG(base) ((base)->Gate02) -#define SEMA4_GATE01_REG(base) ((base)->Gate01) -#define SEMA4_GATE00_REG(base) ((base)->Gate00) -#define SEMA4_GATE07_REG(base) ((base)->Gate07) -#define SEMA4_GATE06_REG(base) ((base)->Gate06) -#define SEMA4_GATE05_REG(base) ((base)->Gate05) -#define SEMA4_GATE04_REG(base) ((base)->Gate04) -#define SEMA4_GATE11_REG(base) ((base)->Gate11) -#define SEMA4_GATE10_REG(base) ((base)->Gate10) -#define SEMA4_GATE09_REG(base) ((base)->Gate09) -#define SEMA4_GATE08_REG(base) ((base)->Gate08) -#define SEMA4_GATE15_REG(base) ((base)->Gate15) -#define SEMA4_GATE14_REG(base) ((base)->Gate14) -#define SEMA4_GATE13_REG(base) ((base)->Gate13) -#define SEMA4_GATE12_REG(base) ((base)->Gate12) -#define SEMA4_CPINE_REG(base,index) ((base)->CPINE[index].CPINE) -#define SEMA4_CPNTF_REG(base,index) ((base)->CPNTF[index].CPNTF) +#define SEMA4_GATE00_REG(base) ((base)->GATE00) +#define SEMA4_GATE01_REG(base) ((base)->GATE01) +#define SEMA4_GATE02_REG(base) ((base)->GATE02) +#define SEMA4_GATE03_REG(base) ((base)->GATE03) +#define SEMA4_GATE04_REG(base) ((base)->GATE04) +#define SEMA4_GATE05_REG(base) ((base)->GATE05) +#define SEMA4_GATE06_REG(base) ((base)->GATE06) +#define SEMA4_GATE07_REG(base) ((base)->GATE07) +#define SEMA4_GATE08_REG(base) ((base)->GATE08) +#define SEMA4_GATE09_REG(base) ((base)->GATE09) +#define SEMA4_GATE10_REG(base) ((base)->GATE10) +#define SEMA4_GATE11_REG(base) ((base)->GATE11) +#define SEMA4_GATE12_REG(base) ((base)->GATE12) +#define SEMA4_GATE13_REG(base) ((base)->GATE13) +#define SEMA4_GATE14_REG(base) ((base)->GATE14) +#define SEMA4_GATE15_REG(base) ((base)->GATE15) +#define SEMA4_CPINE_REG(base,index) ((base)->CPnINE[index].INE) +#define SEMA4_CPNTF_REG(base,index) ((base)->CPnNTF[index].NTF) #define SEMA4_RSTGT_REG(base) ((base)->RSTGT) #define SEMA4_RSTNTF_REG(base) ((base)->RSTNTF) /*! * @} */ /* end of group SEMA4_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- SEMA4 Register Masks ---------------------------------------------------------------------------- */ @@ -90790,70 +39740,70 @@ typedef struct { * @{ */ -/* Gate03 Bit Fields */ -#define SEMA4_GATE03_GTFSM_MASK 0x3u -#define SEMA4_GATE03_GTFSM_SHIFT 0 -#define SEMA4_GATE03_GTFSM(x) (((uint8_t)(((uint8_t)(x))<DCR.DCR) -#define SJC_GPCCR_REG(base) ((base)->GPCCR.GPCCR) -#define SJC_GPSSR_REG(base) ((base)->GPSSR.GPSSR) #define SJC_GPUSR1_REG(base) ((base)->GPUSR1) #define SJC_GPUSR2_REG(base) ((base)->GPUSR2.GPUSR2) #define SJC_GPUSR3_REG(base) ((base)->GPUSR3.GPUSR3) +#define SJC_GPSSR_REG(base) ((base)->GPSSR.GPSSR) +#define SJC_DCR_REG(base) ((base)->DCR.DCR) #define SJC_SSR_REG(base) ((base)->SSR.SSR) +#define SJC_GPCCR_REG(base) ((base)->GPCCR.GPCCR) /*! * @} */ /* end of group SJC_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- SJC Register Masks ---------------------------------------------------------------------------- */ @@ -91073,26 +40017,6 @@ typedef struct { * @{ */ -/* DCR Bit Fields */ -#define SJC_DCR_DE_TO_ARM_MASK 0x1u -#define SJC_DCR_DE_TO_ARM_SHIFT 0 -#define SJC_DCR_DE_TO_SDMA_MASK 0x2u -#define SJC_DCR_DE_TO_SDMA_SHIFT 1 -#define SJC_DCR_DEBUG_OBS_MASK 0x8u -#define SJC_DCR_DEBUG_OBS_SHIFT 3 -#define SJC_DCR_DIRECT_SDMA_REQ_EN_MASK 0x20u -#define SJC_DCR_DIRECT_SDMA_REQ_EN_SHIFT 5 -#define SJC_DCR_DIRECT_ARM_REQ_EN_MASK 0x40u -#define SJC_DCR_DIRECT_ARM_REQ_EN_SHIFT 6 -/* GPCCR Bit Fields */ -#define SJC_GPCCR_SCLKR_MASK 0x1u -#define SJC_GPCCR_SCLKR_SHIFT 0 -#define SJC_GPCCR_ACLKOFFDIS_MASK 0x2u -#define SJC_GPCCR_ACLKOFFDIS_SHIFT 1 -/* GPSSR Bit Fields */ -#define SJC_GPSSR_GPSSR_MASK 0xFFFFFFFFu -#define SJC_GPSSR_GPSSR_SHIFT 0 -#define SJC_GPSSR_GPSSR(x) (((uint32_t)(((uint32_t)(x))<USBSTS) #define USB_USBINTR_REG(base) ((base)->USBINTR) #define USB_FRINDEX_REG(base) ((base)->FRINDEX) -#define USB_DEVICEADDR_REG(base) ((base)->DEVICEADDR) #define USB_PERIODICLISTBASE_REG(base) ((base)->PERIODICLISTBASE) -#define USB_ASYNCLISTADDR_REG(base) ((base)->ASYNCLISTADDR) -#define USB_ENDPTLISTADDR_REG(base) ((base)->ENDPTLISTADDR) +#define USB_DEVICEADDR_REG(base) ((base)->DEVICEADDR) +#define USB_ASYNCLISTADDR_REG(base) ((base)->ASYNCLISTADDR.ASYNCLISTADDR) +#define USB_ENDPTLISTADDR_REG(base) ((base)->ENDPTLISTADDR.ENDPTLISTADDR) #define USB_BURSTSIZE_REG(base) ((base)->BURSTSIZE) #define USB_TXFILLTUNING_REG(base) ((base)->TXFILLTUNING) #define USB_ENDPTNAK_REG(base) ((base)->ENDPTNAK) @@ -93044,8 +41980,6 @@ typedef struct { /*! * @} */ /* end of group USB_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- USB Register Masks ---------------------------------------------------------------------------- */ @@ -93284,16 +42218,16 @@ typedef struct { #define USB_FRINDEX_FRINDEX_MASK 0x3FFFu #define USB_FRINDEX_FRINDEX_SHIFT 0 #define USB_FRINDEX_FRINDEX(x) (((uint32_t)(((uint32_t)(x))<USB_x_CTRL1) -#define USBNC_USB_x_CTRL2_REG(base) ((base)->USB_x_CTRL2) -#define USBNC_USB_x_PHY_CTL2_REG(base) ((base)->USB_x_PHY_CTL2) -#define USBNC_USB_x_PHY_STS_REG(base) ((base)->USB_x_PHY_STS) +#define USBNC_OTG1_CTRL1_REG(base) ((base)->OTG1_CTRL1) +#define USBNC_OTG1_CTRL2_REG(base) ((base)->OTG1_CTRL2) +#define USBNC_OTG1_PHY_CFG1_REG(base) ((base)->OTG1_PHY_CFG1) +#define USBNC_OTG1_PHY_CFG2_REG(base) ((base)->OTG1_PHY_CFG2) +#define USBNC_OTG1_PHY_STATUS_REG(base) ((base)->OTG1_PHY_STATUS) #define USBNC_ADP_CFG1_REG(base) ((base)->ADP_CFG1) #define USBNC_ADP_CFG2_REG(base) ((base)->ADP_CFG2) #define USBNC_ADP_STATUS_REG(base) ((base)->ADP_STATUS) +#define USBNC_OTG2_CTRL1_REG(base) ((base)->OTG2_CTRL1) +#define USBNC_OTG2_CTRL2_REG(base) ((base)->OTG2_CTRL2) +#define USBNC_OTG2_PHY_CFG1_REG(base) ((base)->OTG2_PHY_CFG1) +#define USBNC_OTG2_PHY_CFG2_REG(base) ((base)->OTG2_PHY_CFG2) +#define USBNC_OTG2_PHY_STATUS_REG(base) ((base)->OTG2_PHY_STATUS) +#define USBNC_HSIC_CTRL1_REG(base) ((base)->HSIC_CTRL1) +#define USBNC_HSIC_CTRL2_REG(base) ((base)->HSIC_CTRL2) +#define USBNC_UH_HSICPHY_CFG1_REG(base) ((base)->UH_HSICPHY_CFG1) /*! * @} */ /* end of group USBNC_Register_Accessor_Macros */ - - /* ---------------------------------------------------------------------------- -- USBNC Register Masks ---------------------------------------------------------------------------- */ @@ -93938,60 +42888,137 @@ typedef struct { * @{ */ -/* USB_x_CTRL1 Bit Fields */ -#define USBNC_USB_x_CTRL1_OVER_CUR_DIS_MASK 0x80u -#define USBNC_USB_x_CTRL1_OVER_CUR_DIS_SHIFT 7 -#define USBNC_USB_x_CTRL1_OVER_CUR_POL_MASK 0x100u -#define USBNC_USB_x_CTRL1_OVER_CUR_POL_SHIFT 8 -#define USBNC_USB_x_CTRL1_PWR_POL_MASK 0x200u -#define USBNC_USB_x_CTRL1_PWR_POL_SHIFT 9 -#define USBNC_USB_x_CTRL1_WIE_MASK 0x400u -#define USBNC_USB_x_CTRL1_WIE_SHIFT 10 -#define USBNC_USB_x_CTRL1_WKUP_SW_EN_MASK 0x4000u -#define USBNC_USB_x_CTRL1_WKUP_SW_EN_SHIFT 14 -#define USBNC_USB_x_CTRL1_WKUP_SW_MASK 0x8000u -#define USBNC_USB_x_CTRL1_WKUP_SW_SHIFT 15 -#define USBNC_USB_x_CTRL1_WKUP_ID_EN_MASK 0x10000u -#define USBNC_USB_x_CTRL1_WKUP_ID_EN_SHIFT 16 -#define USBNC_USB_x_CTRL1_WKUP_VBUS_EN_MASK 0x20000u -#define USBNC_USB_x_CTRL1_WKUP_VBUS_EN_SHIFT 17 -#define USBNC_USB_x_CTRL1_WKUP_DPDM_EN_MASK 0x20000000u -#define USBNC_USB_x_CTRL1_WKUP_DPDM_EN_SHIFT 29 -#define USBNC_USB_x_CTRL1_WIR_MASK 0x80000000u -#define USBNC_USB_x_CTRL1_WIR_SHIFT 31 -/* USB_x_CTRL2 Bit Fields */ -#define USBNC_USB_x_CTRL2_VBUS_SOURCE_SEL_MASK 0x3u -#define USBNC_USB_x_CTRL2_VBUS_SOURCE_SEL_SHIFT 0 -#define USBNC_USB_x_CTRL2_VBUS_SOURCE_SEL(x) (((uint32_t)(((uint32_t)(x))<PWD) -#define USBPHY_PWD_SET_REG(base) ((base)->PWD_SET) -#define USBPHY_PWD_CLR_REG(base) ((base)->PWD_CLR) -#define USBPHY_PWD_TOG_REG(base) ((base)->PWD_TOG) -#define USBPHY_TX_REG(base) ((base)->TX) -#define USBPHY_TX_SET_REG(base) ((base)->TX_SET) -#define USBPHY_TX_CLR_REG(base) ((base)->TX_CLR) -#define USBPHY_TX_TOG_REG(base) ((base)->TX_TOG) -#define USBPHY_RX_REG(base) ((base)->RX) -#define USBPHY_RX_SET_REG(base) ((base)->RX_SET) -#define USBPHY_RX_CLR_REG(base) ((base)->RX_CLR) -#define USBPHY_RX_TOG_REG(base) ((base)->RX_TOG) -#define USBPHY_CTRL_REG(base) ((base)->CTRL) -#define USBPHY_CTRL_SET_REG(base) ((base)->CTRL_SET) -#define USBPHY_CTRL_CLR_REG(base) ((base)->CTRL_CLR) -#define USBPHY_CTRL_TOG_REG(base) ((base)->CTRL_TOG) -#define USBPHY_STATUS_REG(base) ((base)->STATUS) -#define USBPHY_DEBUG_REG(base) ((base)->DEBUG) -#define USBPHY_DEBUG_SET_REG(base) ((base)->DEBUG_SET) -#define USBPHY_DEBUG_CLR_REG(base) ((base)->DEBUG_CLR) -#define USBPHY_DEBUG_TOG_REG(base) ((base)->DEBUG_TOG) -#define USBPHY_DEBUG0_STATUS_REG(base) ((base)->DEBUG0_STATUS) -#define USBPHY_DEBUG1_REG(base) ((base)->DEBUG1) -#define USBPHY_DEBUG1_SET_REG(base) ((base)->DEBUG1_SET) -#define USBPHY_DEBUG1_CLR_REG(base) ((base)->DEBUG1_CLR) -#define USBPHY_DEBUG1_TOG_REG(base) ((base)->DEBUG1_TOG) -#define USBPHY_VERSION_REG(base) ((base)->VERSION) - -/*! - * @} - */ /* end of group USBPHY_Register_Accessor_Macros */ - - -/* ---------------------------------------------------------------------------- - -- USBPHY Register Masks - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup USBPHY_Register_Masks USBPHY Register Masks - * @{ - */ - -/* PWD Bit Fields */ -#define USBPHY_PWD_RSVD0_MASK 0x3FFu -#define USBPHY_PWD_RSVD0_SHIFT 0 -#define USBPHY_PWD_RSVD0(x) (((uint32_t)(((uint32_t)(x))<USB1_VBUS_DETECT) -#define USB_ANALOG_USB1_VBUS_DETECT_SET_REG(base) ((base)->USB1_VBUS_DETECT_SET) -#define USB_ANALOG_USB1_VBUS_DETECT_CLR_REG(base) ((base)->USB1_VBUS_DETECT_CLR) -#define USB_ANALOG_USB1_VBUS_DETECT_TOG_REG(base) ((base)->USB1_VBUS_DETECT_TOG) -#define USB_ANALOG_USB1_CHRG_DETECT_REG(base) ((base)->USB1_CHRG_DETECT) -#define USB_ANALOG_USB1_CHRG_DETECT_SET_REG(base) ((base)->USB1_CHRG_DETECT_SET) -#define USB_ANALOG_USB1_CHRG_DETECT_CLR_REG(base) ((base)->USB1_CHRG_DETECT_CLR) -#define USB_ANALOG_USB1_CHRG_DETECT_TOG_REG(base) ((base)->USB1_CHRG_DETECT_TOG) -#define USB_ANALOG_USB1_VBUS_DETECT_STAT_REG(base) ((base)->USB1_VBUS_DETECT_STAT) -#define USB_ANALOG_USB1_CHRG_DETECT_STAT_REG(base) ((base)->USB1_CHRG_DETECT_STAT) -#define USB_ANALOG_USB1_MISC_REG(base) ((base)->USB1_MISC) -#define USB_ANALOG_USB1_MISC_SET_REG(base) ((base)->USB1_MISC_SET) -#define USB_ANALOG_USB1_MISC_CLR_REG(base) ((base)->USB1_MISC_CLR) -#define USB_ANALOG_USB1_MISC_TOG_REG(base) ((base)->USB1_MISC_TOG) -#define USB_ANALOG_USB2_VBUS_DETECT_REG(base) ((base)->USB2_VBUS_DETECT) -#define USB_ANALOG_USB2_VBUS_DETECT_SET_REG(base) ((base)->USB2_VBUS_DETECT_SET) -#define USB_ANALOG_USB2_VBUS_DETECT_CLR_REG(base) ((base)->USB2_VBUS_DETECT_CLR) -#define USB_ANALOG_USB2_VBUS_DETECT_TOG_REG(base) ((base)->USB2_VBUS_DETECT_TOG) -#define USB_ANALOG_USB2_CHRG_DETECT_REG(base) ((base)->USB2_CHRG_DETECT) -#define USB_ANALOG_USB2_CHRG_DETECT_SET_REG(base) ((base)->USB2_CHRG_DETECT_SET) -#define USB_ANALOG_USB2_CHRG_DETECT_CLR_REG(base) ((base)->USB2_CHRG_DETECT_CLR) -#define USB_ANALOG_USB2_CHRG_DETECT_TOG_REG(base) ((base)->USB2_CHRG_DETECT_TOG) -#define USB_ANALOG_USB2_VBUS_DETECT_STAT_REG(base) ((base)->USB2_VBUS_DETECT_STAT) -#define USB_ANALOG_USB2_CHRG_DETECT_STAT_REG(base) ((base)->USB2_CHRG_DETECT_STAT) -#define USB_ANALOG_USB2_MISC_REG(base) ((base)->USB2_MISC) -#define USB_ANALOG_USB2_MISC_SET_REG(base) ((base)->USB2_MISC_SET) -#define USB_ANALOG_USB2_MISC_CLR_REG(base) ((base)->USB2_MISC_CLR) -#define USB_ANALOG_USB2_MISC_TOG_REG(base) ((base)->USB2_MISC_TOG) -#define USB_ANALOG_DIGPROG_REG(base) ((base)->DIGPROG) - -/*! - * @} - */ /* end of group USB_ANALOG_Register_Accessor_Macros */ - - -/* ---------------------------------------------------------------------------- - -- USB_ANALOG Register Masks - ---------------------------------------------------------------------------- */ - -/*! - * @addtogroup USB_ANALOG_Register_Masks USB_ANALOG Register Masks - * @{ - */ - -/* USB1_VBUS_DETECT Bit Fields */ -#define USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH_MASK 0x7u -#define USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH_SHIFT 0 -#define USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH(x) (((uint32_t)(((uint32_t)(x))< m_text - - __VECTOR_RAM = __VECTOR_TABLE; - __RAM_VECTOR_TABLE_SIZE_BYTES = 0x0; - - - .text : - { - . = ALIGN(4); - *(.text) /* .text sections (code) */ - *(.text*) /* .text* sections (code) */ - *(.rodata) /* .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ - *(.glue_7) /* glue arm to thumb code */ - *(.glue_7t) /* glue thumb to arm code */ - *(.eh_frame) - KEEP (*(.init)) - KEEP (*(.fini)) - . = ALIGN(4); - } > m_text - - .ARM.extab : - { - *(.ARM.extab* .gnu.linkonce.armextab.*) - } > m_text - - .ARM : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > m_text - - .ctors : - { - __CTOR_LIST__ = .; - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - /* We don't want to include the .ctor section from - from the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - __CTOR_END__ = .; - } > m_text - - .dtors : - { - __DTOR_LIST__ = .; - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - __DTOR_END__ = .; - } > m_text - - .preinit_array : - { - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array*)) - PROVIDE_HIDDEN (__preinit_array_end = .); - } > m_text - - .init_array : - { - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array*)) - PROVIDE_HIDDEN (__init_array_end = .); - } > m_text - - .fini_array : - { - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(SORT(.fini_array.*))) - KEEP (*(.fini_array*)) - PROVIDE_HIDDEN (__fini_array_end = .); - } > m_text - - __etext = .; /* define a global symbol at end of code */ - __DATA_ROM = .; /* Symbol is used by startup for data initialization */ - - .data : AT(__DATA_ROM) - { - . = ALIGN(4); - __DATA_RAM = .; - __data_start__ = .; /* create a global symbol at data start */ - *(.data) /* .data sections */ - *(.data*) /* .data* sections */ - KEEP(*(.jcr*)) - . = ALIGN(4); - __data_end__ = .; /* define a global symbol at data end */ - } > m_data - - __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); - - /* Uninitialized data section */ - .bss : - { - /* This is used by the startup in order to initialize the .bss section */ - . = ALIGN(4); - __START_BSS = .; - __bss_start__ = .; - *(.bss) - *(.bss*) - *(COMMON) - . = ALIGN(4); - __bss_end__ = .; - __END_BSS = .; - } > m_data - - .heap : - { - . = ALIGN(8); - __end__ = .; - PROVIDE(end = .); - __HeapBase = .; - . += HEAP_SIZE; - __HeapLimit = .; - } > m_data - .stack : - { - . = ALIGN(8); - . += STACK_SIZE; - } > m_data - /* Initializes stack on the end of block */ - __StackTop = ORIGIN(m_data) + LENGTH(m_data); - __StackLimit = __StackTop - STACK_SIZE; - PROVIDE(__stack = __StackTop); - .ARM.attributes 0 : { *(.ARM.attributes) } - - ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") - } diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIB.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIB.ld deleted file mode 100644 index 84dceb5..0000000 --- a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_QSPIB.ld +++ /dev/null @@ -1,167 +0,0 @@ -/* Entry Point */ -ENTRY(Reset_Handler) - -STACK_SIZE = 0x400; -HEAP_SIZE = 0x200; -/* Specify the memory areas */ -MEMORY -{ - m_text (RX) : ORIGIN = 0x68000000, LENGTH = 0x00007FFF - - m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007FFF - -} - -SECTIONS -{ - .interrupts : - { - __VECTOR_TABLE = .; - . = ALIGN(4); - KEEP(*(.isr_vector)) /* Startup code */ - . = ALIGN(4); - } > m_text - - __VECTOR_RAM = __VECTOR_TABLE; - __RAM_VECTOR_TABLE_SIZE_BYTES = 0x0; - - - .text : - { - . = ALIGN(4); - *(.text) /* .text sections (code) */ - *(.text*) /* .text* sections (code) */ - *(.rodata) /* .rodata sections (constants, strings, etc.) */ - *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ - *(.glue_7) /* glue arm to thumb code */ - *(.glue_7t) /* glue thumb to arm code */ - *(.eh_frame) - KEEP (*(.init)) - KEEP (*(.fini)) - . = ALIGN(4); - } > m_text - - .ARM.extab : - { - *(.ARM.extab* .gnu.linkonce.armextab.*) - } > m_text - - .ARM : - { - __exidx_start = .; - *(.ARM.exidx*) - __exidx_end = .; - } > m_text - - .ctors : - { - __CTOR_LIST__ = .; - /* gcc uses crtbegin.o to find the start of - the constructors, so we make sure it is - first. Because this is a wildcard, it - doesn't matter if the user does not - actually link against crtbegin.o; the - linker won't look for a file to match a - wildcard. The wildcard also means that it - doesn't matter which directory crtbegin.o - is in. */ - KEEP (*crtbegin.o(.ctors)) - KEEP (*crtbegin?.o(.ctors)) - /* We don't want to include the .ctor section from - from the crtend.o file until after the sorted ctors. - The .ctor section from the crtend file contains the - end of ctors marker and it must be last */ - KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - __CTOR_END__ = .; - } > m_text - - .dtors : - { - __DTOR_LIST__ = .; - KEEP (*crtbegin.o(.dtors)) - KEEP (*crtbegin?.o(.dtors)) - KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - __DTOR_END__ = .; - } > m_text - - .preinit_array : - { - PROVIDE_HIDDEN (__preinit_array_start = .); - KEEP (*(.preinit_array*)) - PROVIDE_HIDDEN (__preinit_array_end = .); - } > m_text - - .init_array : - { - PROVIDE_HIDDEN (__init_array_start = .); - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array*)) - PROVIDE_HIDDEN (__init_array_end = .); - } > m_text - - .fini_array : - { - PROVIDE_HIDDEN (__fini_array_start = .); - KEEP (*(SORT(.fini_array.*))) - KEEP (*(.fini_array*)) - PROVIDE_HIDDEN (__fini_array_end = .); - } > m_text - - __etext = .; /* define a global symbol at end of code */ - __DATA_ROM = .; /* Symbol is used by startup for data initialization */ - - .data : AT(__DATA_ROM) - { - . = ALIGN(4); - __DATA_RAM = .; - __data_start__ = .; /* create a global symbol at data start */ - *(.data) /* .data sections */ - *(.data*) /* .data* sections */ - KEEP(*(.jcr*)) - . = ALIGN(4); - __data_end__ = .; /* define a global symbol at data end */ - } > m_data - - __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); - - /* Uninitialized data section */ - .bss : - { - /* This is used by the startup in order to initialize the .bss section */ - . = ALIGN(4); - __START_BSS = .; - __bss_start__ = .; - *(.bss) - *(.bss*) - *(COMMON) - . = ALIGN(4); - __bss_end__ = .; - __END_BSS = .; - } > m_data - - .heap : - { - . = ALIGN(8); - __end__ = .; - PROVIDE(end = .); - __HeapBase = .; - . += HEAP_SIZE; - __HeapLimit = .; - } > m_data - .stack : - { - . = ALIGN(8); - . += STACK_SIZE; - } > m_data - /* Initializes stack on the end of block */ - __StackTop = ORIGIN(m_data) + LENGTH(m_data); - __StackLimit = __StackTop - STACK_SIZE; - PROVIDE(__stack = __StackTop); - .ARM.attributes 0 : { *(.ARM.attributes) } - - ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") - } diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld new file mode 100644 index 0000000..84c0301 --- /dev/null +++ b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ddr.ld @@ -0,0 +1,222 @@ +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: GNU C Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-05-19 +** +** Abstract: +** Linker file for the GNU C Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400; +STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400; + +/* Specify the memory areas */ +MEMORY +{ + m_interrupts (RX) : ORIGIN = 0x9ff00000, LENGTH = 0x00000240 + m_text (RX) : ORIGIN = 0x9ff00240, LENGTH = 0x00007DC0 + m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00008000 +} + +__FLASH_START = ORIGIN(m_interrupts); +__FLASH_END = ORIGIN(m_text) + LENGTH(m_text); + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into Flash */ + .interrupts : + { + __VECTOR_TABLE = .; + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } > m_interrupts + + /* The program code and other data goes into Flash */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + KEEP (*(.init)) + KEEP (*(.fini)) + . = ALIGN(4); + } > m_text + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > m_text + + .ARM : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > m_text + + .ctors : + { + __CTOR_LIST__ = .; + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin?.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __CTOR_END__ = .; + } > m_text + + .dtors : + { + __DTOR_LIST__ = .; + KEEP (*crtbegin.o(.dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __DTOR_END__ = .; + } > m_text + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } > m_text + + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } > m_text + + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } > m_text + + __etext = .; /* define a global symbol at end of code */ + __DATA_ROM = .; /* Symbol is used by startup for data initialization */ + + .data : AT(__DATA_ROM) + { + . = ALIGN(4); + __DATA_RAM = .; + __data_start__ = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + KEEP(*(.jcr*)) + . = ALIGN(4); + __data_end__ = .; /* define a global symbol at data end */ + } > m_data + + __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); + text_end = ORIGIN(m_text) + LENGTH(m_text); + ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") + + /* Uninitialized data section */ + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + . = ALIGN(4); + __START_BSS = .; + __bss_start__ = .; + *(.bss) + *(.bss*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + __END_BSS = .; + } > m_data + + .heap : + { + . = ALIGN(8); + __end__ = .; + PROVIDE(end = .); + __HeapBase = .; + . += HEAP_SIZE; + __HeapLimit = .; + } > m_data + + .stack : + { + . = ALIGN(8); + . += STACK_SIZE; + } > m_data + + /* Initializes stack on the end of block */ + __StackTop = ORIGIN(m_data) + LENGTH(m_data); + __StackLimit = __StackTop - STACK_SIZE; + PROVIDE(__stack = __StackTop); + + .ARM.attributes 0 : { *(.ARM.attributes) } + + ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") +} diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld index 76988c4..5653095 100644 --- a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld +++ b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_ocram.ld @@ -1,30 +1,81 @@ +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: GNU C Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-05-19 +** +** Abstract: +** Linker file for the GNU C Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + /* Entry Point */ ENTRY(Reset_Handler) -STACK_SIZE = 0x400; -HEAP_SIZE = 0x200; +HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400; +STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400; + /* Specify the memory areas */ MEMORY { - m_text (RX) : ORIGIN = 0x00920000, LENGTH = 0x00020000 - - m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007FFF + m_interrupts (RX) : ORIGIN = 0x20210000, LENGTH = 0x00000240 + m_text (RX) : ORIGIN = 0x20210240, LENGTH = 0x00007DC0 + m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00008000 } +__FLASH_START = ORIGIN(m_interrupts); +__FLASH_END = ORIGIN(m_text) + LENGTH(m_text); + +/* Define output sections */ SECTIONS { + /* The startup code goes first into Flash */ .interrupts : { __VECTOR_TABLE = .; . = ALIGN(4); KEEP(*(.isr_vector)) /* Startup code */ . = ALIGN(4); - } > m_text - - __VECTOR_RAM = __VECTOR_TABLE; - __RAM_VECTOR_TABLE_SIZE_BYTES = 0x0; - + } > m_interrupts + /* The program code and other data goes into Flash */ .text : { . = ALIGN(4); @@ -126,6 +177,8 @@ SECTIONS } > m_data __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); + text_end = ORIGIN(m_text) + LENGTH(m_text); + ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") /* Uninitialized data section */ .bss : @@ -151,16 +204,19 @@ SECTIONS . += HEAP_SIZE; __HeapLimit = .; } > m_data - .stack : + + .stack : { . = ALIGN(8); . += STACK_SIZE; } > m_data - /* Initializes stack on the end of block */ + + /* Initializes stack on the end of block */ __StackTop = ORIGIN(m_data) + LENGTH(m_data); __StackLimit = __StackTop - STACK_SIZE; PROVIDE(__stack = __StackTop); + .ARM.attributes 0 : { *(.ARM.attributes) } ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") - } \ No newline at end of file +} diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspia.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspia.ld new file mode 100644 index 0000000..07c5da5 --- /dev/null +++ b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspia.ld @@ -0,0 +1,222 @@ +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: GNU C Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-05-19 +** +** Abstract: +** Linker file for the GNU C Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400; +STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400; + +/* Specify the memory areas */ +MEMORY +{ + m_interrupts (RX) : ORIGIN = 0x60100000, LENGTH = 0x00000240 + m_text (RX) : ORIGIN = 0x60100240, LENGTH = 0x00007DC0 + m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00008000 +} + +__FLASH_START = ORIGIN(m_interrupts); +__FLASH_END = ORIGIN(m_text) + LENGTH(m_text); + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into Flash */ + .interrupts : + { + __VECTOR_TABLE = .; + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } > m_interrupts + + /* The program code and other data goes into Flash */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + KEEP (*(.init)) + KEEP (*(.fini)) + . = ALIGN(4); + } > m_text + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > m_text + + .ARM : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > m_text + + .ctors : + { + __CTOR_LIST__ = .; + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin?.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __CTOR_END__ = .; + } > m_text + + .dtors : + { + __DTOR_LIST__ = .; + KEEP (*crtbegin.o(.dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __DTOR_END__ = .; + } > m_text + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } > m_text + + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } > m_text + + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } > m_text + + __etext = .; /* define a global symbol at end of code */ + __DATA_ROM = .; /* Symbol is used by startup for data initialization */ + + .data : AT(__DATA_ROM) + { + . = ALIGN(4); + __DATA_RAM = .; + __data_start__ = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + KEEP(*(.jcr*)) + . = ALIGN(4); + __data_end__ = .; /* define a global symbol at data end */ + } > m_data + + __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); + text_end = ORIGIN(m_text) + LENGTH(m_text); + ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") + + /* Uninitialized data section */ + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + . = ALIGN(4); + __START_BSS = .; + __bss_start__ = .; + *(.bss) + *(.bss*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + __END_BSS = .; + } > m_data + + .heap : + { + . = ALIGN(8); + __end__ = .; + PROVIDE(end = .); + __HeapBase = .; + . += HEAP_SIZE; + __HeapLimit = .; + } > m_data + + .stack : + { + . = ALIGN(8); + . += STACK_SIZE; + } > m_data + + /* Initializes stack on the end of block */ + __StackTop = ORIGIN(m_data) + LENGTH(m_data); + __StackLimit = __StackTop - STACK_SIZE; + PROVIDE(__stack = __StackTop); + + .ARM.attributes 0 : { *(.ARM.attributes) } + + ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") +} diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspib.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspib.ld new file mode 100644 index 0000000..c3f8bcd --- /dev/null +++ b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_qspib.ld @@ -0,0 +1,222 @@ +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: GNU C Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-05-19 +** +** Abstract: +** Linker file for the GNU C Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + +/* Entry Point */ +ENTRY(Reset_Handler) + +HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400; +STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400; + +/* Specify the memory areas */ +MEMORY +{ + m_interrupts (RX) : ORIGIN = 0x68000000, LENGTH = 0x00000240 + m_text (RX) : ORIGIN = 0x68000240, LENGTH = 0x00007DC0 + m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00008000 +} + +__FLASH_START = ORIGIN(m_interrupts); +__FLASH_END = ORIGIN(m_text) + LENGTH(m_text); + +/* Define output sections */ +SECTIONS +{ + /* The startup code goes first into Flash */ + .interrupts : + { + __VECTOR_TABLE = .; + . = ALIGN(4); + KEEP(*(.isr_vector)) /* Startup code */ + . = ALIGN(4); + } > m_interrupts + + /* The program code and other data goes into Flash */ + .text : + { + . = ALIGN(4); + *(.text) /* .text sections (code) */ + *(.text*) /* .text* sections (code) */ + *(.rodata) /* .rodata sections (constants, strings, etc.) */ + *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ + *(.glue_7) /* glue arm to thumb code */ + *(.glue_7t) /* glue thumb to arm code */ + *(.eh_frame) + KEEP (*(.init)) + KEEP (*(.fini)) + . = ALIGN(4); + } > m_text + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > m_text + + .ARM : + { + __exidx_start = .; + *(.ARM.exidx*) + __exidx_end = .; + } > m_text + + .ctors : + { + __CTOR_LIST__ = .; + /* gcc uses crtbegin.o to find the start of + the constructors, so we make sure it is + first. Because this is a wildcard, it + doesn't matter if the user does not + actually link against crtbegin.o; the + linker won't look for a file to match a + wildcard. The wildcard also means that it + doesn't matter which directory crtbegin.o + is in. */ + KEEP (*crtbegin.o(.ctors)) + KEEP (*crtbegin?.o(.ctors)) + /* We don't want to include the .ctor section from + from the crtend.o file until after the sorted ctors. + The .ctor section from the crtend file contains the + end of ctors marker and it must be last */ + KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*(.ctors)) + __CTOR_END__ = .; + } > m_text + + .dtors : + { + __DTOR_LIST__ = .; + KEEP (*crtbegin.o(.dtors)) + KEEP (*crtbegin?.o(.dtors)) + KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*(.dtors)) + __DTOR_END__ = .; + } > m_text + + .preinit_array : + { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)) + PROVIDE_HIDDEN (__preinit_array_end = .); + } > m_text + + .init_array : + { + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } > m_text + + .fini_array : + { + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + } > m_text + + __etext = .; /* define a global symbol at end of code */ + __DATA_ROM = .; /* Symbol is used by startup for data initialization */ + + .data : AT(__DATA_ROM) + { + . = ALIGN(4); + __DATA_RAM = .; + __data_start__ = .; /* create a global symbol at data start */ + *(.data) /* .data sections */ + *(.data*) /* .data* sections */ + KEEP(*(.jcr*)) + . = ALIGN(4); + __data_end__ = .; /* define a global symbol at data end */ + } > m_data + + __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); + text_end = ORIGIN(m_text) + LENGTH(m_text); + ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") + + /* Uninitialized data section */ + .bss : + { + /* This is used by the startup in order to initialize the .bss section */ + . = ALIGN(4); + __START_BSS = .; + __bss_start__ = .; + *(.bss) + *(.bss*) + *(COMMON) + . = ALIGN(4); + __bss_end__ = .; + __END_BSS = .; + } > m_data + + .heap : + { + . = ALIGN(8); + __end__ = .; + PROVIDE(end = .); + __HeapBase = .; + . += HEAP_SIZE; + __HeapLimit = .; + } > m_data + + .stack : + { + . = ALIGN(8); + . += STACK_SIZE; + } > m_data + + /* Initializes stack on the end of block */ + __StackTop = ORIGIN(m_data) + LENGTH(m_data); + __StackLimit = __StackTop - STACK_SIZE; + PROVIDE(__stack = __StackTop); + + .ARM.attributes 0 : { *(.ARM.attributes) } + + ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") +} diff --git a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld index 5fd3435..b296a42 100644 --- a/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld +++ b/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld @@ -1,31 +1,78 @@ +/* +** ################################################################### +** Processors: MCIMX7D7DVK10SA +** MCIMX7D7DVM10SA +** MCIMX7D3DVK10SA +** MCIMX7D3EVM10SA +** +** Compiler: GNU C Compiler +** Reference manual: IMX7DRM, Rev.A, February 2015 +** Version: rev. 1.0, 2015-05-19 +** +** Abstract: +** Linker file for the GNU C Compiler +** +** Copyright (c) 2015 Freescale Semiconductor, Inc. +** All rights reserved. +** +** Redistribution and use in source and binary forms, with or without modification, +** are permitted provided that the following conditions are met: +** +** o Redistributions of source code must retain the above copyright notice, this list +** of conditions and the following disclaimer. +** +** o Redistributions in binary form must reproduce the above copyright notice, this +** list of conditions and the following disclaimer in the documentation and/or +** other materials provided with the distribution. +** +** o Neither the name of Freescale Semiconductor, Inc. nor the names of its +** contributors may be used to endorse or promote products derived from this +** software without specific prior written permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +** +** http: www.freescale.com +** mail: support@freescale.com +** +** ################################################################### +*/ + /* Entry Point */ ENTRY(Reset_Handler) -STACK_SIZE = 0x400; -HEAP_SIZE = 0x200; +HEAP_SIZE = DEFINED(__heap_size__) ? __heap_size__ : 0x0400; +STACK_SIZE = DEFINED(__stack_size__) ? __stack_size__ : 0x0400; + /* Specify the memory areas */ MEMORY { - m_text (RX) : ORIGIN = 0x1FFF8000, LENGTH = 0x00007FFF - - m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00007FFF - + m_interrupts (RX) : ORIGIN = 0x1FFF8000, LENGTH = 0x00000240 + m_text (RX) : ORIGIN = 0x1FFF8240, LENGTH = 0x00007DC0 + m_data (RW) : ORIGIN = 0x20000000, LENGTH = 0x00008000 } +/* Define output sections */ SECTIONS { + /* The startup code goes first into TCML */ .interrupts : { __VECTOR_TABLE = .; . = ALIGN(4); KEEP(*(.isr_vector)) /* Startup code */ . = ALIGN(4); - } > m_text - - __VECTOR_RAM = __VECTOR_TABLE; - __RAM_VECTOR_TABLE_SIZE_BYTES = 0x0; - + } > m_interrupts + /* The program code and other data goes into TCML */ .text : { . = ALIGN(4); @@ -127,6 +174,8 @@ SECTIONS } > m_data __DATA_END = __DATA_ROM + (__data_end__ - __data_start__); + text_end = ORIGIN(m_text) + LENGTH(m_text); + ASSERT(__DATA_END <= text_end, "region m_text overflowed with text and data") /* Uninitialized data section */ .bss : @@ -152,16 +201,19 @@ SECTIONS . += HEAP_SIZE; __HeapLimit = .; } > m_data - .stack : + + .stack : { . = ALIGN(8); . += STACK_SIZE; } > m_data - /* Initializes stack on the end of block */ + + /* Initializes stack on the end of block */ __StackTop = ORIGIN(m_data) + LENGTH(m_data); __StackLimit = __StackTop - STACK_SIZE; PROVIDE(__stack = __StackTop); + .ARM.attributes 0 : { *(.ARM.attributes) } ASSERT(__StackLimit >= __HeapLimit, "region m_data overflowed with stack and heap") - } \ No newline at end of file +} diff --git a/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIA.icf b/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIA.icf deleted file mode 100644 index f2294ec..0000000 --- a/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIA.icf +++ /dev/null @@ -1,93 +0,0 @@ -/* -** ################################################################### -** Processors: MCIMX7D7DVK10SA -** MCIMX7D7DVM10SA -** MCIMX7D3DVK10SA -** MCIMX7D3EVM10SA -** -** Compiler: IAR ANSI C/C++ Compiler for ARM -** Reference manual: IMX7DRM, Rev.A, February 2015 -** Version: rev. 1.0, 2015-05-19 -** -** Abstract: -** Linker file for the IAR ANSI C/C++ Compiler for ARM -** -** Copyright (c) 2015 Freescale Semiconductor, Inc. -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without modification, -** are permitted provided that the following conditions are met: -** -** o Redistributions of source code must retain the above copyright notice, this list -** of conditions and the following disclaimer. -** -** o Redistributions in binary form must reproduce the above copyright notice, this -** list of conditions and the following disclaimer in the documentation and/or -** other materials provided with the distribution. -** -** o Neither the name of Freescale Semiconductor, Inc. nor the names of its -** contributors may be used to endorse or promote products derived from this -** software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -** -** http: www.freescale.com -** mail: support@freescale.com -** -** ################################################################### -*/ - -define symbol m_interrupts_start = 0x60000000; -define symbol m_interrupts_end = 0x6000023F; - -define symbol m_text_start = 0x60000240; -define symbol m_text_end = 0x60007FFF; - -define symbol m_data_start = 0x20000000; -define symbol m_data_end = 0x20007FFF; - - -/* Sizes */ -if (isdefinedsymbol(__stack_size__)) { - define symbol __size_cstack__ = __stack_size__; -} else { - define symbol __size_cstack__ = 0x0400; -} - -if (isdefinedsymbol(__heap_size__)) { - define symbol __size_heap__ = __heap_size__; -} else { - define symbol __size_heap__ = 0x0400; -} - -define exported symbol __VECTOR_TABLE = m_interrupts_start; - -define memory mem with size = 4G; -define region TEXT_region = mem:[from m_interrupts_start to m_interrupts_end] - | mem:[from m_text_start to m_text_end]; -define region DATA_region = mem:[from m_data_start to m_data_end-__size_cstack__]; -define region CSTACK_region = mem:[from m_data_end-__size_cstack__+1 to m_data_end]; - -define block CSTACK with alignment = 8, size = __size_cstack__ { }; -define block HEAP with alignment = 8, size = __size_heap__ { }; -define block RW { readwrite }; -define block ZI { zi }; - -initialize by copy { readwrite, section .textrw }; -do not initialize { section .noinit }; - -place at address mem: m_interrupts_start { readonly section .intvec }; -place in TEXT_region { readonly }; -place in DATA_region { block RW }; -place in DATA_region { block ZI }; -place in DATA_region { last block HEAP }; -place in CSTACK_region { block CSTACK }; diff --git a/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIB.icf b/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIB.icf deleted file mode 100644 index cc0930e..0000000 --- a/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_QSPIB.icf +++ /dev/null @@ -1,93 +0,0 @@ -/* -** ################################################################### -** Processors: MCIMX7D7DVK10SA -** MCIMX7D7DVM10SA -** MCIMX7D3DVK10SA -** MCIMX7D3EVM10SA -** -** Compiler: IAR ANSI C/C++ Compiler for ARM -** Reference manual: IMX7DRM, Rev.A, February 2015 -** Version: rev. 1.0, 2015-05-19 -** -** Abstract: -** Linker file for the IAR ANSI C/C++ Compiler for ARM -** -** Copyright (c) 2015 Freescale Semiconductor, Inc. -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without modification, -** are permitted provided that the following conditions are met: -** -** o Redistributions of source code must retain the above copyright notice, this list -** of conditions and the following disclaimer. -** -** o Redistributions in binary form must reproduce the above copyright notice, this -** list of conditions and the following disclaimer in the documentation and/or -** other materials provided with the distribution. -** -** o Neither the name of Freescale Semiconductor, Inc. nor the names of its -** contributors may be used to endorse or promote products derived from this -** software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -** -** http: www.freescale.com -** mail: support@freescale.com -** -** ################################################################### -*/ - -define symbol m_interrupts_start = 0x68000000; -define symbol m_interrupts_end = 0x6800023F; - -define symbol m_text_start = 0x68000240; -define symbol m_text_end = 0x68007FFF; - -define symbol m_data_start = 0x20000000; -define symbol m_data_end = 0x20007FFF; - - -/* Sizes */ -if (isdefinedsymbol(__stack_size__)) { - define symbol __size_cstack__ = __stack_size__; -} else { - define symbol __size_cstack__ = 0x0400; -} - -if (isdefinedsymbol(__heap_size__)) { - define symbol __size_heap__ = __heap_size__; -} else { - define symbol __size_heap__ = 0x0400; -} - -define exported symbol __VECTOR_TABLE = m_interrupts_start; - -define memory mem with size = 4G; -define region TEXT_region = mem:[from m_interrupts_start to m_interrupts_end] - | mem:[from m_text_start to m_text_end]; -define region DATA_region = mem:[from m_data_start to m_data_end-__size_cstack__]; -define region CSTACK_region = mem:[from m_data_end-__size_cstack__+1 to m_data_end]; - -define block CSTACK with alignment = 8, size = __size_cstack__ { }; -define block HEAP with alignment = 8, size = __size_heap__ { }; -define block RW { readwrite }; -define block ZI { zi }; - -initialize by copy { readwrite, section .textrw }; -do not initialize { section .noinit }; - -place at address mem: m_interrupts_start { readonly section .intvec }; -place in TEXT_region { readonly }; -place in DATA_region { block RW }; -place in DATA_region { block ZI }; -place in DATA_region { last block HEAP }; -place in CSTACK_region { block CSTACK }; diff --git a/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_tcm.icf b/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_tcm.icf deleted file mode 100644 index 04d9c21..0000000 --- a/platform/devices/MCIMX7D/linker/iar/MCIMX7D_M4_tcm.icf +++ /dev/null @@ -1,93 +0,0 @@ -/* -** ################################################################### -** Processors: MCIMX7D7DVK10SA -** MCIMX7D7DVM10SA -** MCIMX7D3DVK10SA -** MCIMX7D3EVM10SA -** -** Compiler: IAR ANSI C/C++ Compiler for ARM -** Reference manual: IMX7DRM, Rev.A, February 2015 -** Version: rev. 1.0, 2015-05-19 -** -** Abstract: -** Linker file for the IAR ANSI C/C++ Compiler for ARM -** -** Copyright (c) 2015 Freescale Semiconductor, Inc. -** All rights reserved. -** -** Redistribution and use in source and binary forms, with or without modification, -** are permitted provided that the following conditions are met: -** -** o Redistributions of source code must retain the above copyright notice, this list -** of conditions and the following disclaimer. -** -** o Redistributions in binary form must reproduce the above copyright notice, this -** list of conditions and the following disclaimer in the documentation and/or -** other materials provided with the distribution. -** -** o Neither the name of Freescale Semiconductor, Inc. nor the names of its -** contributors may be used to endorse or promote products derived from this -** software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -** -** http: www.freescale.com -** mail: support@freescale.com -** -** ################################################################### -*/ - -define symbol m_interrupts_start = 0x1FFF8000; -define symbol m_interrupts_end = 0x1FFF823F; - -define symbol m_text_start = 0x1FFF8240; -define symbol m_text_end = 0x1FFFFFFF; - -define symbol m_data_start = 0x20000000; -define symbol m_data_end = 0x20007FFF; - -/* Sizes */ -if (isdefinedsymbol(__stack_size__)) { - define symbol __size_cstack__ = __stack_size__; -} else { - define symbol __size_cstack__ = 0x0400; -} - -if (isdefinedsymbol(__heap_size__)) { - define symbol __size_heap__ = __heap_size__; -} else { - define symbol __size_heap__ = 0x0400; -} - -define exported symbol __VECTOR_TABLE = m_interrupts_start; - -define memory mem with size = 4G; -define region TEXT_region = mem:[from m_interrupts_start to m_interrupts_end] - | mem:[from m_text_start to m_text_end]; -define region DATA_region = mem:[from m_data_start to m_data_end-__size_cstack__]; -define region CSTACK_region = mem:[from m_data_end-__size_cstack__+1 to m_data_end]; - -define block CSTACK with alignment = 8, size = __size_cstack__ { }; -define block HEAP with alignment = 8, size = __size_heap__ { }; -define block RW { readwrite }; -define block ZI { zi }; - -initialize by copy { readwrite, section .textrw }; -do not initialize { section .noinit }; - -place at address mem: m_interrupts_start { readonly section .intvec }; -place in TEXT_region { readonly }; -place in DATA_region { block RW }; -place in DATA_region { block ZI }; -place in DATA_region { last block HEAP }; -place in CSTACK_region { block CSTACK }; - diff --git a/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.s b/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.s index c367752..c0bb23e 100644 --- a/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.s +++ b/platform/devices/MCIMX7D/startup/arm/startup_MCIMX7D_M4.s @@ -1,10 +1,10 @@ ; * --------------------------------------------------------------------------------------- ; * @file: startup_MCIMX7D_M4.s ; * @purpose: CMSIS Cortex-M4 Core Device Startup File -; * IMX7D_M4 -; * @version: 0.1 +; * MCIMX7D_M4 +; * @version: 1.0 ; * @date: 2015-5-27 -; * @build: b54573 +; * @build: b150527 ; * --------------------------------------------------------------------------------------- ; * ; * Copyright (c) 2015 , Freescale Semiconductor, Inc. @@ -51,7 +51,8 @@ EXPORT __Vectors_End EXPORT __Vectors_Size IMPORT |Image$$ARM_LIB_STACK$$ZI$$Limit| -__Vectors DCD |Image$$ARM_LIB_STACK$$ZI$$Limit| ; Top of Stack + +__Vectors DCD |Image$$ARM_LIB_STACK$$ZI$$Limit| ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ;NMI Handler DCD HardFault_Handler ;Hard Fault Handler @@ -69,142 +70,141 @@ __Vectors DCD |Image$$ARM_LIB_STACK$$ZI$$Limit| ; Top of Stack DCD SysTick_Handler ;SysTick Handler ;External Interrupts - DCD DefaultISR ;Reserved Interrupt 16 - DCD DefaultISR ;Reserved Interrupt 17 - DCD DefaultISR ;Reserved Interrupt 18 - DCD DefaultISR ;Reserved Interrupt 19 - DCD DefaultISR ;Reserved Interrupt 20 - DCD DefaultISR ;Reserved Interrupt 21 - DCD DefaultISR ;Reserved Interrupt 22 - DCD DefaultISR ;Reserved Interrupt 23 - DCD DefaultISR ;Reserved Interrupt 24 - DCD DefaultISR ;Reserved Interrupt 25 - DCD WDOG3_Handler ;WDOG3 Handler - DCD SEMA4_Handler ;SEMA4_Handler - DCD DefaultISR ;Reserved Interrupt 28 - DCD DefaultISR ;Reserved Interrupt 29 - DCD DefaultISR ;Reserved Interrupt 30 - DCD DefaultISR ;Reserved Interrupt 31 - DCD UART6_Handler ;UART6 Handler - DCD DefaultISR ;Reserved Interrupt 33 - DCD DefaultISR ;Reserved Interrupt 34 - DCD DefaultISR ;Reserved Interrupt 35 - DCD DefaultISR ;Reserved Interrupt 36 - DCD DefaultISR ;Reserved Interrupt 37 - DCD DefaultISR ;Reserved Interrupt 38 - DCD DefaultISR ;Reserved Interrupt 39 - DCD DefaultISR ;Reserved Interrupt 40 - DCD DefaultISR ;Reserved Interrupt 41 - DCD UART1_Handler ;UART1 Handler - DCD UART2_Handler ;UART2 Handler - DCD UART3_Handler ;UART3 Handler - DCD UART4_Handler ;UART4 Handler - DCD UART5_Handler ;UART5 Handler - DCD eCSPI1_Handler ;eCSPI1 Handler - DCD eCSPI2_Handler ;eCSPI2 Handler - DCD eCSPI3_Handler ;eCSPI3 Handler - DCD eCSPI4_Handler ;eCSPI4 Handler - DCD I2C1_Handler ;I2C1 Handler - DCD I2C2_Handler ;I2C2 Handler - DCD I2C3_Handler ;I2C3 Handler - DCD I2C4_Handler ;I2C4 Handler - DCD DefaultISR ;Reserved Interrupt 55 - DCD DefaultISR ;Reserved Interrupt 56 - DCD DefaultISR ;Reserved Interrupt 57 - DCD DefaultISR ;Reserved Interrupt 58 - DCD DefaultISR ;Reserved Interrupt 59 - DCD DefaultISR ;Reserved Interrupt 60 - DCD DefaultISR ;Reserved Interrupt 61 - DCD DefaultISR ;Reserved Interrupt 62 - DCD DefaultISR ;Reserved Interrupt 63 - DCD DefaultISR ;Reserved Interrupt 64 - DCD DefaultISR ;Reserved Interrupt 65 - DCD DefaultISR ;Reserved Interrupt 66 - DCD DefaultISR ;Reserved Interrupt 67 - DCD GPT4_Handler ;GPT4 handler - DCD GPT3_Handler ;GPT3 handler - DCD GPT2_Handler ;GPT2 handler - DCD GPT1_Handler ;GPT1 handler - DCD GPIO1_INT7_Handler ;Active HIGH Interrupt from INT7 from GPIO - DCD GPIO1_INT6_Handler ;Active HIGH Interrupt from INT6 from GPIO - DCD GPIO1_INT5_Handler ;Active HIGH Interrupt from INT5 from GPIO - DCD GPIO1_INT4_Handler ;Active HIGH Interrupt from INT4 from GPIO - DCD GPIO1_INT3_Handler ;Active HIGH Interrupt from INT3 from GPIO - DCD GPIO1_INT2_Handler ;Active HIGH Interrupt from INT2 from GPIO - DCD GPIO1_INT1_Handler ;Active HIGH Interrupt from INT1 from GPIO - DCD GPIO1_INT0_Handler ;Active HIGH Interrupt from INT0 from GPIO - DCD GPIO1_INT15_0_Handler ;Combined interrupt indication for GPIO1 signal 0 throughout 15 - DCD GPIO1_INT31_16_Handler ;Combined interrupt indication for GPIO1 signal 16 throughout 31 - DCD GPIO2_INT15_0_Handler ;Combined interrupt indication for GPIO2 signal 0 throughout 15 - DCD GPIO2_INT31_16_Handler ;Combined interrupt indication for GPIO2 signal 16 throughout 31 - DCD GPIO3_INT15_0_Handler ;Combined interrupt indication for GPIO3 signal 0 throughout 15 - DCD GPIO3_INT31_16_Handler ;Combined interrupt indication for GPIO3 signal 16 throughout 31 - DCD GPIO4_INT15_0_Handler ;Combined interrupt indication for GPIO4 signal 0 throughout 15 - DCD GPIO4_INT31_16_Handler ;Combined interrupt indication for GPIO4 signal 16 throughout 31 - DCD GPIO5_INT15_0_Handler ;Combined interrupt indication for GPIO5 signal 0 throughout 15 - DCD GPIO5_INT31_16_Handler ;Combined interrupt indication for GPIO5 signal 16 throughout 31 - DCD GPIO6_INT15_0_Handler ;Combined interrupt indication for GPIO6 signal 0 throughout 15 - DCD GPIO6_INT31_16_Handler ;Combined interrupt indication for GPIO6 signal 16 throughout 31 - DCD GPIO7_INT15_0_Handler ;Combined interrupt indication for GPIO7 signal 0 throughout 15 - DCD GPIO7_INT31_16_Handler ;Combined interrupt indication for GPIO7 signal 16 throughout 31 - DCD DefaultISR ;Reserved Interrupt 94 - DCD DefaultISR ;Reserved Interrupt 95 - DCD DefaultISR ;Reserved Interrupt 96 - DCD DefaultISR ;Reserved Interrupt 97 - DCD DefaultISR ;Reserved Interrupt 98 - DCD DefaultISR ;Reserved Interrupt 99 - DCD DefaultISR ;Reserved Interrupt 100 - DCD DefaultISR ;Reserved Interrupt 101 - DCD DefaultISR ;Reserved Interrupt 102 - DCD DefaultISR ;Reserved Interrupt 103 - DCD DefaultISR ;Reserved Interrupt 104 - DCD DefaultISR ;Reserved Interrupt 105 - DCD DefaultISR ;Reserved Interrupt 106 - DCD DefaultISR ;Reserved Interrupt 107 - DCD DefaultISR ;Reserved Interrupt 108 - DCD DefaultISR ;Reserved Interrupt 109 - DCD DefaultISR ;Reserved Interrupt 110 - DCD DefaultISR ;Reserved Interrupt 111 - DCD DefaultISR ;Reserved Interrupt 112 - DCD MU_Handler ;MU_Handler - DCD ADC1_Handler ;ADC1 Handler - DCD ADC2_Handler ;ADC2 Handler - DCD DefaultISR ;Reserved Interrupt 116 - DCD DefaultISR ;Reserved Interrupt 117 - DCD DefaultISR ;Reserved Interrupt 118 - DCD DefaultISR ;Reserved Interrupt 119 - DCD DefaultISR ;Reserved Interrupt 120 - DCD DefaultISR ;Reserved Interrupt 121 - DCD DefaultISR ;Reserved Interrupt 122 - DCD DefaultISR ;Reserved Interrupt 123 - DCD DefaultISR ;Reserved Interrupt 124 - DCD DefaultISR ;Reserved Interrupt 125 - DCD FLEXCAN1_Handler ;FLEXCAN1 Handler - DCD FLEXCAN2_Handler ;FLEXCAN2 Handler - DCD DefaultISR ;Reserved Interrupt 128 - DCD DefaultISR ;Reserved Interrupt 129 - DCD DefaultISR ;Reserved Interrupt 130 - DCD DefaultISR ;Reserved Interrupt 131 - DCD DefaultISR ;Reserved Interrupt 132 - DCD DefaultISR ;Reserved Interrupt 133 - DCD DefaultISR ;Reserved Interrupt 134 - DCD DefaultISR ;Reserved Interrupt 135 - DCD DefaultISR ;Reserved Interrupt 136 - DCD DefaultISR ;Reserved Interrupt 137 - DCD DefaultISR ;Reserved Interrupt 138 - DCD DefaultISR ;Reserved Interrupt 139 - DCD DefaultISR ;Reserved Interrupt 140 - DCD DefaultISR ;Reserved Interrupt 141 - DCD UART7_Handler ;UART7 Handler - DCD DefaultISR ;Reserved Interrupt 143 - + DCD GPR_Handler ;GPR Interrupt + DCD DAP_Handler ;DAP Interrupt + DCD SDMA_Handler ;SDMA Interrupt + DCD DBGMON_Handler ;DBGMON Interrupt + DCD SNVS_Handler ;SNVS Interrupt + DCD LCDIF_Handler ;LCDIF Interrupt + DCD SIM2_Handler ;SIM2 Interrupt + DCD CSI_Handler ;CSI Interrupt + DCD PXP1_Handler ;PXP1 Interrupt + DCD Reserved9_Handler ;Reserved interrupt 9 + DCD WDOG3_Handler ;WDOG3 Interrupt + DCD SEMA4_HS_M4_Handler ;SEMA4_HS_M4 Interrupt + DCD APBHDMA_Handler ;APBHDMA Interrupt + DCD EIM_Handler ;EIM Interrupt + DCD BCH_Handler ;BCH Interrupt + DCD GPMI_Handler ;GPMI Interrupt + DCD UART6_Handler ;UART6 Interrupt + DCD FTM1_Handler ;FTM1 Interrupt + DCD FTM2_Handler ;FTM2 Interrupt + DCD SNVS_CONSOLIDATED_Handler ;SNVS_CONSOLIDATED Interrupt + DCD SNVS_SECURITY_Handler ;SNVS_SECURITY Interrupt + DCD CSU_Handler ;CSU Interrupt + DCD uSDHC1_Handler ;uSDHC1 Interrupt + DCD uSDHC2_Handler ;uSDHC2 Interrupt + DCD uSDHC3_Handler ;uSDHC3 Interrupt + DCD MIPI_CSI_Handler ;MIPI_CSI Interrupt + DCD UART1_Handler ;UART1 Interrupt + DCD UART2_Handler ;UART2 Interrupt + DCD UART3_Handler ;UART3 Interrupt + DCD UART4_Handler ;UART4 Interrupt + DCD UART5_Handler ;UART5 Interrupt + DCD eCSPI1_Handler ;eCSPI1 Interrupt + DCD eCSPI2_Handler ;eCSPI2 Interrupt + DCD eCSPI3_Handler ;eCSPI3 Interrupt + DCD eCSPI4_Handler ;eCSPI4 Interrupt + DCD I2C1_Handler ;I2C1 Interrupt + DCD I2C2_Handler ;I2C2 Interrupt + DCD I2C3_Handler ;I2C3 Interrupt + DCD I2C4_Handler ;I2C4 Interrupt + DCD RDC_Handler ;RDC Interrupt + DCD USB_OH3_OTG2_1_Handler ;USB_OH3_OTG2_1 Interrupt + DCD MIPI_DSI_Handler ;MIPI_DSI Interrupt + DCD USB_OH3_OTG2_2_Handler ;USB_OH3_OTG2_2 Interrupt + DCD USB_OH2_OTG_Handler ;USB_OH2_OTG Interrupt + DCD USB_OTG1_Handler ;USB_OTG1 Interrupt + DCD USB_OTG2_Handler ;USB_OTG2 Interrupt + DCD PXP2_Handler ;PXP2 Interrupt + DCD SCTR1_Handler ;SCTR1 Interrupt + DCD SCTR2_Handler ;SCTR2 Interrupt + DCD Analog_TempSensor_Handler ;Analog_TempSensor Interrupt + DCD SAI3_Handler ;SAI3 Interrupt + DCD Analog_brown_out_Handler ;Analog_brown_out Interrupt + DCD GPT4_Handler ;GPT4 Interrupt + DCD GPT3_Handler ;GPT3 Interrupt + DCD GPT2_Handler ;GPT2 Interrupt + DCD GPT1_Handler ;GPT1 Interrupt + DCD GPIO1_INT7_Handler ;GPIO1_INT7 Interrupt + DCD GPIO1_INT6_Handler ;GPIO1_INT6 Interrupt + DCD GPIO1_INT5_Handler ;GPIO1_INT5 Interrupt + DCD GPIO1_INT4_Handler ;GPIO1_INT4 Interrupt + DCD GPIO1_INT3_Handler ;GPIO1_INT3 Interrupt + DCD GPIO1_INT2_Handler ;GPIO1_INT2 Interrupt + DCD GPIO1_INT1_Handler ;GPIO1_INT1 Interrupt + DCD GPIO1_INT0_Handler ;GPIO1_INT0 Interrupt + DCD GPIO1_INT15_0_Handler ;GPIO1_INT15_0 Interrupt + DCD GPIO1_INT31_16_Handler ;GPIO1_INT31_16 Interrupt + DCD GPIO2_INT15_0_Handler ;GPIO2_INT15_0 Interrupt + DCD GPIO2_INT31_16_Handler ;GPIO2_INT31_16 Interrupt + DCD GPIO3_INT15_0_Handler ;GPIO3_INT15_0 Interrupt + DCD GPIO3_INT31_16_Handler ;GPIO3_INT31_16 Interrupt + DCD GPIO4_INT15_0_Handler ;GPIO4_INT15_0 Interrupt + DCD GPIO4_INT31_16_Handler ;GPIO4_INT31_16 Interrupt + DCD GPIO5_INT15_0_Handler ;GPIO5_INT15_0 Interrupt + DCD GPIO5_INT31_16_Handler ;GPIO5_INT31_16 Interrupt + DCD GPIO6_INT15_0_Handler ;GPIO6_INT15_0 Interrupt + DCD GPIO6_INT31_16_Handler ;GPIO6_INT31_16 Interrupt + DCD GPIO7_INT15_0_Handler ;GPIO7_INT15_0 Interrupt + DCD GPIO7_INT31_16_Handler ;GPIO7_INT31_16 Interrupt + DCD WDOG1_Handler ;WDOG1 Interrupt + DCD WDOG2_Handler ;WDOG2 Interrupt + DCD KPP_Handler ;KPP Interrupt + DCD PWM1_Handler ;PWM1 Interrupt + DCD PWM2_Handler ;PWM2 Interrupt + DCD PWM3_Handler ;PWM3 Interrupt + DCD PWM4_Handler ;PWM4 Interrupt + DCD CCM1_Handler ;CCM1 Interrupt + DCD CCM2_Handler ;CCM2 Interrupt + DCD GPC_Handler ;GPC Interrupt + DCD MU_A7_Handler ;MU_A7 Interrupt + DCD SRC_Handler ;SRC Interrupt + DCD SIM1_Handler ;SIM1 Interrupt + DCD RTIC_Handler ;RTIC Interrupt + DCD CPU_Handler ;CPU Interrupt + DCD CPU_CTI_Handler ;CPU_CTI Interrupt + DCD CCM_SRC_GPC_Handler ;CCM_SRC_GPC Interrupt + DCD SAI1_Handler ;SAI1 Interrupt + DCD SAI2_Handler ;SAI2 Interrupt + DCD MU_M4_Handler ;MU_M4 Interrupt + DCD ADC1_Handler ;ADC1 Interrupt + DCD ADC2_Handler ;ADC2 Interrupt + DCD ENET2_MAC0_TRANS1_Handler ;ENET2_MAC0_TRANS1 Interrupt + DCD ENET2_MAC0_TRANS2_Handler ;ENET2_MAC0_TRANS2 Interrupt + DCD ENET2_MAC0_IRQ_Handler ;ENET2_MAC0_IRQ Interrupt + DCD ENET2_1588_TIMER_IRQ_Handler ;ENET2_1588_TIMER_IRQ Interrupt + DCD TPR_Handler ;TPR Interrupt + DCD CAAM_QUEUE_Handler ;CAAM_QUEUE Interrupt + DCD CAAM_ERROR_Handler ;CAAM_ERROR Interrupt + DCD QSPI_Handler ;QSPI Interrupt + DCD TZASC1_Handler ;TZASC1 Interrupt + DCD WDOG4_Handler ;WDOG4 Interrupt + DCD FLEXCAN1_Handler ;FLEXCAN1 Interrupt + DCD FLEXCAN2_Handler ;FLEXCAN2 Interrupt + DCD PERFMON1_Handler ;PERFMON1 Interrupt + DCD PERFMON2_Handler ;PERFMON2 Interrupt + DCD CAAM_WRAPPER1_Handler ;CAAM_WRAPPER1 Interrupt + DCD CAAM_WRAPPER2_Handler ;CAAM_WRAPPER2 Interrupt + DCD SEMA4_HS_A7_Handler ;SEMA4_HS_A7 Interrupt + DCD EPDC_Handler ;EPDC Interrupt + DCD ENET1_MAC0_TRANS1_Handler ;ENET1_MAC0_TRANS1 Interrupt + DCD ENET1_MAC0_TRANS2_Handler ;ENET1_MAC0_TRANS2 Interrupt + DCD ENET1_MAC0_Handler ;ENET1_MAC0 Interrupt + DCD ENET1_1588_TIMER_Handler ;ENET1_1588_TIMER Interrupt + DCD PCIE_CTRL1_Handler ;PCIE_CTRL1 Interrupt + DCD PCIE_CTRL2_Handler ;PCIE_CTRL2 Interrupt + DCD PCIE_CTRL3_Handler ;PCIE_CTRL3 Interrupt + DCD PCIE_CTRL4_Handler ;PCIE_CTRL4 Interrupt + DCD UART7_Handler ;UART7 Interrupt + DCD PCIE_CTRL_REQUEST_Handler ;PCIE_CTRL_REQUEST Interrupt __Vectors_End -__Vectors_Size EQU __Vectors_End - __Vectors - +__Vectors_Size EQU __Vectors_End - __Vectors AREA |.text|, CODE, READONLY + ; Reset Handler Reset_Handler PROC @@ -267,255 +267,266 @@ SysTick_Handler\ EXPORT SysTick_Handler [WEAK] B . ENDP -WDOG3_Handler\ +Default_Handler\ PROC + EXPORT GPR_Handler [WEAK] + EXPORT DAP_Handler [WEAK] + EXPORT SDMA_Handler [WEAK] + EXPORT DBGMON_Handler [WEAK] + EXPORT SNVS_Handler [WEAK] + EXPORT LCDIF_Handler [WEAK] + EXPORT SIM2_Handler [WEAK] + EXPORT CSI_Handler [WEAK] + EXPORT PXP1_Handler [WEAK] + EXPORT Reserved9_Handler [WEAK] EXPORT WDOG3_Handler [WEAK] - B . - ENDP -SEMA4_Handler\ - PROC - EXPORT SEMA4_Handler [WEAK] - B . - ENDP -UART6_Handler\ - PROC + EXPORT SEMA4_HS_M4_Handler [WEAK] + EXPORT APBHDMA_Handler [WEAK] + EXPORT EIM_Handler [WEAK] + EXPORT BCH_Handler [WEAK] + EXPORT GPMI_Handler [WEAK] EXPORT UART6_Handler [WEAK] - B . - ENDP -UART1_Handler\ - PROC + EXPORT FTM1_Handler [WEAK] + EXPORT FTM2_Handler [WEAK] + EXPORT SNVS_CONSOLIDATED_Handler [WEAK] + EXPORT SNVS_SECURITY_Handler [WEAK] + EXPORT CSU_Handler [WEAK] + EXPORT uSDHC1_Handler [WEAK] + EXPORT uSDHC2_Handler [WEAK] + EXPORT uSDHC3_Handler [WEAK] + EXPORT MIPI_CSI_Handler [WEAK] EXPORT UART1_Handler [WEAK] - B . - ENDP -UART2_Handler\ - PROC EXPORT UART2_Handler [WEAK] - B . - ENDP -UART3_Handler\ - PROC EXPORT UART3_Handler [WEAK] - B . - ENDP -UART4_Handler\ - PROC EXPORT UART4_Handler [WEAK] - B . - ENDP -UART5_Handler\ - PROC EXPORT UART5_Handler [WEAK] - B . - ENDP -eCSPI1_Handler\ - PROC EXPORT eCSPI1_Handler [WEAK] - B . - ENDP -eCSPI2_Handler\ - PROC EXPORT eCSPI2_Handler [WEAK] - B . - ENDP -eCSPI3_Handler\ - PROC EXPORT eCSPI3_Handler [WEAK] - B . - ENDP -eCSPI4_Handler\ - PROC EXPORT eCSPI4_Handler [WEAK] - B . - ENDP -I2C1_Handler\ - PROC EXPORT I2C1_Handler [WEAK] - B . - ENDP -I2C2_Handler\ - PROC EXPORT I2C2_Handler [WEAK] - B . - ENDP -I2C3_Handler\ - PROC EXPORT I2C3_Handler [WEAK] - B . - ENDP -I2C4_Handler\ - PROC EXPORT I2C4_Handler [WEAK] - B . - ENDP -GPT4_Handler\ - PROC + EXPORT RDC_Handler [WEAK] + EXPORT USB_OH3_OTG2_1_Handler [WEAK] + EXPORT MIPI_DSI_Handler [WEAK] + EXPORT USB_OH3_OTG2_2_Handler [WEAK] + EXPORT USB_OH2_OTG_Handler [WEAK] + EXPORT USB_OTG1_Handler [WEAK] + EXPORT USB_OTG2_Handler [WEAK] + EXPORT PXP2_Handler [WEAK] + EXPORT SCTR1_Handler [WEAK] + EXPORT SCTR2_Handler [WEAK] + EXPORT Analog_TempSensor_Handler [WEAK] + EXPORT SAI3_Handler [WEAK] + EXPORT Analog_brown_out_Handler [WEAK] EXPORT GPT4_Handler [WEAK] - B . - ENDP -GPT3_Handler\ - PROC EXPORT GPT3_Handler [WEAK] - B . - ENDP -GPT2_Handler\ - PROC EXPORT GPT2_Handler [WEAK] - B . - ENDP -GPT1_Handler\ - PROC EXPORT GPT1_Handler [WEAK] - B . - ENDP -GPIO1_INT7_Handler\ - PROC EXPORT GPIO1_INT7_Handler [WEAK] - B . - ENDP -GPIO1_INT6_Handler\ - PROC EXPORT GPIO1_INT6_Handler [WEAK] - B . - ENDP -GPIO1_INT5_Handler\ - PROC EXPORT GPIO1_INT5_Handler [WEAK] - B . - ENDP -GPIO1_INT4_Handler\ - PROC EXPORT GPIO1_INT4_Handler [WEAK] - B . - ENDP -GPIO1_INT3_Handler\ - PROC EXPORT GPIO1_INT3_Handler [WEAK] - B . - ENDP -GPIO1_INT2_Handler\ - PROC EXPORT GPIO1_INT2_Handler [WEAK] - B . - ENDP -GPIO1_INT1_Handler\ - PROC EXPORT GPIO1_INT1_Handler [WEAK] - B . - ENDP -GPIO1_INT0_Handler\ - PROC EXPORT GPIO1_INT0_Handler [WEAK] - B . - ENDP -GPIO1_INT15_0_Handler\ - PROC EXPORT GPIO1_INT15_0_Handler [WEAK] - B . - ENDP -GPIO1_INT31_16_Handler\ - PROC EXPORT GPIO1_INT31_16_Handler [WEAK] - B . - ENDP -GPIO2_INT15_0_Handler\ - PROC EXPORT GPIO2_INT15_0_Handler [WEAK] - B . - ENDP -GPIO2_INT31_16_Handler\ - PROC EXPORT GPIO2_INT31_16_Handler [WEAK] - B . - ENDP -GPIO3_INT15_0_Handler\ - PROC EXPORT GPIO3_INT15_0_Handler [WEAK] - B . - ENDP -GPIO3_INT31_16_Handler\ - PROC EXPORT GPIO3_INT31_16_Handler [WEAK] - B . - ENDP -GPIO4_INT15_0_Handler\ - PROC EXPORT GPIO4_INT15_0_Handler [WEAK] - B . - ENDP -GPIO4_INT31_16_Handler\ - PROC EXPORT GPIO4_INT31_16_Handler [WEAK] - B . - ENDP -GPIO5_INT15_0_Handler\ - PROC EXPORT GPIO5_INT15_0_Handler [WEAK] - B . - ENDP -GPIO5_INT31_16_Handler\ - PROC EXPORT GPIO5_INT31_16_Handler [WEAK] - B . - ENDP -GPIO6_INT15_0_Handler\ - PROC EXPORT GPIO6_INT15_0_Handler [WEAK] - B . - ENDP -GPIO6_INT31_16_Handler\ - PROC EXPORT GPIO6_INT31_16_Handler [WEAK] - B . - ENDP -GPIO7_INT15_0_Handler\ - PROC EXPORT GPIO7_INT15_0_Handler [WEAK] - B . - ENDP -GPIO7_INT31_16_Handler\ - PROC EXPORT GPIO7_INT31_16_Handler [WEAK] - B . - ENDP -MU_Handler\ - PROC - EXPORT MU_Handler [WEAK] - B . - ENDP -ADC1_Handler\ - PROC + EXPORT WDOG1_Handler [WEAK] + EXPORT WDOG2_Handler [WEAK] + EXPORT KPP_Handler [WEAK] + EXPORT PWM1_Handler [WEAK] + EXPORT PWM2_Handler [WEAK] + EXPORT PWM3_Handler [WEAK] + EXPORT PWM4_Handler [WEAK] + EXPORT CCM1_Handler [WEAK] + EXPORT CCM2_Handler [WEAK] + EXPORT GPC_Handler [WEAK] + EXPORT MU_A7_Handler [WEAK] + EXPORT SRC_Handler [WEAK] + EXPORT SIM1_Handler [WEAK] + EXPORT RTIC_Handler [WEAK] + EXPORT CPU_Handler [WEAK] + EXPORT CPU_CTI_Handler [WEAK] + EXPORT CCM_SRC_GPC_Handler [WEAK] + EXPORT SAI1_Handler [WEAK] + EXPORT SAI2_Handler [WEAK] + EXPORT MU_M4_Handler [WEAK] EXPORT ADC1_Handler [WEAK] - B . - ENDP -ADC2_Handler\ - PROC EXPORT ADC2_Handler [WEAK] - B . - ENDP -FLEXCAN1_Handler\ - PROC + EXPORT ENET2_MAC0_TRANS1_Handler [WEAK] + EXPORT ENET2_MAC0_TRANS2_Handler [WEAK] + EXPORT ENET2_MAC0_IRQ_Handler [WEAK] + EXPORT ENET2_1588_TIMER_IRQ_Handler[WEAK] + EXPORT TPR_Handler [WEAK] + EXPORT CAAM_QUEUE_Handler [WEAK] + EXPORT CAAM_ERROR_Handler [WEAK] + EXPORT QSPI_Handler [WEAK] + EXPORT TZASC1_Handler [WEAK] + EXPORT WDOG4_Handler [WEAK] EXPORT FLEXCAN1_Handler [WEAK] - B . - ENDP -FLEXCAN2_Handler\ - PROC EXPORT FLEXCAN2_Handler [WEAK] - B . - ENDP -UART7_Handler\ - PROC + EXPORT PERFMON1_Handler [WEAK] + EXPORT PERFMON2_Handler [WEAK] + EXPORT CAAM_WRAPPER1_Handler [WEAK] + EXPORT CAAM_WRAPPER2_Handler [WEAK] + EXPORT SEMA4_HS_A7_Handler [WEAK] + EXPORT EPDC_Handler [WEAK] + EXPORT ENET1_MAC0_TRANS1_Handler [WEAK] + EXPORT ENET1_MAC0_TRANS2_Handler [WEAK] + EXPORT ENET1_MAC0_Handler [WEAK] + EXPORT ENET1_1588_TIMER_Handler [WEAK] + EXPORT PCIE_CTRL1_Handler [WEAK] + EXPORT PCIE_CTRL2_Handler [WEAK] + EXPORT PCIE_CTRL3_Handler [WEAK] + EXPORT PCIE_CTRL4_Handler [WEAK] EXPORT UART7_Handler [WEAK] - B . - ENDP - -Default_Handler\ - PROC - + EXPORT PCIE_CTRL_REQUEST_Handler [WEAK] EXPORT DefaultISR [WEAK] - - +GPR_Handler +DAP_Handler +SDMA_Handler +DBGMON_Handler +SNVS_Handler +LCDIF_Handler +SIM2_Handler +CSI_Handler +PXP1_Handler +Reserved9_Handler +WDOG3_Handler +SEMA4_HS_M4_Handler +APBHDMA_Handler +EIM_Handler +BCH_Handler +GPMI_Handler +UART6_Handler +FTM1_Handler +FTM2_Handler +SNVS_CONSOLIDATED_Handler +SNVS_SECURITY_Handler +CSU_Handler +uSDHC1_Handler +uSDHC2_Handler +uSDHC3_Handler +MIPI_CSI_Handler +UART1_Handler +UART2_Handler +UART3_Handler +UART4_Handler +UART5_Handler +eCSPI1_Handler +eCSPI2_Handler +eCSPI3_Handler +eCSPI4_Handler +I2C1_Handler +I2C2_Handler +I2C3_Handler +I2C4_Handler +RDC_Handler +USB_OH3_OTG2_1_Handler +MIPI_DSI_Handler +USB_OH3_OTG2_2_Handler +USB_OH2_OTG_Handler +USB_OTG1_Handler +USB_OTG2_Handler +PXP2_Handler +SCTR1_Handler +SCTR2_Handler +Analog_TempSensor_Handler +SAI3_Handler +Analog_brown_out_Handler +GPT4_Handler +GPT3_Handler +GPT2_Handler +GPT1_Handler +GPIO1_INT7_Handler +GPIO1_INT6_Handler +GPIO1_INT5_Handler +GPIO1_INT4_Handler +GPIO1_INT3_Handler +GPIO1_INT2_Handler +GPIO1_INT1_Handler +GPIO1_INT0_Handler +GPIO1_INT15_0_Handler +GPIO1_INT31_16_Handler +GPIO2_INT15_0_Handler +GPIO2_INT31_16_Handler +GPIO3_INT15_0_Handler +GPIO3_INT31_16_Handler +GPIO4_INT15_0_Handler +GPIO4_INT31_16_Handler +GPIO5_INT15_0_Handler +GPIO5_INT31_16_Handler +GPIO6_INT15_0_Handler +GPIO6_INT31_16_Handler +GPIO7_INT15_0_Handler +GPIO7_INT31_16_Handler +WDOG1_Handler +WDOG2_Handler +KPP_Handler +PWM1_Handler +PWM2_Handler +PWM3_Handler +PWM4_Handler +CCM1_Handler +CCM2_Handler +GPC_Handler +MU_A7_Handler +SRC_Handler +SIM1_Handler +RTIC_Handler +CPU_Handler +CPU_CTI_Handler +CCM_SRC_GPC_Handler +SAI1_Handler +SAI2_Handler +MU_M4_Handler +ADC1_Handler +ADC2_Handler +ENET2_MAC0_TRANS1_Handler +ENET2_MAC0_TRANS2_Handler +ENET2_MAC0_IRQ_Handler +ENET2_1588_TIMER_IRQ_Handler +TPR_Handler +CAAM_QUEUE_Handler +CAAM_ERROR_Handler +QSPI_Handler +TZASC1_Handler +WDOG4_Handler +FLEXCAN1_Handler +FLEXCAN2_Handler +PERFMON1_Handler +PERFMON2_Handler +CAAM_WRAPPER1_Handler +CAAM_WRAPPER2_Handler +SEMA4_HS_A7_Handler +EPDC_Handler +ENET1_MAC0_TRANS1_Handler +ENET1_MAC0_TRANS2_Handler +ENET1_MAC0_Handler +ENET1_1588_TIMER_Handler +PCIE_CTRL1_Handler +PCIE_CTRL2_Handler +PCIE_CTRL3_Handler +PCIE_CTRL4_Handler +UART7_Handler +PCIE_CTRL_REQUEST_Handler DefaultISR - B DefaultISR ENDP ALIGN diff --git a/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S b/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S index 15965bb..5726a36 100644 --- a/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S +++ b/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S @@ -1,10 +1,10 @@ /* ---------------------------------------------------------------------------------------*/ -/* @file: startup_MCIMX7D_M4.s */ +/* @file: startup_MCIMX7D_M4.S */ /* @purpose: CMSIS Cortex-M4 Core Device Startup File */ -/* IMX7D_M4 */ -/* @version: 0.1 */ +/* MCIMX7D_M4 */ +/* @version: 1.0 */ /* @date: 2015-04-06 */ -/* @build: b54573 */ +/* @build: b150406 */ /* ---------------------------------------------------------------------------------------*/ /* */ /* Copyright (c) 2015 , Freescale Semiconductor, Inc. */ @@ -37,16 +37,6 @@ /*****************************************************************************/ /* Version: GCC for ARM Embedded Processors */ /*****************************************************************************/ - - - .word __etext - .word __data_start__ - .word __data_end__ - .word __bss_end__ - - - - .syntax unified .arch armv7-m @@ -72,139 +62,137 @@ __isr_vector: .long SysTick_Handler /* SysTick Handler*/ /* External Interrupts*/ - .long DefaultISR /* 16*/ - .long DefaultISR /* 17*/ - .long DefaultISR /* 18*/ - .long DefaultISR /* 19*/ - .long DefaultISR /* 20*/ - .long DefaultISR /* 21*/ - .long DefaultISR /* 22*/ - .long DefaultISR /* 23*/ - .long DefaultISR /* 24*/ - .long DefaultISR /* 25*/ - .long WDOG3_Handler /* WDOG3 Handler*/ - .long SEMA4_Handler /* SEMA4_Handler*/ - .long DefaultISR /* 28*/ - .long DefaultISR /* 29*/ - .long DefaultISR /* 30*/ - .long DefaultISR /* 31*/ - .long UART6_Handler /* UART6 Handler*/ - .long DefaultISR /* 33*/ - .long DefaultISR /* 34*/ - .long DefaultISR /* 35*/ - .long DefaultISR /* 36*/ - .long DefaultISR /* 37*/ - .long DefaultISR /* 38*/ - .long DefaultISR /* 39*/ - .long DefaultISR /* 40*/ - .long DefaultISR /* 41*/ - .long UART1_Handler /* UART1 Handler*/ - .long UART2_Handler /* UART2 Handler*/ - .long UART3_Handler /* UART3 Handler*/ - .long UART4_Handler /* UART4 Handler*/ - .long UART5_Handler /* UART5 Handler*/ - .long eCSPI1_Handler /* eCSPI1 Handler*/ - .long eCSPI2_Handler /* eCSPI2 Handler*/ - .long eCSPI3_Handler /* eCSPI3 Handler*/ - .long eCSPI4_Handler /* eCSPI4 Handler*/ - .long I2C1_Handler /* I2C1 Handler*/ - .long I2C2_Handler /* I2C2 Handler*/ - .long I2C3_Handler /* I2C3 Handler*/ - .long I2C4_Handler /* I2C4 Handler*/ - .long DefaultISR /* 55*/ - .long DefaultISR /* 56*/ - .long DefaultISR /* 57*/ - .long DefaultISR /* 58*/ - .long DefaultISR /* 59*/ - .long DefaultISR /* 60*/ - .long DefaultISR /* 61*/ - .long DefaultISR /* 62*/ - .long DefaultISR /* 63*/ - .long DefaultISR /* 64*/ - .long DefaultISR /* 65*/ - .long DefaultISR /* 66*/ - .long DefaultISR /* 67*/ - .long GPT4_Handler /* GPT4 handler*/ - .long GPT3_Handler /* GPT3 handler*/ - .long GPT2_Handler /* GPT2 handler*/ - .long GPT1_Handler /* GPT1 handler*/ - .long GPIO1_INT7_Handler /* Active HIGH Interrupt from INT7 from GPIO*/ - .long GPIO1_INT6_Handler /* Active HIGH Interrupt from INT6 from GPIO*/ - .long GPIO1_INT5_Handler /* Active HIGH Interrupt from INT5 from GPIO*/ - .long GPIO1_INT4_Handler /* Active HIGH Interrupt from INT4 from GPIO*/ - .long GPIO1_INT3_Handler /* Active HIGH Interrupt from INT3 from GPIO*/ - .long GPIO1_INT2_Handler /* Active HIGH Interrupt from INT2 from GPIO*/ - .long GPIO1_INT1_Handler /* Active HIGH Interrupt from INT1 from GPIO*/ - .long GPIO1_INT0_Handler /* Active HIGH Interrupt from INT0 from GPIO*/ - .long GPIO1_INT15_0_Handler /* Combined interrupt indication for GPIO1 signal 0 throughout 15*/ - .long GPIO1_INT31_16_Handler /* Combined interrupt indication for GPIO1 signal 16 throughout 31*/ - .long GPIO2_INT15_0_Handler /* Combined interrupt indication for GPIO2 signal 0 throughout 15*/ - .long GPIO2_INT31_16_Handler /* Combined interrupt indication for GPIO2 signal 16 throughout 31*/ - .long GPIO3_INT15_0_Handler /* Combined interrupt indication for GPIO3 signal 0 throughout 15*/ - .long GPIO3_INT31_16_Handler /* Combined interrupt indication for GPIO3 signal 16 throughout 31*/ - .long GPIO4_INT15_0_Handler /* Combined interrupt indication for GPIO4 signal 0 throughout 15*/ - .long GPIO4_INT31_16_Handler /* Combined interrupt indication for GPIO4 signal 16 throughout 31*/ - .long GPIO5_INT15_0_Handler /* Combined interrupt indication for GPIO5 signal 0 throughout 15*/ - .long GPIO5_INT31_16_Handler /* Combined interrupt indication for GPIO5 signal 16 throughout 31*/ - .long GPIO6_INT15_0_Handler /* Combined interrupt indication for GPIO6 signal 0 throughout 15*/ - .long GPIO6_INT31_16_Handler /* Combined interrupt indication for GPIO6 signal 16 throughout 31*/ - .long GPIO7_INT15_0_Handler /* Combined interrupt indication for GPIO7 signal 0 throughout 15*/ - .long GPIO7_INT31_16_Handler /* Combined interrupt indication for GPIO7 signal 16 throughout 31*/ - .long DefaultISR /* 94*/ - .long DefaultISR /* 95*/ - .long DefaultISR /* 96*/ - .long DefaultISR /* 97*/ - .long DefaultISR /* 98*/ - .long DefaultISR /* 99*/ - .long DefaultISR /* 100*/ - .long DefaultISR /* 101*/ - .long DefaultISR /* 102*/ - .long DefaultISR /* 103*/ - .long DefaultISR /* 104*/ - .long DefaultISR /* 105*/ - .long DefaultISR /* 106*/ - .long DefaultISR /* 107*/ - .long DefaultISR /* 108*/ - .long DefaultISR /* 109*/ - .long DefaultISR /* 110*/ - .long DefaultISR /* 111*/ - .long DefaultISR /* 112*/ - .long MU_Handler /* MU Handler*/ - .long ADC1_Handler /* ADC1 Handler*/ - .long ADC2_Handler /* ADC2 Handler*/ - .long DefaultISR /* 116*/ - .long DefaultISR /* 117*/ - .long DefaultISR /* 118*/ - .long DefaultISR /* 119*/ - .long DefaultISR /* 120*/ - .long DefaultISR /* 121*/ - .long DefaultISR /* 122*/ - .long DefaultISR /* 123*/ - .long DefaultISR /* 124*/ - .long DefaultISR /* 125*/ - .long FLEXCAN1_Handler /* FLEXCAN1 Handler*/ - .long FLEXCAN2_Handler /* FLEXCAN2 Handler*/ - .long DefaultISR /* 128*/ - .long DefaultISR /* 129*/ - .long DefaultISR /* 130*/ - .long DefaultISR /* 131*/ - .long DefaultISR /* 132*/ - .long DefaultISR /* 133*/ - .long DefaultISR /* 134*/ - .long DefaultISR /* 135*/ - .long DefaultISR /* 136*/ - .long DefaultISR /* 137*/ - .long DefaultISR /* 138*/ - .long DefaultISR /* 139*/ - .long DefaultISR /* 140*/ - .long DefaultISR /* 141*/ - .long UART7_Handler /* UART7 Handler*/ - .long DefaultISR /* 143*/ + .long GPR_Handler /* GPR Interrupt*/ + .long DAP_Handler /* DAP Interrupt*/ + .long SDMA_Handler /* SDMA Interrupt*/ + .long DBGMON_Handler /* DBGMON Interrupt*/ + .long SNVS_Handler /* SNVS Interrupt*/ + .long LCDIF_Handler /* LCDIF Interrupt*/ + .long SIM2_Handler /* SIM2 Interrupt*/ + .long CSI_Handler /* CSI Interrupt*/ + .long PXP1_Handler /* PXP1 Interrupt*/ + .long Reserved9_Handler /* Reserved interrupt 9*/ + .long WDOG3_Handler /* WDOG3 Interrupt*/ + .long SEMA4_HS_M4_Handler /* SEMA4_HS_M4 Interrupt*/ + .long APBHDMA_Handler /* APBHDMA Interrupt*/ + .long EIM_Handler /* EIM Interrupt*/ + .long BCH_Handler /* BCH Interrupt*/ + .long GPMI_Handler /* GPMI Interrupt*/ + .long UART6_Handler /* UART6 Interrupt*/ + .long FTM1_Handler /* FTM1 Interrupt*/ + .long FTM2_Handler /* FTM2 Interrupt*/ + .long SNVS_CONSOLIDATED_Handler /* SNVS_CONSOLIDATED Interrupt*/ + .long SNVS_SECURITY_Handler /* SNVS_SECURITY Interrupt*/ + .long CSU_Handler /* CSU Interrupt*/ + .long uSDHC1_Handler /* uSDHC1 Interrupt*/ + .long uSDHC2_Handler /* uSDHC2 Interrupt*/ + .long uSDHC3_Handler /* uSDHC3 Interrupt*/ + .long MIPI_CSI_Handler /* MIPI_CSI Interrupt*/ + .long UART1_Handler /* UART1 Interrupt*/ + .long UART2_Handler /* UART2 Interrupt*/ + .long UART3_Handler /* UART3 Interrupt*/ + .long UART4_Handler /* UART4 Interrupt*/ + .long UART5_Handler /* UART5 Interrupt*/ + .long eCSPI1_Handler /* eCSPI1 Interrupt*/ + .long eCSPI2_Handler /* eCSPI2 Interrupt*/ + .long eCSPI3_Handler /* eCSPI3 Interrupt*/ + .long eCSPI4_Handler /* eCSPI4 Interrupt*/ + .long I2C1_Handler /* I2C1 Interrupt*/ + .long I2C2_Handler /* I2C2 Interrupt*/ + .long I2C3_Handler /* I2C3 Interrupt*/ + .long I2C4_Handler /* I2C4 Interrupt*/ + .long RDC_Handler /* RDC Interrupt*/ + .long USB_OH3_OTG2_1_Handler /* USB_OH3_OTG2_1 Interrupt*/ + .long MIPI_DSI_Handler /* MIPI_DSI Interrupt*/ + .long USB_OH3_OTG2_2_Handler /* USB_OH3_OTG2_2 Interrupt*/ + .long USB_OH2_OTG_Handler /* USB_OH2_OTG Interrupt*/ + .long USB_OTG1_Handler /* USB_OTG1 Interrupt*/ + .long USB_OTG2_Handler /* USB_OTG2 Interrupt*/ + .long PXP2_Handler /* PXP2 Interrupt*/ + .long SCTR1_Handler /* SCTR1 Interrupt*/ + .long SCTR2_Handler /* SCTR2 Interrupt*/ + .long Analog_TempSensor_Handler /* Analog_TempSensor Interrupt*/ + .long SAI3_Handler /* SAI3 Interrupt*/ + .long Analog_brown_out_Handler /* Analog_brown_out Interrupt*/ + .long GPT4_Handler /* GPT4 Interrupt*/ + .long GPT3_Handler /* GPT3 Interrupt*/ + .long GPT2_Handler /* GPT2 Interrupt*/ + .long GPT1_Handler /* GPT1 Interrupt*/ + .long GPIO1_INT7_Handler /* GPIO1_INT7 Interrupt*/ + .long GPIO1_INT6_Handler /* GPIO1_INT6 Interrupt*/ + .long GPIO1_INT5_Handler /* GPIO1_INT5 Interrupt*/ + .long GPIO1_INT4_Handler /* GPIO1_INT4 Interrupt*/ + .long GPIO1_INT3_Handler /* GPIO1_INT3 Interrupt*/ + .long GPIO1_INT2_Handler /* GPIO1_INT2 Interrupt*/ + .long GPIO1_INT1_Handler /* GPIO1_INT1 Interrupt*/ + .long GPIO1_INT0_Handler /* GPIO1_INT0 Interrupt*/ + .long GPIO1_INT15_0_Handler /* GPIO1_INT15_0 Interrupt*/ + .long GPIO1_INT31_16_Handler /* GPIO1_INT31_16 Interrupt*/ + .long GPIO2_INT15_0_Handler /* GPIO2_INT15_0 Interrupt*/ + .long GPIO2_INT31_16_Handler /* GPIO2_INT31_16 Interrupt*/ + .long GPIO3_INT15_0_Handler /* GPIO3_INT15_0 Interrupt*/ + .long GPIO3_INT31_16_Handler /* GPIO3_INT31_16 Interrupt*/ + .long GPIO4_INT15_0_Handler /* GPIO4_INT15_0 Interrupt*/ + .long GPIO4_INT31_16_Handler /* GPIO4_INT31_16 Interrupt*/ + .long GPIO5_INT15_0_Handler /* GPIO5_INT15_0 Interrupt*/ + .long GPIO5_INT31_16_Handler /* GPIO5_INT31_16 Interrupt*/ + .long GPIO6_INT15_0_Handler /* GPIO6_INT15_0 Interrupt*/ + .long GPIO6_INT31_16_Handler /* GPIO6_INT31_16 Interrupt*/ + .long GPIO7_INT15_0_Handler /* GPIO7_INT15_0 Interrupt*/ + .long GPIO7_INT31_16_Handler /* GPIO7_INT31_16 Interrupt*/ + .long WDOG1_Handler /* WDOG1 Interrupt*/ + .long WDOG2_Handler /* WDOG2 Interrupt*/ + .long KPP_Handler /* KPP Interrupt*/ + .long PWM1_Handler /* PWM1 Interrupt*/ + .long PWM2_Handler /* PWM2 Interrupt*/ + .long PWM3_Handler /* PWM3 Interrupt*/ + .long PWM4_Handler /* PWM4 Interrupt*/ + .long CCM1_Handler /* CCM1 Interrupt*/ + .long CCM2_Handler /* CCM2 Interrupt*/ + .long GPC_Handler /* GPC Interrupt*/ + .long MU_A7_Handler /* MU_A7 Interrupt*/ + .long SRC_Handler /* SRC Interrupt*/ + .long SIM1_Handler /* SIM1 Interrupt*/ + .long RTIC_Handler /* RTIC Interrupt*/ + .long CPU_Handler /* CPU Interrupt*/ + .long CPU_CTI_Handler /* CPU_CTI Interrupt*/ + .long CCM_SRC_GPC_Handler /* CCM_SRC_GPC Interrupt*/ + .long SAI1_Handler /* SAI1 Interrupt*/ + .long SAI2_Handler /* SAI2 Interrupt*/ + .long MU_M4_Handler /* MU_M4 Interrupt*/ + .long ADC1_Handler /* ADC1 Interrupt*/ + .long ADC2_Handler /* ADC2 Interrupt*/ + .long ENET2_MAC0_TRANS1_Handler /* ENET2_MAC0_TRANS1 Interrupt*/ + .long ENET2_MAC0_TRANS2_Handler /* ENET2_MAC0_TRANS2 Interrupt*/ + .long ENET2_MAC0_IRQ_Handler /* ENET2_MAC0_IRQ Interrupt*/ + .long ENET2_1588_TIMER_IRQ_Handler /* ENET2_1588_TIMER_IRQ Interrupt*/ + .long TPR_Handler /* TPR Interrupt*/ + .long CAAM_QUEUE_Handler /* CAAM_QUEUE Interrupt*/ + .long CAAM_ERROR_Handler /* CAAM_ERROR Interrupt*/ + .long QSPI_Handler /* QSPI Interrupt*/ + .long TZASC1_Handler /* TZASC1 Interrupt*/ + .long WDOG4_Handler /* WDOG4 Interrupt*/ + .long FLEXCAN1_Handler /* FLEXCAN1 Interrupt*/ + .long FLEXCAN2_Handler /* FLEXCAN2 Interrupt*/ + .long PERFMON1_Handler /* PERFMON1 Interrupt*/ + .long PERFMON2_Handler /* PERFMON2 Interrupt*/ + .long CAAM_WRAPPER1_Handler /* CAAM_WRAPPER1 Interrupt*/ + .long CAAM_WRAPPER2_Handler /* CAAM_WRAPPER2 Interrupt*/ + .long SEMA4_HS_A7_Handler /* SEMA4_HS_A7 Interrupt*/ + .long EPDC_Handler /* EPDC Interrupt*/ + .long ENET1_MAC0_TRANS1_Handler /* ENET1_MAC0_TRANS1 Interrupt*/ + .long ENET1_MAC0_TRANS2_Handler /* ENET1_MAC0_TRANS2 Interrupt*/ + .long ENET1_MAC0_Handler /* ENET1_MAC0 Interrupt*/ + .long ENET1_1588_TIMER_Handler /* ENET1_1588_TIMER Interrupt*/ + .long PCIE_CTRL1_Handler /* PCIE_CTRL1 Interrupt*/ + .long PCIE_CTRL2_Handler /* PCIE_CTRL2 Interrupt*/ + .long PCIE_CTRL3_Handler /* PCIE_CTRL3 Interrupt*/ + .long PCIE_CTRL4_Handler /* PCIE_CTRL4 Interrupt*/ + .long UART7_Handler /* UART7 Interrupt*/ + .long PCIE_CTRL_REQUEST_Handler /* PCIE_CTRL_REQUEST Interrupt*/ .size __isr_vector, . - __isr_vector - - .text .thumb @@ -220,24 +208,57 @@ Reset_Handler: #ifndef __NO_SYSTEM_INIT bl SystemInit #endif - /* data copy */ - ldr r0,=__DATA_ROM - subs r0,r0,#0x1 - ldr r1,=__data_start__ - subs r1,r1,#0x1 - ldr r2,=__data_end__ - subs r3,r2,r1 - b Copy_init_data - Loop_copy_init_data: - adds r1,r1,#0x1 - adds r0,r0,#0x1 - ldrb r4,[r0] - str r4,[r1] +/* Loop to copy data from read only memory to RAM. The ranges + * of copy from/to are specified by following symbols evaluated in + * linker script. + * __etext: End of code section, i.e., begin of data sections to copy from. + * __data_start__/__data_end__: RAM address range that data should be + * copied to. Both must be aligned to 4 bytes boundary. */ + + ldr r1, =__etext + ldr r2, =__data_start__ + ldr r3, =__data_end__ + +#if 1 +/* Here are two copies of loop implemenations. First one favors code size + * and the second one favors performance. Default uses the first one. + * Change to "#if 0" to use the second one */ +.LC0: + cmp r2, r3 + ittt lt + ldrlt r0, [r1], #4 + strlt r0, [r2], #4 + blt .LC0 +#else + subs r3, r2 + ble .LC1 +.LC0: + subs r3, #4 + ldr r0, [r1, r3] + str r0, [r2, r3] + bgt .LC0 +.LC1: +#endif + +#ifdef __STARTUP_CLEAR_BSS +/* This part of work usually is done in C library startup code. Otherwise, + * define this macro to enable it in this startup. + * + * Loop to zero out BSS section, which uses following symbols + * in linker script: + * __bss_start__: start of BSS section. Must align to 4 + * __bss_end__: end of BSS section. Must align to 4 + */ + ldr r1, =__bss_start__ + ldr r2, =__bss_end__ - Copy_init_data: - subs r3,r3,#0x1 - cmp r3,#0x0 - bne Loop_copy_init_data + movs r0, 0 +.LC2: + cmp r1, r2 + itt lt + strlt r0, [r1], #4 + blt .LC2 +#endif /* __STARTUP_CLEAR_BSS */ cpsie i /* Unmask interrupts */ bl _start @@ -270,9 +291,32 @@ DefaultISR: def_irq_handler DebugMon_Handler def_irq_handler PendSV_Handler def_irq_handler SysTick_Handler + def_irq_handler GPR_Handler + def_irq_handler DAP_Handler + def_irq_handler SDMA_Handler + def_irq_handler DBGMON_Handler + def_irq_handler SNVS_Handler + def_irq_handler LCDIF_Handler + def_irq_handler SIM2_Handler + def_irq_handler CSI_Handler + def_irq_handler PXP1_Handler + def_irq_handler Reserved9_Handler def_irq_handler WDOG3_Handler - def_irq_handler SEMA4_Handler + def_irq_handler SEMA4_HS_M4_Handler + def_irq_handler APBHDMA_Handler + def_irq_handler EIM_Handler + def_irq_handler BCH_Handler + def_irq_handler GPMI_Handler def_irq_handler UART6_Handler + def_irq_handler FTM1_Handler + def_irq_handler FTM2_Handler + def_irq_handler SNVS_CONSOLIDATED_Handler + def_irq_handler SNVS_SECURITY_Handler + def_irq_handler CSU_Handler + def_irq_handler uSDHC1_Handler + def_irq_handler uSDHC2_Handler + def_irq_handler uSDHC3_Handler + def_irq_handler MIPI_CSI_Handler def_irq_handler UART1_Handler def_irq_handler UART2_Handler def_irq_handler UART3_Handler @@ -286,6 +330,19 @@ DefaultISR: def_irq_handler I2C2_Handler def_irq_handler I2C3_Handler def_irq_handler I2C4_Handler + def_irq_handler RDC_Handler + def_irq_handler USB_OH3_OTG2_1_Handler + def_irq_handler MIPI_DSI_Handler + def_irq_handler USB_OH3_OTG2_2_Handler + def_irq_handler USB_OH2_OTG_Handler + def_irq_handler USB_OTG1_Handler + def_irq_handler USB_OTG2_Handler + def_irq_handler PXP2_Handler + def_irq_handler SCTR1_Handler + def_irq_handler SCTR2_Handler + def_irq_handler Analog_TempSensor_Handler + def_irq_handler SAI3_Handler + def_irq_handler Analog_brown_out_Handler def_irq_handler GPT4_Handler def_irq_handler GPT3_Handler def_irq_handler GPT2_Handler @@ -312,10 +369,54 @@ DefaultISR: def_irq_handler GPIO6_INT31_16_Handler def_irq_handler GPIO7_INT15_0_Handler def_irq_handler GPIO7_INT31_16_Handler - def_irq_handler MU_Handler + def_irq_handler WDOG1_Handler + def_irq_handler WDOG2_Handler + def_irq_handler KPP_Handler + def_irq_handler PWM1_Handler + def_irq_handler PWM2_Handler + def_irq_handler PWM3_Handler + def_irq_handler PWM4_Handler + def_irq_handler CCM1_Handler + def_irq_handler CCM2_Handler + def_irq_handler GPC_Handler + def_irq_handler MU_A7_Handler + def_irq_handler SRC_Handler + def_irq_handler SIM1_Handler + def_irq_handler RTIC_Handler + def_irq_handler CPU_Handler + def_irq_handler CPU_CTI_Handler + def_irq_handler CCM_SRC_GPC_Handler + def_irq_handler SAI1_Handler + def_irq_handler SAI2_Handler + def_irq_handler MU_M4_Handler def_irq_handler ADC1_Handler def_irq_handler ADC2_Handler + def_irq_handler ENET2_MAC0_TRANS1_Handler + def_irq_handler ENET2_MAC0_TRANS2_Handler + def_irq_handler ENET2_MAC0_IRQ_Handler + def_irq_handler ENET2_1588_TIMER_IRQ_Handler + def_irq_handler TPR_Handler + def_irq_handler CAAM_QUEUE_Handler + def_irq_handler CAAM_ERROR_Handler + def_irq_handler QSPI_Handler + def_irq_handler TZASC1_Handler + def_irq_handler WDOG4_Handler def_irq_handler FLEXCAN1_Handler def_irq_handler FLEXCAN2_Handler + def_irq_handler PERFMON1_Handler + def_irq_handler PERFMON2_Handler + def_irq_handler CAAM_WRAPPER1_Handler + def_irq_handler CAAM_WRAPPER2_Handler + def_irq_handler SEMA4_HS_A7_Handler + def_irq_handler EPDC_Handler + def_irq_handler ENET1_MAC0_TRANS1_Handler + def_irq_handler ENET1_MAC0_TRANS2_Handler + def_irq_handler ENET1_MAC0_Handler + def_irq_handler ENET1_1588_TIMER_Handler + def_irq_handler PCIE_CTRL1_Handler + def_irq_handler PCIE_CTRL2_Handler + def_irq_handler PCIE_CTRL3_Handler + def_irq_handler PCIE_CTRL4_Handler def_irq_handler UART7_Handler + def_irq_handler PCIE_CTRL_REQUEST_Handler .end diff --git a/platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s b/platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s deleted file mode 100644 index 385c49c..0000000 --- a/platform/devices/MCIMX7D/startup/iar/startup_MCIMX7D_M4.s +++ /dev/null @@ -1,520 +0,0 @@ -; --------------------------------------------------------------------------------------- -; @file: startup_MCIMX7D_M4.s -; @purpose: CMSIS Cortex-M4 Core Device Startup File -; IMX7D_M4 -; @version: 0.1 -; @date: 2015-04-06 -; @build: b49163 -; --------------------------------------------------------------------------------------- -; -; Copyright (c) 2015 , Freescale Semiconductor, Inc. -; All rights reserved. -; -; Redistribution and use in source and binary forms, with or without modification, -; are permitted provided that the following conditions are met: -; -; o Redistributions of source code must retain the above copyright notice, this list -; of conditions and the following disclaimer. -; -; o Redistributions in binary form must reproduce the above copyright notice, this -; list of conditions and the following disclaimer in the documentation and/or -; other materials provided with the distribution. -; -; o Neither the name of Freescale Semiconductor, Inc. nor the names of its -; contributors may be used to endorse or promote products derived from this -; software without specific prior written permission. -; -; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -; ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -; ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -; -; The modules in this file are included in the libraries, and may be replaced -; by any user-defined modules that define the PUBLIC symbol _program_start or -; a user defined start symbol. -; To override the cstartup defined in the library, simply add your modified -; version to the workbench project. -; -; The vector table is normally located at address 0. -; When debugging in RAM, it can be located in RAM, aligned to at least 2^6. -; The name "__vector_table" has special meaning for C-SPY: -; it is where the SP start value is found, and the NVIC vector -; table register (VTOR) is initialized to this address if != 0. -; -; Cortex-M version -; - - MODULE ?cstartup - - ;; Forward declaration of sections. - SECTION CSTACK:DATA:NOROOT(3) - - SECTION .intvec:CODE:NOROOT(2) - - EXTERN __iar_program_start - EXTERN SystemInit - PUBLIC __vector_table - - DATA -__vector_table - DCD sfe(CSTACK) - DCD Reset_Handler - - DCD NMI_Handler ;NMI Handler - DCD HardFault_Handler ;Hard Fault Handler - DCD MemManage_Handler ;MPU Fault Handler - DCD BusFault_Handler ;Bus Fault Handler - DCD UsageFault_Handler ;Usage Fault Handler - DCD 0 ;Reserved - DCD 0 ;Reserved - DCD 0 ;Reserved - DCD 0 ;Reserved - DCD SVC_Handler ;SVCall Handler - DCD DebugMon_Handler ;Debug Monitor Handler - DCD 0 ;Reserved - DCD PendSV_Handler ;PendSV Handler - DCD SysTick_Handler ;SysTick Handler - -;External Interrupts - DCD DefaultISR ;Reserved Interrupt 16 - DCD DefaultISR ;Reserved Interrupt 17 - DCD DefaultISR ;Reserved Interrupt 18 - DCD DefaultISR ;Reserved Interrupt 19 - DCD DefaultISR ;Reserved Interrupt 20 - DCD DefaultISR ;Reserved Interrupt 21 - DCD DefaultISR ;Reserved Interrupt 22 - DCD DefaultISR ;Reserved Interrupt 23 - DCD DefaultISR ;Reserved Interrupt 24 - DCD DefaultISR ;Reserved Interrupt 25 - DCD WDOG3_Handler ;WDOG3 Handler - DCD SEMA4_Handler ;SEMA4 handler - DCD DefaultISR ;Reserved Interrupt 28 - DCD DefaultISR ;Reserved Interrupt 29 - DCD DefaultISR ;Reserved Interrupt 30 - DCD DefaultISR ;Reserved Interrupt 31 - DCD UART6_Handler ;UART6 Handler - DCD DefaultISR ;Reserved Interrupt 33 - DCD DefaultISR ;Reserved Interrupt 34 - DCD DefaultISR ;Reserved Interrupt 35 - DCD DefaultISR ;Reserved Interrupt 36 - DCD DefaultISR ;Reserved Interrupt 37 - DCD DefaultISR ;Reserved Interrupt 38 - DCD DefaultISR ;Reserved Interrupt 39 - DCD DefaultISR ;Reserved Interrupt 40 - DCD DefaultISR ;Reserved Interrupt 41 - DCD UART1_Handler ;UART1 Handler - DCD UART2_Handler ;UART2 Handler - DCD UART3_Handler ;UART3 Handler - DCD UART4_Handler ;UART4 Handler - DCD UART5_Handler ;UART5 Handler - DCD eCSPI1_Handler ;eCSPI1 Handler - DCD eCSPI2_Handler ;eCSPI2 Handler - DCD eCSPI3_Handler ;eCSPI3 Handler - DCD eCSPI4_Handler ;eCSPI4 Handler - DCD I2C1_Handler ;I2C1 Handler - DCD I2C2_Handler ;I2C2 Handler - DCD I2C3_Handler ;I2C3 Handler - DCD I2C4_Handler ;I2C4 Handler - DCD DefaultISR ;Reserved Interrupt 55 - DCD DefaultISR ;Reserved Interrupt 56 - DCD DefaultISR ;Reserved Interrupt 57 - DCD DefaultISR ;Reserved Interrupt 58 - DCD DefaultISR ;Reserved Interrupt 59 - DCD DefaultISR ;Reserved Interrupt 60 - DCD DefaultISR ;Reserved Interrupt 61 - DCD DefaultISR ;Reserved Interrupt 62 - DCD DefaultISR ;Reserved Interrupt 63 - DCD DefaultISR ;Reserved Interrupt 64 - DCD DefaultISR ;Reserved Interrupt 65 - DCD DefaultISR ;Reserved Interrupt 66 - DCD DefaultISR ;Reserved Interrupt 67 - DCD GPT4_Handler ;GPT4 handler - DCD GPT3_Handler ;GPT3 handler - DCD GPT2_Handler ;GPT2 handler - DCD GPT1_Handler ;GPT1 handler - DCD GPIO1_INT7_Handler ;Active HIGH Interrupt from INT7 from GPIO - DCD GPIO1_INT6_Handler ;Active HIGH Interrupt from INT6 from GPIO - DCD GPIO1_INT5_Handler ;Active HIGH Interrupt from INT5 from GPIO - DCD GPIO1_INT4_Handler ;Active HIGH Interrupt from INT4 from GPIO - DCD GPIO1_INT3_Handler ;Active HIGH Interrupt from INT3 from GPIO - DCD GPIO1_INT2_Handler ;Active HIGH Interrupt from INT2 from GPIO - DCD GPIO1_INT1_Handler ;Active HIGH Interrupt from INT1 from GPIO - DCD GPIO1_INT0_Handler ;Active HIGH Interrupt from INT0 from GPIO - DCD GPIO1_INT15_0_Handler ;Combined interrupt indication for GPIO1 signal 0 throughout 15 - DCD GPIO1_INT31_16_Handler ;Combined interrupt indication for GPIO1 signal 16 throughout 31 - DCD GPIO2_INT15_0_Handler ;Combined interrupt indication for GPIO2 signal 0 throughout 15 - DCD GPIO2_INT31_16_Handler ;Combined interrupt indication for GPIO2 signal 16 throughout 31 - DCD GPIO3_INT15_0_Handler ;Combined interrupt indication for GPIO3 signal 0 throughout 15 - DCD GPIO3_INT31_16_Handler ;Combined interrupt indication for GPIO3 signal 16 throughout 31 - DCD GPIO4_INT15_0_Handler ;Combined interrupt indication for GPIO4 signal 0 throughout 15 - DCD GPIO4_INT31_16_Handler ;Combined interrupt indication for GPIO4 signal 16 throughout 31 - DCD GPIO5_INT15_0_Handler ;Combined interrupt indication for GPIO5 signal 0 throughout 15 - DCD GPIO5_INT31_16_Handler ;Combined interrupt indication for GPIO5 signal 16 throughout 31 - DCD GPIO6_INT15_0_Handler ;Combined interrupt indication for GPIO6 signal 0 throughout 15 - DCD GPIO6_INT31_16_Handler ;Combined interrupt indication for GPIO6 signal 16 throughout 31 - DCD GPIO7_INT15_0_Handler ;Combined interrupt indication for GPIO7 signal 0 throughout 15 - DCD GPIO7_INT31_16_Handler ;Combined interrupt indication for GPIO7 signal 16 throughout 31 - DCD DefaultISR ;Reserved Interrupt 94 - DCD DefaultISR ;Reserved Interrupt 95 - DCD DefaultISR ;Reserved Interrupt 96 - DCD DefaultISR ;Reserved Interrupt 97 - DCD DefaultISR ;Reserved Interrupt 98 - DCD DefaultISR ;Reserved Interrupt 99 - DCD DefaultISR ;Reserved Interrupt 100 - DCD DefaultISR ;Reserved Interrupt 101 - DCD DefaultISR ;Reserved Interrupt 102 - DCD DefaultISR ;Reserved Interrupt 103 - DCD DefaultISR ;Reserved Interrupt 104 - DCD DefaultISR ;Reserved Interrupt 105 - DCD DefaultISR ;Reserved Interrupt 106 - DCD DefaultISR ;Reserved Interrupt 107 - DCD DefaultISR ;Reserved Interrupt 108 - DCD DefaultISR ;Reserved Interrupt 109 - DCD DefaultISR ;Reserved Interrupt 110 - DCD DefaultISR ;Reserved Interrupt 111 - DCD DefaultISR ;Reserved Interrupt 112 - DCD MU_Handler ;MU Handler - DCD ADC1_Handler ;ADC1 Handler - DCD ADC2_Handler ;ADC2 Handler - DCD DefaultISR ;Reserved Interrupt 116 - DCD DefaultISR ;Reserved Interrupt 117 - DCD DefaultISR ;Reserved Interrupt 118 - DCD DefaultISR ;Reserved Interrupt 119 - DCD DefaultISR ;Reserved Interrupt 120 - DCD DefaultISR ;Reserved Interrupt 121 - DCD DefaultISR ;Reserved Interrupt 122 - DCD DefaultISR ;Reserved Interrupt 123 - DCD DefaultISR ;Reserved Interrupt 124 - DCD DefaultISR ;Reserved Interrupt 125 - DCD FLEXCAN1_Handler ;FLEXCAN1 Handler - DCD FLEXCAN2_Handler ;FLEXCAN2 Handler - DCD DefaultISR ;Reserved Interrupt 128 - DCD DefaultISR ;Reserved Interrupt 129 - DCD DefaultISR ;Reserved Interrupt 130 - DCD DefaultISR ;Reserved Interrupt 131 - DCD DefaultISR ;Reserved Interrupt 132 - DCD DefaultISR ;Reserved Interrupt 133 - DCD DefaultISR ;Reserved Interrupt 134 - DCD DefaultISR ;Reserved Interrupt 135 - DCD DefaultISR ;Reserved Interrupt 136 - DCD DefaultISR ;Reserved Interrupt 137 - DCD DefaultISR ;Reserved Interrupt 138 - DCD DefaultISR ;Reserved Interrupt 139 - DCD DefaultISR ;Reserved Interrupt 140 - DCD DefaultISR ;Reserved Interrupt 141 - DCD UART7_Handler ;UART7 Handler - DCD DefaultISR ;Reserved Interrupt 143 - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; -;; Default interrupt handlers. -;; - THUMB - - PUBWEAK Reset_Handler - SECTION .text:CODE:REORDER:NOROOT(2) -Reset_Handler - CPSID I ; Mask interrupts - LDR R0, =SystemInit - BLX R0 - CPSIE I ; Unmask interrupts - LDR R0, =__iar_program_start - BX R0 - - PUBWEAK NMI_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -NMI_Handler - B . - - PUBWEAK HardFault_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -HardFault_Handler - B . - - PUBWEAK MemManage_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -MemManage_Handler - B . - - PUBWEAK BusFault_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -BusFault_Handler - B . - - PUBWEAK UsageFault_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UsageFault_Handler - B . - - PUBWEAK SVC_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -SVC_Handler - B . - - PUBWEAK DebugMon_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -DebugMon_Handler - B . - - PUBWEAK PendSV_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -PendSV_Handler - B . - - PUBWEAK SysTick_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -SysTick_Handler - B . - - PUBWEAK WDOG3_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -WDOG3_Handler - B . - - PUBWEAK UART1_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UART1_Handler - B . - - PUBWEAK UART2_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UART2_Handler - B . - - PUBWEAK UART3_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UART3_Handler - B . - - PUBWEAK UART4_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UART4_Handler - B . - - PUBWEAK UART5_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UART5_Handler - B . - - PUBWEAK UART6_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UART6_Handler - B . - - PUBWEAK UART7_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -UART7_Handler - B . - - PUBWEAK eCSPI1_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -eCSPI1_Handler - B . - - PUBWEAK eCSPI2_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -eCSPI2_Handler - B . - - PUBWEAK eCSPI3_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -eCSPI3_Handler - B . - - PUBWEAK eCSPI4_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -eCSPI4_Handler - B . - - PUBWEAK I2C1_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -I2C1_Handler - B . - - PUBWEAK I2C2_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -I2C2_Handler - B . - - PUBWEAK I2C3_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -I2C3_Handler - B . - - PUBWEAK I2C4_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -I2C4_Handler - B . - - PUBWEAK GPT4_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPT4_Handler - B . - - PUBWEAK GPT3_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPT3_Handler - B . - - PUBWEAK GPT2_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPT2_Handler - B . - - PUBWEAK GPT1_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPT1_Handler - B . - - PUBWEAK GPIO1_INT7_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT7_Handler - B . - - PUBWEAK GPIO1_INT6_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT6_Handler - B . - - PUBWEAK GPIO1_INT5_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT5_Handler - B . - - PUBWEAK GPIO1_INT4_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT4_Handler - B . - - PUBWEAK GPIO1_INT3_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT3_Handler - B . - - PUBWEAK GPIO1_INT2_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT2_Handler - B . - - PUBWEAK GPIO1_INT1_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT1_Handler - B . - - PUBWEAK GPIO1_INT0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT0_Handler - B . - - PUBWEAK GPIO1_INT15_0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT15_0_Handler - B . - - PUBWEAK GPIO1_INT31_16_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO1_INT31_16_Handler - B . - - PUBWEAK GPIO2_INT15_0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO2_INT15_0_Handler - B . - - PUBWEAK GPIO2_INT31_16_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO2_INT31_16_Handler - B . - - PUBWEAK GPIO3_INT15_0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO3_INT15_0_Handler - B . - - PUBWEAK GPIO3_INT31_16_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO3_INT31_16_Handler - B . - - PUBWEAK GPIO4_INT15_0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO4_INT15_0_Handler - B . - - PUBWEAK GPIO4_INT31_16_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO4_INT31_16_Handler - B . - - PUBWEAK GPIO5_INT15_0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO5_INT15_0_Handler - B . - - PUBWEAK GPIO5_INT31_16_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO5_INT31_16_Handler - B . - - PUBWEAK GPIO6_INT15_0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO6_INT15_0_Handler - B . - - PUBWEAK GPIO6_INT31_16_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO6_INT31_16_Handler - B . - - PUBWEAK GPIO7_INT15_0_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO7_INT15_0_Handler - B . - - PUBWEAK GPIO7_INT31_16_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -GPIO7_INT31_16_Handler - B . - - PUBWEAK MU_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -MU_Handler - B . - - PUBWEAK ADC1_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -ADC1_Handler - B . - - PUBWEAK ADC2_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -ADC2_Handler - B . - - PUBWEAK SEMA4_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -SEMA4_Handler - B . - - PUBWEAK FLEXCAN1_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -FLEXCAN1_Handler - - PUBWEAK FLEXCAN2_Handler - SECTION .text:CODE:REORDER:NOROOT(1) -FLEXCAN2_Handler - - PUBWEAK DefaultISR - SECTION .text:CODE:REORDER:NOROOT(1) -DefaultISR - B DefaultISR - - END - diff --git a/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c b/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c index 550e4ba..dedf6de 100644 --- a/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c +++ b/platform/devices/MCIMX7D/startup/system_MCIMX7D_M4.c @@ -30,6 +30,10 @@ #include #include "MCIMX7D_M4.h" +/* ---------------------------------------------------------------------------- + -- Helper macro + ---------------------------------------------------------------------------- */ +#define EXTRACT_BITFIELD(reg, shift, width) ((*(reg) & (((1 << (width)) - 1) << (shift))) >> (shift)) /* ---------------------------------------------------------------------------- -- Vector Table offset @@ -39,35 +43,145 @@ /* ---------------------------------------------------------------------------- -- Core clock ---------------------------------------------------------------------------- */ -uint32_t SystemCoreClock = 240000000; +uint32_t SystemCoreClock = 240000000ul; /* ---------------------------------------------------------------------------- -- SystemInit() ---------------------------------------------------------------------------- */ void SystemInit(void) { - // The Vector table base address is given by linker script. + /* The Vector table base address is given by linker script. */ #if defined(__CC_ARM) - extern uint32_t Image$$ER_m_text$$Base[]; + extern uint32_t Image$$VECTOR_ROM$$Base[]; #else extern uint32_t __VECTOR_TABLE[]; #endif - + /* Enable FPU */ #if ((1 == __FPU_PRESENT) && (1 == __FPU_USED)) SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ #endif - /* M4 core root SYS PLL Div2: 240MHz */ + /* Set M4 core clock to SYS_PLL_Div2 @ 240MHz. */ CCM_TARGET_ROOT1 = 0x11000000; - /* initialize cache */ - // Enable I_Cache - // Enable D_Cache + /* Initialize MPU */ + /* Make sure outstanding transfers are done. */ + __DMB(); + /* Disable the MPU. */ + MPU->CTRL = 0; + + /* Select Region 0 to configure. */ + MPU->RNR = 0; + /* Set base address of Region 0 to the base of Default CODE + SRAM memory region(1GB). */ + MPU->RBAR = 0x00000000; + /* Region 0 setting: + * 1) Enable Instruction Access; + * 2) Full Data Access Permission; + * 3) Outer and inner Non-Cacheable; + * 4) Region Not Shared; + * 5) All Sub-Region Enable; + * 6) MPU Protection Region size = 1GB; + * 7) Enable Region 0. + */ + MPU->RASR = 0x0308003B; + + /* Select Region 1 to configure. */ + MPU->RNR = 1; + /* Set base address of Region 1 to the base of Default RAM memory region(2GB). */ + MPU->RBAR = 0x60000000; + /* Region 1 setting: + * 1) Enable Instruction Access; + * 2) Full Data Access Permission; + * 3) Outer and inner Non-Cacheable; + * 4) Region Not Shared; + * 5) All Sub-Region Enable; + * 6) MPU Protection Region size = 2GB; + * 7) Enable Region 1. + */ + MPU->RASR = 0x0308003D; + + /* Select Region 2 to configure. */ + MPU->RNR = 2; + /* Set base address of Region 2 to the base of Cacheable OCRAM region(128KB). */ + MPU->RBAR = 0x20200000; + /* Region 2 setting: + * 1) Enable Instruction Access; + * 2) Full Data Access Permission; + * 3) Write Back, Write Allocate; + * 4) Region Not Shared; + * 5) All Sub-Region Enable; + * 6) MPU Protection Region size = 128KB; + * 7) Enable Region 2. + */ + MPU->RASR = 0x030B0021; + + /* Select Region 3 to configure. */ + MPU->RNR = 3; + /* Set base address of Region 3 to the base of Cacheable QSPI Flash region(2MB). */ + MPU->RBAR = 0x60000000; + /* Region 3 setting: + * 1) Enable Instruction Access; + * 2) Full Data Access Permission; + * 3) Write Back, Write Allocate; + * 4) Region Not Shared; + * 5) All Sub-Region Enable; + * 6) MPU Protection Region size = 2MB; + * 7) Enable Region 3. + */ + MPU->RASR = 0x030B0029; - /* relocate vector table */ + /* Select Region 4 to configure. */ + MPU->RNR = 4; + /* Set base address of Region 4 to the base of Cacheable DDR RAM region(2MB). */ + MPU->RBAR = 0x80000000; + /* Region 4 setting: + * 1) Enable Instruction Access; + * 2) Full Data Access Permission; + * 3) Write Back, Write Allocate; + * 4) Region Not Shared; + * 5) All Sub-Region Enable; + * 6) MPU Protection Region size = 2MB; + * 7) Enable Region 4. + */ + MPU->RASR = 0x030B0029; + + /* Disable unused regions. */ + MPU->RNR = 5; + MPU->RBAR = 0; + MPU->RASR = 0; + MPU->RNR = 6; + MPU->RBAR = 0; + MPU->RASR = 0; + MPU->RNR = 7; + MPU->RBAR = 0; + MPU->RASR = 0; + + /* Enable Privileged default memory map and the MPU. */ + MPU->CTRL = MPU_CTRL_ENABLE_Msk | + MPU_CTRL_PRIVDEFENA_Msk; + /* Memory barriers to ensure subsequence data & instruction + * transfers using updated MPU settings. + */ + __DSB(); + __ISB(); + + /* Initialize Cache */ + /* Enable System Bus Cache */ + /* set command to invalidate all ways, enable write buffer + and write GO bit to initiate command */ + LMEM_PSCCR = LMEM_PSCCR_INVW1_MASK | LMEM_PSCCR_INVW0_MASK; + LMEM_PSCCR |= LMEM_PSCCR_GO_MASK; + /* wait until the command completes */ + while (LMEM_PSCCR & LMEM_PSCCR_GO_MASK); + /* Enable cache, enable write buffer */ + LMEM_PSCCR = (LMEM_PSCCR_ENWRBUF_MASK | LMEM_PSCCR_ENCACHE_MASK); + __DSB(); + __ISB(); + + /* Relocate vector table */ #if defined(__CC_ARM) - SCB->VTOR = (uint32_t)Image$$ER_m_text$$Base + VECT_TAB_OFFSET; + SCB->VTOR = (uint32_t)Image$$VECTOR_ROM$$Base + VECT_TAB_OFFSET; #else SCB->VTOR = (uint32_t)__VECTOR_TABLE + VECT_TAB_OFFSET; #endif @@ -76,10 +190,204 @@ void SystemInit(void) /* ---------------------------------------------------------------------------- -- SystemCoreClockUpdate() ---------------------------------------------------------------------------- */ - void SystemCoreClockUpdate(void) { - SystemCoreClock = 240000000; + uint8_t coreClockRoot = EXTRACT_BITFIELD(&CCM_TARGET_ROOT1, 24, 3); + uint8_t coreClockPreDiv = EXTRACT_BITFIELD(&CCM_TARGET_ROOT1, 16, 3) + 1; + uint8_t coreClockPostDiv = EXTRACT_BITFIELD(&CCM_TARGET_ROOT1, 0, 6) + 1; + float temp; + + switch (coreClockRoot) + { + /* OSC_24M: */ + case 0: + SystemCoreClock = 24000000ul; + break; + + /* SYS_PLL_DIV2: */ + case 1: + /* Check SYS PLL bypass bit. */ + if (!EXTRACT_BITFIELD(&CCM_ANALOG_PLL_480_REG(CCM_ANALOG), 16, 1)) + { + SystemCoreClock = (1 == EXTRACT_BITFIELD(&CCM_ANALOG_PLL_480_REG(CCM_ANALOG), \ + 0, 1)) ? 264000000ul : 240000000ul; + } + else + { + SystemCoreClock = 24000000ul; + } + break; + + /* ENET_PLL_DIV4: */ + case 2: + /* Check ENET PLL bypass bit. */ + if (!EXTRACT_BITFIELD(&CCM_ANALOG_PLL_ENET_REG(CCM_ANALOG), 16, 1)) + SystemCoreClock = 250000000ul; + else + SystemCoreClock = 24000000ul; + break; + + /* SYS_PLL_PFD2: */ + case 3: + /* Check SYS SYS PLL bypass bit. */ + if (!EXTRACT_BITFIELD(&CCM_ANALOG_PLL_480_REG(CCM_ANALOG), 16, 1)) + { + SystemCoreClock = (1 == EXTRACT_BITFIELD(&CCM_ANALOG_PLL_480_REG(CCM_ANALOG), \ + 0, 1)) ? 528000000ul : 480000000ul; + SystemCoreClock /= EXTRACT_BITFIELD(&CCM_ANALOG_PFD_480A_REG(CCM_ANALOG), 16, 6); + SystemCoreClock *= 18; + } + else + { + SystemCoreClock = 24000000ul; + } + break; + + /* DDR_PLL_DIV2: */ + case 4: + /* Check DDR PLL bypass bit. */ + if (!EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_REG(CCM_ANALOG), 16, 1)) + { + if (1 == EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_SS_REG(CCM_ANALOG), 15, 1)) + { + temp = (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_SS_REG(CCM_ANALOG), 0, 15) / + (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_DENOM_REG(CCM_ANALOG), 0, 30) * + (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_NUM_REG(CCM_ANALOG), 0, 30); + temp += EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_REG(CCM_ANALOG), 0, 7); + SystemCoreClock = (uint32_t)(24000000ul * temp); + } + else + SystemCoreClock = 24000000ul * EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_REG(CCM_ANALOG), 0, 7); + + switch (EXTRACT_BITFIELD(&CCM_ANALOG_PLL_DDR_REG(CCM_ANALOG), 21, 2)) + { + case 0: + SystemCoreClock >>= 2; + break; + case 1: + SystemCoreClock >>= 1; + break; + case 2: + case 3: + break; + } + + SystemCoreClock >>= 1; + } + else + { + SystemCoreClock = 24000000ul; + } + break; + + /* AUDIO_PLL: */ + case 5: + /* Check AUDIO PLL bypass bit. */ + if (!EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG), 16, 1)) + { + if (1 == EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_SS_REG(CCM_ANALOG), 15, 1)) + { + temp = (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_SS_REG(CCM_ANALOG), 0, 15) / + (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_DENOM_REG(CCM_ANALOG), 0, 30) * + (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_NUM_REG(CCM_ANALOG), 0, 30); + temp += EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG), 0, 7); + SystemCoreClock = (uint32_t)(24000000ul * temp); + } + else + SystemCoreClock = 24000000ul * EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG), 0, 7); + + switch (EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG), 19, 2)) + { + case 0x0: + SystemCoreClock >>= 2; + break; + case 0x1: + SystemCoreClock >>= 1; + break; + case 0x2: + case 0x3: + break; + } + + switch (EXTRACT_BITFIELD(&CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG), 22, 2)) + { + case 0x0: + case 0x2: + break; + case 0x1: + SystemCoreClock >>= 1; + break; + case 0x3: + SystemCoreClock >>= 2; + break; + } + } + else + { + SystemCoreClock = 24000000ul; + } + break; + + /* VIDEO_PLL: */ + case 6: + /* Check VIDEO PLL bypass bit. */ + if (!EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG), 16, 1)) + { + if (1 == EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_SS_REG(CCM_ANALOG), 15, 1)) + { + temp = (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_SS_REG(CCM_ANALOG), 0, 15) / + (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_DENOM_REG(CCM_ANALOG), 0, 30) * + (float)EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_NUM_REG(CCM_ANALOG), 0, 30); + temp += EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG), 0, 7); + SystemCoreClock = (uint32_t)(24000000ul * temp); + } + else + SystemCoreClock = 24000000ul * EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG), 0, 7); + + switch (EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG), 19, 2)) + { + case 0x0: + SystemCoreClock >>= 2; + break; + case 0x1: + SystemCoreClock >>= 1; + break; + case 0x2: + case 0x3: + break; + } + + switch (EXTRACT_BITFIELD(&CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG), 22, 2)) + { + case 0x0: + case 0x2: + break; + case 0x1: + SystemCoreClock >>= 1; + break; + case 0x3: + SystemCoreClock >>= 2; + break; + } + } + else + { + SystemCoreClock = 24000000ul; + } + break; + + /* USB_PLL: */ + case 7: + SystemCoreClock = 480000000ul; + break; + + default: + /* Set SystemCoreClock to default clock freq. */ + SystemCoreClock = 240000000ul; + break; + } + + SystemCoreClock = (SystemCoreClock / coreClockPreDiv) / coreClockPostDiv; } /******************************************************************************* diff --git a/platform/devices/device_imx.h b/platform/devices/device_imx.h index fe1b21b..b90fbcc 100644 --- a/platform/devices/device_imx.h +++ b/platform/devices/device_imx.h @@ -48,12 +48,14 @@ * * The CPU macro should be declared in the project or makefile. */ -#if defined(CPU_IMX6SX_M4) +#if defined(CPU_MCIMX6X_M4) /* CMSIS-style register definitions */ - #include "MCIMX6X/include/MCIMX6SX_M4.h" + #include "MCIMX6X/include/MCIMX6X_M4.h" + #define RDC_SEMAPHORE_MASTER_SELF (5) + #define SEMA4_PROCESSOR_SELF (1) -#elif defined(CPU_IMX7D_M4) +#elif defined(CPU_MCIMX7D_M4) /* CMSIS-style register definitions */ #include "MCIMX7D/include/MCIMX7D_M4.h" diff --git a/platform/drivers/inc/adc_imx7d.h b/platform/drivers/inc/adc_imx7d.h index d163c3a..a3d4eba 100644 --- a/platform/drivers/inc/adc_imx7d.h +++ b/platform/drivers/inc/adc_imx7d.h @@ -45,113 +45,98 @@ * Definitions ******************************************************************************/ -/*! - * @brief ADC module initialize structure. - */ +/*! @brief ADC module initialize structure. */ typedef struct _adc_init_config { - uint32_t sampleRate; /*!< The desired ADC sample rate.*/ - bool levelShifterEnable; /*!< The level shifter module configuration(Enable to power on ADC module).*/ + uint32_t sampleRate; /*!< The desired ADC sample rate.*/ + bool levelShifterEnable; /*!< The level shifter module configuration(Enable to power on ADC module).*/ } adc_init_config_t; -/*! - * @brief ADC logic channel initialize structure. - */ +/*! @brief ADC logic channel initialize structure. */ typedef struct _adc_logic_ch_init_config { - uint8_t inputChannel; /*!< The logic channel to be set.*/ - bool coutinuousEnable; /*!< Continuous sample mode enable configuration.*/ - uint32_t convertRate; /*!< The continuous rate when continuous sample enabled.*/ - bool averageEnable; /*!< Hardware average enable configuration.*/ - uint8_t averageNumber; /*!< The average number for hardware average function.*/ + uint32_t convertRate; /*!< The continuous rate when continuous sample enabled.*/ + uint8_t inputChannel; /*!< The logic channel to be set.*/ + uint8_t averageNumber; /*!< The average number for hardware average function.*/ + bool coutinuousEnable; /*!< Continuous sample mode enable configuration.*/ + bool averageEnable; /*!< Hardware average enable configuration.*/ } adc_logic_ch_init_config_t; -/*! - * @brief ADC logic channel selection enumeration. - */ +/*! @brief ADC logic channel selection enumeration. */ enum _adc_logic_ch_selection { - adcLogicChA = 0x0, /*!< ADC Logic Channel A.*/ - adcLogicChB = 0x1, /*!< ADC Logic Channel B.*/ - adcLogicChC = 0x2, /*!< ADC Logic Channel C.*/ - adcLogicChD = 0x3, /*!< ADC Logic Channel D.*/ - adcLogicChSW = 0x4 /*!< ADC Logic Channel Software.*/ + adcLogicChA = 0x0, /*!< ADC Logic Channel A.*/ + adcLogicChB = 0x1, /*!< ADC Logic Channel B.*/ + adcLogicChC = 0x2, /*!< ADC Logic Channel C.*/ + adcLogicChD = 0x3, /*!< ADC Logic Channel D.*/ + adcLogicChSW = 0x4, /*!< ADC Logic Channel Software.*/ }; -/*! - * @brief ADC hardware average number enumeration. - */ +/*! @brief ADC hardware average number enumeration. */ enum _adc_average_number { - adcAvgNum4 = 0x0, /*!< ADC Hardware Average Number is set to 4.*/ - adcAvgNum8 = 0x1, /*!< ADC Hardware Average Number is set to 8.*/ - adcAvgNum16 = 0x2, /*!< ADC Hardware Average Number is set to 16.*/ - adcAvgNum32 = 0x3 /*!< ADC Hardware Average Number is set to 32.*/ + adcAvgNum4 = 0x0, /*!< ADC Hardware Average Number is set to 4.*/ + adcAvgNum8 = 0x1, /*!< ADC Hardware Average Number is set to 8.*/ + adcAvgNum16 = 0x2, /*!< ADC Hardware Average Number is set to 16.*/ + adcAvgNum32 = 0x3, /*!< ADC Hardware Average Number is set to 32.*/ }; -/*! - * @brief ADC build-in comparer work mode configuration enumeration. - */ +/*! @brief ADC build-in comparer work mode configuration enumeration. */ enum _adc_compare_mode { - adcCmpModeDisable = 0x0, /*!< ADC build-in comparator is disabled.*/ - adcCmpModeGreaterThanLow = 0x1, /*!< ADC build-in comparator will be triggered when sample value greater than low threshold.*/ - adcCmpModeLessThanLow = 0x2, /*!< ADC build-in comparator will be triggered when sample value less than low threshold.*/ - adcCmpModeInInterval = 0x3, /*!< ADC build-in comparator will be triggered when sample value in interval between low and high threshold.*/ - adcCmpModeGreaterThanHigh = 0x5, /*!< ADC build-in comparator will be triggered when sample value greater than high threshold.*/ - adcCmpModeLessThanHigh = 0x6, /*!< ADC build-in comparator will be triggered when sample value less than high threshold.*/ - adcCmpModeOutOffInterval = 0x7 /*!< ADC build-in comparator will be triggered when sample value out of interval between low and high threshold.*/ + adcCmpModeDisable = 0x0, /*!< ADC build-in comparator is disabled.*/ + adcCmpModeGreaterThanLow = 0x1, /*!< ADC build-in comparator is triggered when sample value greater than low threshold.*/ + adcCmpModeLessThanLow = 0x2, /*!< ADC build-in comparator is triggered when sample value less than low threshold.*/ + adcCmpModeInInterval = 0x3, /*!< ADC build-in comparator is triggered when sample value in interval between low and high threshold.*/ + adcCmpModeGreaterThanHigh = 0x5, /*!< ADC build-in comparator is triggered when sample value greater than high threshold.*/ + adcCmpModeLessThanHigh = 0x6, /*!< ADC build-in comparator is triggered when sample value less than high threshold.*/ + adcCmpModeOutOffInterval = 0x7, /*!< ADC build-in comparator is triggered when sample value out of interval between low and high threshold.*/ }; -/*! - * @brief This enumeration contains the settings for all of the ADC - * interrupt configurations. - */ +/*! @brief This enumeration contains the settings for all of the ADC interrupt configurations. */ enum _adc_interrupt { - adcIntLastFifoDataRead = ADC_INT_EN_LAST_FIFO_DATA_READ_EN_MASK, - adcIntConvertTimeoutChSw = ADC_INT_EN_SW_CH_COV_TO_INT_EN_MASK, - adcIntConvertTimeoutChD = ADC_INT_EN_CHD_COV_TO_INT_EN_MASK, - adcIntConvertTimeoutChC = ADC_INT_EN_CHC_COV_TO_INT_EN_MASK, - adcIntConvertTimeoutChB = ADC_INT_EN_CHB_COV_TO_INT_EN_MASK, - adcIntConvertTimeoutChA = ADC_INT_EN_CHA_COV_TO_INT_EN_MASK, - adcIntConvertChSw = ADC_INT_EN_SW_CH_COV_INT_EN_MASK, - adcIntConvertChD = ADC_INT_EN_CHD_COV_INT_EN_MASK, - adcIntConvertChC = ADC_INT_EN_CHC_COV_INT_EN_MASK, - adcIntConvertChB = ADC_INT_EN_CHB_COV_INT_EN_MASK, - adcIntConvertChA = ADC_INT_EN_CHA_COV_INT_EN_MASK, - adcIntFifoOverrun = ADC_INT_EN_FIFO_OVERRUN_INT_EN_MASK, - adcIntFifoUnderrun = ADC_INT_EN_FIFO_UNDERRUN_INT_EN_MASK, - adcIntDmaReachWatermark = ADC_INT_EN_DMA_REACH_WM_INT_EN_MASK, - adcIntCmpChD = ADC_INT_EN_CHD_CMP_INT_EN_MASK, - adcIntCmpChC = ADC_INT_EN_CHC_CMP_INT_EN_MASK, - adcIntCmpChB = ADC_INT_EN_CHB_CMP_INT_EN_MASK, - adcIntCmpChA = ADC_INT_EN_CHA_CMP_INT_EN_MASK + adcIntLastFifoDataRead = ADC_INT_EN_LAST_FIFO_DATA_READ_EN_MASK, /*!< Last FIFO Data Read Interrupt Enable.*/ + adcIntConvertTimeoutChSw = ADC_INT_EN_SW_CH_COV_TO_INT_EN_MASK, /*!< Software Channel Conversion Time Out Interrupt Enable.*/ + adcIntConvertTimeoutChD = ADC_INT_EN_CHD_COV_TO_INT_EN_MASK, /*!< Channel D Conversion Time Out Interrupt Enable.*/ + adcIntConvertTimeoutChC = ADC_INT_EN_CHC_COV_TO_INT_EN_MASK, /*!< Channel C Conversion Time Out Interrupt Enable.*/ + adcIntConvertTimeoutChB = ADC_INT_EN_CHB_COV_TO_INT_EN_MASK, /*!< Channel B Conversion Time Out Interrupt Enable.*/ + adcIntConvertTimeoutChA = ADC_INT_EN_CHA_COV_TO_INT_EN_MASK, /*!< Channel A Conversion Time Out Interrupt Enable.*/ + adcIntConvertChSw = ADC_INT_EN_SW_CH_COV_INT_EN_MASK, /*!< Software Channel Conversion Interrupt Enable.*/ + adcIntConvertChD = ADC_INT_EN_CHD_COV_INT_EN_MASK, /*!< Channel D Conversion Interrupt Enable.*/ + adcIntConvertChC = ADC_INT_EN_CHC_COV_INT_EN_MASK, /*!< Channel C Conversion Interrupt Enable.*/ + adcIntConvertChB = ADC_INT_EN_CHB_COV_INT_EN_MASK, /*!< Channel B Conversion Interrupt Enable.*/ + adcIntConvertChA = ADC_INT_EN_CHA_COV_INT_EN_MASK, /*!< Channel A Conversion Interrupt Enable.*/ + adcIntFifoOverrun = ADC_INT_EN_FIFO_OVERRUN_INT_EN_MASK, /*!< FIFO overrun Interrupt Enable.*/ + adcIntFifoUnderrun = ADC_INT_EN_FIFO_UNDERRUN_INT_EN_MASK, /*!< FIFO underrun Interrupt Enable.*/ + adcIntDmaReachWatermark = ADC_INT_EN_DMA_REACH_WM_INT_EN_MASK, /*!< DMA Reach Watermark Level Interrupt Enable.*/ + adcIntCmpChD = ADC_INT_EN_CHD_CMP_INT_EN_MASK, /*!< Channel D Compare Interrupt Enable.*/ + adcIntCmpChC = ADC_INT_EN_CHC_CMP_INT_EN_MASK, /*!< Channel C Compare Interrupt Enable.*/ + adcIntCmpChB = ADC_INT_EN_CHB_CMP_INT_EN_MASK, /*!< Channel B Compare Interrupt Enable.*/ + adcIntCmpChA = ADC_INT_EN_CHA_CMP_INT_EN_MASK, /*!< Channel A Compare Interrupt Enable.*/ }; -/*! - * @brief Flag for ADC interrupt/DMA status check or polling status. - */ +/*! @brief Flag for ADC interrupt/DMA status check or polling status. */ enum _adc_status_flag { - adcStatusLastFifoDataRead = ADC_INT_STATUS_LAST_FIFO_DATA_READ_MASK, - adcStatusConvertTimeoutChSw = ADC_INT_STATUS_SW_CH_COV_TO_MASK, - adcStatusConvertTimeoutChD = ADC_INT_STATUS_CHD_COV_TO_MASK, - adcStatusConvertTimeoutChC = ADC_INT_STATUS_CHC_COV_TO_MASK, - adcStatusConvertTimeoutChB = ADC_INT_STATUS_CHB_COV_TO_MASK, - adcStatusConvertTimeoutChA = ADC_INT_STATUS_CHA_COV_TO_MASK, - adcStatusConvertChSw = ADC_INT_STATUS_SW_CH_COV_MASK, - adcStatusConvertChD = ADC_INT_STATUS_CHD_COV_MASK, - adcStatusConvertChC = ADC_INT_STATUS_CHC_COV_MASK, - adcStatusConvertChB = ADC_INT_STATUS_CHB_COV_MASK, - adcStatusConvertChA = ADC_INT_STATUS_CHA_COV_MASK, - adcStatusFifoOverrun = ADC_INT_STATUS_FIFO_OVERRUN_MASK, - adcStatusFifoUnderrun = ADC_INT_STATUS_FIFO_UNDERRUN_MASK, - adcStatusDmaReachWatermark = ADC_INT_STATUS_DMA_REACH_WM_MASK, - adcStatusCmpChD = ADC_INT_STATUS_CHD_CMP_MASK, - adcStatusCmpChC = ADC_INT_STATUS_CHC_CMP_MASK, - adcStatusCmpChB = ADC_INT_STATUS_CHB_CMP_MASK, - adcStatusCmpChA = ADC_INT_STATUS_CHA_CMP_MASK + adcStatusLastFifoDataRead = ADC_INT_STATUS_LAST_FIFO_DATA_READ_MASK, /*!< Last FIFO Data Read status flag.*/ + adcStatusConvertTimeoutChSw = ADC_INT_STATUS_SW_CH_COV_TO_MASK, /*!< Software Channel Conversion Time Out status flag.*/ + adcStatusConvertTimeoutChD = ADC_INT_STATUS_CHD_COV_TO_MASK, /*!< Channel D Conversion Time Out status flag.*/ + adcStatusConvertTimeoutChC = ADC_INT_STATUS_CHC_COV_TO_MASK, /*!< Channel C Conversion Time Out status flag.*/ + adcStatusConvertTimeoutChB = ADC_INT_STATUS_CHB_COV_TO_MASK, /*!< Channel B Conversion Time Out status flag.*/ + adcStatusConvertTimeoutChA = ADC_INT_STATUS_CHA_COV_TO_MASK, /*!< Channel A Conversion Time Out status flag.*/ + adcStatusConvertChSw = ADC_INT_STATUS_SW_CH_COV_MASK, /*!< Software Channel Conversion status flag.*/ + adcStatusConvertChD = ADC_INT_STATUS_CHD_COV_MASK, /*!< Channel D Conversion status flag.*/ + adcStatusConvertChC = ADC_INT_STATUS_CHC_COV_MASK, /*!< Channel C Conversion status flag.*/ + adcStatusConvertChB = ADC_INT_STATUS_CHB_COV_MASK, /*!< Channel B Conversion status flag.*/ + adcStatusConvertChA = ADC_INT_STATUS_CHA_COV_MASK, /*!< Channel A Conversion status flag.*/ + adcStatusFifoOverrun = ADC_INT_STATUS_FIFO_OVERRUN_MASK, /*!< FIFO Overrun status flag.*/ + adcStatusFifoUnderrun = ADC_INT_STATUS_FIFO_UNDERRUN_MASK, /*!< FIFO Underrun status flag.*/ + adcStatusDmaReachWatermark = ADC_INT_STATUS_DMA_REACH_WM_MASK, /*!< DMA Reach Watermark Level status flag.*/ + adcStatusCmpChD = ADC_INT_STATUS_CHD_CMP_MASK, /*!< Channel D Compare status flag.*/ + adcStatusCmpChC = ADC_INT_STATUS_CHC_CMP_MASK, /*!< Channel C Compare status flag.*/ + adcStatusCmpChB = ADC_INT_STATUS_CHB_CMP_MASK, /*!< Channel B Compare status flag.*/ + adcStatusCmpChA = ADC_INT_STATUS_CHA_CMP_MASK, /*!< Channel A Compare status flag.*/ }; /******************************************************************************* @@ -173,7 +158,7 @@ extern "C" { * @param base ADC base pointer. * @param initConfig ADC initialize structure. */ -void ADC_Init(ADC_Type* base, adc_init_config_t* initConfig); +void ADC_Init(ADC_Type* base, const adc_init_config_t* initConfig); /*! * @brief This function reset ADC module register content to its default value. @@ -184,7 +169,7 @@ void ADC_Deinit(ADC_Type* base); /*! * @brief This function Enable ADC module build-in Level Shifter. - * For iMX7D, Level Shifter should always be enabled. + * For i.MX 7Dual, Level Shifter should always be enabled. * User can disable Level Shifter to save power. * * @param base ADC base pointer. @@ -224,7 +209,8 @@ void ADC_SetSampleRate(ADC_Type* base, uint32_t sampleRate); * @brief This function is used to stop all digital part power. * * @param base ADC base pointer. - * @param clockDown - true: Clock down. + * @param clockDown Stop all ADC digital part or not. + * - true: Clock down. * - false: Clock running. */ void ADC_SetClockDownCmd(ADC_Type* base, bool clockDown); @@ -233,7 +219,8 @@ void ADC_SetClockDownCmd(ADC_Type* base, bool clockDown); * @brief This function is used to power down ADC analogue core. * Before entering into stop-mode, power down ADC analogue core first. * @param base ADC base pointer. - * @param powerDown - true: Power down the ADC analogue core. + * @param powerDown Power down ADC analogue core or not. + * - true: Power down the ADC analogue core. * - false: Do not power down the ADC analogue core. */ void ADC_SetPowerDownCmd(ADC_Type* base, bool powerDown); @@ -249,16 +236,16 @@ void ADC_SetPowerDownCmd(ADC_Type* base, bool powerDown); * @brief Initialize ADC Logic channel with initialize structure. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). * @param chInitConfig ADC logic channel initialize structure. */ -void ADC_LogicChInit(ADC_Type* base, uint8_t logicCh, adc_logic_ch_init_config_t* chInitConfig); +void ADC_LogicChInit(ADC_Type* base, uint8_t logicCh, const adc_logic_ch_init_config_t* chInitConfig); /*! * @brief Reset target ADC logic channel registers to default value. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). */ void ADC_LogicChDeinit(ADC_Type* base, uint8_t logicCh); @@ -266,7 +253,7 @@ void ADC_LogicChDeinit(ADC_Type* base, uint8_t logicCh); * @brief Select input channel for target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). * @param inputCh Input channel selection for target logic channel(vary from 0 to 15). */ void ADC_SelectInputCh(ADC_Type* base, uint8_t logicCh, uint8_t inputCh); @@ -275,7 +262,7 @@ void ADC_SelectInputCh(ADC_Type* base, uint8_t logicCh, uint8_t inputCh); * @brief Set ADC conversion rate of target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). * @param convertRate ADC conversion rate in Hz. */ void ADC_SetConvertRate(ADC_Type* base, uint8_t logicCh, uint32_t convertRate); @@ -284,9 +271,10 @@ void ADC_SetConvertRate(ADC_Type* base, uint8_t logicCh, uint32_t convertRate); * @brief Set work state of hardware average feature of target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). - * @param enable - true: Enable hardware average. - * - faluse: Disable hardware average. + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). + * @param enable Enable/Disable hardware average + * - true: Enable hardware average of given logic channel. + * - false: Disable hardware average of given logic channel. */ void ADC_SetAverageCmd(ADC_Type* base, uint8_t logicCh, bool enable); @@ -294,8 +282,8 @@ void ADC_SetAverageCmd(ADC_Type* base, uint8_t logicCh, bool enable); * @brief Set hardware average number of target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). - * @param avgNum hardware average number(should select from _adc_average_number enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). + * @param avgNum hardware average number(should select from @ref _adc_average_number enumeration). */ void ADC_SetAverageNum(ADC_Type* base, uint8_t logicCh, uint8_t avgNum); @@ -310,9 +298,10 @@ void ADC_SetAverageNum(ADC_Type* base, uint8_t logicCh, uint8_t avgNum); * @brief Set continuous convert work mode of target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). - * @param enable - true: Enable continuous convert. - * - false: Disable continuous convert. + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). + * @param enable Enable/Disable continuous convertion. + * - true: Enable continuous convertion. + * - false: Disable continuous convertion. */ void ADC_SetConvertCmd(ADC_Type* base, uint8_t logicCh, bool enable); @@ -320,15 +309,24 @@ void ADC_SetConvertCmd(ADC_Type* base, uint8_t logicCh, bool enable); * @brief Trigger single time convert on target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). */ void ADC_TriggerSingleConvert(ADC_Type* base, uint8_t logicCh); +/*! + * @brief Stop current convert on target logic channel. + * For logic channel A ~ D, current conversion will stop immediately. + * For Software channel, this function will be waited until current conversion finished. + * @param base ADC base pointer. + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). + */ +void ADC_StopConvert(ADC_Type* base, uint8_t logicCh); + /*! * @brief Get 12-bit length right aligned convert result. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). * @return convert result on target logic channel. */ uint16_t ADC_GetConvertResult(ADC_Type* base, uint8_t logicCh); @@ -344,8 +342,8 @@ uint16_t ADC_GetConvertResult(ADC_Type* base, uint8_t logicCh); * @brief Set the work mode of ADC module build-in comparer on target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). - * @param cmpMode Comparer work mode selected from _adc_compare_mode enumeration. + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). + * @param cmpMode Comparer work mode selected from @ref _adc_compare_mode enumeration. */ void ADC_SetCmpMode(ADC_Type* base, uint8_t logicCh, uint8_t cmpMode); @@ -353,7 +351,7 @@ void ADC_SetCmpMode(ADC_Type* base, uint8_t logicCh, uint8_t cmpMode); * @brief Set ADC module build-in comparer high threshold on target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). * @param threshold Comparer threshold in 12-bit unsigned int formate. */ void ADC_SetCmpHighThres(ADC_Type* base, uint8_t logicCh, uint16_t threshold); @@ -362,7 +360,7 @@ void ADC_SetCmpHighThres(ADC_Type* base, uint8_t logicCh, uint16_t threshold); * @brief Set ADC module build-in comparer low threshold on target logic channel. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). * @param threshold Comparer threshold in 12-bit unsigned int formate. */ void ADC_SetCmpLowThres(ADC_Type* base, uint8_t logicCh, uint16_t threshold); @@ -372,9 +370,10 @@ void ADC_SetCmpLowThres(ADC_Type* base, uint8_t logicCh, uint16_t threshold); * This feature can disable continuous conversion when CMP condition matched. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). - * @param enable - true: Enable Auto Disable feature. - * - false: Disable Auto Disable feature. + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). + * @param enable Enable/Disable Auto Disable feature. + * - true: Enable Auto Disable feature. + * - false: Disable Auto Disable feature. */ void ADC_SetAutoDisableCmd(ADC_Type* base, uint8_t logicCh, bool enable); @@ -389,8 +388,10 @@ void ADC_SetAutoDisableCmd(ADC_Type* base, uint8_t logicCh, bool enable); * @brief Enables or disables ADC interrupt requests. * * @param base ADC base pointer. - * @param intSource ADC interrupt sources to config. - * @param enable Pass true to enable interrupt, false to disable. + * @param intSource ADC interrupt sources to configuration. + * @param enable Enable/Disable given ADC interrupt. + * - true: Enable given ADC interrupt. + * - false: Disable given ADC interrupt. */ void ADC_SetIntCmd(ADC_Type* base, uint32_t intSource, bool enable); @@ -398,8 +399,10 @@ void ADC_SetIntCmd(ADC_Type* base, uint32_t intSource, bool enable); * @brief Enables or disables ADC interrupt flag when interrupt condition met. * * @param base ADC base pointer. - * @param intSignal ADC interrupt signals to config. - * @param intSignal Should be select from _adc_interrupt enumeration. + * @param intSignal ADC interrupt signals to configuration (see @ref _adc_interrupt enumeration). + * @param enable Enable/Disable given ADC interrupt flags. + * - true: Enable given ADC interrupt flags. + * - false: Disable given ADC interrupt flags. */ void ADC_SetIntSigCmd(ADC_Type* base, uint32_t intSignal, bool enable); @@ -407,7 +410,7 @@ void ADC_SetIntSigCmd(ADC_Type* base, uint32_t intSignal, bool enable); * @brief Gets the ADC status flag state. * * @param base ADC base pointer. - * @param flags ADC status flag mask defined in _adc_status_flag enumeration. + * @param flags ADC status flag mask defined in @ref _adc_status_flag enumeration. * @return ADC status, each bit represents one status flag */ static inline uint32_t ADC_GetStatusFlag(ADC_Type* base, uint32_t flags) @@ -419,7 +422,7 @@ static inline uint32_t ADC_GetStatusFlag(ADC_Type* base, uint32_t flags) * @brief Clear one or more ADC status flag state. * * @param base ADC base pointer. - * @param flags ADC status flag mask defined in _adc_status_flag enumeration. + * @param flags ADC status flag mask defined in @ref _adc_status_flag enumeration. */ static inline void ADC_ClearStatusFlag(ADC_Type* base, uint32_t flags) { @@ -437,8 +440,9 @@ static inline void ADC_ClearStatusFlag(ADC_Type* base, uint32_t flags) * @brief Set the reset state of ADC internal DMA part. * * @param base ADC base pointer. - * @param active - true :Reset the DMA and DMA FIFO return to its reset value. - * - false :de-active DMA reset. + * @param active Reset DMA & DMA FIFO or not. + * - true: Reset the DMA and DMA FIFO return to its reset value. + * - false: Do not reset DMA and DMA FIFO. */ void ADC_SetDmaReset(ADC_Type* base, bool active); @@ -446,8 +450,9 @@ void ADC_SetDmaReset(ADC_Type* base, bool active); * @brief Set the work mode of ADC DMA part. * * @param base ADC base pointer. - * @param enable - true :Enable DMA, the data in DMA FIFO should move by SDMA. - * - false :Disable DMA, the data in DMA FIFO can only move by CPU. + * @param enable Enable/Disable ADC DMA part. + * - true: Enable DMA, the data in DMA FIFO should move by SDMA. + * - false: Disable DMA, the data in DMA FIFO can only move by CPU. */ void ADC_SetDmaCmd(ADC_Type* base, bool enable); @@ -455,16 +460,17 @@ void ADC_SetDmaCmd(ADC_Type* base, bool enable); * @brief Set the work mode of ADC DMA FIFO part. * * @param base ADC base pointer. - * @param enable - true :Enable DMA FIFO. - * - false :Disable DMA FIFO. + * @param enable Enable/Disable DMA FIFO. + * - true: Enable DMA FIFO. + * - false: Disable DMA FIFO. */ void ADC_SetDmaFifoCmd(ADC_Type* base, bool enable); /*! - * @brief Select the logic channel that will use DMA transfer. + * @brief Select the logic channel that uses the DMA transfer. * * @param base ADC base pointer. - * @param logicCh ADC module logic channel selection(refer to _adc_logic_ch_selection enumeration). + * @param logicCh ADC module logic channel selection (see @ref _adc_logic_ch_selection enumeration). */ static inline void ADC_SetDmaCh(ADC_Type* base, uint32_t logicCh) { @@ -504,8 +510,8 @@ static inline uint32_t ADC_GetFifoData(ADC_Type* base) * @brief Get the DMA FIFO full status * * @param base ADC base pointer. - * @return - true: DMA FIFO full - * - false: DMA FIFO not full + * @retval true: DMA FIFO full. + * @retval false: DMA FIFO not full. */ static inline bool ADC_IsFifoFull(ADC_Type* base) { @@ -516,8 +522,8 @@ static inline bool ADC_IsFifoFull(ADC_Type* base) * @brief Get the DMA FIFO empty status * * @param base ADC base pointer. - * @return - true: DMA FIFO empty - * - false: DMA FIFO not empty + * @retval true: DMA FIFO is empty. + * @retval false: DMA FIFO is not empty. */ static inline bool ADC_IsFifoEmpty(ADC_Type* base) { diff --git a/platform/drivers/inc/ccm_analog_imx7d.h b/platform/drivers/inc/ccm_analog_imx7d.h index 675ae1d..0b5f2a1 100644 --- a/platform/drivers/inc/ccm_analog_imx7d.h +++ b/platform/drivers/inc/ccm_analog_imx7d.h @@ -56,108 +56,104 @@ * @brief PLL control names for PLL power/bypass/lock operations. * * These constants define the PLL control names for PLL power/bypass/lock operations.\n - * 0:15 : REG offset to CCM_ANALOG_BASE in bytes\n - * 16:20 : Powerdown bit shift + * - 0:15: REG offset to CCM_ANALOG_BASE in bytes. + * - 16:20: Power down bit shift. */ -enum _ccm_analog_pll_control { - ccmAnalogPllArmControl = CCM_ANALOG_TUPLE(PLL_ARM, CCM_ANALOG_PLL_ARM_POWERDOWN_SHIFT), - ccmAnalogPllDdrControl = CCM_ANALOG_TUPLE(PLL_DDR, CCM_ANALOG_PLL_DDR_POWERDOWN_SHIFT), - ccmAnalogPll480Control = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_POWERDOWN_SHIFT), - ccmAnalogPllEnetControl = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_POWERDOWN_SHIFT), - ccmAnalogPllAudioControl = CCM_ANALOG_TUPLE(PLL_AUDIO, CCM_ANALOG_PLL_AUDIO_POWERDOWN_SHIFT), - ccmAnalogPllVideoControl = CCM_ANALOG_TUPLE(PLL_VIDEO, CCM_ANALOG_PLL_VIDEO_POWERDOWN_SHIFT) +enum _ccm_analog_pll_control +{ + ccmAnalogPllArmControl = CCM_ANALOG_TUPLE(PLL_ARM, CCM_ANALOG_PLL_ARM_POWERDOWN_SHIFT), /*!< CCM Analog ARM PLL Control.*/ + ccmAnalogPllDdrControl = CCM_ANALOG_TUPLE(PLL_DDR, CCM_ANALOG_PLL_DDR_POWERDOWN_SHIFT), /*!< CCM Analog DDR PLL Control.*/ + ccmAnalogPll480Control = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_POWERDOWN_SHIFT), /*!< CCM Analog 480M PLL Control.*/ + ccmAnalogPllEnetControl = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_POWERDOWN_SHIFT), /*!< CCM Analog Ethernet PLL Control.*/ + ccmAnalogPllAudioControl = CCM_ANALOG_TUPLE(PLL_AUDIO, CCM_ANALOG_PLL_AUDIO_POWERDOWN_SHIFT), /*!< CCM Analog AUDIO PLL Control.*/ + ccmAnalogPllVideoControl = CCM_ANALOG_TUPLE(PLL_VIDEO, CCM_ANALOG_PLL_VIDEO_POWERDOWN_SHIFT), /*!< CCM Analog VIDEO PLL Control.*/ }; /*! * @brief PLL clock names for clock enable/disable settings. * * These constants define the PLL clock names for PLL clock enable/disable operations.\n - * 0:15 : REG offset to CCM_ANALOG_BASE in bytes\n - * 16:20 : Clock enable bit shift + * - 0:15: REG offset to CCM_ANALOG_BASE in bytes. + * - 16:20: Clock enable bit shift. */ -enum _ccm_analog_pll_clock { - ccmAnalogPllArmClock = CCM_ANALOG_TUPLE(PLL_ARM, CCM_ANALOG_PLL_ARM_ENABLE_CLK_SHIFT), - - ccmAnalogPllDdrClock = CCM_ANALOG_TUPLE(PLL_DDR, CCM_ANALOG_PLL_DDR_ENABLE_CLK_SHIFT), - ccmAnalogPllDdrDiv2Clock = CCM_ANALOG_TUPLE(PLL_DDR, CCM_ANALOG_PLL_DDR_DIV2_ENABLE_CLK_SHIFT), - - ccmAnalogPll480Clock = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_ENABLE_CLK_SHIFT), - - ccmAnalogPllEnet25MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_25MHZ_SHIFT), - ccmAnalogPllEnet40MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_40MHZ_SHIFT), - ccmAnalogPllEnet50MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_50MHZ_SHIFT), - ccmAnalogPllEnet100MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_100MHZ_SHIFT), - ccmAnalogPllEnet125MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_125MHZ_SHIFT), - ccmAnalogPllEnet250MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_250MHZ_SHIFT), - ccmAnalogPllEnet500MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_500MHZ_SHIFT), - - ccmAnalogPllAudioClock = CCM_ANALOG_TUPLE(PLL_AUDIO, CCM_ANALOG_PLL_AUDIO_ENABLE_CLK_SHIFT), - ccmAnalogPllVideoClock = CCM_ANALOG_TUPLE(PLL_VIDEO, CCM_ANALOG_PLL_VIDEO_ENABLE_CLK_SHIFT) +enum _ccm_analog_pll_clock +{ + ccmAnalogPllArmClock = CCM_ANALOG_TUPLE(PLL_ARM, CCM_ANALOG_PLL_ARM_ENABLE_CLK_SHIFT), /*!< CCM Analog ARM PLL Clock.*/ + ccmAnalogPllDdrClock = CCM_ANALOG_TUPLE(PLL_DDR, CCM_ANALOG_PLL_DDR_ENABLE_CLK_SHIFT), /*!< CCM Analog DDR PLL Clock.*/ + ccmAnalogPllDdrDiv2Clock = CCM_ANALOG_TUPLE(PLL_DDR, CCM_ANALOG_PLL_DDR_DIV2_ENABLE_CLK_SHIFT), /*!< CCM Analog DDR PLL divided by 2 Clock.*/ + ccmAnalogPll480Clock = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_ENABLE_CLK_SHIFT), /*!< CCM Analog 480M PLL Clock.*/ + ccmAnalogPllEnet25MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_25MHZ_SHIFT), /*!< CCM Analog Ethernet 25M PLL Clock.*/ + ccmAnalogPllEnet40MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_40MHZ_SHIFT), /*!< CCM Analog Ethernet 40M PLL Clock.*/ + ccmAnalogPllEnet50MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_50MHZ_SHIFT), /*!< CCM Analog Ethernet 50M PLL Clock.*/ + ccmAnalogPllEnet100MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_100MHZ_SHIFT), /*!< CCM Analog Ethernet 100M PLL Clock.*/ + ccmAnalogPllEnet125MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_125MHZ_SHIFT), /*!< CCM Analog Ethernet 125M PLL Clock.*/ + ccmAnalogPllEnet250MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_250MHZ_SHIFT), /*!< CCM Analog Ethernet 250M PLL Clock.*/ + ccmAnalogPllEnet500MhzClock = CCM_ANALOG_TUPLE(PLL_ENET, CCM_ANALOG_PLL_ENET_ENABLE_CLK_500MHZ_SHIFT), /*!< CCM Analog Ethernet 500M PLL Clock.*/ + ccmAnalogPllAudioClock = CCM_ANALOG_TUPLE(PLL_AUDIO, CCM_ANALOG_PLL_AUDIO_ENABLE_CLK_SHIFT), /*!< CCM Analog AUDIO PLL Clock.*/ + ccmAnalogPllVideoClock = CCM_ANALOG_TUPLE(PLL_VIDEO, CCM_ANALOG_PLL_VIDEO_ENABLE_CLK_SHIFT), /*!< CCM Analog VIDEO PLL Clock.*/ }; /*! * @brief PFD gate names for clock gate settings, clock source is system PLL(PLL_480) * * These constants define the PFD gate names for PFD clock enable/disable operations.\n - * 0:15 : REG offset to CCM_ANALOG_BASE in bytes\n - * 16:20 : Clock gate bit shift + * - 0:15: REG offset to CCM_ANALOG_BASE in bytes. + * - 16:20: Clock gate bit shift. */ -enum _ccm_analog_pfd_clkgate { - ccmAnalogMainDiv1ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_MAIN_DIV1_CLKGATE_SHIFT), - ccmAnalogMainDiv2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_MAIN_DIV2_CLKGATE_SHIFT), - ccmAnalogMainDiv4ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_MAIN_DIV4_CLKGATE_SHIFT), - - ccmAnalogPfd0Div2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_PFD0_DIV2_CLKGATE_SHIFT), - ccmAnalogPfd1Div2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_PFD1_DIV2_CLKGATE_SHIFT), - ccmAnalogPfd2Div2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_PFD2_DIV2_CLKGATE_SHIFT), - - ccmAnalogPfd0Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD0_DIV1_CLKGATE_SHIFT), - ccmAnalogPfd1Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD1_DIV1_CLKGATE_SHIFT), - ccmAnalogPfd2Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD2_DIV1_CLKGATE_SHIFT), - ccmAnalogPfd3Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD3_DIV1_CLKGATE_SHIFT), - - ccmAnalogPfd4Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD4_DIV1_CLKGATE_SHIFT), - ccmAnalogPfd5Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD5_DIV1_CLKGATE_SHIFT), - ccmAnalogPfd6Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD6_DIV1_CLKGATE_SHIFT), - ccmAnalogPfd7Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD7_DIV1_CLKGATE_SHIFT) +enum _ccm_analog_pfd_clkgate +{ + ccmAnalogMainDiv1ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_MAIN_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480 MAIN DIV1 Clock Gate.*/ + ccmAnalogMainDiv2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_MAIN_DIV2_CLKGATE_SHIFT), /*!< CCM Analog 480 MAIN DIV2 Clock Gate.*/ + ccmAnalogMainDiv4ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_MAIN_DIV4_CLKGATE_SHIFT), /*!< CCM Analog 480 MAIN DIV4 Clock Gate.*/ + ccmAnalogPfd0Div2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_PFD0_DIV2_CLKGATE_SHIFT), /*!< CCM Analog 480 PFD0 DIV2 Clock Gate.*/ + ccmAnalogPfd1Div2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_PFD1_DIV2_CLKGATE_SHIFT), /*!< CCM Analog 480 PFD1 DIV2 Clock Gate.*/ + ccmAnalogPfd2Div2ClkGate = CCM_ANALOG_TUPLE(PLL_480, CCM_ANALOG_PLL_480_PFD2_DIV2_CLKGATE_SHIFT), /*!< CCM Analog 480 PFD2 DIV2 Clock Gate.*/ + ccmAnalogPfd0Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD0_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480A PFD0 DIV1 Clock Gate.*/ + ccmAnalogPfd1Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD1_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480A PFD1 DIV1 Clock Gate.*/ + ccmAnalogPfd2Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD2_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480A PFD2 DIV1 Clock Gate.*/ + ccmAnalogPfd3Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD3_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480A PFD3 DIV1 Clock Gate.*/ + ccmAnalogPfd4Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD4_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480B PFD4 DIV1 Clock Gate.*/ + ccmAnalogPfd5Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD5_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480B PFD5 DIV1 Clock Gate.*/ + ccmAnalogPfd6Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD6_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480B PFD6 DIV1 Clock Gate.*/ + ccmAnalogPfd7Div1ClkGate = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD7_DIV1_CLKGATE_SHIFT), /*!< CCM Analog 480B PFD7 DIV1 Clock Gate.*/ }; /*! * @brief PFD fraction names for clock fractional divider operations * * These constants define the PFD fraction names for PFD fractional divider operations.\n - * 0:15 : REG offset to CCM_ANALOG_BASE in bytes\n - * 16:20 : Fraction bits shift + * - 0:15: REG offset to CCM_ANALOG_BASE in bytes. + * - 16:20: Fraction bits shift. */ -enum _ccm_analog_pfd_frac { - ccmAnalogPfd0Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD0_FRAC_SHIFT), - ccmAnalogPfd1Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD1_FRAC_SHIFT), - ccmAnalogPfd2Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD2_FRAC_SHIFT), - ccmAnalogPfd3Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD3_FRAC_SHIFT), - - ccmAnalogPfd4Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD4_FRAC_SHIFT), - ccmAnalogPfd5Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD5_FRAC_SHIFT), - ccmAnalogPfd6Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD6_FRAC_SHIFT), - ccmAnalogPfd7Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD7_FRAC_SHIFT) +enum _ccm_analog_pfd_frac +{ + ccmAnalogPfd0Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD0_FRAC_SHIFT), /*!< CCM Analog 480A PFD0 fractional divider.*/ + ccmAnalogPfd1Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD1_FRAC_SHIFT), /*!< CCM Analog 480A PFD1 fractional divider.*/ + ccmAnalogPfd2Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD2_FRAC_SHIFT), /*!< CCM Analog 480A PFD2 fractional divider.*/ + ccmAnalogPfd3Frac = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD3_FRAC_SHIFT), /*!< CCM Analog 480A PFD3 fractional divider.*/ + ccmAnalogPfd4Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD4_FRAC_SHIFT), /*!< CCM Analog 480B PFD4 fractional divider.*/ + ccmAnalogPfd5Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD5_FRAC_SHIFT), /*!< CCM Analog 480B PFD5 fractional divider.*/ + ccmAnalogPfd6Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD6_FRAC_SHIFT), /*!< CCM Analog 480B PFD6 fractional divider.*/ + ccmAnalogPfd7Frac = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD7_FRAC_SHIFT), /*!< CCM Analog 480B PFD7 fractional divider.*/ }; /*! * @brief PFD stable names for clock stable query * * These constants define the PFD stable names for clock stable query.\n - * 0:15 : REG offset to CCM_ANALOG_BASE in bytes\n - * 16:20 : Stable bit shift + * - 0:15: REG offset to CCM_ANALOG_BASE in bytes. + * - 16:20: Stable bit shift. */ -enum _ccm_analog_pfd_stable { - ccmAnalogPfd0Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD0_STABLE_SHIFT), - ccmAnalogPfd1Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD1_STABLE_SHIFT), - ccmAnalogPfd2Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD2_STABLE_SHIFT), - ccmAnalogPfd3Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD3_STABLE_SHIFT), - - ccmAnalogPfd4Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD4_STABLE_SHIFT), - ccmAnalogPfd5Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD5_STABLE_SHIFT), - ccmAnalogPfd6Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD6_STABLE_SHIFT), - ccmAnalogPfd7Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD7_STABLE_SHIFT) +enum _ccm_analog_pfd_stable +{ + ccmAnalogPfd0Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD0_STABLE_SHIFT), /*!< CCM Analog 480A PFD0 clock stable query.*/ + ccmAnalogPfd1Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD1_STABLE_SHIFT), /*!< CCM Analog 480A PFD1 clock stable query.*/ + ccmAnalogPfd2Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD2_STABLE_SHIFT), /*!< CCM Analog 480A PFD2 clock stable query.*/ + ccmAnalogPfd3Stable = CCM_ANALOG_TUPLE(PFD_480A, CCM_ANALOG_PFD_480A_PFD3_STABLE_SHIFT), /*!< CCM Analog 480A PFD3 clock stable query.*/ + ccmAnalogPfd4Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD4_STABLE_SHIFT), /*!< CCM Analog 480B PFD4 clock stable query.*/ + ccmAnalogPfd5Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD5_STABLE_SHIFT), /*!< CCM Analog 480B PFD5 clock stable query.*/ + ccmAnalogPfd6Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD6_STABLE_SHIFT), /*!< CCM Analog 480B PFD6 clock stable query.*/ + ccmAnalogPfd7Stable = CCM_ANALOG_TUPLE(PFD_480B, CCM_ANALOG_PFD_480B_PFD7_STABLE_SHIFT), /*!< CCM Analog 480B PFD7 clock stable query.*/ }; /******************************************************************************* @@ -169,7 +165,7 @@ extern "C" { #endif /*! - * @name CCM Analog PLL Operations + * @name CCM Analog PLL Operatoin Functions * @{ */ @@ -177,7 +173,7 @@ extern "C" { * @brief Power up PLL * * @param base CCM_ANALOG base pointer. - * @param pllControl PLL control name (see _ccm_analog_pll_control enumeration) + * @param pllControl PLL control name (see @ref _ccm_analog_pll_control enumeration) */ static inline void CCM_ANALOG_PowerUpPll(CCM_ANALOG_Type * base, uint32_t pllControl) { @@ -188,7 +184,7 @@ static inline void CCM_ANALOG_PowerUpPll(CCM_ANALOG_Type * base, uint32_t pllCon * @brief Power down PLL * * @param base CCM_ANALOG base pointer. - * @param pllControl PLL control name (see _ccm_analog_pll_control enumeration) + * @param pllControl PLL control name (see @ref _ccm_analog_pll_control enumeration) */ static inline void CCM_ANALOG_PowerDownPll(CCM_ANALOG_Type * base, uint32_t pllControl) { @@ -199,8 +195,10 @@ static inline void CCM_ANALOG_PowerDownPll(CCM_ANALOG_Type * base, uint32_t pllC * @brief PLL bypass setting * * @param base CCM_ANALOG base pointer. - * @param pllControl PLL control name (see _ccm_analog_pll_control enumeration) - * @param bypass Bypass the PLL (true: bypass, false: not bypass) + * @param pllControl PLL control name (see @ref _ccm_analog_pll_control enumeration) + * @param bypass Bypass the PLL. + * - true: Bypass the PLL. + * - false: Do not bypass the PLL. */ static inline void CCM_ANALOG_SetPllBypass(CCM_ANALOG_Type * base, uint32_t pllControl, bool bypass) { @@ -214,8 +212,10 @@ static inline void CCM_ANALOG_SetPllBypass(CCM_ANALOG_Type * base, uint32_t pllC * @brief Check if PLL is bypassed * * @param base CCM_ANALOG base pointer. - * @param pllControl PLL control name (see _ccm_analog_pll_control enumeration) - * @return PLL bypass status (true: bypassed, false: not bypassed) + * @param pllControl PLL control name (see @ref _ccm_analog_pll_control enumeration) + * @return PLL bypass status. + * - true: The PLL is bypassed. + * - false: The PLL is not bypassed. */ static inline bool CCM_ANALOG_IsPllBypassed(CCM_ANALOG_Type * base, uint32_t pllControl) { @@ -226,8 +226,10 @@ static inline bool CCM_ANALOG_IsPllBypassed(CCM_ANALOG_Type * base, uint32_t pll * @brief Check if PLL clock is locked * * @param base CCM_ANALOG base pointer. - * @param pllControl PLL control name (see _ccm_analog_pll_control enumeration) - * @return PLL lock status (true: locked, false: not locked) + * @param pllControl PLL control name (see @ref _ccm_analog_pll_control enumeration) + * @return PLL lock status. + * - true: The PLL clock is locked. + * - false: The PLL clock is not locked. */ static inline bool CCM_ANALOG_IsPllLocked(CCM_ANALOG_Type * base, uint32_t pllControl) { @@ -238,7 +240,7 @@ static inline bool CCM_ANALOG_IsPllLocked(CCM_ANALOG_Type * base, uint32_t pllCo * @brief Enable PLL clock * * @param base CCM_ANALOG base pointer. - * @param pllClock PLL clock name (see _ccm_analog_pll_clock enumeration) + * @param pllClock PLL clock name (see @ref _ccm_analog_pll_clock enumeration) */ static inline void CCM_ANALOG_EnablePllClock(CCM_ANALOG_Type * base, uint32_t pllClock) { @@ -249,13 +251,21 @@ static inline void CCM_ANALOG_EnablePllClock(CCM_ANALOG_Type * base, uint32_t pl * @brief Disable PLL clock * * @param base CCM_ANALOG base pointer. - * @param pllClock PLL clock name (see _ccm_analog_pll_clock enumeration) + * @param pllClock PLL clock name (see @ref _ccm_analog_pll_clock enumeration) */ static inline void CCM_ANALOG_DisablePllClock(CCM_ANALOG_Type * base, uint32_t pllClock) { CCM_ANALOG_TUPLE_REG_CLR(base, pllClock) = 1 << CCM_ANALOG_TUPLE_SHIFT(pllClock); } +/*! + * @brief Get ARM PLL clock frequency + * + * @param base CCM_ANALOG base pointer. + * @return ARM PLL clock frequency in HZ + */ +uint32_t CCM_ANALOG_GetArmPllFreq(CCM_ANALOG_Type * base); + /*! * @brief Get System PLL (PLL_480) clock frequency * @@ -264,10 +274,42 @@ static inline void CCM_ANALOG_DisablePllClock(CCM_ANALOG_Type * base, uint32_t p */ uint32_t CCM_ANALOG_GetSysPllFreq(CCM_ANALOG_Type * base); +/*! + * @brief Get DDR PLL clock frequency + * + * @param base CCM_ANALOG base pointer. + * @return DDR PLL clock frequency in HZ + */ +uint32_t CCM_ANALOG_GetDdrPllFreq(CCM_ANALOG_Type * base); + +/*! + * @brief Get ENET PLL clock frequency + * + * @param base CCM_ANALOG base pointer. + * @return ENET PLL clock frequency in HZ + */ +uint32_t CCM_ANALOG_GetEnetPllFreq(CCM_ANALOG_Type * base); + +/*! + * @brief Get Audio PLL clock frequency + * + * @param base CCM_ANALOG base pointer. + * @return Audio PLL clock frequency in HZ + */ +uint32_t CCM_ANALOG_GetAudioPllFreq(CCM_ANALOG_Type * base); + +/*! + * @brief Get Video PLL clock frequency + * + * @param base CCM_ANALOG base pointer. + * @return Video PLL clock frequency in HZ + */ +uint32_t CCM_ANALOG_GetVideoPllFreq(CCM_ANALOG_Type * base); + /*@}*/ /*! - * @name CCM Analog PFD Operations + * @name CCM Analog PFD Operatoin Functions * @{ */ @@ -275,7 +317,7 @@ uint32_t CCM_ANALOG_GetSysPllFreq(CCM_ANALOG_Type * base); * @brief Enable PFD clock * * @param base CCM_ANALOG base pointer. - * @param pfdClkGate PFD clock gate (see _ccm_analog_pfd_clkgate enumeration) + * @param pfdClkGate PFD clock gate (see @ref _ccm_analog_pfd_clkgate enumeration) */ static inline void CCM_ANALOG_EnablePfdClock(CCM_ANALOG_Type * base, uint32_t pfdClkGate) { @@ -286,7 +328,7 @@ static inline void CCM_ANALOG_EnablePfdClock(CCM_ANALOG_Type * base, uint32_t pf * @brief Disable PFD clock * * @param base CCM_ANALOG base pointer. - * @param pfdClkGate PFD clock gate (see _ccm_analog_pfd_clkgate enumeration) + * @param pfdClkGate PFD clock gate (see @ref _ccm_analog_pfd_clkgate enumeration) */ static inline void CCM_ANALOG_DisablePfdClock(CCM_ANALOG_Type * base, uint32_t pfdClkGate) { @@ -297,8 +339,10 @@ static inline void CCM_ANALOG_DisablePfdClock(CCM_ANALOG_Type * base, uint32_t p * @brief Check if PFD clock is stable * * @param base CCM_ANALOG base pointer. - * @param pfdStable PFD stable identifier (see _ccm_analog_pfd_stable enumeration) - * @return PFD clock stable status (true: stable, false: not stable) + * @param pfdStable PFD stable identifier (see @ref _ccm_analog_pfd_stable enumeration) + * @return PFD clock stable status. + * - true: The PFD clock is stable. + * - false: The PFD clock is not stable. */ static inline bool CCM_ANALOG_IsPfdStable(CCM_ANALOG_Type * base, uint32_t pfdStable) { @@ -309,7 +353,7 @@ static inline bool CCM_ANALOG_IsPfdStable(CCM_ANALOG_Type * base, uint32_t pfdSt * @brief Set PFD clock fraction * * @param base CCM_ANALOG base pointer. - * @param pfdFrac PFD clock fraction (see _ccm_analog_pfd_frac enumeration) + * @param pfdFrac PFD clock fraction (see @ref _ccm_analog_pfd_frac enumeration) * @param value PFD clock fraction value */ static inline void CCM_ANALOG_SetPfdFrac(CCM_ANALOG_Type * base, uint32_t pfdFrac, uint32_t value) @@ -323,7 +367,7 @@ static inline void CCM_ANALOG_SetPfdFrac(CCM_ANALOG_Type * base, uint32_t pfdFra * @brief Get PFD clock fraction * * @param base CCM_ANALOG base pointer. - * @param pfdFrac PFD clock fraction (see _ccm_analog_pfd_frac enumeration) + * @param pfdFrac PFD clock fraction (see @ref _ccm_analog_pfd_frac enumeration) * @return PFD clock fraction value */ static inline uint32_t CCM_ANALOG_GetPfdFrac(CCM_ANALOG_Type * base, uint32_t pfdFrac) @@ -335,7 +379,7 @@ static inline uint32_t CCM_ANALOG_GetPfdFrac(CCM_ANALOG_Type * base, uint32_t pf * @brief Get PFD clock frequency * * @param base CCM_ANALOG base pointer. - * @param pfdFrac PFD clock fraction (see _ccm_analog_pfd_frac enumeration) + * @param pfdFrac PFD clock fraction (see @ref _ccm_analog_pfd_frac enumeration) * @return PFD clock frequency in HZ */ uint32_t CCM_ANALOG_GetPfdFreq(CCM_ANALOG_Type * base, uint32_t pfdFrac); diff --git a/platform/drivers/inc/ccm_imx7d.h b/platform/drivers/inc/ccm_imx7d.h index d73db7d..cc4d88f 100644 --- a/platform/drivers/inc/ccm_imx7d.h +++ b/platform/drivers/inc/ccm_imx7d.h @@ -45,310 +45,290 @@ /******************************************************************************* * Definitions ******************************************************************************/ -#define CCM_REG_OFF(root, off) (*((volatile uint32_t *)((uint32_t)root + off))) -#define CCM_REG(root) CCM_REG_OFF(root, 0) -#define CCM_REG_SET(root) CCM_REG_OFF(root, 4) -#define CCM_REG_CLR(root) CCM_REG_OFF(root, 8) +#define CCM_REG_OFF(root, off) (*((volatile uint32_t *)((uint32_t)root + off))) +#define CCM_REG(root) CCM_REG_OFF(root, 0) +#define CCM_REG_SET(root) CCM_REG_OFF(root, 4) +#define CCM_REG_CLR(root) CCM_REG_OFF(root, 8) -/*! - * @brief Root control names for root clock setting. - */ -enum _ccm_root_control { - ccmRootM4 = (uint32_t)(&CCM_TARGET_ROOT1), - ccmRootAxi = (uint32_t)(&CCM_TARGET_ROOT16), - ccmRootAhb = (uint32_t)(&CCM_TARGET_ROOT32), - ccmRootIpg = (uint32_t)(&CCM_TARGET_ROOT33), - ccmRootQspi = (uint32_t)(&CCM_TARGET_ROOT85), - ccmRootCan1 = (uint32_t)(&CCM_TARGET_ROOT89), - ccmRootCan2 = (uint32_t)(&CCM_TARGET_ROOT90), - ccmRootI2c1 = (uint32_t)(&CCM_TARGET_ROOT91), - ccmRootI2c2 = (uint32_t)(&CCM_TARGET_ROOT92), - ccmRootI2c3 = (uint32_t)(&CCM_TARGET_ROOT93), - ccmRootI2c4 = (uint32_t)(&CCM_TARGET_ROOT94), - ccmRootUart1 = (uint32_t)(&CCM_TARGET_ROOT95), - ccmRootUart2 = (uint32_t)(&CCM_TARGET_ROOT96), - ccmRootUart3 = (uint32_t)(&CCM_TARGET_ROOT97), - ccmRootUart4 = (uint32_t)(&CCM_TARGET_ROOT98), - ccmRootUart5 = (uint32_t)(&CCM_TARGET_ROOT99), - ccmRootUart6 = (uint32_t)(&CCM_TARGET_ROOT100), - ccmRootUart7 = (uint32_t)(&CCM_TARGET_ROOT101), - ccmRootEcspi1 = (uint32_t)(&CCM_TARGET_ROOT102), - ccmRootEcspi2 = (uint32_t)(&CCM_TARGET_ROOT103), - ccmRootEcspi3 = (uint32_t)(&CCM_TARGET_ROOT104), - ccmRootEcspi4 = (uint32_t)(&CCM_TARGET_ROOT105), - ccmRootFtm1 = (uint32_t)(&CCM_TARGET_ROOT110), - ccmRootFtm2 = (uint32_t)(&CCM_TARGET_ROOT111), - ccmRootGpt1 = (uint32_t)(&CCM_TARGET_ROOT114), - ccmRootGpt2 = (uint32_t)(&CCM_TARGET_ROOT115), - ccmRootGpt3 = (uint32_t)(&CCM_TARGET_ROOT116), - ccmRootGpt4 = (uint32_t)(&CCM_TARGET_ROOT117), - ccmRootWdog = (uint32_t)(&CCM_TARGET_ROOT119) +/*! @brief Root control names for root clock setting. */ +enum _ccm_root_control +{ + ccmRootM4 = (uint32_t)(&CCM_TARGET_ROOT1), /*!< M4 Clock control name.*/ + ccmRootAxi = (uint32_t)(&CCM_TARGET_ROOT16), /*!< AXI Clock control name.*/ + ccmRootAhb = (uint32_t)(&CCM_TARGET_ROOT32), /*!< AHB Clock control name.*/ + ccmRootIpg = (uint32_t)(&CCM_TARGET_ROOT33), /*!< IPG Clock control name.*/ + ccmRootQspi = (uint32_t)(&CCM_TARGET_ROOT85), /*!< QSPI Clock control name.*/ + ccmRootCan1 = (uint32_t)(&CCM_TARGET_ROOT89), /*!< CAN1 Clock control name.*/ + ccmRootCan2 = (uint32_t)(&CCM_TARGET_ROOT90), /*!< CAN2 Clock control name.*/ + ccmRootI2c1 = (uint32_t)(&CCM_TARGET_ROOT91), /*!< I2C1 Clock control name.*/ + ccmRootI2c2 = (uint32_t)(&CCM_TARGET_ROOT92), /*!< I2C2 Clock control name.*/ + ccmRootI2c3 = (uint32_t)(&CCM_TARGET_ROOT93), /*!< I2C3 Clock control name.*/ + ccmRootI2c4 = (uint32_t)(&CCM_TARGET_ROOT94), /*!< I2C4 Clock control name.*/ + ccmRootUart1 = (uint32_t)(&CCM_TARGET_ROOT95), /*!< UART1 Clock control name.*/ + ccmRootUart2 = (uint32_t)(&CCM_TARGET_ROOT96), /*!< UART2 Clock control name.*/ + ccmRootUart3 = (uint32_t)(&CCM_TARGET_ROOT97), /*!< UART3 Clock control name.*/ + ccmRootUart4 = (uint32_t)(&CCM_TARGET_ROOT98), /*!< UART4 Clock control name.*/ + ccmRootUart5 = (uint32_t)(&CCM_TARGET_ROOT99), /*!< UART5 Clock control name.*/ + ccmRootUart6 = (uint32_t)(&CCM_TARGET_ROOT100), /*!< UART6 Clock control name.*/ + ccmRootUart7 = (uint32_t)(&CCM_TARGET_ROOT101), /*!< UART7 Clock control name.*/ + ccmRootEcspi1 = (uint32_t)(&CCM_TARGET_ROOT102), /*!< ECSPI1 Clock control name.*/ + ccmRootEcspi2 = (uint32_t)(&CCM_TARGET_ROOT103), /*!< ECSPI2 Clock control name.*/ + ccmRootEcspi3 = (uint32_t)(&CCM_TARGET_ROOT104), /*!< ECSPI3 Clock control name.*/ + ccmRootEcspi4 = (uint32_t)(&CCM_TARGET_ROOT105), /*!< ECSPI4 Clock control name.*/ + ccmRootFtm1 = (uint32_t)(&CCM_TARGET_ROOT110), /*!< FTM1 Clock control name.*/ + ccmRootFtm2 = (uint32_t)(&CCM_TARGET_ROOT111), /*!< FTM2 Clock control name.*/ + ccmRootGpt1 = (uint32_t)(&CCM_TARGET_ROOT114), /*!< GPT1 Clock control name.*/ + ccmRootGpt2 = (uint32_t)(&CCM_TARGET_ROOT115), /*!< GPT2 Clock control name.*/ + ccmRootGpt3 = (uint32_t)(&CCM_TARGET_ROOT116), /*!< GPT3 Clock control name.*/ + ccmRootGpt4 = (uint32_t)(&CCM_TARGET_ROOT117), /*!< GPT4 Clock control name.*/ + ccmRootWdog = (uint32_t)(&CCM_TARGET_ROOT119), /*!< WDOG Clock control name.*/ }; -/*! - * @brief Clock source enumeration for M4 core. - */ -enum _ccm_rootmux_m4 { - ccmRootmuxM4Osc24m = 0U, - ccmRootmuxM4SysPllDiv2 = 1U, - ccmRootmuxM4EnetPll250m = 2U, - ccmRootmuxM4SysPllPfd2 = 3U, - ccmRootmuxM4DdrPllDiv2 = 4U, - ccmRootmuxM4AudioPll = 5U, - ccmRootmuxM4VideoPll = 6U, - ccmRootmuxM4UsbPll = 7U +/*! @brief Clock source enumeration for ARM Cortex-M4 core. */ +enum _ccm_rootmux_m4 +{ + ccmRootmuxM4Osc24m = 0U, /*!< M4 Clock from OSC 24M.*/ + ccmRootmuxM4SysPllDiv2 = 1U, /*!< M4 Clock from SYSTEM PLL divided by 2.*/ + ccmRootmuxM4EnetPll250m = 2U, /*!< M4 Clock from Ethernet PLL 250M.*/ + ccmRootmuxM4SysPllPfd2 = 3U, /*!< M4 Clock from SYSTEM PLL PFD2.*/ + ccmRootmuxM4DdrPllDiv2 = 4U, /*!< M4 Clock from DDR PLL divided by 2.*/ + ccmRootmuxM4AudioPll = 5U, /*!< M4 Clock from AUDIO PLL.*/ + ccmRootmuxM4VideoPll = 6U, /*!< M4 Clock from VIDEO PLL.*/ + ccmRootmuxM4UsbPll = 7U, /*!< M4 Clock from USB PLL.*/ }; -/*! - * @brief Clock source enumeration for AXI bus. - */ -enum _ccm_rootmux_axi { - ccmRootmuxAxiOsc24m = 0U, - ccmRootmuxAxiSysPllPfd1 = 1U, - ccmRootmuxAxiDdrPllDiv2 = 2U, - ccmRootmuxAxiEnetPll250m = 3U, - ccmRootmuxAxiSysPllPfd5 = 4U, - ccmRootmuxAxiAudioPll = 5U, - ccmRootmuxAxiVideoPll = 6U, - ccmRootmuxAxiSysPllPfd7 = 7U +/*! @brief Clock source enumeration for AXI bus. */ +enum _ccm_rootmux_axi +{ + ccmRootmuxAxiOsc24m = 0U, /*!< AXI Clock from OSC 24M.*/ + ccmRootmuxAxiSysPllPfd1 = 1U, /*!< AXI Clock from SYSTEM PLL PFD1.*/ + ccmRootmuxAxiDdrPllDiv2 = 2U, /*!< AXI Clock DDR PLL divided by 2.*/ + ccmRootmuxAxiEnetPll250m = 3U, /*!< AXI Clock Ethernet PLL 250M.*/ + ccmRootmuxAxiSysPllPfd5 = 4U, /*!< AXI Clock SYSTEM PLL PFD5.*/ + ccmRootmuxAxiAudioPll = 5U, /*!< AXI Clock AUDIO PLL.*/ + ccmRootmuxAxiVideoPll = 6U, /*!< AXI Clock VIDEO PLL.*/ + ccmRootmuxAxiSysPllPfd7 = 7U, /*!< AXI Clock SYSTEM PLL PFD7.*/ }; -/*! - * @brief Clock source enumeration for AHB bus. - */ -enum _ccm_rootmux_ahb { - ccmRootmuxAhbOsc24m = 0U, - ccmRootmuxAhbSysPllPfd2 = 1U, - ccmRootmuxAhbDdrPllDiv2 = 2U, - ccmRootmuxAhbSysPllPfd0 = 3U, - ccmRootmuxAhbEnetPll125m = 4U, - ccmRootmuxAhbUsbPll = 5U, - ccmRootmuxAhbAudioPll = 6U, - ccmRootmuxAhbVideoPll = 7U +/*! @brief Clock source enumeration for AHB bus. */ +enum _ccm_rootmux_ahb +{ + ccmRootmuxAhbOsc24m = 0U, /*!< AHB Clock from OSC 24M.*/ + ccmRootmuxAhbSysPllPfd2 = 1U, /*!< AHB Clock from SYSTEM PLL PFD2.*/ + ccmRootmuxAhbDdrPllDiv2 = 2U, /*!< AHB Clock from DDR PLL divided by 2.*/ + ccmRootmuxAhbSysPllPfd0 = 3U, /*!< AHB Clock from SYSTEM PLL PFD0.*/ + ccmRootmuxAhbEnetPll125m = 4U, /*!< AHB Clock from Ethernet PLL 125M.*/ + ccmRootmuxAhbUsbPll = 5U, /*!< AHB Clock from USB PLL.*/ + ccmRootmuxAhbAudioPll = 6U, /*!< AHB Clock from AUDIO PLL.*/ + ccmRootmuxAhbVideoPll = 7U, /*!< AHB Clock from VIDEO PLL.*/ }; -/*! - * @brief Clock source enumeration for IPG bus. - */ -enum _ccm_rootmux_ipg { - ccmRootmuxIpgAHB = 0U +/*! @brief Clock source enumeration for IPG bus. */ +enum _ccm_rootmux_ipg +{ + ccmRootmuxIpgAHB = 0U, /*!< IPG Clock from AHB Clock.*/ }; -/*! - * @brief Clock source enumeration for QSPI peripheral. - */ -enum _ccm_rootmux_qspi { - ccmRootmuxQspiOsc24m = 0U, - ccmRootmuxQspiSysPllPfd4 = 1U, - ccmRootmuxQspiDdrPllDiv2 = 2U, - ccmRootmuxQspiEnetPll500m = 3U, - ccmRootmuxQspiSysPllPfd3 = 4U, - ccmRootmuxQspiSysPllPfd2 = 5U, - ccmRootmuxQspiSysPllPfd6 = 6U, - ccmRootmuxQspiSysPllPfd7 = 7U +/*! @brief Clock source enumeration for QSPI peripheral. */ +enum _ccm_rootmux_qspi +{ + ccmRootmuxQspiOsc24m = 0U, /*!< QSPI Clock from OSC 24M.*/ + ccmRootmuxQspiSysPllPfd4 = 1U, /*!< QSPI Clock from SYSTEM PLL PFD4.*/ + ccmRootmuxQspiDdrPllDiv2 = 2U, /*!< QSPI Clock from DDR PLL divided by 2.*/ + ccmRootmuxQspiEnetPll500m = 3U, /*!< QSPI Clock from Ethernet PLL 500M.*/ + ccmRootmuxQspiSysPllPfd3 = 4U, /*!< QSPI Clock from SYSTEM PLL PFD3.*/ + ccmRootmuxQspiSysPllPfd2 = 5U, /*!< QSPI Clock from SYSTEM PLL PFD2.*/ + ccmRootmuxQspiSysPllPfd6 = 6U, /*!< QSPI Clock from SYSTEM PLL PFD6.*/ + ccmRootmuxQspiSysPllPfd7 = 7U, /*!< QSPI Clock from SYSTEM PLL PFD7.*/ }; -/*! - * @brief Clock source enumeration for CAN peripheral. - */ -enum _ccm_rootmux_can { - ccmRootmuxCanOsc24m = 0U, - ccmRootmuxCanSysPllDiv4 = 1U, - ccmRootmuxCanDdrPllDiv2 = 2U, - ccmRootmuxCanSysPllDiv1 = 3U, - ccmRootmuxCanEnetPll40m = 4U, - ccmRootmuxCanUsbPll = 5U, - ccmRootmuxCanExtClk1 = 6U, - ccmRootmuxCanExtClk34 = 7U +/*! @brief Clock source enumeration for CAN peripheral. */ +enum _ccm_rootmux_can +{ + ccmRootmuxCanOsc24m = 0U, /*!< CAN Clock from OSC 24M.*/ + ccmRootmuxCanSysPllDiv4 = 1U, /*!< CAN Clock from SYSTEM PLL divided by 4.*/ + ccmRootmuxCanDdrPllDiv2 = 2U, /*!< CAN Clock from SYSTEM PLL divided by 2.*/ + ccmRootmuxCanSysPllDiv1 = 3U, /*!< CAN Clock from SYSTEM PLL divided by 1.*/ + ccmRootmuxCanEnetPll40m = 4U, /*!< CAN Clock from Ethernet PLL 40M.*/ + ccmRootmuxCanUsbPll = 5U, /*!< CAN Clock from USB PLL.*/ + ccmRootmuxCanExtClk1 = 6U, /*!< CAN Clock from External Clock1.*/ + ccmRootmuxCanExtClk34 = 7U, /*!< CAN Clock from External Clock34.*/ }; -/*! - * @brief Clock source enumeration for ECSPI peripheral. - */ -enum _ccm_rootmux_ecspi { - ccmRootmuxEcspiOsc24m = 0U, - ccmRootmuxEcspiSysPllDiv2 = 1U, - ccmRootmuxEcspiEnetPll40m = 2U, - ccmRootmuxEcspiSysPllDiv4 = 3U, - ccmRootmuxEcspiSysPllDiv1 = 4U, - ccmRootmuxEcspiSysPllPfd4 = 5U, - ccmRootmuxEcspiEnetPll250m = 6U, - ccmRootmuxEcspiUsbPll = 7U +/*! @brief Clock source enumeration for ECSPI peripheral. */ +enum _ccm_rootmux_ecspi +{ + ccmRootmuxEcspiOsc24m = 0U, /*!< ECSPI Clock from OSC 24M.*/ + ccmRootmuxEcspiSysPllDiv2 = 1U, /*!< ECSPI Clock from SYSTEM PLL divided by 2.*/ + ccmRootmuxEcspiEnetPll40m = 2U, /*!< ECSPI Clock from Ethernet PLL 40M.*/ + ccmRootmuxEcspiSysPllDiv4 = 3U, /*!< ECSPI Clock from SYSTEM PLL divided by 4.*/ + ccmRootmuxEcspiSysPllDiv1 = 4U, /*!< ECSPI Clock from SYSTEM PLL divided by 1.*/ + ccmRootmuxEcspiSysPllPfd4 = 5U, /*!< ECSPI Clock from SYSTEM PLL PFD4.*/ + ccmRootmuxEcspiEnetPll250m = 6U, /*!< ECSPI Clock from Ethernet PLL 250M.*/ + ccmRootmuxEcspiUsbPll = 7U, /*!< ECSPI Clock from USB PLL.*/ }; -/*! - * @brief Clock source enumeration for I2C peripheral. - */ -enum _ccm_rootmux_i2c { - ccmRootmuxI2cOsc24m = 0U, - ccmRootmuxI2cSysPllDiv4 = 1U, - ccmRootmuxI2cEnetPll50m = 2U, - ccmRootmuxI2cDdrPllDiv2 = 3U, - ccmRootmuxI2cAudioPll = 4U, - ccmRootmuxI2cVideoPll = 5U, - ccmRootmuxI2cUsbPll = 6U, - ccmRootmuxI2cSysPllPfd2Div2 = 7U +/*! @brief Clock source enumeration for I2C peripheral. */ +enum _ccm_rootmux_i2c +{ + ccmRootmuxI2cOsc24m = 0U, /*!< I2C Clock from OSC 24M.*/ + ccmRootmuxI2cSysPllDiv4 = 1U, /*!< I2C Clock from SYSTEM PLL divided by 4.*/ + ccmRootmuxI2cEnetPll50m = 2U, /*!< I2C Clock from Ethernet PLL 50M.*/ + ccmRootmuxI2cDdrPllDiv2 = 3U, /*!< I2C Clock from DDR PLL divided by .*/ + ccmRootmuxI2cAudioPll = 4U, /*!< I2C Clock from AUDIO PLL.*/ + ccmRootmuxI2cVideoPll = 5U, /*!< I2C Clock from VIDEO PLL.*/ + ccmRootmuxI2cUsbPll = 6U, /*!< I2C Clock from USB PLL.*/ + ccmRootmuxI2cSysPllPfd2Div2 = 7U, /*!< I2C Clock from SYSTEM PLL PFD2 divided by 2.*/ }; -/*! - * @brief Clock source enumeration for UART peripheral. - */ -enum _ccm_rootmux_uart { - ccmRootmuxUartOsc24m = 0U, - ccmRootmuxUartSysPllDiv2 = 1U, - ccmRootmuxUartEnetPll40m = 2U, - ccmRootmuxUartEnetPll100m = 3U, - ccmRootmuxUartSysPllDiv1 = 4U, - ccmRootmuxUartExtClk2 = 5U, - ccmRootmuxUartExtClk34 = 6U, - ccmRootmuxUartUsbPll = 7U +/*! @brief Clock source enumeration for UART peripheral. */ +enum _ccm_rootmux_uart +{ + ccmRootmuxUartOsc24m = 0U, /*!< UART Clock from OSC 24M.*/ + ccmRootmuxUartSysPllDiv2 = 1U, /*!< UART Clock from SYSTEM PLL divided by 2.*/ + ccmRootmuxUartEnetPll40m = 2U, /*!< UART Clock from Ethernet PLL 40M.*/ + ccmRootmuxUartEnetPll100m = 3U, /*!< UART Clock from Ethernet PLL 100M.*/ + ccmRootmuxUartSysPllDiv1 = 4U, /*!< UART Clock from SYSTEM PLL divided by 1.*/ + ccmRootmuxUartExtClk2 = 5U, /*!< UART Clock from External Clock 2.*/ + ccmRootmuxUartExtClk34 = 6U, /*!< UART Clock from External Clock 34.*/ + ccmRootmuxUartUsbPll = 7U, /*!< UART Clock from USB PLL.*/ }; -/*! - * @brief Clock source enumeration for FlexTimer peripheral. - */ -enum _ccm_rootmux_ftm { - ccmRootmuxFtmOsc24m = 0U, - ccmRootmuxFtmEnetPll100m = 1U, - ccmRootmuxFtmSysPllDiv4 = 2U, - ccmRootmuxFtmEnetPll40m = 3U, - ccmRootmuxFtmAudioPll = 4U, - ccmRootmuxFtmExtClk3 = 5U, - ccmRootmuxFtmRef1m = 6U, - ccmRootmuxFtmVideoPll = 7U +/*! @brief Clock source enumeration for FlexTimer peripheral. */ +enum _ccm_rootmux_ftm +{ + ccmRootmuxFtmOsc24m = 0U, /*!< FTM Clock from OSC 24M.*/ + ccmRootmuxFtmEnetPll100m = 1U, /*!< FTM Clock from Ethernet PLL 100M.*/ + ccmRootmuxFtmSysPllDiv4 = 2U, /*!< FTM Clock from SYSTEM PLL divided by 4.*/ + ccmRootmuxFtmEnetPll40m = 3U, /*!< FTM Clock from Ethernet PLL 40M.*/ + ccmRootmuxFtmAudioPll = 4U, /*!< FTM Clock from AUDIO PLL.*/ + ccmRootmuxFtmExtClk3 = 5U, /*!< FTM Clock from External Clock 3.*/ + ccmRootmuxFtmRef1m = 6U, /*!< FTM Clock from Refernece Clock 1M.*/ + ccmRootmuxFtmVideoPll = 7U, /*!< FTM Clock from VIDEO PLL.*/ }; -/*! - * @brief Clock source enumeration for GPT peripheral. - */ -enum _ccm_rootmux_gpt { - ccmRootmuxGptOsc24m = 0U, - ccmRootmuxGptEnetPll100m = 1U, - ccmRootmuxGptSysPllPfd0 = 2U, - ccmRootmuxGptEnetPll40m = 3U, - ccmRootmuxGptVideoPll = 4U, - ccmRootmuxGptRef1m = 5U, - ccmRootmuxGptAudioPll = 6U, - ccmRootmuxGptExtClk = 7U +/*! @brief Clock source enumeration for GPT peripheral. */ +enum _ccm_rootmux_gpt +{ + ccmRootmuxGptOsc24m = 0U, /*!< GPT Clock from OSC 24M.*/ + ccmRootmuxGptEnetPll100m = 1U, /*!< GPT Clock from Ethernet PLL 100M.*/ + ccmRootmuxGptSysPllPfd0 = 2U, /*!< GPT Clock from SYSTEM PLL PFD0.*/ + ccmRootmuxGptEnetPll40m = 3U, /*!< GPT Clock from Ethernet PLL 40M.*/ + ccmRootmuxGptVideoPll = 4U, /*!< GPT Clock from VIDEO PLL.*/ + ccmRootmuxGptRef1m = 5U, /*!< GPT Clock from Refernece Clock 1M.*/ + ccmRootmuxGptAudioPll = 6U, /*!< GPT Clock from AUDIO PLL.*/ + ccmRootmuxGptExtClk = 7U, /*!< GPT Clock from External Clock.*/ }; -/*! - * @brief Clock source enumeration for WDOG peripheral. - */ -enum _ccm_rootmux_wdog { - ccmRootmuxWdogOsc24m = 0U, - ccmRootmuxWdogSysPllPfd2Div2 = 1U, - ccmRootmuxWdogSysPllDiv4 = 2U, - ccmRootmuxWdogDdrPllDiv2 = 3U, - ccmRootmuxWdogEnetPll125m = 4U, - ccmRootmuxWdogUsbPll = 5U, - ccmRootmuxWdogRef1m = 6U, - ccmRootmuxWdogSysPllPfd1Div2 = 7U +/*! @brief Clock source enumeration for WDOG peripheral. */ +enum _ccm_rootmux_wdog +{ + ccmRootmuxWdogOsc24m = 0U, /*!< WDOG Clock from OSC 24M.*/ + ccmRootmuxWdogSysPllPfd2Div2 = 1U, /*!< WDOG Clock from SYSTEM PLL PFD2 divided by 2.*/ + ccmRootmuxWdogSysPllDiv4 = 2U, /*!< WDOG Clock from SYSTEM PLL divided by 4.*/ + ccmRootmuxWdogDdrPllDiv2 = 3U, /*!< WDOG Clock from DDR PLL divided by 2.*/ + ccmRootmuxWdogEnetPll125m = 4U, /*!< WDOG Clock from Ethernet PLL 125M.*/ + ccmRootmuxWdogUsbPll = 5U, /*!< WDOG Clock from USB PLL.*/ + ccmRootmuxWdogRef1m = 6U, /*!< WDOG Clock from Refernece Clock 1M.*/ + ccmRootmuxWdogSysPllPfd1Div2 = 7U, /*!< WDOG Clock from SYSTEM PLL PFD1 divided by 2.*/ }; -/*! - * @brief CCM PLL gate control - */ -enum _ccm_pll_gate { - ccmPllGateCkil = (uint32_t)(&CCM_PLL_CTRL0_REG(CCM_BASE_PTR)), - ccmPllGateArm = (uint32_t)(&CCM_PLL_CTRL1_REG(CCM_BASE_PTR)), - ccmPllGateArmDiv1 = (uint32_t)(&CCM_PLL_CTRL2_REG(CCM_BASE_PTR)), - ccmPllGateDdr = (uint32_t)(&CCM_PLL_CTRL3_REG(CCM_BASE_PTR)), - ccmPllGateDdrDiv1 = (uint32_t)(&CCM_PLL_CTRL4_REG(CCM_BASE_PTR)), - ccmPllGateDdrDiv2 = (uint32_t)(&CCM_PLL_CTRL5_REG(CCM_BASE_PTR)), - ccmPllGateSys = (uint32_t)(&CCM_PLL_CTRL6_REG(CCM_BASE_PTR)), - ccmPllGateSysDiv1 = (uint32_t)(&CCM_PLL_CTRL7_REG(CCM_BASE_PTR)), - ccmPllGateSysDiv2 = (uint32_t)(&CCM_PLL_CTRL8_REG(CCM_BASE_PTR)), - ccmPllGateSysDiv4 = (uint32_t)(&CCM_PLL_CTRL9_REG(CCM_BASE_PTR)), - ccmPllGatePfd0 = (uint32_t)(&CCM_PLL_CTRL10_REG(CCM_BASE_PTR)), - ccmPllGatePfd0Div2 = (uint32_t)(&CCM_PLL_CTRL11_REG(CCM_BASE_PTR)), - ccmPllGatePfd1 = (uint32_t)(&CCM_PLL_CTRL12_REG(CCM_BASE_PTR)), - ccmPllGatePfd1Div2 = (uint32_t)(&CCM_PLL_CTRL13_REG(CCM_BASE_PTR)), - ccmPllGatePfd2 = (uint32_t)(&CCM_PLL_CTRL14_REG(CCM_BASE_PTR)), - ccmPllGatePfd2Div2 = (uint32_t)(&CCM_PLL_CTRL15_REG(CCM_BASE_PTR)), - ccmPllGatePfd3 = (uint32_t)(&CCM_PLL_CTRL16_REG(CCM_BASE_PTR)), - ccmPllGatePfd4 = (uint32_t)(&CCM_PLL_CTRL17_REG(CCM_BASE_PTR)), - ccmPllGatePfd5 = (uint32_t)(&CCM_PLL_CTRL18_REG(CCM_BASE_PTR)), - ccmPllGatePfd6 = (uint32_t)(&CCM_PLL_CTRL19_REG(CCM_BASE_PTR)), - ccmPllGatePfd7 = (uint32_t)(&CCM_PLL_CTRL20_REG(CCM_BASE_PTR)), - ccmPllGateEnet = (uint32_t)(&CCM_PLL_CTRL21_REG(CCM_BASE_PTR)), - ccmPllGateEnet500m = (uint32_t)(&CCM_PLL_CTRL22_REG(CCM_BASE_PTR)), - ccmPllGateEnet250m = (uint32_t)(&CCM_PLL_CTRL23_REG(CCM_BASE_PTR)), - ccmPllGateEnet125m = (uint32_t)(&CCM_PLL_CTRL24_REG(CCM_BASE_PTR)), - ccmPllGateEnet100m = (uint32_t)(&CCM_PLL_CTRL25_REG(CCM_BASE_PTR)), - ccmPllGateEnet50m = (uint32_t)(&CCM_PLL_CTRL26_REG(CCM_BASE_PTR)), - ccmPllGateEnet40m = (uint32_t)(&CCM_PLL_CTRL27_REG(CCM_BASE_PTR)), - ccmPllGateEnet25m = (uint32_t)(&CCM_PLL_CTRL28_REG(CCM_BASE_PTR)), - ccmPllGateAudio = (uint32_t)(&CCM_PLL_CTRL29_REG(CCM_BASE_PTR)), - ccmPllGateAudioDiv1 = (uint32_t)(&CCM_PLL_CTRL30_REG(CCM_BASE_PTR)), - ccmPllGateVideo = (uint32_t)(&CCM_PLL_CTRL31_REG(CCM_BASE_PTR)), - ccmPllGateVideoDiv1 = (uint32_t)(&CCM_PLL_CTRL32_REG(CCM_BASE_PTR)) +/*! @brief CCM PLL gate control. */ +enum _ccm_pll_gate +{ + ccmPllGateCkil = (uint32_t)(&CCM_PLL_CTRL0), /*!< Ckil PLL Gate.*/ + ccmPllGateArm = (uint32_t)(&CCM_PLL_CTRL1), /*!< ARM PLL Gate.*/ + ccmPllGateArmDiv1 = (uint32_t)(&CCM_PLL_CTRL2), /*!< ARM PLL Div1 Gate.*/ + ccmPllGateDdr = (uint32_t)(&CCM_PLL_CTRL3), /*!< DDR PLL Gate.*/ + ccmPllGateDdrDiv1 = (uint32_t)(&CCM_PLL_CTRL4), /*!< DDR PLL Div1 Gate.*/ + ccmPllGateDdrDiv2 = (uint32_t)(&CCM_PLL_CTRL5), /*!< DDR PLL Div2 Gate.*/ + ccmPllGateSys = (uint32_t)(&CCM_PLL_CTRL6), /*!< SYSTEM PLL Gate.*/ + ccmPllGateSysDiv1 = (uint32_t)(&CCM_PLL_CTRL7), /*!< SYSTEM PLL Div1 Gate.*/ + ccmPllGateSysDiv2 = (uint32_t)(&CCM_PLL_CTRL8), /*!< SYSTEM PLL Div2 Gate.*/ + ccmPllGateSysDiv4 = (uint32_t)(&CCM_PLL_CTRL9), /*!< SYSTEM PLL Div4 Gate.*/ + ccmPllGatePfd0 = (uint32_t)(&CCM_PLL_CTRL10), /*!< PFD0 Gate.*/ + ccmPllGatePfd0Div2 = (uint32_t)(&CCM_PLL_CTRL11), /*!< PFD0 Div2 Gate.*/ + ccmPllGatePfd1 = (uint32_t)(&CCM_PLL_CTRL12), /*!< PFD1 Gate.*/ + ccmPllGatePfd1Div2 = (uint32_t)(&CCM_PLL_CTRL13), /*!< PFD1 Div2 Gate.*/ + ccmPllGatePfd2 = (uint32_t)(&CCM_PLL_CTRL14), /*!< PFD2 Gate.*/ + ccmPllGatePfd2Div2 = (uint32_t)(&CCM_PLL_CTRL15), /*!< PDF2 Div2.*/ + ccmPllGatePfd3 = (uint32_t)(&CCM_PLL_CTRL16), /*!< PDF3 Gate.*/ + ccmPllGatePfd4 = (uint32_t)(&CCM_PLL_CTRL17), /*!< PDF4 Gate.*/ + ccmPllGatePfd5 = (uint32_t)(&CCM_PLL_CTRL18), /*!< PDF5 Gate.*/ + ccmPllGatePfd6 = (uint32_t)(&CCM_PLL_CTRL19), /*!< PDF6 Gate.*/ + ccmPllGatePfd7 = (uint32_t)(&CCM_PLL_CTRL20), /*!< PDF7 Gate.*/ + ccmPllGateEnet = (uint32_t)(&CCM_PLL_CTRL21), /*!< Ethernet PLL Gate.*/ + ccmPllGateEnet500m = (uint32_t)(&CCM_PLL_CTRL22), /*!< Ethernet 500M PLL Gate.*/ + ccmPllGateEnet250m = (uint32_t)(&CCM_PLL_CTRL23), /*!< Ethernet 250M PLL Gate.*/ + ccmPllGateEnet125m = (uint32_t)(&CCM_PLL_CTRL24), /*!< Ethernet 125M PLL Gate.*/ + ccmPllGateEnet100m = (uint32_t)(&CCM_PLL_CTRL25), /*!< Ethernet 100M PLL Gate.*/ + ccmPllGateEnet50m = (uint32_t)(&CCM_PLL_CTRL26), /*!< Ethernet 50M PLL Gate.*/ + ccmPllGateEnet40m = (uint32_t)(&CCM_PLL_CTRL27), /*!< Ethernet 40M PLL Gate.*/ + ccmPllGateEnet25m = (uint32_t)(&CCM_PLL_CTRL28), /*!< Ethernet 25M PLL Gate.*/ + ccmPllGateAudio = (uint32_t)(&CCM_PLL_CTRL29), /*!< AUDIO PLL Gate.*/ + ccmPllGateAudioDiv1 = (uint32_t)(&CCM_PLL_CTRL30), /*!< AUDIO PLL Div1 Gate.*/ + ccmPllGateVideo = (uint32_t)(&CCM_PLL_CTRL31), /*!< VIDEO PLL Gate.*/ + ccmPllGateVideoDiv1 = (uint32_t)(&CCM_PLL_CTRL32), /*!< VIDEO PLL Div1 Gate.*/ }; -/*! - * @brief CCM CCGR gate control - */ -enum _ccm_ccgr_gate { - ccmCcgrGateIpmux1 = (uint32_t)(&CCM_CCGR10), - ccmCcgrGateIpmux2 = (uint32_t)(&CCM_CCGR11), - ccmCcgrGateIpmux3 = (uint32_t)(&CCM_CCGR12), - ccmCcgrGateOcram = (uint32_t)(&CCM_CCGR17), - ccmCcgrGateOcramS = (uint32_t)(&CCM_CCGR18), - ccmCcgrGateQspi = (uint32_t)(&CCM_CCGR21), - ccmCcgrGateAdc = (uint32_t)(&CCM_CCGR32), - ccmCcgrGateRdc = (uint32_t)(&CCM_CCGR38), - ccmCcgrGateMu = (uint32_t)(&CCM_CCGR39), - ccmCcgrGateSemaHs = (uint32_t)(&CCM_CCGR40), - ccmCcgrGateSema1 = (uint32_t)(&CCM_CCGR64), - ccmCcgrGateSema2 = (uint32_t)(&CCM_CCGR65), - ccmCcgrGateCan1 = (uint32_t)(&CCM_CCGR116), - ccmCcgrGateCan2 = (uint32_t)(&CCM_CCGR117), - ccmCcgrGateEcspi1 = (uint32_t)(&CCM_CCGR120), - ccmCcgrGateEcspi2 = (uint32_t)(&CCM_CCGR121), - ccmCcgrGateEcspi3 = (uint32_t)(&CCM_CCGR122), - ccmCcgrGateEcspi4 = (uint32_t)(&CCM_CCGR123), - ccmCcgrGateGpt1 = (uint32_t)(&CCM_CCGR124), - ccmCcgrGateGpt2 = (uint32_t)(&CCM_CCGR125), - ccmCcgrGateGpt3 = (uint32_t)(&CCM_CCGR126), - ccmCcgrGateGpt4 = (uint32_t)(&CCM_CCGR127), - ccmCcgrGateI2c1 = (uint32_t)(&CCM_CCGR136), - ccmCcgrGateI2c2 = (uint32_t)(&CCM_CCGR137), - ccmCcgrGateI2c3 = (uint32_t)(&CCM_CCGR138), - ccmCcgrGateI2c4 = (uint32_t)(&CCM_CCGR139), - ccmCcgrGateUart1 = (uint32_t)(&CCM_CCGR148), - ccmCcgrGateUart2 = (uint32_t)(&CCM_CCGR149), - ccmCcgrGateUart3 = (uint32_t)(&CCM_CCGR150), - ccmCcgrGateUart4 = (uint32_t)(&CCM_CCGR151), - ccmCcgrGateUart5 = (uint32_t)(&CCM_CCGR152), - ccmCcgrGateUart6 = (uint32_t)(&CCM_CCGR153), - ccmCcgrGateUart7 = (uint32_t)(&CCM_CCGR154), - ccmCcgrGateWdog1 = (uint32_t)(&CCM_CCGR156), - ccmCcgrGateWdog2 = (uint32_t)(&CCM_CCGR157), - ccmCcgrGateWdog3 = (uint32_t)(&CCM_CCGR158), - ccmCcgrGateWdog4 = (uint32_t)(&CCM_CCGR159), - ccmCcgrGateGpio1 = (uint32_t)(&CCM_CCGR160), - ccmCcgrGateGpio2 = (uint32_t)(&CCM_CCGR161), - ccmCcgrGateGpio3 = (uint32_t)(&CCM_CCGR162), - ccmCcgrGateGpio4 = (uint32_t)(&CCM_CCGR163), - ccmCcgrGateGpio5 = (uint32_t)(&CCM_CCGR164), - ccmCcgrGateGpio6 = (uint32_t)(&CCM_CCGR165), - ccmCcgrGateGpio7 = (uint32_t)(&CCM_CCGR166), - ccmCcgrGateIomux = (uint32_t)(&CCM_CCGR168), - ccmCcgrGateIomuxLpsr = (uint32_t)(&CCM_CCGR169), - ccmCcgrGatePwm1 = (uint32_t)(&CCM_CCGR132), - ccmCcgrGatePwm2 = (uint32_t)(&CCM_CCGR133), - ccmCcgrGatePwm3 = (uint32_t)(&CCM_CCGR134), - ccmCcgrGatePwm4 = (uint32_t)(&CCM_CCGR135) +/*! @brief CCM CCGR gate control. */ +enum _ccm_ccgr_gate +{ + ccmCcgrGateIpmux1 = (uint32_t)(&CCM_CCGR10), /*!< IOMUX1 Clock Gate.*/ + ccmCcgrGateIpmux2 = (uint32_t)(&CCM_CCGR11), /*!< IOMUX2 Clock Gate.*/ + ccmCcgrGateIpmux3 = (uint32_t)(&CCM_CCGR12), /*!< IPMUX3 Clock Gate.*/ + ccmCcgrGateOcram = (uint32_t)(&CCM_CCGR17), /*!< OCRAM Clock Gate.*/ + ccmCcgrGateOcramS = (uint32_t)(&CCM_CCGR18), /*!< OCRAM S Clock Gate.*/ + ccmCcgrGateQspi = (uint32_t)(&CCM_CCGR21), /*!< QSPI Clock Gate.*/ + ccmCcgrGateAdc = (uint32_t)(&CCM_CCGR32), /*!< ADC Clock Gate.*/ + ccmCcgrGateRdc = (uint32_t)(&CCM_CCGR38), /*!< RDC Clock Gate.*/ + ccmCcgrGateMu = (uint32_t)(&CCM_CCGR39), /*!< MU Clock Gate.*/ + ccmCcgrGateSemaHs = (uint32_t)(&CCM_CCGR40), /*!< SEMA HS Clock Gate.*/ + ccmCcgrGateSema1 = (uint32_t)(&CCM_CCGR64), /*!< SEMA1 Clock Gate.*/ + ccmCcgrGateSema2 = (uint32_t)(&CCM_CCGR65), /*!< SEMA2 Clock Gate.*/ + ccmCcgrGateCan1 = (uint32_t)(&CCM_CCGR116), /*!< CAN1 Clock Gate.*/ + ccmCcgrGateCan2 = (uint32_t)(&CCM_CCGR117), /*!< CAN2 Clock Gate.*/ + ccmCcgrGateEcspi1 = (uint32_t)(&CCM_CCGR120), /*!< ECSPI1 Clock Gate.*/ + ccmCcgrGateEcspi2 = (uint32_t)(&CCM_CCGR121), /*!< ECSPI2 Clock Gate.*/ + ccmCcgrGateEcspi3 = (uint32_t)(&CCM_CCGR122), /*!< ECSPI3 Clock Gate.*/ + ccmCcgrGateEcspi4 = (uint32_t)(&CCM_CCGR123), /*!< ECSPI4 Clock Gate.*/ + ccmCcgrGateGpt1 = (uint32_t)(&CCM_CCGR124), /*!< GPT1 Clock Gate.*/ + ccmCcgrGateGpt2 = (uint32_t)(&CCM_CCGR125), /*!< GPT2 Clock Gate.*/ + ccmCcgrGateGpt3 = (uint32_t)(&CCM_CCGR126), /*!< GPT3 Clock Gate.*/ + ccmCcgrGateGpt4 = (uint32_t)(&CCM_CCGR127), /*!< GPT4 Clock Gate.*/ + ccmCcgrGateI2c1 = (uint32_t)(&CCM_CCGR136), /*!< I2C1 Clock Gate.*/ + ccmCcgrGateI2c2 = (uint32_t)(&CCM_CCGR137), /*!< I2C2 Clock Gate.*/ + ccmCcgrGateI2c3 = (uint32_t)(&CCM_CCGR138), /*!< I2C3 Clock Gate.*/ + ccmCcgrGateI2c4 = (uint32_t)(&CCM_CCGR139), /*!< I2C4 Clock Gate.*/ + ccmCcgrGateUart1 = (uint32_t)(&CCM_CCGR148), /*!< UART1 Clock Gate.*/ + ccmCcgrGateUart2 = (uint32_t)(&CCM_CCGR149), /*!< UART2 Clock Gate.*/ + ccmCcgrGateUart3 = (uint32_t)(&CCM_CCGR150), /*!< UART3 Clock Gate.*/ + ccmCcgrGateUart4 = (uint32_t)(&CCM_CCGR151), /*!< UART4 Clock Gate.*/ + ccmCcgrGateUart5 = (uint32_t)(&CCM_CCGR152), /*!< UART5 Clock Gate.*/ + ccmCcgrGateUart6 = (uint32_t)(&CCM_CCGR153), /*!< UART6 Clock Gate.*/ + ccmCcgrGateUart7 = (uint32_t)(&CCM_CCGR154), /*!< UART7 Clock Gate.*/ + ccmCcgrGateWdog1 = (uint32_t)(&CCM_CCGR156), /*!< WDOG1 Clock Gate.*/ + ccmCcgrGateWdog2 = (uint32_t)(&CCM_CCGR157), /*!< WDOG2 Clock Gate.*/ + ccmCcgrGateWdog3 = (uint32_t)(&CCM_CCGR158), /*!< WDOG3 Clock Gate.*/ + ccmCcgrGateWdog4 = (uint32_t)(&CCM_CCGR159), /*!< WDOG4 Clock Gate.*/ + ccmCcgrGateGpio1 = (uint32_t)(&CCM_CCGR160), /*!< GPIO1 Clock Gate.*/ + ccmCcgrGateGpio2 = (uint32_t)(&CCM_CCGR161), /*!< GPIO2 Clock Gate.*/ + ccmCcgrGateGpio3 = (uint32_t)(&CCM_CCGR162), /*!< GPIO3 Clock Gate.*/ + ccmCcgrGateGpio4 = (uint32_t)(&CCM_CCGR163), /*!< GPIO4 Clock Gate.*/ + ccmCcgrGateGpio5 = (uint32_t)(&CCM_CCGR164), /*!< GPIO5 Clock Gate.*/ + ccmCcgrGateGpio6 = (uint32_t)(&CCM_CCGR165), /*!< GPIO6 Clock Gate.*/ + ccmCcgrGateGpio7 = (uint32_t)(&CCM_CCGR166), /*!< GPIO7 Clock Gate.*/ + ccmCcgrGateIomux = (uint32_t)(&CCM_CCGR168), /*!< IOMUX Clock Gate.*/ + ccmCcgrGateIomuxLpsr = (uint32_t)(&CCM_CCGR169), /*!< IOMUX LPSR Clock Gate.*/ }; -/*! - * @brief CCM gate control value - */ -enum _ccm_gate_value { - ccmClockNotNeeded = 0x0U, /*!< Clock always disabled.*/ - ccmClockNeededRun = 0x1111U, /*!< Clock enabled when CPU is running.*/ - ccmClockNeededRunWait = 0x2222U, /*!< Clock enabled when CPU is running or in WAIT mode.*/ - ccmClockNeededAll = 0x3333U /*!< Clock always enabled.*/ +/*! @brief CCM gate control value. */ +enum _ccm_gate_value +{ + ccmClockNotNeeded = 0x0U, /*!< Clock always disabled.*/ + ccmClockNeededRun = 0x1111U, /*!< Clock enabled when CPU is running.*/ + ccmClockNeededRunWait = 0x2222U, /*!< Clock enabled when CPU is running or in WAIT mode.*/ + ccmClockNeededAll = 0x3333U, /*!< Clock always enabled.*/ }; /******************************************************************************* @@ -368,66 +348,68 @@ extern "C" { * @brief Set clock root mux * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) - * @param mux Root mux value (see _ccm_rootmux_xxx enumeration) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) + * @param mux Root mux value (see @ref _ccm_rootmux_xxx enumeration) */ static inline void CCM_SetRootMux(CCM_Type * base, uint32_t ccmRoot, uint32_t mux) { - CCM_REG(ccmRoot) = (CCM_REG(ccmRoot) & (~CCM_TARGET_ROOT0_MUX_MASK)) | - CCM_TARGET_ROOT0_MUX(mux); + CCM_REG(ccmRoot) = (CCM_REG(ccmRoot) & (~CCM_TARGET_ROOT_MUX_MASK)) | + CCM_TARGET_ROOT_MUX(mux); } /*! * @brief Get clock root mux * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) - * @return root mux value (see _ccm_rootmux_xxx enumeration) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) + * @return root mux value (see @ref _ccm_rootmux_xxx enumeration) */ static inline uint32_t CCM_GetRootMux(CCM_Type * base, uint32_t ccmRoot) { - return (CCM_REG(ccmRoot) & CCM_TARGET_ROOT0_MUX_MASK) >> CCM_TARGET_ROOT0_MUX_SHIFT; + return (CCM_REG(ccmRoot) & CCM_TARGET_ROOT_MUX_MASK) >> CCM_TARGET_ROOT_MUX_SHIFT; } /*! * @brief Enable clock root * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) */ static inline void CCM_EnableRoot(CCM_Type * base, uint32_t ccmRoot) { - CCM_REG_SET(ccmRoot) = CCM_TARGET_ROOT0_SET_ENABLE_MASK; + CCM_REG_SET(ccmRoot) = CCM_TARGET_ROOT_SET_ENABLE_MASK; } /*! * @brief Disable clock root * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) */ static inline void CCM_DisableRoot(CCM_Type * base, uint32_t ccmRoot) { - CCM_REG_CLR(ccmRoot) = CCM_TARGET_ROOT0_CLR_ENABLE_MASK; + CCM_REG_CLR(ccmRoot) = CCM_TARGET_ROOT_CLR_ENABLE_MASK; } /*! * @brief Check whether clock root is enabled * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) - * @return CCM root enabled or not (true: enabled, false: disabled) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) + * @return CCM root enabled or not. + * - true: Clock root is enabled. + * - false: Clock root is disabled. */ static inline bool CCM_IsRootEnabled(CCM_Type * base, uint32_t ccmRoot) { - return (bool)(CCM_REG(ccmRoot) & CCM_TARGET_ROOT0_ENABLE_MASK); + return (bool)(CCM_REG(ccmRoot) & CCM_TARGET_ROOT_ENABLE_MASK); } /*! * @brief Set root clock divider * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) * @param pre Pre divider value (0-7, divider=n+1) * @param post Post divider value (0-63, divider=n+1) */ @@ -437,7 +419,7 @@ void CCM_SetRootDivider(CCM_Type * base, uint32_t ccmRoot, uint32_t pre, uint32_ * @brief Get root clock divider * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) * @param pre Pointer to pre divider value store address * @param post Pointer to post divider value store address */ @@ -447,8 +429,8 @@ void CCM_GetRootDivider(CCM_Type * base, uint32_t ccmRoot, uint32_t *pre, uint32 * @brief Update clock root in one step, for dynamical clock switching * * @param base CCM base pointer. - * @param ccmRoot Root control (see _ccm_root_control enumeration) - * @param root mux value (see _ccm_rootmux_xxx enumeration) + * @param ccmRoot Root control (see @ref _ccm_root_control enumeration) + * @param root mux value (see @ref _ccm_rootmux_xxx enumeration) * @param pre Pre divider value (0-7, divider=n+1) * @param post Post divider value (0-63, divider=n+1) */ @@ -465,8 +447,8 @@ void CCM_UpdateRoot(CCM_Type * base, uint32_t ccmRoot, uint32_t mux, uint32_t pr * @brief Set PLL or CCGR gate control * * @param base CCM base pointer. - * @param ccmGate Gate control (see _ccm_pll_gate and _ccm_ccgr_gate enumeration) - * @param control Gate control value (see _ccm_gate_value) + * @param ccmGate Gate control (see @ref _ccm_pll_gate and @ref _ccm_ccgr_gate enumeration) + * @param control Gate control value (see @ref _ccm_gate_value) */ static inline void CCM_ControlGate(CCM_Type * base, uint32_t ccmGate, uint32_t control) { diff --git a/platform/drivers/inc/ecspi.h b/platform/drivers/inc/ecspi.h index 2e11401..151472b 100644 --- a/platform/drivers/inc/ecspi.h +++ b/platform/drivers/inc/ecspi.h @@ -45,129 +45,115 @@ * Definitions ******************************************************************************/ -/*! - * @brief Channel select. - */ -enum _ecspi_channel_select { - ecspiSelectChannel0 = 0U, /*!< Selecte Channel 0. Chip Select 0 (SS0) will be asserted.*/ - ecspiSelectChannel1 = 1U, /*!< Selecte Channel 1. Chip Select 1 (SS1) will be asserted.*/ - ecspiSelectChannel2 = 2U, /*!< Selecte Channel 2. Chip Select 2 (SS2) will be asserted.*/ - ecspiSelectChannel3 = 3U /*!< Selecte Channel 3. Chip Select 3 (SS3) will be asserted.*/ +/*! @brief Channel select. */ +enum _ecspi_channel_select +{ + ecspiSelectChannel0 = 0U, /*!< Select Channel 0. Chip Select 0 (SS0) is asserted.*/ + ecspiSelectChannel1 = 1U, /*!< Select Channel 1. Chip Select 1 (SS1) is asserted.*/ + ecspiSelectChannel2 = 2U, /*!< Select Channel 2. Chip Select 2 (SS2) is asserted.*/ + ecspiSelectChannel3 = 3U, /*!< Select Channel 3. Chip Select 3 (SS3) is asserted.*/ }; -/*! - * @brief Channel mode. - */ -enum _ecspi_master_slave_mode { - ecspiSlaveMode = 0U, /*!< Set Slave Mode.*/ - ecspiMasterMode = 1U /*!< Set Master Mode.*/ +/*! @brief Channel mode. */ +enum _ecspi_master_slave_mode +{ + ecspiSlaveMode = 0U, /*!< Set Slave Mode.*/ + ecspiMasterMode = 1U, /*!< Set Master Mode.*/ }; -/*! - * @brief Clock phase. - */ -enum _ecspi_clock_phase { - ecspiClockPhaseFirstEdge = 0U, /*!< Data is captured on the leading edge of the SCK and - changed on the following edge.*/ - ecspiClockPhaseSecondEdge = 1U /*!< Data is changed on the leading edge of the SCK and - captured on the following edge.*/ +/*! @brief Clock phase. */ +enum _ecspi_clock_phase +{ + ecspiClockPhaseFirstEdge = 0U, /*!< Data is captured on the leading edge of the SCK and + changed on the following edge.*/ + ecspiClockPhaseSecondEdge = 1U, /*!< Data is changed on the leading edge of the SCK and + captured on the following edge.*/ }; -/*! - * @brief Clock polarity. - */ -enum _ecspi_clock_polarity { - ecspiClockPolarityActiveHigh = 0U, /*!< Active-high ECSPI clock (idles low)*/ - ecspiClockPolarityActiveLow = 1U /*!< Active-low ECSPI clock (idles high)*/ +/*! @brief Clock polarity. */ +enum _ecspi_clock_polarity +{ + ecspiClockPolarityActiveHigh = 0U, /*!< Active-high eCSPI clock (idles low).*/ + ecspiClockPolarityActiveLow = 1U, /*!< Active-low eCSPI clock (idles high).*/ }; -/*! - * @brief SS signal polarity. - */ -enum _ecspi_ss_polarity { - ecspiSSPolarityActiveLow = 0U, /*!< Active-low, ECSPI SS signal*/ - ecspiSSPolarityActiveHigh = 1U /*!< Active-high, ECSPI SS signal */ +/*! @brief SS signal polarity. */ +enum _ecspi_ss_polarity +{ + ecspiSSPolarityActiveLow = 0U, /*!< Active-low, eCSPI SS signal.*/ + ecspiSSPolarityActiveHigh = 1U, /*!< Active-high, eCSPI SS signal.*/ }; -/*! - * @brief Inactive state of data line. - */ -enum _ecspi_dataline_inactivestate { - ecspiDataLineStayHigh = 0U, /*!< Data line inactive state stay high */ - ecspiDataLineStayLow = 1U /*!< Data line inactive state stay low */ +/*! @brief Inactive state of data line. */ +enum _ecspi_dataline_inactivestate +{ + ecspiDataLineStayHigh = 0U, /*!< Data line inactive state stay high.*/ + ecspiDataLineStayLow = 1U, /*!< Data line inactive state stay low.*/ }; -/*! - * @brief Inactive state of SCLK. - */ -enum _ecspi_sclk_inactivestate { - ecspiSclkStayLow = 0U, /*!< SCLK inactive state stay low */ - ecspiSclkStayHigh = 1U /*!< SCLK line inactive state stay high */ +/*! @brief Inactive state of SCLK. */ +enum _ecspi_sclk_inactivestate +{ + ecspiSclkStayLow = 0U, /*!< SCLK inactive state stay low.*/ + ecspiSclkStayHigh = 1U, /*!< SCLK line inactive state stay high.*/ }; -/*! - * @brief sample period counter clock source. - */ -enum _ecspi_sampleperiod_clocksource { - ecspiSclk = 0U, /*!< SCLK */ - ecspiLowFreq32K = 1U /*!< Low-Frequency Reference Clock (32.768 KHz) */ +/*! @brief sample period counter clock source. */ +enum _ecspi_sampleperiod_clocksource +{ + ecspiSclk = 0U, /*!< Sample period counter clock from SCLK.*/ + ecspiLowFreq32K = 1U, /*!< Sample period counter clock from from LFRC (32.768 KHz).*/ }; -/*! - * @brief DMA Source definition. - */ -enum _ecspi_dma_source { - ecspiDmaTxfifoEmpty = 7U, /*!< TXFIFO Empty DMA Request*/ - ecspiDmaRxfifoRequest = 23U, /*!< RXFIFO DMA Request */ - ecspiDmaRxfifoTail = 31U, /*!< RXFIFO TAIL DMA Request */ +/*! @brief DMA Source definition. */ +enum _ecspi_dma_source +{ + ecspiDmaTxfifoEmpty = 7U, /*!< TXFIFO Empty DMA Request.*/ + ecspiDmaRxfifoRequest = 23U, /*!< RXFIFO DMA Request.*/ + ecspiDmaRxfifoTail = 31U, /*!< RXFIFO TAIL DMA Request.*/ }; -/*! - * @brief RXFIFO and TXFIFO threshold. - */ -enum _ecspi_fifothreshold { - ecspiTxfifoThreshold = 0U, /*!< Defines the FIFO threshold that triggers a TX DMA/INT request */ - ecspiRxfifoThreshold = 16U /*!< defines the FIFO threshold that triggers a RX DMA/INT request. */ +/*! @brief RXFIFO and TXFIFO threshold. */ +enum _ecspi_fifothreshold +{ + ecspiTxfifoThreshold = 0U, /*!< Defines the FIFO threshold that triggers a TX DMA/INT request.*/ + ecspiRxfifoThreshold = 16U, /*!< defines the FIFO threshold that triggers a RX DMA/INT request.*/ }; -/*! - * @brief Status flag. - */ -enum _ecspi_status_flag { - ecspiFlagTxfifoEmpty = 1U << 0, /*!< TXFIFO Empty Flag */ - ecspiFlagTxfifoDataRequest = 1U << 1, /*!< TXFIFO Data Request Flag */ - ecspiFlagTxfifoFull = 1U << 2, /*!< TXFIFO Full Flag */ - ecspiFlagRxfifoReady = 1U << 3, /*!< RXFIFO Ready Flag */ - ecspiFlagRxfifoDataRequest = 1U << 4, /*!< RXFIFO Data Request Flag */ - ecspiFlagRxfifoFull = 1U << 5, /*!< RXFIFO Full Flag */ - ecspiFlagRxfifoOverflow = 1U << 6, /*!< RXFIFO Overflow Flag */ - ecspiFlagTxfifoTc = 1U << 7 /*!< TXFIFO Transform Completed Flag */ +/*! @brief Status flag. */ +enum _ecspi_status_flag +{ + ecspiFlagTxfifoEmpty = 1U << 0, /*!< TXFIFO Empty Flag.*/ + ecspiFlagTxfifoDataRequest = 1U << 1, /*!< TXFIFO Data Request Flag.*/ + ecspiFlagTxfifoFull = 1U << 2, /*!< TXFIFO Full Flag.*/ + ecspiFlagRxfifoReady = 1U << 3, /*!< RXFIFO Ready Flag.*/ + ecspiFlagRxfifoDataRequest = 1U << 4, /*!< RXFIFO Data Request Flag.*/ + ecspiFlagRxfifoFull = 1U << 5, /*!< RXFIFO Full Flag.*/ + ecspiFlagRxfifoOverflow = 1U << 6, /*!< RXFIFO Overflow Flag.*/ + ecspiFlagTxfifoTc = 1U << 7, /*!< TXFIFO Transform Completed Flag.*/ }; -/*! - * @brief Data Ready Control. - */ -enum _ecspi_data_ready { - ecspiRdyNoCare = 0U, /*!< The SPI_RDY signal is a don't care */ - ecspiRdyFallEdgeTrig = 1U, /*!< Burst will be triggered by the falling edge of the SPI_RDY signal (edge-triggered) */ - ecspiRdyLowLevelTrig = 2U, /*!< Burst will be triggered by a low level of the SPI_RDY signal (level-triggered) */ - ecspiRdyReserved = 3U, /*!< Reserved */ +/*! @brief Data Ready Control. */ +enum _ecspi_data_ready +{ + ecspiRdyNoCare = 0U, /*!< The SPI_RDY signal is ignored.*/ + ecspiRdyFallEdgeTrig = 1U, /*!< Burst is triggered by the falling edge of the SPI_RDY signal (edge-triggered).*/ + ecspiRdyLowLevelTrig = 2U, /*!< Burst is triggered by a low level of the SPI_RDY signal (level-triggered).*/ + ecspiRdyReserved = 3U, /*!< Reserved.*/ }; -/*! - * @brief Init structure. - */ -typedef struct EcspiInit +/*! @brief Init structure. */ +typedef struct _ecspi_init_config { - uint32_t clockRate; /*!< Specifies ECSPII module clock freq. */ - uint32_t baudRate; /*!< Specifies desired ECSPI baud rate. */ - uint32_t channelSelect; /*!< Specifies the channel select */ - uint32_t mode; /*!< Specifies the mode */ - bool ecspiAutoStart; /*!< Specifies the start mode */ - uint32_t burstLength; /*!< Specifies the length of a burst to be transferred */ - uint32_t clockPhase; /*!< Specifies the clock phase */ - uint32_t clockPolarity; /*!< Specifies the clock polarity */ -} ecspi_init_t; + uint32_t clockRate; /*!< Specifies ECSPII module clock freq.*/ + uint32_t baudRate; /*!< Specifies desired eCSPI baud rate.*/ + uint32_t channelSelect; /*!< Specifies the channel select.*/ + uint32_t mode; /*!< Specifies the mode.*/ + uint32_t burstLength; /*!< Specifies the length of a burst to be transferred.*/ + uint32_t clockPhase; /*!< Specifies the clock phase.*/ + uint32_t clockPolarity; /*!< Specifies the clock polarity.*/ + bool ecspiAutoStart; /*!< Specifies the start mode.*/ +} ecspi_init_config_t; /******************************************************************************* * API @@ -178,49 +164,49 @@ extern "C" { #endif /*! - * @name ECSPI Initialization and Configuration functions + * @name eCSPI Initialization and Configuration functions * @{ */ - /*! - * @brief Initializes the ECSPI module. +/*! + * @brief Initializes the eCSPI module. * - * @param base: ECSPI base pointer. - * @param initStruct: pointer to a ecspi_init_t structure. + * @param base eCSPI base pointer. + * @param initConfig eCSPI initialize structure. */ -void ECSPI_Init(ECSPI_Type* base, ecspi_init_t* initStruct); +void ECSPI_Init(ECSPI_Type* base, const ecspi_init_config_t* initConfig); - /*! - * @brief Enables the specified ECSPI module. +/*! + * @brief Enables the specified eCSPI module. * - * @param base ECSPI base pointer. + * @param base eCSPI base pointer. */ static inline void ECSPI_Enable(ECSPI_Type* base) { - /* Enable the ECSPI */ + /* Enable the eCSPI. */ ECSPI_CONREG_REG(base) |= ECSPI_CONREG_EN_MASK; } - /*! - * @brief Disable the specified ECSPI module. +/*! + * @brief Disable the specified eCSPI module. * - * @param base ECSPI base pointer. + * @param base eCSPI base pointer. */ static inline void ECSPI_Disable(ECSPI_Type* base) { - /* Enable the ECSPI */ + /* Enable the eCSPI. */ ECSPI_CONREG_REG(base) &= ~ECSPI_CONREG_EN_MASK; } /*! * @brief Insert the number of wait states to be inserted in data transfers. * - * @param base ECSPI base pointer. + * @param base eCSPI base pointer. * @param number the number of wait states. */ static inline void ECSPI_InsertWaitState(ECSPI_Type* base, uint32_t number) { - /* Configure the number of wait states inserted */ + /* Configure the number of wait states inserted. */ ECSPI_PERIODREG_REG(base) = (ECSPI_PERIODREG_REG(base) & (~ECSPI_PERIODREG_SAMPLE_PERIOD_MASK)) | ECSPI_PERIODREG_SAMPLE_PERIOD(number); } @@ -228,21 +214,21 @@ static inline void ECSPI_InsertWaitState(ECSPI_Type* base, uint32_t number) /*! * @brief Set the clock source for the sample period counter. * - * @param base ECSPI base pointer. - * @param source the clock source (see _ecspi_sampleperiod_clocksource). + * @param base eCSPI base pointer. + * @param source The clock source (see @ref _ecspi_sampleperiod_clocksource enumeration). */ void ECSPI_SetSampClockSource(ECSPI_Type* base, uint32_t source); /*! - * @brief Set the ECSPI clocks inserte between the chip select's active edge - * and the first ECSPI clock edge + * @brief Set the eCSPI clocks insert between the chip select active edge + * and the first eCSPI clock edge. * - * @param base ECSPI base pointer. - * @param delay the number of wait states. + * @param base eCSPI base pointer. + * @param delay The number of wait states. */ static inline void ECSPI_SetDelay(ECSPI_Type* base, uint32_t delay) { - /* Set the number of clocks inserte */ + /* Set the number of clocks insert. */ ECSPI_PERIODREG_REG(base) = (ECSPI_PERIODREG_REG(base) & (~ECSPI_PERIODREG_CSD_CTL_MASK)) | ECSPI_PERIODREG_CSD_CTL(delay); } @@ -250,13 +236,13 @@ static inline void ECSPI_SetDelay(ECSPI_Type* base, uint32_t delay) /*! * @brief Set the inactive state of SCLK. * - * @param base ECSPI base pointer. - * @param channel ECSPI channel select (see _ecspi_channel_select). - * @param state SCLK inactive state (see _ecspi_sclk_inactivestate). + * @param base eCSPI base pointer. + * @param channel eCSPI channel select (see @ref _ecspi_channel_select enumeration). + * @param state SCLK inactive state (see @ref _ecspi_sclk_inactivestate enumeration). */ static inline void ECSPI_SetSCLKInactiveState(ECSPI_Type* base, uint32_t channel, uint32_t state) { - /* Configure the inactive state of SCLK */ + /* Configure the inactive state of SCLK. */ ECSPI_CONFIGREG_REG(base) = (ECSPI_CONFIGREG_REG(base) & (~ECSPI_CONFIGREG_SCLK_CTL(1 << channel))) | ECSPI_CONFIGREG_SCLK_CTL((state & 1) << channel); } @@ -264,13 +250,13 @@ static inline void ECSPI_SetSCLKInactiveState(ECSPI_Type* base, uint32_t channel /*! * @brief Set the inactive state of data line. * - * @param base ECSPI base pointer. - * @param channel ECSPI channel select (see _ecspi_channel_select). - * @param state Data line inactive state (see _ecspi_dataline_inactivestate). + * @param base eCSPI base pointer. + * @param channel eCSPI channel select (see @ref _ecspi_channel_select enumeration). + * @param state Data line inactive state (see @ref _ecspi_dataline_inactivestate enumeration). */ static inline void ECSPI_SetDataInactiveState(ECSPI_Type* base, uint32_t channel, uint32_t state) { - /* Set the inactive state of Data Line */ + /* Set the inactive state of Data Line. */ ECSPI_CONFIGREG_REG(base) = (ECSPI_CONFIGREG_REG(base) & (~ECSPI_CONFIGREG_DATA_CTL(1 << channel))) | ECSPI_CONFIGREG_DATA_CTL((state & 1) << channel); } @@ -278,32 +264,32 @@ static inline void ECSPI_SetDataInactiveState(ECSPI_Type* base, uint32_t channel /*! * @brief Trigger a burst. * - * @param base ECSPI base pointer. + * @param base eCSPI base pointer. */ static inline void ECSPI_StartBurst(ECSPI_Type* base) { - /* start a burst */ + /* Start a burst. */ ECSPI_CONREG_REG(base) |= ECSPI_CONREG_XCH_MASK; } /*! * @brief Set the burst length. * - * @param base ECSPI base pointer. - * @param length the value of burst length. + * @param base eCSPI base pointer. + * @param length The value of burst length. */ static inline void ECSPI_SetBurstLength(ECSPI_Type* base, uint32_t length) { - /* Set the burst length according to length */ + /* Set the burst length according to length. */ ECSPI_CONREG_REG(base) = (ECSPI_CONREG_REG(base) & (~ECSPI_CONREG_BURST_LENGTH_MASK)) | ECSPI_CONREG_BURST_LENGTH(length); } /*! - * @brief Set ECSPI SS Wave Form. + * @brief Set eCSPI SS Wave Form. * - * @param base ECSPI base pointer. - * @param channel ECSPI channel selected (see _ecspi_channel_select). + * @param base eCSPI base pointer. + * @param channel eCSPI channel selected (see @ref _ecspi_channel_select enumeration). * @param ssMultiBurst For master mode, set true for multiple burst and false for one burst. * For slave mode, set true to complete burst by SS signal edges and false to complete * burst by number of bits received. @@ -316,11 +302,11 @@ static inline void ECSPI_SetSSMultipleBurst(ECSPI_Type* base, uint32_t channel, } /*! - * @brief Set ECSPI SS Polarity. + * @brief Set eCSPI SS Polarity. * - * @param base ECSPI base pointer. - * @param channel ECSPI channel selected (see _ecspi_channel_select). - * @param polarity set SS signal active logic (see _ecspi_ss_polarity). + * @param base eCSPI base pointer. + * @param channel eCSPI channel selected (see @ref _ecspi_channel_select enumeration). + * @param polarity Set SS signal active logic (see @ref _ecspi_ss_polarity enumeration). */ static inline void ECSPI_SetSSPolarity(ECSPI_Type* base, uint32_t channel, uint32_t polarity) { @@ -332,22 +318,22 @@ static inline void ECSPI_SetSSPolarity(ECSPI_Type* base, uint32_t channel, uint3 /*! * @brief Set the Data Ready Control. * - * @param base ECSPI base pointer. - * @param spidataready ECSPI data ready control (see _ecspi_data_ready). + * @param base eCSPI base pointer. + * @param spidataready eCSPI data ready control (see @ref _ecspi_data_ready enumeration). */ static inline void ECSPI_SetSPIDataReady(ECSPI_Type* base, uint32_t spidataready) { - /* Set the Data Ready Control */ + /* Set the Data Ready Control. */ ECSPI_CONREG_REG(base) = (ECSPI_CONREG_REG(base) & (~ECSPI_CONREG_DRCTL_MASK)) | ECSPI_CONREG_DRCTL(spidataready); } /*! - * @brief Calculated the ECSPI baud rate in bits per second. + * @brief Calculated the eCSPI baud rate in bits per second. * The calculated baud rate must not exceed the desired baud rate. * - * @param base ECSPI base pointer. - * @param sourceClockInHz ECSPI Clock(SCLK) (in Hz). + * @param base eCSPI base pointer. + * @param sourceClockInHz eCSPI Clock(SCLK) (in Hz). * @param bitsPerSec the value of Baud Rate. * @return The calculated baud rate in bits-per-second, the nearest possible * baud rate without exceeding the desired baud rate. @@ -364,47 +350,48 @@ uint32_t ECSPI_SetBaudRate(ECSPI_Type* base, uint32_t sourceClockInHz, uint32_t /*! * @brief Transmits a data to TXFIFO. * - * @param base ECSPI base pointer. + * @param base eCSPI base pointer. * @param data Data to be transmitted. */ static inline void ECSPI_SendData(ECSPI_Type* base, uint32_t data) { - /* Write data to Transmit Data Register */ + /* Write data to Transmit Data Register. */ ECSPI_TXDATA_REG(base) = data; } /*! * @brief Receives a data from RXFIFO. - * @param base ECSPI base pointer. + * + * @param base eCSPI base pointer. * @return The value of received data. */ static inline uint32_t ECSPI_ReceiveData(ECSPI_Type* base) { - /* Read data from Receive Data Register */ + /* Read data from Receive Data Register. */ return ECSPI_RXDATA_REG(base); } /*! * @brief Read the number of words in the RXFIFO. * - * @param base ECSPI base pointer. + * @param base eCSPI base pointer. * @return The number of words in the RXFIFO. */ static inline uint32_t ECSPI_GetRxfifoCounter(ECSPI_Type* base) { - /* Get the number of words in the RXFIFO */ + /* Get the number of words in the RXFIFO. */ return ((ECSPI_TESTREG_REG(base) & ECSPI_TESTREG_RXCNT_MASK) >> ECSPI_TESTREG_RXCNT_SHIFT); } /*! * @brief Read the number of words in the TXFIFO. * - * @param base ECSPI base pointer. + * @param base eCSPI base pointer. * @return The number of words in the TXFIFO. */ static inline uint32_t ECSPI_GetTxfifoCounter(ECSPI_Type* base) { - /* Get the number of words in the RXFIFO */ + /* Get the number of words in the RXFIFO. */ return ((ECSPI_TESTREG_REG(base) & ECSPI_TESTREG_TXCNT_MASK) >> ECSPI_TESTREG_TXCNT_SHIFT); } @@ -418,21 +405,23 @@ static inline uint32_t ECSPI_GetTxfifoCounter(ECSPI_Type* base) /*! * @brief Enable or disable the specified DMA Source. * - * @param base ECSPI base pointer. - * @param source specifies DMA source (see _ecspi_dma_source). - * @param enable True or False. + * @param base eCSPI base pointer. + * @param source specifies DMA source (see @ref _ecspi_dma_source enumeration). + * @param enable Enable/Disable specified DMA Source. + * - true: Enable specified DMA Source. + * - false: Disable specified DMA Source. */ void ECSPPI_SetDMACmd(ECSPI_Type* base, uint32_t source, bool enable); /*! * @brief Set the burst length of a DMA operation. * - * @param base ECSPI base pointer. - * @param length specifies the burst length of a DMA operation. + * @param base eCSPI base pointer. + * @param length Specifies the burst length of a DMA operation. */ static inline void ECSPI_SetDMABurstLength(ECSPI_Type* base, uint32_t length) { - /* Configure the burst length of a DMA operation */ + /* Configure the burst length of a DMA operation. */ ECSPI_DMAREG_REG(base) = (ECSPI_DMAREG_REG(base) & (~ECSPI_DMAREG_RX_DMA_LENGTH_MASK)) | ECSPI_DMAREG_RX_DMA_LENGTH(length); } @@ -440,8 +429,8 @@ static inline void ECSPI_SetDMABurstLength(ECSPI_Type* base, uint32_t length) /*! * @brief Set the RXFIFO or TXFIFO threshold. * - * @param base ECSPI base pointer. - * @param fifo Data transfer fifo (see _ecspi_fifothreshold) + * @param base eCSPI base pointer. + * @param fifo Data transfer FIFO (see @ref _ecspi_fifothreshold enumeration). * @param threshold Threshold value. */ void ECSPI_SetFIFOThreshold(ECSPI_Type* base, uint32_t fifo, uint32_t threshold); @@ -454,36 +443,38 @@ void ECSPI_SetFIFOThreshold(ECSPI_Type* base, uint32_t fifo, uint32_t threshold) */ /*! - * @brief Enable or disable the specified ECSPI interrupts. + * @brief Enable or disable the specified eCSPI interrupts. * - * @param base ECSPI base pointer. - * @param flags ECSPI status flag mask (see _ecspi_status_flag for bit definition). - * @param enable Interrupt enable (true: enable, false: disable). + * @param base eCSPI base pointer. + * @param flags eCSPI status flag mask (see @ref _ecspi_status_flag for bit definition). + * @param enable Interrupt enable. + * - true: Enable specified eCSPI interrupts. + * - false: Disable specified eCSPI interrupts. */ void ECSPI_SetIntCmd(ECSPI_Type* base, uint32_t flags, bool enable); /*! - * @brief Checks whether the specified ECSPI flag is set or not. + * @brief Checks whether the specified eCSPI flag is set or not. * - * @param base ECSPI base pointer. - * @param flags ECSPI status flag mask (see _ecspi_status_flag for bit definition). - * @return ECSPI status, each bit represents one status flag. + * @param base eCSPI base pointer. + * @param flags eCSPI status flag mask (see @ref _ecspi_status_flag for bit definition). + * @return eCSPI status, each bit represents one status flag. */ static inline uint32_t ECSPI_GetStatusFlag(ECSPI_Type* base, uint32_t flags) { - /* return the vale of ECSPI status */ + /* return the vale of eCSPI status. */ return ECSPI_STATREG_REG(base) & flags; } /*! - * @brief Clear one or more ECSPI status flag. + * @brief Clear one or more eCSPI status flag. * - * @param base ECSPI base pointer. - * @param flags ECSPI status flag mask (see _ecspi_status_flag for bit definition). + * @param base eCSPI base pointer. + * @param flags eCSPI status flag mask (see @ref _ecspi_status_flag for bit definition). */ static inline void ECSPI_ClearStatusFlag(ECSPI_Type* base, uint32_t flags) { - /* Write 1 to the status bit */ + /* Write 1 to the status bit. */ ECSPI_STATREG_REG(base) = flags; } diff --git a/platform/drivers/inc/flexcan.h b/platform/drivers/inc/flexcan.h index 8f27315..016952b 100644 --- a/platform/drivers/inc/flexcan.h +++ b/platform/drivers/inc/flexcan.h @@ -36,6 +36,18 @@ #include #include "device_imx.h" +/* Start of section using anonymous unions. */ +#if defined(__ARMCC_VERSION) + #pragma push + #pragma anon_unions +#elif defined(__GNUC__) + /* anonymous unions are enabled by default */ +#elif defined(__IAR_SYSTEMS_ICC__) + #pragma language=extended +#else + #error Not supported compiler type +#endif + /*! * @addtogroup flexcan_driver * @{ @@ -45,124 +57,133 @@ * Definitions ******************************************************************************/ -/*! @brief FlexCAN message buffer CODE for Rx buffers */ -enum _flexcan_msgbuf_code_rx { - flexcanRxInactive = 0x0, /*!< MB is not active. */ - flexcanRxFull = 0x2, /*!< MB is full. */ - flexcanRxEmpty = 0x4, /*!< MB is active and empty. */ - flexcanRxOverrun = 0x6, /*!< MB is overwritten into a full buffer. */ - flexcanRxBusy = 0x8, /*!< FlexCAN is updating the contents of the MB. */ - /*! The CPU must not access the MB. */ - flexcanRxRanswer = 0xA, /*!< A frame was configured to recognize a Remote Request Frame */ - /*! and transmit a Response Frame in return. */ - flexcanRxNotUsed = 0xF /*!< Not used */ +/*! @brief FlexCAN message buffer CODE for Rx buffers. */ +enum _flexcan_msgbuf_code_rx +{ + flexcanRxInactive = 0x0, /*!< MB is not active. */ + flexcanRxFull = 0x2, /*!< MB is full. */ + flexcanRxEmpty = 0x4, /*!< MB is active and empty. */ + flexcanRxOverrun = 0x6, /*!< MB is overwritten into a full buffer. */ + flexcanRxBusy = 0x8, /*!< FlexCAN is updating the contents of the MB. */ + /*! The CPU must not access the MB. */ + flexcanRxRanswer = 0xA, /*!< A frame was configured to recognize a Remote Request Frame */ + /*! and transmit a Response Frame in return. */ + flexcanRxNotUsed = 0xF, /*!< Not used. */ }; -/*! @brief FlexCAN message buffer CODE FOR Tx buffers */ -enum _flexcan_msgbuf_code_tx { - flexcanTxInactive = 0x8, /*!< MB is not active. */ - flexcanTxAbort = 0x9, /*!< MB is aborted. */ - flexcanTxDataOrRemte = 0xC, /*!< MB is a TX Data Frame(when MB RTR = 0) or */ - /*!< MB is a TX Remote Request Frame (when MB RTR = 1). */ - flexcanTxTanswer = 0xE, /*!< MB is a TX Response Request Frame from. */ - /*! an incoming Remote Request Frame. */ - flexcanTxNotUsed = 0xF /*!< Not used */ +/*! @brief FlexCAN message buffer CODE FOR Tx buffers. */ +enum _flexcan_msgbuf_code_tx +{ + flexcanTxInactive = 0x8, /*!< MB is not active. */ + flexcanTxAbort = 0x9, /*!< MB is aborted. */ + flexcanTxDataOrRemte = 0xC, /*!< MB is a TX Data Frame(when MB RTR = 0) or */ + /*!< MB is a TX Remote Request Frame (when MB RTR = 1). */ + flexcanTxTanswer = 0xE, /*!< MB is a TX Response Request Frame from. */ + /*! an incoming Remote Request Frame. */ + flexcanTxNotUsed = 0xF, /*!< Not used. */ }; -/*! @brief FlexCAN operation modes */ -enum _flexcan_operatining_modes { - flexCanNormalMode = 0x1, /*!< Normal mode or user mode @internal gui name="Normal" */ - flexcanListenOnlyMode = 0x2, /*!< Listen-only mode @internal gui name="Listen-only" */ - flexcanLoopBackMode = 0x4, /*!< Loop-back mode @internal gui name="Loop back" */ +/*! @brief FlexCAN operation modes. */ +enum _flexcan_operatining_modes +{ + flexCanNormalMode = 0x1, /*!< Normal mode or user mode @internal gui name="Normal". */ + flexcanListenOnlyMode = 0x2, /*!< Listen-only mode @internal gui name="Listen-only". */ + flexcanLoopBackMode = 0x4, /*!< Loop-back mode @internal gui name="Loop back". */ }; -/*! @brief FlexCAN RX mask mode.*/ -enum _flexcan_rx_mask_mode { - flexcanRxMaskGlobal = 0x0, /*!< Rx global mask*/ - flexcanRxMaskIndividual = 0x1 /*!< Rx individual mask*/ +/*! @brief FlexCAN RX mask mode. */ +enum _flexcan_rx_mask_mode +{ + flexcanRxMaskGlobal = 0x0, /*!< Rx global mask. */ + flexcanRxMaskIndividual = 0x1, /*!< Rx individual mask. */ }; /*! @brief The ID type used in rx matching process. */ -enum _flexcan_rx_mask_id_type { - flexcanRxMaskIdStd = 0x0, /*!< Standard ID*/ - flexcanRxMaskIdExt = 0x1 /*!< Extended ID*/ +enum _flexcan_rx_mask_id_type +{ + flexcanRxMaskIdStd = 0x0, /*!< Standard ID. */ + flexcanRxMaskIdExt = 0x1, /*!< Extended ID. */ }; -/*! @brief Flexcan error interrupt source enumeration. */ -enum _flexcan_interrutpt { - flexcanIntRxWarning = 0x01, - flexcanIntTxWarning = 0x02, - flexcanIntWakeUp = 0x04, - flexcanIntBusOff = 0x08, - flexcanIntError = 0x10, +/*! @brief FlexCAN error interrupt source enumeration. */ +enum _flexcan_interrutpt +{ + flexcanIntRxWarning = 0x01, /*!< Tx Warning interrupt source. */ + flexcanIntTxWarning = 0x02, /*!< Tx Warning interrupt source. */ + flexcanIntWakeUp = 0x04, /*!< Wake Up interrupt source. */ + flexcanIntBusOff = 0x08, /*!< Bus Off interrupt source. */ + flexcanIntError = 0x10, /*!< Error interrupt source. */ }; -/*! @brief Flexcan error interrupt flags. */ -enum _flexcan_status_flag { - flexcanStatusSynch = CAN_ESR1_SYNCH_MASK, - flexcanStatusTxWarningInt = CAN_ESR1_TWRN_INT_MASK, - flexcanStatusRxWarningInt = CAN_ESR1_RWRN_INT_MASK, - flexcanStatusBit1Err = CAN_ESR1_BIT1_ERR_MASK, - flexcanStatusBit0Err = CAN_ESR1_BIT0_ERR_MASK, - flexcanStatusAckErr = CAN_ESR1_ACK_ERR_MASK, - flexcanStatusCrcErr = CAN_ESR1_CRC_ERR_MASK, - flexcanStatusFrameErr = CAN_ESR1_FRM_ERR_MASK, - flexcanStatusStuffingErr = CAN_ESR1_FRM_ERR_MASK, - flexcanStatusTxWarning = CAN_ESR1_TX_WRN_MASK, - flexcanStatusRxWarning = CAN_ESR1_RX_WRN_MASK, - flexcanStatusIdle = CAN_ESR1_IDLE_MASK, - flexcanStatusTransmitting = CAN_ESR1_TX_MASK, - flexcanStatusFltConf = CAN_ESR1_FLT_CONF_MASK, - flexcanStatusReceiving = CAN_ESR1_RX_MASK, - flexcanStatusBusOff = CAN_ESR1_BOFF_INT_MASK, - flexcanStatusError = CAN_ESR1_ERR_INT_MASK, - flexcanStatusWake = CAN_ESR1_WAK_INT_MASK +/*! @brief FlexCAN error interrupt flags. */ +enum _flexcan_status_flag +{ + flexcanStatusSynch = CAN_ESR1_SYNCH_MASK, /*!< Bus Synchronized flag. */ + flexcanStatusTxWarningInt = CAN_ESR1_TWRN_INT_MASK, /*!< Tx Warning initerrupt flag. */ + flexcanStatusRxWarningInt = CAN_ESR1_RWRN_INT_MASK, /*!< Tx Warning initerrupt flag. */ + flexcanStatusBit1Err = CAN_ESR1_BIT1_ERR_MASK, /*!< Bit0 Error flag. */ + flexcanStatusBit0Err = CAN_ESR1_BIT0_ERR_MASK, /*!< Bit1 Error flag. */ + flexcanStatusAckErr = CAN_ESR1_ACK_ERR_MASK, /*!< Ack Error flag. */ + flexcanStatusCrcErr = CAN_ESR1_CRC_ERR_MASK, /*!< CRC Error flag. */ + flexcanStatusFrameErr = CAN_ESR1_FRM_ERR_MASK, /*!< Frame Error flag. */ + flexcanStatusStuffingErr = CAN_ESR1_STF_ERR_MASK, /*!< Stuffing Error flag. */ + flexcanStatusTxWarning = CAN_ESR1_TX_WRN_MASK, /*!< Tx Warning flag. */ + flexcanStatusRxWarning = CAN_ESR1_RX_WRN_MASK, /*!< Rx Warning flag. */ + flexcanStatusIdle = CAN_ESR1_IDLE_MASK, /*!< FlexCAN Idle flag. */ + flexcanStatusTransmitting = CAN_ESR1_TX_MASK, /*!< Trasmitting flag. */ + flexcanStatusFltConf = CAN_ESR1_FLT_CONF_MASK, /*!< Fault Config flag. */ + flexcanStatusReceiving = CAN_ESR1_RX_MASK, /*!< Receiving flag. */ + flexcanStatusBusOff = CAN_ESR1_BOFF_INT_MASK, /*!< Bus Off interrupt flag. */ + flexcanStatusError = CAN_ESR1_ERR_INT_MASK, /*!< Error interrupt flag. */ + flexcanStatusWake = CAN_ESR1_WAK_INT_MASK, /*!< Wake Up interrupt flag. */ }; /*! @brief The id filter element type selection. */ -enum _flexcan_rx_fifo_id_element_format { - flexcanFxFifoIdElementFormatA = 0x0, /*!< One full ID (standard and extended) per ID Filter Table*/ - /*! element.*/ - flexcanFxFifoIdElementFormatB = 0x1, /*!< Two full standard IDs or two partial 14-bit (standard and*/ - /*! extended) IDs per ID Filter Table element.*/ - flexcanFxFifoIdElementFormatC = 0x2, /*!< Four partial 8-bit Standard IDs per ID Filter Table*/ - /*! element.*/ - flexcanFxFifoIdElementFormatD = 0x3 /*!< All frames rejected.*/ +enum _flexcan_rx_fifo_id_element_format +{ + flexcanRxFifoIdElementFormatA = 0x0, /*!< One full ID (standard and extended) per ID Filter Table element. */ + flexcanRxFifoIdElementFormatB = 0x1, /*!< Two full standard IDs or two partial 14-bit (standard and extended) IDs per ID Filter Table element. */ + flexcanRxFifoIdElementFormatC = 0x2, /*!< Four partial 8-bit Standard IDs per ID Filter Table element. */ + flexcanRxFifoIdElementFormatD = 0x3, /*!< All frames rejected. */ }; -/*! @brief FlexCAN Rx FIFO filters number*/ +/*! @brief FlexCAN Rx FIFO filters number. */ enum _flexcan_rx_fifo_filter_id_number { - flexcanRxFifoIdFilterNum8 = 0x0, /*!< 8 Rx FIFO Filters. @internal gui name="8 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum16 = 0x1, /*!< 16 Rx FIFO Filters. @internal gui name="16 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum24 = 0x2, /*!< 24 Rx FIFO Filters. @internal gui name="24 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum32 = 0x3, /*!< 32 Rx FIFO Filters. @internal gui name="32 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum40 = 0x4, /*!< 40 Rx FIFO Filters. @internal gui name="40 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum48 = 0x5, /*!< 48 Rx FIFO Filters. @internal gui name="48 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum56 = 0x6, /*!< 56 Rx FIFO Filters. @internal gui name="56 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum64 = 0x7, /*!< 64 Rx FIFO Filters. @internal gui name="64 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum72 = 0x8, /*!< 72 Rx FIFO Filters. @internal gui name="72 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum80 = 0x9, /*!< 80 Rx FIFO Filters. @internal gui name="80 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum88 = 0xA, /*!< 88 Rx FIFO Filters. @internal gui name="88 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum96 = 0xB, /*!< 96 Rx FIFO Filters. @internal gui name="96 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum104 = 0xC, /*!< 104 Rx FIFO Filters. @internal gui name="104 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum112 = 0xD, /*!< 112 Rx FIFO Filters. @internal gui name="112 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum120 = 0xE, /*!< 120 Rx FIFO Filters. @internal gui name="120 Rx FIFO Filters" */ - flexcanRxFifoIdFilterNum128 = 0xF, /*!< 128 Rx FIFO Filters. @internal gui name="128 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum8 = 0x0, /*!< 8 Rx FIFO Filters. @internal gui name="8 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum16 = 0x1, /*!< 16 Rx FIFO Filters. @internal gui name="16 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum24 = 0x2, /*!< 24 Rx FIFO Filters. @internal gui name="24 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum32 = 0x3, /*!< 32 Rx FIFO Filters. @internal gui name="32 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum40 = 0x4, /*!< 40 Rx FIFO Filters. @internal gui name="40 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum48 = 0x5, /*!< 48 Rx FIFO Filters. @internal gui name="48 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum56 = 0x6, /*!< 56 Rx FIFO Filters. @internal gui name="56 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum64 = 0x7, /*!< 64 Rx FIFO Filters. @internal gui name="64 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum72 = 0x8, /*!< 72 Rx FIFO Filters. @internal gui name="72 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum80 = 0x9, /*!< 80 Rx FIFO Filters. @internal gui name="80 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum88 = 0xA, /*!< 88 Rx FIFO Filters. @internal gui name="88 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum96 = 0xB, /*!< 96 Rx FIFO Filters. @internal gui name="96 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum104 = 0xC, /*!< 104 Rx FIFO Filters. @internal gui name="104 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum112 = 0xD, /*!< 112 Rx FIFO Filters. @internal gui name="112 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum120 = 0xE, /*!< 120 Rx FIFO Filters. @internal gui name="120 Rx FIFO Filters" */ + flexcanRxFifoIdFilterNum128 = 0xF, /*!< 128 Rx FIFO Filters. @internal gui name="128 Rx FIFO Filters" */ }; -/*! @brief FlexCAN RX FIFO ID filter table structure*/ -typedef struct FLEXCANIdTable { - bool isRemoteFrame; /*!< Remote frame*/ - bool isExtendedFrame; /*!< Extended frame*/ - uint32_t *idFilter; /*!< Rx FIFO ID filter elements*/ +/*! @brief FlexCAN RX FIFO ID filter table structure. */ +typedef struct FLEXCANIdTable +{ + uint32_t *idFilter; /*!< Rx FIFO ID filter elements. */ + bool isRemoteFrame; /*!< Remote frame. */ + bool isExtendedFrame; /*!< Extended frame. */ } flexcan_id_table_t; -/*! @brief FlexCAN message buffer structure*/ -typedef struct _flexcan_msgbuf { - union { - uint32_t cs; /*!< Code and Status*/ - struct { +/*! @brief FlexCAN message buffer structure. */ +typedef struct _flexcan_msgbuf +{ + union + { + uint32_t cs; /*!< Code and Status. */ + struct + { uint32_t timeStamp : 16; uint32_t dlc : 4; uint32_t rtr : 1; @@ -174,18 +195,22 @@ typedef struct _flexcan_msgbuf { }; }; - union{ - uint32_t id; /*!< Message Buffer ID*/ - struct { + union + { + uint32_t id; /*!< Message Buffer ID. */ + struct + { uint32_t idExt : 18; uint32_t idStd : 11; uint32_t prio : 3; }; }; - union{ - uint32_t word0; /*!< Bytes of the FlexCAN message*/ - struct { + union + { + uint32_t word0; /*!< Bytes of the FlexCAN message. */ + struct + { uint8_t data3; uint8_t data2; uint8_t data1; @@ -193,9 +218,11 @@ typedef struct _flexcan_msgbuf { }; }; - union{ - uint32_t word1; /*!< Bytes of the FlexCAN message*/ - struct { + union + { + uint32_t word1; /*!< Bytes of the FlexCAN message. */ + struct + { uint8_t data7; uint8_t data6; uint8_t data5; @@ -204,20 +231,22 @@ typedef struct _flexcan_msgbuf { }; } flexcan_msgbuf_t; -/*! @brief FlexCAN timing related structures*/ -typedef struct _flexcan_timing { - uint32_t preDiv; /*!< Clock pre divider*/ - uint32_t rJumpwidth; /*!< Resync jump width*/ - uint32_t phaseSeg1; /*!< Phase segment 1*/ - uint32_t phaseSeg2; /*!< Phase segment 1*/ - uint32_t propSeg; /*!< Propagation segment*/ +/*! @brief FlexCAN timing-related structures. */ +typedef struct _flexcan_timing +{ + uint32_t preDiv; /*!< Clock pre divider. */ + uint32_t rJumpwidth; /*!< Resync jump width. */ + uint32_t phaseSeg1; /*!< Phase segment 1. */ + uint32_t phaseSeg2; /*!< Phase segment 2. */ + uint32_t propSeg; /*!< Propagation segment. */ } flexcan_timing_t; -/*! @brief Flexcan module initialize structure. */ -typedef struct _flexcan_init_config { - flexcan_timing_t timing; /*!< Desired Flexcan module timing configuration. */ - uint32_t operatingMode; /*!< Desired Flexcan module operating mode. */ - uint8_t maxMsgBufNum; /*!< The maximal number of available message buffer. */ +/*! @brief FlexCAN module initialize structure. */ +typedef struct _flexcan_init_config +{ + flexcan_timing_t timing; /*!< Desired FlexCAN module timing configuration. */ + uint32_t operatingMode; /*!< Desired FlexCAN module operating mode. */ + uint8_t maxMsgBufNum; /*!< The maximal number of available message buffer. */ } flexcan_init_config_t; /******************************************************************************* @@ -234,29 +263,29 @@ extern "C" { */ /*! - * @brief Initialize Flexcan module with given initialize structure. + * @brief Initialize FlexCAN module with given initialize structure. * * @param base CAN base pointer. - * @param initConfig CAN initialize structure(see flexcan_init_config_t above). + * @param initConfig CAN initialize structure (see @ref flexcan_init_config_t structure). */ -void FLEXCAN_Init(CAN_Type* base, flexcan_init_config_t* initConfig); +void FLEXCAN_Init(CAN_Type* base, const flexcan_init_config_t* initConfig); /*! - * @brief This function reset Flexcan module register content to its default value. + * @brief This function reset FlexCAN module register content to its default value. * * @param base FlexCAN base pointer. */ void FLEXCAN_Deinit(CAN_Type* base); /*! - * @brief This function is used to Enable the Flexcan Module. + * @brief This function is used to Enable the FlexCAN Module. * * @param base FlexCAN base pointer. */ void FLEXCAN_Enable(CAN_Type* base); /*! - * @brief This function is used to Disable the CAN Module. + * @brief This function is used to Disable the FlexCAN Module. * * @param base FlexCAN base pointer. */ @@ -265,33 +294,33 @@ void FLEXCAN_Disable(CAN_Type* base); /*! * @brief Sets the FlexCAN time segments for setting up bit rate. * - * @param base FlexCAN base pointer. - * @param timing FlexCAN time segments, which need to be set for the bit rate. + * @param base FlexCAN base pointer. + * @param timing FlexCAN time segments, which need to be set for the bit rate (See @ref flexcan_timing_t structure). */ -void FLEXCAN_SetTiming(CAN_Type* base, flexcan_timing_t* timing); +void FLEXCAN_SetTiming(CAN_Type* base, const flexcan_timing_t* timing); /*! * @brief Set operation mode. * - * @param base FlexCAN base pointer. - * @param mode Set an operation mode. + * @param base FlexCAN base pointer. + * @param mode Set an operation mode. */ void FLEXCAN_SetOperatingMode(CAN_Type* base, uint8_t mode); /*! * @brief Set the maximum number of Message Buffers. * - * @param base FlexCAN base pointer. - * @param bufNum Maximum number of message buffers + * @param base FlexCAN base pointer. + * @param bufNum Maximum number of message buffers. */ void FLEXCAN_SetMaxMsgBufNum(CAN_Type* base, uint32_t bufNum); /*! - * @brief Get the working status of Flexcan module. + * @brief Get the working status of FlexCAN module. * - * @param base FlexCAN base pointer. - * @return true : FLEXCAN module is either in Normal Mode, Listen-Only Mode or Loop-Back Mode - * false : FLEXCAN module is either in Disable Mode, Stop Mode or Freeze Mode + * @param base FlexCAN base pointer. + * @return - true: FLEXCAN module is either in Normal Mode, Listen-Only Mode or Loop-Back Mode. + * - false: FLEXCAN module is either in Disable Mode, Stop Mode or Freeze Mode. */ static inline bool FLEXCAN_IsModuleReady(CAN_Type* base) { @@ -299,63 +328,66 @@ static inline bool FLEXCAN_IsModuleReady(CAN_Type* base) } /*! - * @brief Set the Transmit abort feature enablement. + * @brief Set the Transmit Abort feature enablement. * - * @param base FlexCAN base pointer. - * @param enable - true : Enable Transmit Abort feature. - * - false : Disable Transmit Abort feature. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable Transmit Abort feature. + * - true: Enable Transmit Abort feature. + * - false: Disable Transmit Abort feature. */ void FLEXCAN_SetAbortCmd(CAN_Type* base, bool enable); /*! * @brief Set the local transmit priority enablement. * - * @param base FlexCAN base pointer. - * @param enable - true : transmit MB with highest local priority. - * - false : transmit MB with lowest MB number. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable local transmit periority. + * - true: Transmit MB with highest local priority. + * - false: Transmit MB with lowest MB number. */ void FLEXCAN_SetLocalPrioCmd(CAN_Type* base, bool enable); /*! * @brief Set the Rx matching process priority. * - * @param base FlexCAN base pointer. - * @param priority - true : Matching starts from Mailboxes and continues on Rx FIFO. - * - false : Matching starts from Rx FIFO and continues on Mailboxes. + * @param base FlexCAN base pointer. + * @param priority Set Rx matching process priority. + * - true: Matching starts from Mailboxes and continues on Rx FIFO. + * - false: Matching starts from Rx FIFO and continues on Mailboxes. */ void FLEXCAN_SetMatchPrioCmd(CAN_Type* base, bool priority); /*@}*/ /*! - * @name Flexcan Message buffer control functions + * @name FlexCAN Message buffer control functions * @{ */ /*! * @brief Get message buffer pointer for transition. * - * @param base FlexCAN base pointer. - * @param msgBufIdx message buffer index. - * @return message buffer pointer. + * @param base FlexCAN base pointer. + * @param msgBufIdx message buffer index. + * @return message buffer pointer. */ flexcan_msgbuf_t* FLEXCAN_GetMsgBufPtr(CAN_Type* base, uint8_t msgBufIdx); /*! * @brief Locks the FlexCAN Rx message buffer. * - * @param base FlexCAN base pointer. - * @param msgBuffIdx Index of the message buffer - * @return true : if successful; - * false : failed. + * @param base FlexCAN base pointer. + * @param msgBufIdx Index of the message buffer + * @return - true: Lock Rx Message Buffer successful. + * - false: Lock Rx Message Buffer failed. */ bool FLEXCAN_LockRxMsgBuf(CAN_Type* base, uint8_t msgBufIdx); /*! * @brief Unlocks the FlexCAN Rx message buffer. * - * @param base FlexCAN base pointer. - * @return current free run timer counter value. + * @param base FlexCAN base pointer. + * @return current free run timer counter value. */ uint16_t FLEXCAN_UnlockAllRxMsgBuf(CAN_Type* base); @@ -369,61 +401,64 @@ uint16_t FLEXCAN_UnlockAllRxMsgBuf(CAN_Type* base); /*! * @brief Enables/Disables the FlexCAN Message Buffer interrupt. * - * @param base FlexCAN base pointer. - * @param msgBuffIdx Index of the message buffer. - * @param enable Choose enable or disable. + * @param base FlexCAN base pointer. + * @param msgBufIdx Index of the message buffer. + * @param enable Enables/Disables interrupt. + * - true: Enable Message Buffer interrupt. + * - disable: Disable Message Buffer interrupt. */ void FLEXCAN_SetMsgBufIntCmd(CAN_Type* base, uint8_t msgBufIdx, bool enable); /*! * @brief Gets the individual FlexCAN MB interrupt flag. * - * @param base FlexCAN base pointer. - * @param msgBuffIdx Index of the message buffer. - * @return the individual Message Buffer interrupt flag (true and false are the flag value). + * @param base FlexCAN base pointer. + * @param msgBufIdx Index of the message buffer. + * @retval true: Message Buffer Interrupt is pending. + * @retval false: There is no Message Buffer Interrupt. */ bool FLEXCAN_GetMsgBufStatusFlag(CAN_Type* base, uint8_t msgBufIdx); /*! * @brief Clears the interrupt flag of the message buffers. * - * @param base FlexCAN base pointer. - * @param msgBuffIdx Index of the message buffer. + * @param base FlexCAN base pointer. + * @param msgBufIdx Index of the message buffer. */ void FLEXCAN_ClearMsgBufStatusFlag(CAN_Type* base, uint32_t msgBufIdx); /*! * @brief Enables error interrupt of the FlexCAN module. * - * @param base FlexCAN base pointer. - * @param errorSrc The interrupt source. - * @param enable Choose enable or disable. + * @param base FlexCAN base pointer. + * @param errorSrc The interrupt source (see @ref _flexcan_interrutpt enumeration). + * @param enable Choose enable or disable. */ void FLEXCAN_SetErrIntCmd(CAN_Type* base, uint32_t errorSrc, bool enable); /*! * @brief Gets the FlexCAN module interrupt flag. * - * @param base FlexCAN base pointer. - * @param errFlags Flexcan error flags. - * @return the individual Message Buffer interrupt flag (0 and 1 are the flag value) + * @param base FlexCAN base pointer. + * @param errFlags FlexCAN error flags (see @ref _flexcan_status_flag enumeration). + * @return The individual Message Buffer interrupt flag (0 and 1 are the flag value) */ uint32_t FLEXCAN_GetErrStatusFlag(CAN_Type* base, uint32_t errFlags); /*! * @brief Clears the interrupt flag of the FlexCAN module. * - * @param base FlexCAN base pointer. - * @param errFlags The value to be written to the interrupt flag1 register. + * @param base FlexCAN base pointer. + * @param errFlags The value to be written to the interrupt flag1 register (see @ref _flexcan_status_flag enumeration). */ void FLEXCAN_ClearErrStatusFlag(CAN_Type* base, uint32_t errFlags); /*! * @brief Get the error counter of FlexCAN module. * - * @param base FlexCAN base pointer. - * @param txError Tx_Err_Counter pointer. - * @param rxError Rx_Err_Counter pointer. + * @param base FlexCAN base pointer. + * @param txError Tx_Err_Counter pointer. + * @param rxError Rx_Err_Counter pointer. */ void FLEXCAN_GetErrCounter(CAN_Type* base, uint8_t* txError, uint8_t* rxError); @@ -437,40 +472,40 @@ void FLEXCAN_GetErrCounter(CAN_Type* base, uint8_t* txError, uint8_t* rxError); /*! * @brief Enables the Rx FIFO. * - * @param base FlexCAN base pointer. - * @param numOfFilters The number of Rx FIFO filters + * @param base FlexCAN base pointer. + * @param numOfFilters The number of Rx FIFO filters */ void FLEXCAN_EnableRxFifo(CAN_Type* base, uint8_t numOfFilters); /*! * @brief Disables the Rx FIFO. * - * @param base FlexCAN base pointer. + * @param base FlexCAN base pointer. */ void FLEXCAN_DisableRxFifo(CAN_Type* base); /*! * @brief Set the number of the Rx FIFO filters. * - * @param base FlexCAN base pointer. - * @param number The number of Rx FIFO filters. + * @param base FlexCAN base pointer. + * @param numOfFilters The number of Rx FIFO filters. */ void FLEXCAN_SetRxFifoFilterNum(CAN_Type* base, uint32_t numOfFilters); /*! * @brief Set the FlexCAN Rx FIFO fields. * - * @param base FlexCAN base pointer. - * @param idFormat The format of the Rx FIFO ID Filter Table Elements - * @param idFilterTable The ID filter table elements which contain RTR bit, IDE bit and RX message ID. + * @param base FlexCAN base pointer. + * @param idFormat The format of the Rx FIFO ID Filter Table Elements + * @param idFilterTable The ID filter table elements which contain RTR bit, IDE bit and RX message ID. */ void FLEXCAN_SetRxFifoFilter(CAN_Type* base, uint32_t idFormat, flexcan_id_table_t *idFilterTable); /*! * @brief Gets the FlexCAN Rx FIFO data pointer. * - * @param base FlexCAN base pointer. - * @return Rx FIFO data pointer. + * @param base FlexCAN base pointer. + * @return Rx FIFO data pointer. */ flexcan_msgbuf_t* FLEXCAN_GetRxFifoPtr(CAN_Type* base); @@ -478,8 +513,8 @@ flexcan_msgbuf_t* FLEXCAN_GetRxFifoPtr(CAN_Type* base); * @brief Gets the FlexCAN Rx FIFO information. * The return value indicates which Identifier Acceptance Filter * (see Rx FIFO Structure) was hit by the received message. - * @param base FlexCAN base pointer. - * @return Rx FIFO filter number. + * @param base FlexCAN base pointer. + * @return Rx FIFO filter number. */ uint16_t FLEXCAN_GetRxFifoInfo(CAN_Type* base); @@ -493,58 +528,59 @@ uint16_t FLEXCAN_GetRxFifoInfo(CAN_Type* base); /*! * @brief Set the Rx masking mode. * - * @param base FlexCAN base pointer. - * @param mode The FlexCAN Rx mask mode: can be set to global mode and individual mode. + * @param base FlexCAN base pointer. + * @param mode The FlexCAN Rx mask mode (see @ref _flexcan_rx_mask_mode enumeration). */ void FLEXCAN_SetRxMaskMode(CAN_Type* base, uint32_t mode); /*! * @brief Set the remote trasmit request mask enablement. * - * @param base FlexCAN base pointer. - * @param enable - true : Enable RTR matching judgement. - * false : Disable RTR matching judgement. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable remote trasmit request mask. + * - true: Enable RTR matching judgement. + * - false: Disable RTR matching judgement. */ -void FLEXCAN_SetRxMaskRtrCmd(CAN_Type* base, uint32_t enable); +void FLEXCAN_SetRxMaskRtrCmd(CAN_Type* base, bool enable); /*! * @brief Set the FlexCAN RX global mask. * - * @param base FlexCAN base pointer. - * @param mask Rx Global mask. + * @param base FlexCAN base pointer. + * @param mask Rx Global mask. */ void FLEXCAN_SetRxGlobalMask(CAN_Type* base, uint32_t mask); /*! * @brief Set the FlexCAN Rx individual mask for ID filtering in the Rx MBs and the Rx FIFO. * - * @param base FlexCAN base pointer. - * @param msgBufIdx Index of the message buffer. - * @param mask Individual mask + * @param base FlexCAN base pointer. + * @param msgBufIdx Index of the message buffer. + * @param mask Individual mask */ void FLEXCAN_SetRxIndividualMask(CAN_Type* base, uint32_t msgBufIdx, uint32_t mask); /*! * @brief Set the FlexCAN RX Message Buffer BUF14 mask. * - * @param base FlexCAN base pointer. - * @param mask Message Buffer BUF14 mask. + * @param base FlexCAN base pointer. + * @param mask Message Buffer BUF14 mask. */ void FLEXCAN_SetRxMsgBuff14Mask(CAN_Type* base, uint32_t mask); /*! * @brief Set the FlexCAN RX Message Buffer BUF15 mask. * - * @param base FlexCAN base pointer. - * @param mask Message Buffer BUF15 mask. + * @param base FlexCAN base pointer. + * @param mask Message Buffer BUF15 mask. */ void FLEXCAN_SetRxMsgBuff15Mask(CAN_Type* base, uint32_t mask); /*! * @brief Set the FlexCAN RX Fifo global mask. * - * @param base FlexCAN base pointer. - * @param mask Rx Fifo Global mask. + * @param base FlexCAN base pointer. + * @param mask Rx Fifo Global mask. */ void FLEXCAN_SetRxFifoGlobalMask(CAN_Type* base, uint32_t mask); @@ -558,62 +594,67 @@ void FLEXCAN_SetRxFifoGlobalMask(CAN_Type* base, uint32_t mask); /*! * @brief Enable/disable the FlexCAN self wakeup feature. * - * @param base FlexCAN base pointer. - * @param lpfEnable The low pass filter for Rx self wakeup feature enablement. - * @param enable The self wakeup feature enablement. + * @param base FlexCAN base pointer. + * @param lpfEnable The low pass filter for Rx self wakeup feature enablement. + * @param enable The self wakeup feature enablement. */ void FLEXCAN_SetSelfWakeUpCmd(CAN_Type* base, bool lpfEnable, bool enable); /*! - * @brief Enable/disable the FlexCAN self reception feature. + * @brief Enable/Disable the FlexCAN self reception feature. * - * @param base FlexCAN base pointer. - * @param enable - true : enable self reception feature. - * false : disable self reception feature. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable self reception feature. + * - true: Enable self reception feature. + * - false: Disable self reception feature. */ void FLEXCAN_SetSelfReceptionCmd(CAN_Type* base, bool enable); /*! * @brief Enable/disable the enhance FlexCAN Rx vote. * - * @param base FlexCAN base pointer. - * @param enable - true : Three samples are used to determine the value of the received bit. - * false : Just one sample is used to determine the bit value. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable FlexCAN Rx vote mechanism + * - true: Three samples are used to determine the value of the received bit. + * - false: Just one sample is used to determine the bit value. */ void FLEXCAN_SetRxVoteCmd(CAN_Type* base, bool enable); /*! * @brief Enable/disable the Auto Busoff recover feature. * - * @param base FlexCAN base pointer. - * @param enable - true : Enable Auto Bus Off recover feature. - * false : Disable Auto Bus Off recover feature. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable Auto Busoff Recover + * - true: Enable Auto Bus Off recover feature. + * - false: Disable Auto Bus Off recover feature. */ void FLEXCAN_SetAutoBusOffRecoverCmd(CAN_Type* base, bool enable); /*! * @brief Enable/disable the Time Sync feature. * - * @param base FlexCAN base pointer. - * @param enable - true : Enable Time Sync feature. - * false : Disable Time Sync feature. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable the Time Sync + * - true: Enable Time Sync feature. + * - false: Disable Time Sync feature. */ void FLEXCAN_SetTimeSyncCmd(CAN_Type* base, bool enable); /*! * @brief Enable/disable the Auto Remote Response feature. * - * @param base FlexCAN base pointer. - * @param enable - true : Enable Auto Remote Response feature. - * false : Disable Auto Remote Response feature. + * @param base FlexCAN base pointer. + * @param enable Enable/Disable the Auto Remote Response feature + * - true: Enable Auto Remote Response feature. + * - false: Disable Auto Remote Response feature. */ void FLEXCAN_SetAutoRemoteResponseCmd(CAN_Type* base, bool enable); /*! * @brief Enable/disable the Glitch Filter Width when FLEXCAN enters the STOP mode. * - * @param base FlexCAN base pointer. - * @param filterWidth The Glitch Filter Width. + * @param base FlexCAN base pointer. + * @param filterWidth The Glitch Filter Width. */ static inline void FLEXCAN_SetGlitchFilterWidth(CAN_Type* base, uint8_t filterWidth) { @@ -623,10 +664,10 @@ static inline void FLEXCAN_SetGlitchFilterWidth(CAN_Type* base, uint8_t filterWi /*! * @brief Get the lowest inactive message buffer number. * - * @param base FlexCAN base pointer. - * @return bit 22-16 : the lowest number inactive Mailbox. - * bit 14 : indicates whether the number content is valid or not. - * bit 13 : this bit indicates whether there is any inactive Mailbox. + * @param base FlexCAN base pointer. + * @return bit 22-16 : The lowest number inactive Mailbox. + * bit 14 : Indicates whether the number content is valid or not. + * bit 13 : This bit indicates whether there is any inactive Mailbox. */ static inline uint32_t FLEXCAN_GetLowestInactiveMsgBuf(CAN_Type* base) { @@ -636,10 +677,10 @@ static inline uint32_t FLEXCAN_GetLowestInactiveMsgBuf(CAN_Type* base) /*! * @brief Set the Tx Arbitration Start Delay number. * This function is used to optimize the transmit performance. - * For more information about to set this value, please refer to RM. + * For more information about to set this value, see the Chip Reference Manual. * - * @param base FlexCAN base pointer. - * @return tasd The lowest number inactive Mailbox. + * @param base FlexCAN base pointer. + * @param tasd The lowest number inactive Mailbox. */ static inline void FLEXCAN_SetTxArbitrationStartDelay(CAN_Type* base, uint8_t tasd) { @@ -655,6 +696,16 @@ static inline void FLEXCAN_SetTxArbitrationStartDelay(CAN_Type* base, uint8_t ta /*! @}*/ +#if defined(__ARMCC_VERSION) + #pragma pop +#elif defined(__GNUC__) + /* leave anonymous unions enabled */ +#elif defined(__IAR_SYSTEMS_ICC__) + #pragma language=default +#else + #error Not supported compiler type +#endif + #endif /* __FLEXCAN_H__ */ /******************************************************************************* * EOF diff --git a/platform/drivers/inc/gpio_imx.h b/platform/drivers/inc/gpio_imx.h index 1cf60e7..1af7ceb 100644 --- a/platform/drivers/inc/gpio_imx.h +++ b/platform/drivers/inc/gpio_imx.h @@ -45,34 +45,37 @@ * Definitions ******************************************************************************/ -/*! @brief GPIO direction definition */ -typedef enum _gpio_pin_direction { - gpioDigitalInput = 0U, /*!< Set current pin as digital input*/ - gpioDigitalOutput = 1U /*!< Set current pin as digital output*/ +/*! @brief GPIO direction definition. */ +typedef enum _gpio_pin_direction +{ + gpioDigitalInput = 0U, /*!< Set current pin as digital input.*/ + gpioDigitalOutput = 1U, /*!< Set current pin as digital output.*/ } gpio_pin_direction_t; -/*! @brief GPIO interrupt mode definition*/ -typedef enum _gpio_interrupt_mode { - gpioIntLowLevel = 0U, /*!< Set current pin interrupt is low-level sensitive.*/ - gpioIntHighLevel = 1U, /*!< Set current pin interrupt is high-level sensitive.*/ - gpioIntRisingEdge = 2U, /*!< Set current pin interrupt is rising-edge sensitive.*/ - gpioIntFallingEdge = 3U, /*!< Set current pin interrupt is falling-edge sensitive.*/ - gpioNoIntmode = 4U /*!< Set current pin general IO functionality. */ +/*! @brief GPIO interrupt mode definition. */ +typedef enum _gpio_interrupt_mode +{ + gpioIntLowLevel = 0U, /*!< Set current pin interrupt is low-level sensitive.*/ + gpioIntHighLevel = 1U, /*!< Set current pin interrupt is high-level sensitive.*/ + gpioIntRisingEdge = 2U, /*!< Set current pin interrupt is rising-edge sensitive.*/ + gpioIntFallingEdge = 3U, /*!< Set current pin interrupt is falling-edge sensitive.*/ + gpioNoIntmode = 4U, /*!< Set current pin general IO functionality. */ } gpio_interrupt_mode_t; -/*! @brief GPIO pin(bit) value definition */ -typedef enum _gpio_pin_action { - gpioPinClear = 0U, - gpioPinSet = 1U +/*! @brief GPIO pin(bit) value definition. */ +typedef enum _gpio_pin_action +{ + gpioPinClear = 0U, /*!< Clear GPIO Pin.*/ + gpioPinSet = 1U, /*!< Set GPIO Pin.*/ } gpio_pin_action_t; -/*! @brief GPIO Init structure definition */ -typedef struct GpioInit +/*! @brief GPIO Init structure definition. */ +typedef struct _gpio_init_config { - uint32_t pin; /*!< Specifies the pin number. */ - gpio_pin_direction_t direction; /*!< Specifies the pin direction. */ - gpio_interrupt_mode_t interruptMode; /*!< Specifies the pin interrupt mode, a value of @ref gpio_interrupt_mode_t. */ -} gpio_init_t; + uint32_t pin; /*!< Specifies the pin number. */ + gpio_pin_direction_t direction; /*!< Specifies the pin direction. */ + gpio_interrupt_mode_t interruptMode; /*!< Specifies the pin interrupt mode, a value of @ref gpio_interrupt_mode_t. */ +} gpio_init_config_t; /******************************************************************************* * API @@ -89,13 +92,13 @@ extern "C" { /*! * @brief Initializes the GPIO peripheral according to the specified - * parameters in the initStruct. + * parameters in the initConfig. * - * @param base GPIO base pointer (GPIO1, GPIO2, GPIO3, etc.). - * @param initStruct pointer to a gpio_init_t structure that - * contains the configuration information. + * @param base GPIO base pointer. + * @param initConfig pointer to a @ref gpio_init_config_t structure that + * contains the configuration information. */ -void GPIO_Init(GPIO_Type* base, gpio_init_t* initStruct); +void GPIO_Init(GPIO_Type* base, const gpio_init_config_t* initConfig); /*@}*/ @@ -104,18 +107,17 @@ void GPIO_Init(GPIO_Type* base, gpio_init_t* initStruct); * @{ */ - /*! +/*! * @brief Reads the current input value of the pin when pin's direction is configured as input. * - * @param base GPIO base pointer (GPIO1, GPIO2, GPIO3, etc.). + * @param base GPIO base pointer. * @param pin GPIO port pin number. * @return GPIO pin input value. - * - 0: Pin logic level is 0, or is not configured for use by digital function. - * - 1: Pin logic level is 1. */ static inline uint8_t GPIO_ReadPinInput(GPIO_Type* base, uint32_t pin) { assert(pin < 32); + return (uint8_t)((GPIO_DR_REG(base) >> pin) & 1U); } @@ -123,14 +125,10 @@ static inline uint8_t GPIO_ReadPinInput(GPIO_Type* base, uint32_t pin) * @brief Reads the current input value of a specific GPIO port when port's direction are all configured as input. * This function gets all 32-pin input as a 32-bit integer. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.) - * @return GPIO port input data. Each bit represents one pin. For each bit: - * - 0: Pin logic level is 0, or is not configured for use by digital function. - * - 1: Pin logic level is 1. - * - LSB: pin 0 - * - MSB: pin 31 + * @param base GPIO base pointer. + * @return GPIO port input data. */ -static inline uint32_t GPIO_ReadPortInput(GPIO_Type *base) +static inline uint32_t GPIO_ReadPortInput(GPIO_Type* base) { return GPIO_DR_REG(base); } @@ -138,26 +136,23 @@ static inline uint32_t GPIO_ReadPortInput(GPIO_Type *base) /*! * @brief Reads the current pin output. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.) + * @param base GPIO base pointer. * @param pin GPIO port pin number. - * @return current pin output value, 0 - Low logic, 1 - High logic. + * @return Current pin output value. */ static inline uint8_t GPIO_ReadPinOutput(GPIO_Type* base, uint32_t pin) { assert(pin < 32); + return (uint8_t)((GPIO_DR_REG(base) >> pin) & 0x1U); } /*! * @brief Reads out all pin output status of the current port. - * This function operates all 32 port pins. + * This function operates all 32 port pins. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.) - * @return current port output status. Each bit represents one pin. For each bit: - * - 0: corresponding pin is outputting logic level 0 - * - 1: corresponding pin is outputting logic level 1 - * - LSB: pin 0 - * - MSB: pin 31 + * @param base GPIO base pointer. + * @return Current port output status. */ static inline uint32_t GPIO_ReadPortOutput(GPIO_Type* base) { @@ -167,11 +162,9 @@ static inline uint32_t GPIO_ReadPortOutput(GPIO_Type* base) /*! * @brief Sets the output level of the individual GPIO pin to logic 1 or 0. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.) + * @param base GPIO base pointer. * @param pin GPIO port pin number. - * @param pinVal pin output value, one of the follow. - * -gpioPinClear: logic 0; - * -gpioPinSet: logic 1. + * @param pinVal pin output value (See @ref gpio_pin_action_t structure). */ void GPIO_WritePinOutput(GPIO_Type* base, uint32_t pin, gpio_pin_action_t pinVal); @@ -179,12 +172,8 @@ void GPIO_WritePinOutput(GPIO_Type* base, uint32_t pin, gpio_pin_action_t pinVal * @brief Sets the output of the GPIO port pins to a specific logic value. * This function operates all 32 port pins. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.) - * @param portVal data to configure the GPIO output. Each bit represents one pin. For each bit: - * - 0: set logic level 0 to pin - * - 1: set logic level 1 to pin - * - LSB: pin 0 - * - MSB: pin 31 + * @param base GPIO base pointer. + * @param portVal data to configure the GPIO output. */ static inline void GPIO_WritePortOutput(GPIO_Type* base, uint32_t portVal) { @@ -201,15 +190,14 @@ static inline void GPIO_WritePortOutput(GPIO_Type* base, uint32_t portVal) /*! * @brief Reads the current GPIO pin pad status. * - * @param base GPIO base pointer (GPIO1, GPIO2, GPIO3, etc.). + * @param base GPIO base pointer. * @param pin GPIO port pin number. * @return GPIO pin pad status value. - * - 0: Pin pad status logic level is 0. - * - 1: Pin pad status logic level is 1. */ static inline uint8_t GPIO_ReadPadStatus(GPIO_Type* base, uint32_t pin) { assert(pin < 32); + return (uint8_t)((GPIO_PSR_REG(base) >> pin) & 1U); } @@ -221,26 +209,27 @@ static inline uint8_t GPIO_ReadPadStatus(GPIO_Type* base, uint32_t pin) */ /*! - * @brief Disable or enable the specific pin interrupt. + * @brief Enable or Disable the specific pin interrupt. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.). + * @param base GPIO base pointer. * @param pin GPIO pin number. - * @param enable enable or disable interrupt. + * @param enable Enable or disable interrupt. + * - true: Enable GPIO interrupt. + * - false: Disable GPIO interrupt. */ void GPIO_SetPinIntMode(GPIO_Type* base, uint32_t pin, bool enable); /*! * @brief Check individual pin interrupt status. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.) + * @param base GPIO base pointer. * @param pin GPIO port pin number. * @return current pin interrupt status flag. - * - 0: interrupt is not detected. - * - 1: interrupt is detected. */ static inline bool GPIO_IsIntPending(GPIO_Type* base, uint32_t pin) { assert(pin < 32); + return (bool)((GPIO_ISR_REG(base) >> pin) & 1U); } @@ -248,22 +237,23 @@ static inline bool GPIO_IsIntPending(GPIO_Type* base, uint32_t pin) * @brief Clear pin interrupt flag. Status flags are cleared by * writing a 1 to the corresponding bit position. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.) + * @param base GPIO base pointer. * @param pin GPIO port pin number. */ static inline void GPIO_ClearStatusFlag(GPIO_Type* base, uint32_t pin) { assert(pin < 32); - GPIO_ISR_REG(base) |= (1U << pin); + + GPIO_ISR_REG(base) = (1U << pin); } /*! - * @brief Disable or enable the edge select bit to override + * @brief Enable or disable the edge select bit to override * the ICR register's configuration. * - * @param base GPIO base pointer(GPIO1, GPIO2, GPIO3, etc.). + * @param base GPIO base pointer. * @param pin GPIO port pin number. - * @param enable enable or disable. + * @param enable Enable or disable edge select bit. */ void GPIO_SetIntEdgeSelect(GPIO_Type* base, uint32_t pin, bool enable); diff --git a/platform/drivers/inc/gpt.h b/platform/drivers/inc/gpt.h index 14c3b9e..3c95c1b 100644 --- a/platform/drivers/inc/gpt.h +++ b/platform/drivers/inc/gpt.h @@ -45,78 +45,70 @@ * Definitions ******************************************************************************/ -/*! - * @brief Clock source - */ -enum _gpt_clock_source { - gptClockSourceNone = 0U, /*!< No source selected.*/ - gptClockSourcePeriph = 1U, /*!< Use peripheral module clock.*/ - gptClockSourceLowFreq = 4U, /*!< Use 32K clock.*/ - gptClockSourceOsc = 5U /*!< Use 24M OSC clock.*/ +/*! @brief Clock source. */ +enum _gpt_clock_source +{ + gptClockSourceNone = 0U, /*!< No source selected.*/ + gptClockSourcePeriph = 1U, /*!< Use peripheral module clock.*/ + gptClockSourceLowFreq = 4U, /*!< Use 32 K clock.*/ + gptClockSourceOsc = 5U, /*!< Use 24 M OSC clock.*/ }; -/*! - * @brief Input capture channel number - */ -enum _gpt_input_capture_channel { - gptInputCaptureChannel1 = 0U, - gptInputCaptureChannel2 = 1U +/*! @brief Input capture channel number. */ +enum _gpt_input_capture_channel +{ + gptInputCaptureChannel1 = 0U, /*!< Input Capture Channel1.*/ + gptInputCaptureChannel2 = 1U, /*!< Input Capture Channel2.*/ }; -/*! - * @brief Input capture operation mode - */ -enum _gpt_input_operation_mode { - gptInputOperationDisabled = 0U, /*!< Don't capture.*/ - gptInputOperationRiseEdge = 1U, /*!< Capture on rising edge of input pin.*/ - gptInputOperationFallEdge = 2U, /*!< Capture on falling edge of input pin.*/ - gptInputOperationBothEdge = 3U /*!< Capture on both edges of input pin.*/ +/*! @brief Input capture operation mode. */ +enum _gpt_input_operation_mode +{ + gptInputOperationDisabled = 0U, /*!< Don't capture.*/ + gptInputOperationRiseEdge = 1U, /*!< Capture on rising edge of input pin.*/ + gptInputOperationFallEdge = 2U, /*!< Capture on falling edge of input pin.*/ + gptInputOperationBothEdge = 3U, /*!< Capture on both edges of input pin.*/ }; -/*! - * @brief Output compare channel number - */ -enum _gpt_output_compare_channel { - gptOutputCompareChannel1 = 0U, - gptOutputCompareChannel2 = 1U, - gptOutputCompareChannel3 = 2U +/*! @brief Output compare channel number. */ +enum _gpt_output_compare_channel +{ + gptOutputCompareChannel1 = 0U, /*!< Output Compare Channel1.*/ + gptOutputCompareChannel2 = 1U, /*!< Output Compare Channel2.*/ + gptOutputCompareChannel3 = 2U, /*!< Output Compare Channel3.*/ }; -/*! - * @brief Output compare operation mode - */ -enum _gpt_output_operation_mode { - gptOutputOperationDisconnected = 0U, /*!< Don't change output pin.*/ - gptOutputOperationToggle = 1U, /*!< Toggle output pin.*/ - gptOutputOperationClear = 2U, /*!< Set output pin low.*/ - gptOutputOperationSet = 3U, /*!< Set output pin high.*/ - gptOutputOperationActivelow = 4U /*!< Generate a active low pulse on output pin.*/ +/*! @brief Output compare operation mode. */ +enum _gpt_output_operation_mode +{ + gptOutputOperationDisconnected = 0U, /*!< Don't change output pin.*/ + gptOutputOperationToggle = 1U, /*!< Toggle output pin.*/ + gptOutputOperationClear = 2U, /*!< Set output pin low.*/ + gptOutputOperationSet = 3U, /*!< Set output pin high.*/ + gptOutputOperationActivelow = 4U, /*!< Generate a active low pulse on output pin.*/ }; -/*! - * @brief Status flag - */ -enum _gpt_status_flag { - gptStatusFlagOutputCompare1 = 1U << 0, /*!< Output compare channel 1 evevnt.*/ - gptStatusFlagOutputCompare2 = 1U << 1, /*!< Output compare channel 2 evevnt.*/ - gptStatusFlagOutputCompare3 = 1U << 2, /*!< Output compare channel 3 evevnt.*/ - gptStatusFlagInputCapture1 = 1U << 3, /*!< Capture channel 1 evevnt.*/ - gptStatusFlagInputCapture2 = 1U << 4, /*!< Capture channel 2 evevnt.*/ - gptStatusFlagRollOver = 1U << 5 /*!< Counter reaches maximum value and rolled over to 0 evevnt.*/ +/*! @brief Status flag. */ +enum _gpt_status_flag +{ + gptStatusFlagOutputCompare1 = 1U << 0, /*!< Output compare channel 1 event.*/ + gptStatusFlagOutputCompare2 = 1U << 1, /*!< Output compare channel 2 event.*/ + gptStatusFlagOutputCompare3 = 1U << 2, /*!< Output compare channel 3 event.*/ + gptStatusFlagInputCapture1 = 1U << 3, /*!< Capture channel 1 event.*/ + gptStatusFlagInputCapture2 = 1U << 4, /*!< Capture channel 2 event.*/ + gptStatusFlagRollOver = 1U << 5, /*!< Counter reaches maximum value and rolled over to 0 event.*/ }; -/*! - * @brief Structure to configure the running mode. - */ -typedef struct GptModeConfig +/*! @brief Structure to configure the running mode. */ +typedef struct _gpt_init_config { - bool freeRun; /*!< true: FreeRun mode, false: Restart mode */ - bool waitEnable; /*!< GPT enabled in wait mode */ - bool stopEnable; /*!< GPT enabled in stop mode */ - bool dozeEnable; /*!< GPT enabled in doze mode */ - bool dbgEnable; /*!< GPT enabled in debug mode */ - bool enableMode; /*!< true: counter reset to 0 when enabled, false: counter retain its value when enabled */ -} gpt_mode_config_t; + bool freeRun; /*!< true: FreeRun mode, false: Restart mode. */ + bool waitEnable; /*!< GPT enabled in wait mode. */ + bool stopEnable; /*!< GPT enabled in stop mode. */ + bool dozeEnable; /*!< GPT enabled in doze mode. */ + bool dbgEnable; /*!< GPT enabled in debug mode. */ + bool enableMode; /*!< true: counter reset to 0 when enabled, false: counter retain its value when enabled. */ +} gpt_init_config_t; /******************************************************************************* * API @@ -132,117 +124,119 @@ extern "C" { */ /*! - * @brief Initialize GPT to reset state and initialize running mode + * @brief Initialize GPT to reset state and initialize running mode. * * @param base GPT base pointer. - * @param config GPT mode setting configuration. + * @param initConfig GPT mode setting configuration. */ -void GPT_Init(GPT_Type * base, gpt_mode_config_t *config); +void GPT_Init(GPT_Type* base, const gpt_init_config_t* initConfig); /*! - * @brief Software reset of GPT module + * @brief Software reset of GPT module. * * @param base GPT base pointer. */ -static inline void GPT_SoftReset(GPT_Type * base) +static inline void GPT_SoftReset(GPT_Type* base) { base->CR |= GPT_CR_SWR_MASK; - /* Wait reset finished */ - while (base->CR & GPT_CR_SWR_MASK) { } + /* Wait reset finished. */ + while (base->CR & GPT_CR_SWR_MASK) {}; } /*! - * @brief Set clock source of GPT + * @brief Set clock source of GPT. * * @param base GPT base pointer. - * @param source clock source (see _gpt_clock_source) + * @param source Clock source (see @ref _gpt_clock_source enumeration). */ -void GPT_SetClockSource(GPT_Type * base, uint32_t source); +void GPT_SetClockSource(GPT_Type* base, uint32_t source); /*! - * @brief Get clock source of GPT + * @brief Get clock source of GPT. * * @param base GPT base pointer. - * @return clock source (see _gpt_clock_source) + * @return clock source (see @ref _gpt_clock_source enumeration). */ -static inline uint32_t GPT_GetClockSource(GPT_Type * base) +static inline uint32_t GPT_GetClockSource(GPT_Type* base) { return (base->CR & GPT_CR_CLKSRC_MASK) >> GPT_CR_CLKSRC_SHIFT; } /*! - * @brief Set pre scaler of GPT + * @brief Set pre scaler of GPT. * * @param base GPT base pointer. - * @param prescaler pre scaler of GPT (0-4095, divider=prescaler+1) + * @param prescaler Pre-scaler of GPT (0-4095, divider = prescaler + 1). */ -static inline void GPT_SetPrescaler(GPT_Type * base, uint32_t prescaler) +static inline void GPT_SetPrescaler(GPT_Type* base, uint32_t prescaler) { assert(prescaler <= GPT_PR_PRESCALER_MASK); + base->PR = (base->PR & ~GPT_PR_PRESCALER_MASK) | GPT_PR_PRESCALER(prescaler); } /*! - * @brief Get pre scaler of GPT + * @brief Get pre scaler of GPT. * * @param base GPT base pointer. - * @return pre scaler of GPT (0-4095) + * @return pre scaler of GPT (0-4095). */ -static inline uint32_t GPT_GetPrescaler(GPT_Type * base) +static inline uint32_t GPT_GetPrescaler(GPT_Type* base) { return (base->PR & GPT_PR_PRESCALER_MASK) >> GPT_PR_PRESCALER_SHIFT; } /*! - * @brief OSC 24M pre scaler before selected by clock source + * @brief OSC 24M pre-scaler before selected by clock source. * * @param base GPT base pointer. - * @param prescaler OSC pre scaler(0-15, divider=prescaler+1) + * @param prescaler OSC pre-scaler(0-15, divider = prescaler + 1). */ -static inline void GPT_SetOscPrescaler(GPT_Type * base, uint32_t prescaler) +static inline void GPT_SetOscPrescaler(GPT_Type* base, uint32_t prescaler) { assert(prescaler <= (GPT_PR_PRESCALER24M_MASK >> GPT_PR_PRESCALER24M_SHIFT)); + base->PR = (base->PR & ~GPT_PR_PRESCALER24M_MASK) | GPT_PR_PRESCALER24M(prescaler); } /*! - * @brief Get pre scaler of GPT + * @brief Get pre-scaler of GPT. * * @param base GPT base pointer. - * @return OSC pre scaler of GPT (0-15) + * @return OSC pre scaler of GPT (0-15). */ -static inline uint32_t GPT_GetOscPrescaler(GPT_Type * base) +static inline uint32_t GPT_GetOscPrescaler(GPT_Type* base) { return (base->PR & GPT_PR_PRESCALER24M_MASK) >> GPT_PR_PRESCALER24M_SHIFT; } /*! - * @brief Enable GPT module + * @brief Enable GPT module. * * @param base GPT base pointer. */ -static inline void GPT_Enable(GPT_Type * base) +static inline void GPT_Enable(GPT_Type* base) { base->CR |= GPT_CR_EN_MASK; } /*! - * @brief Disable GPT module + * @brief Disable GPT module. * * @param base GPT base pointer. */ -static inline void GPT_Disable(GPT_Type * base) +static inline void GPT_Disable(GPT_Type* base) { base->CR &= ~GPT_CR_EN_MASK; } /*! - * @brief Get GPT counter value + * @brief Get GPT counter value. * * @param base GPT base pointer. - * @return GPT counter value + * @return GPT counter value. */ -static inline uint32_t GPT_ReadCounter(GPT_Type * base) +static inline uint32_t GPT_ReadCounter(GPT_Type* base) { return base->CNT; } @@ -255,93 +249,100 @@ static inline uint32_t GPT_ReadCounter(GPT_Type * base) */ /*! - * @brief Set GPT operation mode of input capture channel + * @brief Set GPT operation mode of input capture channel. * * @param base GPT base pointer. - * @param channel GPT capture channel (see _gpt_input_capture_channel). - * @param mode GPT input capture operation mode (see _gpt_input_operation_mode). + * @param channel GPT capture channel (see @ref _gpt_input_capture_channel enumeration). + * @param mode GPT input capture operation mode (see @ref _gpt_input_operation_mode enumeration). */ -static inline void GPT_SetInputOperationMode(GPT_Type * base, uint32_t channel, uint32_t mode) +static inline void GPT_SetInputOperationMode(GPT_Type* base, uint32_t channel, uint32_t mode) { assert (channel <= gptInputCaptureChannel2); + base->CR = (base->CR & ~(GPT_CR_IM1_MASK << (channel * 2))) | (GPT_CR_IM1(mode) << (channel * 2)); } /*! - * @brief Get GPT operation mode of input capture channel + * @brief Get GPT operation mode of input capture channel. * * @param base GPT base pointer. - * @param channel GPT capture channel (see _gpt_input_capture_channel). - * @return GPT input capture operation mode (see _gpt_input_operation_mode). + * @param channel GPT capture channel (see @ref _gpt_input_capture_channel enumeration). + * @return GPT input capture operation mode (see @ref _gpt_input_operation_mode enumeration). */ -static inline uint32_t GPT_GetInputOperationMode(GPT_Type * base, uint32_t channel) +static inline uint32_t GPT_GetInputOperationMode(GPT_Type* base, uint32_t channel) { assert (channel <= gptInputCaptureChannel2); + return (base->CR >> (GPT_CR_IM1_SHIFT + channel * 2)) & (GPT_CR_IM1_MASK >> GPT_CR_IM1_SHIFT); } /*! - * @brief Get GPT input capture value of certain channel + * @brief Get GPT input capture value of certain channel. * * @param base GPT base pointer. - * @param channel GPT capture channel (see _gpt_input_capture_channel). - * @return GPT input capture value + * @param channel GPT capture channel (see @ref _gpt_input_capture_channel enumeration). + * @return GPT input capture value. */ -static inline uint32_t GPT_GetInputCaptureValue(GPT_Type * base, uint32_t channel) +static inline uint32_t GPT_GetInputCaptureValue(GPT_Type* base, uint32_t channel) { assert (channel <= gptInputCaptureChannel2); + return *(&base->ICR1 + channel); } /*! - * @brief Set GPT operation mode of output compare channel + * @brief Set GPT operation mode of output compare channel. * * @param base GPT base pointer. - * @param channel GPT output compare channel (see _gpt_output_compare_channel). - * @param mode GPT output operation mode (see _gpt_output_operation_mode). + * @param channel GPT output compare channel (see @ref _gpt_output_compare_channel enumeration). + * @param mode GPT output operation mode (see @ref _gpt_output_operation_mode enumeration). */ -static inline void GPT_SetOutputOperationMode(GPT_Type * base, uint32_t channel, uint32_t mode) +static inline void GPT_SetOutputOperationMode(GPT_Type* base, uint32_t channel, uint32_t mode) { assert (channel <= gptOutputCompareChannel3); + base->CR = (base->CR & ~(GPT_CR_OM1_MASK << (channel * 3))) | (GPT_CR_OM1(mode) << (channel * 3)); } /*! - * @brief Get GPT operation mode of output compare channel + * @brief Get GPT operation mode of output compare channel. * * @param base GPT base pointer. - * @param channel GPT output compare channel (see _gpt_output_compare_channel). - * @return GPT output operation mode (see _gpt_output_operation_mode). + * @param channel GPT output compare channel (see @ref _gpt_output_compare_channel enumeration). + * @return GPT output operation mode (see @ref _gpt_output_operation_mode enumeration). */ -static inline uint32_t GPT_GetOutputOperationMode(GPT_Type * base, uint32_t channel) +static inline uint32_t GPT_GetOutputOperationMode(GPT_Type* base, uint32_t channel) { assert (channel <= gptOutputCompareChannel3); + return (base->CR >> (GPT_CR_OM1_SHIFT + channel * 3)) & (GPT_CR_OM1_MASK >> GPT_CR_OM1_SHIFT); } /*! - * @brief Set GPT output compare value of output compare channel + * @brief Set GPT output compare value of output compare channel. * * @param base GPT base pointer. - * @param channel GPT output compare channel (see _gpt_output_compare_channel). - * @param value GPT output compare value + * @param channel GPT output compare channel (see @ref _gpt_output_compare_channel enumeration). + * @param value GPT output compare value. */ -static inline void GPT_SetOutputCompareValue(GPT_Type * base, uint32_t channel, uint32_t value) +static inline void GPT_SetOutputCompareValue(GPT_Type* base, uint32_t channel, uint32_t value) { assert (channel <= gptOutputCompareChannel3); + *(&base->OCR1 + channel) = value; } /*! - * @brief Get GPT output compare value of output compare channel + * @brief Get GPT output compare value of output compare channel. * * @param base GPT base pointer. - * @param channel GPT output compare channel (see _gpt_output_compare_channel). - * @return GPT output compare value + * @param channel GPT output compare channel (see @ref _gpt_output_compare_channel enumeration). + * @return GPT output compare value. */ -static inline uint32_t GPT_GetOutputCompareValue(GPT_Type * base, uint32_t channel) +static inline uint32_t GPT_GetOutputCompareValue(GPT_Type* base, uint32_t channel) { assert (channel <= gptOutputCompareChannel3); + return *(&base->OCR1 + channel); } @@ -349,18 +350,19 @@ static inline uint32_t GPT_GetOutputCompareValue(GPT_Type * base, uint32_t chann * @brief Force GPT output action on output compare channel, ignoring comparator. * * @param base GPT base pointer. - * @param channel GPT output compare channel (see _gpt_output_compare_channel). + * @param channel GPT output compare channel (see @ref _gpt_output_compare_channel enumeration). */ -static inline void GPT_ForceOutput(GPT_Type * base, uint32_t channel) +static inline void GPT_ForceOutput(GPT_Type* base, uint32_t channel) { assert (channel <= gptOutputCompareChannel3); + base->CR |= (GPT_CR_FO1_MASK << channel); } /*@}*/ /*! - * @name GPT Interupt and Status Control + * @name GPT Interrupt and Status Control * @{ */ @@ -368,10 +370,10 @@ static inline void GPT_ForceOutput(GPT_Type * base, uint32_t channel) * @brief Get GPT status flag. * * @param base GPT base pointer. - * @param flags GPT status flag mask (see _gpt_status_flag for bit definition). - * @return GPT status, each bit represents one status flag + * @param flags GPT status flag mask (see @ref _gpt_status_flag for bit definition). + * @return GPT status, each bit represents one status flag. */ -static inline uint32_t GPT_GetStatusFlag(GPT_Type * base, uint32_t flags) +static inline uint32_t GPT_GetStatusFlag(GPT_Type* base, uint32_t flags) { return base->SR & flags; } @@ -380,21 +382,23 @@ static inline uint32_t GPT_GetStatusFlag(GPT_Type * base, uint32_t flags) * @brief Clear one or more GPT status flag. * * @param base GPT base pointer. - * @param flags GPT status flag mask (see _gpt_status_flag for bit definition). + * @param flags GPT status flag mask (see @ref _gpt_status_flag for bit definition). */ -static inline void GPT_ClearStatusFlag(GPT_Type * base, uint32_t flags) +static inline void GPT_ClearStatusFlag(GPT_Type* base, uint32_t flags) { base->SR = flags; } /*! - * @brief Enable or disable GPT interrupts. + * @brief Enable or Disable GPT interrupts. * * @param base GPT base pointer. - * @param flags GPT status flag mask (see _gpt_status_flag for bit definition). - * @param enable Interrupt enable (true: enable, false: disable). + * @param flags GPT status flag mask (see @ref _gpt_status_flag for bit definition). + * @param enable Enable/Disable GPT interrupts. + * -true: Enable GPT interrupts. + * -false: Disable GPT interrupts. */ -void GPT_SetIntCmd(GPT_Type * base, uint32_t flags, bool enable); +void GPT_SetIntCmd(GPT_Type* base, uint32_t flags, bool enable); /*@}*/ diff --git a/platform/drivers/inc/i2c_imx.h b/platform/drivers/inc/i2c_imx.h index 3d93112..566c70a 100644 --- a/platform/drivers/inc/i2c_imx.h +++ b/platform/drivers/inc/i2c_imx.h @@ -48,41 +48,35 @@ /*! @brief I2C module initialize structure. */ typedef struct _i2c_init_config { - uint32_t clockRate; /*!< Current I2C module clock freq. */ - uint32_t baudRate; /*!< Desired I2C baud rate. */ - uint8_t slaveAddress; /*!< I2C module's own address when addressed as slave device. */ + uint32_t clockRate; /*!< Current I2C module clock freq. */ + uint32_t baudRate; /*!< Desired I2C baud rate. */ + uint8_t slaveAddress; /*!< I2C module's own address when addressed as slave device. */ } i2c_init_config_t; -/*! - * @brief Flag for I2C interrupt status check or polling status. - */ +/*! @brief Flag for I2C interrupt status check or polling status. */ enum _i2c_status_flag { - i2cStatusTransferComplete = I2C_I2SR_ICF_MASK, - i2cStatusAddressedAsSlave = I2C_I2SR_IAAS_MASK, - i2cStatusBusBusy = I2C_I2SR_IBB_MASK, - i2cStatusArbitrationLost = I2C_I2SR_IAL_MASK, - i2cStatusSlaveReadWrite = I2C_I2SR_SRW_MASK, - i2cStatusInterrupt = I2C_I2SR_IIF_MASK, - i2cStatusReceivedAck = I2C_I2SR_RXAK_MASK + i2cStatusTransferComplete = I2C_I2SR_ICF_MASK, /*!< Data Transfer complete flag. */ + i2cStatusAddressedAsSlave = I2C_I2SR_IAAS_MASK, /*!< Addressed as a slave flag. */ + i2cStatusBusBusy = I2C_I2SR_IBB_MASK, /*!< Bus is busy flag. */ + i2cStatusArbitrationLost = I2C_I2SR_IAL_MASK, /*!< Arbitration is lost flag. */ + i2cStatusSlaveReadWrite = I2C_I2SR_SRW_MASK, /*!< Master reading from slave flag(De-assert if master writing to slave). */ + i2cStatusInterrupt = I2C_I2SR_IIF_MASK, /*!< An interrupt is pending flag. */ + i2cStatusReceivedAck = I2C_I2SR_RXAK_MASK, /*!< No acknowledge detected flag. */ }; -/*! - * @brief I2C Bus role of this module. - */ +/*! @brief I2C Bus role of this module. */ enum _i2c_work_mode { - i2cModeSlave = 0x0, - i2cModeMaster = I2C_I2CR_MSTA_MASK + i2cModeSlave = 0x0, /*!< This module works as I2C Slave. */ + i2cModeMaster = I2C_I2CR_MSTA_MASK, /*!< This module works as I2C Master. */ }; -/*! - * @brief Data transfer direction. - */ +/*! @brief Data transfer direction. */ enum _i2c_direction_mode { - i2cDirectionReceive = 0x0, - i2cDirectionTransmit = I2C_I2CR_MTX_MASK + i2cDirectionReceive = 0x0, /*!< This module works at receive mode. */ + i2cDirectionTransmit = I2C_I2CR_MTX_MASK, /*!< This module works at transmit mode. */ }; /******************************************************************************* @@ -102,9 +96,9 @@ extern "C" { * @brief Initialize I2C module with given initialize structure. * * @param base I2C base pointer. - * @param initConfig I2C initialize structure(see i2c_init_config_t above). + * @param initConfig I2C initialize structure (see @ref i2c_init_config_t). */ -void I2C_Init(I2C_Type* base, i2c_init_config_t* initConfig); +void I2C_Init(I2C_Type* base, const i2c_init_config_t* initConfig); /*! * @brief This function reset I2C module register content to its default value. @@ -151,6 +145,7 @@ void I2C_SetBaudRate(I2C_Type* base, uint32_t clockRate, uint32_t baudRate); static inline void I2C_SetSlaveAddress(I2C_Type* base, uint8_t slaveAddress) { assert(slaveAddress < 0x80); + I2C_IADR_REG(base) = (I2C_IADR_REG(base) & ~I2C_IADR_ADR_MASK) | I2C_IADR_ADR(slaveAddress); } @@ -174,11 +169,12 @@ static inline void I2C_SendRepeatStart(I2C_Type* base) * both I2C Bus Master and Slave can be select. * * @param base I2C base pointer. - * @param mode I2C Bus role to set (see _i2c_work_mode enumeration). + * @param mode I2C Bus role to set (see @ref _i2c_work_mode enumeration). */ static inline void I2C_SetWorkMode(I2C_Type* base, uint32_t mode) { assert((mode == i2cModeMaster) || (mode == i2cModeSlave)); + I2C_I2CR_REG(base) = (I2C_I2CR_REG(base) & ~I2C_I2CR_MSTA_MASK) | mode; } @@ -187,11 +183,12 @@ static inline void I2C_SetWorkMode(I2C_Type* base, uint32_t mode) * both Transmit and Receive can be select. * * @param base I2C base pointer. - * @param direction I2C Bus data transfer direction (see _i2c_direction_mode enumeration). + * @param direction I2C Bus data transfer direction (see @ref _i2c_direction_mode enumeration). */ static inline void I2C_SetDirMode(I2C_Type* base, uint32_t direction) { assert((direction == i2cDirectionReceive) || (direction == i2cDirectionTransmit)); + I2C_I2CR_REG(base) = (I2C_I2CR_REG(base) & ~I2C_I2CR_MTX_MASK) | direction; } @@ -200,8 +197,9 @@ static inline void I2C_SetDirMode(I2C_Type* base, uint32_t direction) * data from other device. * * @param base I2C base pointer. - * @param ack true: An acknowledge signal is sent to the bus at the ninth clock bit - * false: No acknowledge signal response is sent + * @param ack The ACK value answerback to remote I2C device. + * - true: An acknowledge signal is sent to the bus at the ninth clock bit. + * - false: No acknowledge signal response is sent. */ void I2C_SetAckBit(I2C_Type* base, bool ack); @@ -213,7 +211,7 @@ void I2C_SetAckBit(I2C_Type* base, bool ack); /*! * @brief Writes one byte of data to the I2C bus. * - * @param base The I2C peripheral base pointer. + * @param base I2C base pointer. * @param byte The byte of data to transmit. */ static inline void I2C_WriteByte(I2C_Type* base, uint8_t byte) @@ -226,9 +224,9 @@ static inline void I2C_WriteByte(I2C_Type* base, uint8_t byte) * * In a master receive mode, calling this function initiates receiving the next byte of data. * - * @param base The I2C peripheral base pointer + * @param base I2C base pointer. * @return This function returns the last byte received while the I2C module is configured in master - * receive or slave receive mode. + * receive or slave receive mode. */ static inline uint8_t I2C_ReadByte(I2C_Type* base) { @@ -241,10 +239,12 @@ static inline uint8_t I2C_ReadByte(I2C_Type* base) */ /*! - * @brief Enables or disables I2C interrupt requests. + * @brief Enable or disable I2C interrupt requests. * - * @param base The I2C peripheral base pointer - * @param enable Pass true to enable interrupt, false to disable. + * @param base I2C base pointer. + * @param enable Enable/Disbale I2C interrupt. + * - true: Enable I2C interrupt. + * - false: Disable I2C interrupt. */ void I2C_SetIntCmd(I2C_Type* base, bool enable); @@ -252,7 +252,7 @@ void I2C_SetIntCmd(I2C_Type* base, bool enable); * @brief Gets the I2C status flag state. * * @param base I2C base pointer. - * @param flags I2C status flag mask defined in _i2c_status_flag enumeration. + * @param flags I2C status flag mask (see @ref _i2c_status_flag enumeration.) * @return I2C status, each bit represents one status flag */ static inline uint32_t I2C_GetStatusFlag(I2C_Type* base, uint32_t flags) @@ -264,7 +264,7 @@ static inline uint32_t I2C_GetStatusFlag(I2C_Type* base, uint32_t flags) * @brief Clear one or more I2C status flag state. * * @param base I2C base pointer. - * @param flags I2C status flag mask defined in _i2c_status_flag enumeration. + * @param flags I2C status flag mask (see @ref _i2c_status_flag enumeration.) */ static inline void I2C_ClearStatusFlag(I2C_Type* base, uint32_t flags) { diff --git a/platform/drivers/inc/lmem.h b/platform/drivers/inc/lmem.h new file mode 100644 index 0000000..5c77d74 --- /dev/null +++ b/platform/drivers/inc/lmem.h @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __LMEM_H__ +#define __LMEM_H__ + +#include +#include +#include "device_imx.h" + +/*! + * @addtogroup lmem_driver + * @{ + */ + +/******************************************************************************* + * API + ******************************************************************************/ + +#if defined(__cplusplus) +extern "C" { +#endif + +/*! + * @name Processor System Cache control functions + * @{ + */ + +/*! + * @brief This function enable the System Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_EnableSystemCache(LMEM_Type *base); + +/*! + * @brief This function disable the System Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_DisableSystemCache(LMEM_Type *base); + +/*! + * @brief This function flush the System Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_FlushSystemCache(LMEM_Type *base); + +/*! + * @brief This function is called to flush the System Cache by performing cache copy-backs. + * It must determine how many cache lines need to be copied back and then + * perform the copy-backs. + * + * @param base LMEM base pointer. + * @param address The start address of cache line. + * @param length The length of flush address space. + */ +void LMEM_FlushSystemCacheLines(LMEM_Type *base, void *address, uint32_t length); + +/*! + * @brief This function invalidate the System Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_InvalidateSystemCache(LMEM_Type *base); + +/*! + * @brief This function is responsible for performing an System Cache invalidate. + * It must determine how many cache lines need to be invalidated and then + * perform the invalidation. + * + * @param base LMEM base pointer. + * @param address The start address of cache line. + * @param length The length of invalidate address space. + */ +void LMEM_InvalidateSystemCacheLines(LMEM_Type *base, void *address, uint32_t length); + +/*@}*/ + +/*! + * @name Processor Code Cache control functions + * @{ + */ + +/*! + * @brief This function enable the Code Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_EnableCodeCache(LMEM_Type *base); + +/*! + * @brief This function disable the Code Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_DisableCodeCache(LMEM_Type *base); + +/*! + * @brief This function flush the Code Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_FlushCodeCache(LMEM_Type *base); + +/*! + * @brief This function is called to flush the Code Cache by performing cache copy-backs. + * It must determine how many cache lines need to be copied back and then + * perform the copy-backs. + * + * @param base LMEM base pointer. + * @param address The start address of cache line. + * @param length The length of flush address space. + */ +void LMEM_FlushCodeCacheLines(LMEM_Type *base, void *address, uint32_t length); + +/*! + * @brief This function invalidate the Code Cache. + * + * @param base LMEM base pointer. + */ +void LMEM_InvalidateCodeCache(LMEM_Type *base); + +/*! + * @brief This function is responsible for performing an Code Cache invalidate. + * It must determine how many cache lines need to be invalidated and then + * perform the invalidation. + * + * @param base LMEM base pointer. + * @param address The start address of cache line. + * @param length The length of invalidate address space. + */ +void LMEM_InvalidateCodeCacheLines(LMEM_Type *base, void *address, uint32_t length); + +/*@}*/ + +#if defined(__cplusplus) +} +#endif + +/*! @}*/ + +#endif /* __LMEM_H__ */ +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/platform/drivers/inc/mu_imx.h b/platform/drivers/inc/mu_imx.h index 40bacc7..2e16afd 100644 --- a/platform/drivers/inc/mu_imx.h +++ b/platform/drivers/inc/mu_imx.h @@ -66,24 +66,20 @@ /* Mask for MU_CR_GIRN. When read-modify-write to MU_CR, should pay attention to these bits in case of trigger interrupts by mistake.*/ -/*! - * @brief MU status return codes. - */ +/*! @brief MU status return codes. */ typedef enum _mu_status { - kStatus_MU_Success = 0U, /*!< Success. */ - kStatus_MU_TxNotEmpty = 1U, /*!< TX register is not empty. */ - kStatus_MU_RxNotFull = 2U, /*!< RX register is not full. */ - kStatus_MU_FlagPending = 3U, /*!< Previous flags update pending. */ - kStatus_MU_EventPending = 4U, /*!< MU event is pending. */ - kStatus_MU_Initialized = 5U, /*!< MU driver has initialized previously. */ - kStatus_MU_IntPending = 6U, /*!< Previous general interrupt still pending. */ - kStatus_MU_Failed = 7U /*!< Execution failed. */ + kStatus_MU_Success = 0U, /*!< Success. */ + kStatus_MU_TxNotEmpty = 1U, /*!< TX register is not empty. */ + kStatus_MU_RxNotFull = 2U, /*!< RX register is not full. */ + kStatus_MU_FlagPending = 3U, /*!< Previous flags update pending. */ + kStatus_MU_EventPending = 4U, /*!< MU event is pending. */ + kStatus_MU_Initialized = 5U, /*!< MU driver has initialized previously. */ + kStatus_MU_IntPending = 6U, /*!< Previous general interrupt still pending. */ + kStatus_MU_Failed = 7U /*!< Execution failed. */ } mu_status_t; -/*! - * @brief MU message status. - */ +/*! @brief MU message status. */ typedef enum _mu_msg_status { kMuTxEmpty0 = MU_SR_TE0_MASK, /*!< TX0 empty status. */ @@ -119,15 +115,13 @@ typedef enum _mu_msg_status } mu_msg_status_t; -/*! - * @brief Power mode definition. - */ +/*! @brief Power mode definition. */ typedef enum _mu_power_mode { - kMuPowerModeRun = 0x00U, /*!< Run mode. */ - kMuPowerModeWait = 0x01U, /*!< WAIT mode. */ - kMuPowerModeStop = 0x02U, /*!< STOP mode. */ - kMuPowerModeDsm = 0x03U, /*!< DSM mode. */ + kMuPowerModeRun = 0x00U, /*!< Run mode. */ + kMuPowerModeWait = 0x01U, /*!< WAIT mode. */ + kMuPowerModeStop = 0x02U, /*!< STOP mode. */ + kMuPowerModeDsm = 0x03U, /*!< DSM mode. */ } mu_power_mode_t; /******************************************************************************* @@ -144,8 +138,7 @@ extern "C" { */ /*! * @brief Initializes the MU module to reset state. - * - * This function sets the MU module control register to its default reset value. + * This function sets the MU module control register to its default reset value. * * @param base Register base address for the module. */ @@ -190,12 +183,12 @@ void MU_SendMsg(MU_Type * base, uint32_t regIndex, uint32_t msg); /*! * @brief Check TX empty status. * - * This function checks the specific tramsmit register empty status. + * This function checks the specific transmit register empty status. * * @param base Register base address for the module. - * @param index TX register index to check. - * @retval true TX register is empty. - * @retval false TX register is not empty. + * @param index TX register index to check. + * @retval true TX register is empty. + * @retval false TX register is not empty. */ static inline bool MU_IsTxEmpty(MU_Type * base, uint32_t index) { @@ -207,8 +200,8 @@ static inline bool MU_IsTxEmpty(MU_Type * base, uint32_t index) * * This function enables specific TX empty interrupt. * - * @param base Register base address for the module. - * @param index TX interrupt index to enable. + * @param base Register base address for the module. + * @param index TX interrupt index to enable. * * Example: @code @@ -227,7 +220,7 @@ static inline void MU_EnableTxEmptyInt(MU_Type * base, uint32_t index) * * This function disables specific TX empty interrupt. * - * @param base Register base address for the module. + * @param base Register base address for the module. * @param disableMask Bitmap of the interrupts to disable. * * Example: @@ -255,8 +248,8 @@ static inline void MU_DisableTxEmptyInt(MU_Type * base, uint32_t index) * this function returns kStatus_MU_RxNotFull. * * @param base Register base address for the module. - * @param regIdex Rx register index. - * @param msg Message to receive. + * @param regIdex Rx register index. + * @param msg Message to receive. * @retval kStatus_MU_Success Message receive successfully. * @retval kStatus_MU_RxNotFull Message not received because RX is not full. */ @@ -268,8 +261,8 @@ mu_status_t MU_TryReceiveMsg(MU_Type * base, uint32_t regIndex, uint32_t *msg); * This function waits until RX register is full and receive the message. * * @param base Register base address for the module. - * @param regIdex Rx register index. - * @param msg Message to receive. + * @param regIdex Rx register index. + * @param msg Message to receive. */ void MU_ReceiveMsg(MU_Type * base, uint32_t regIndex, uint32_t *msg); @@ -279,9 +272,9 @@ void MU_ReceiveMsg(MU_Type * base, uint32_t regIndex, uint32_t *msg); * This function checks the specific receive register full status. * * @param base Register base address for the module. - * @param index RX register index to check. - * @retval true RX register is full. - * @retval false RX register is not full. + * @param index RX register index to check. + * @retval true RX register is full. + * @retval false RX register is not full. */ static inline bool MU_IsRxFull(MU_Type * base, uint32_t index) { @@ -293,8 +286,8 @@ static inline bool MU_IsRxFull(MU_Type * base, uint32_t index) * * This function enables specific RX full interrupt. * - * @param base Register base address for the module. - * @param index RX interrupt index to enable. + * @param base Register base address for the module. + * @param index RX interrupt index to enable. * * Example: @code @@ -313,7 +306,7 @@ static inline void MU_EnableRxFullInt(MU_Type * base, uint32_t index) * * This function disables specific RX full interrupt. * - * @param base Register base address for the module. + * @param base Register base address for the module. * @param disableMask Bitmap of the interrupts to disable. * * Example: @@ -339,8 +332,8 @@ static inline void MU_DisableRxFullInt(MU_Type * base, uint32_t index) * * This function enables specific general purpose interrupt. * - * @param base Register base address for the module. - * @param index General purpose interrupt index to enable. + * @param base Register base address for the module. + * @param index General purpose interrupt index to enable. * * Example: @code @@ -359,8 +352,8 @@ static inline void MU_EnableGeneralInt(MU_Type * base, uint32_t index) * * This function disables specific general purpose interrupt. * - * @param base Register base address for the module. - * @param index General purpose interrupt index to disable. + * @param base Register base address for the module. + * @param index General purpose interrupt index to disable. * * Example: @code @@ -379,9 +372,9 @@ static inline void MU_DisableGeneralInt(MU_Type * base, uint32_t index) * This function checks the specific general purpose interrupt pending status. * * @param base Register base address for the module. - * @param index Index of the general purpose interrupt flag to check. - * @retval true General purpose interrupt is pending. - * @retval false General purpose interrupt is not pending. + * @param index Index of the general purpose interrupt flag to check. + * @retval true General purpose interrupt is pending. + * @retval false General purpose interrupt is not pending. */ static inline bool MU_IsGeneralIntPending(MU_Type * base, uint32_t index) { @@ -394,7 +387,7 @@ static inline bool MU_IsGeneralIntPending(MU_Type * base, uint32_t index) * This function clears the specific general purpose interrupt pending status. * * @param base Register base address for the module. - * @param index Index of the general purpose interrupt flag to clear. + * @param index Index of the general purpose interrupt flag to clear. */ static inline void MU_ClearGeneralIntPending(MU_Type * base, uint32_t index) { @@ -406,14 +399,14 @@ static inline void MU_ClearGeneralIntPending(MU_Type * base, uint32_t index) * * This function triggers specific general purpose interrupt to other core. * - * To ensure proper operations, please make sure the correspond general purpose - * interrupt triggerd previously has been accepted by the other core. The - * function MU_IsGeneralIntAccepted could be used for this check. If the + * To ensure proper operations, make sure the correspond general purpose + * interrupt triggered previously has been accepted by the other core. The + * function MU_IsGeneralIntAccepted can be used for this check. If the * previous general interrupt has not been accepted by the other core, this - * function does not trigger interrupt acctually and returns error. + * function does not trigger interrupt actually and returns an error. * * @param base Register base address for the module. - * @param index Index of general purpose interrupt to trigger. + * @param index Index of general purpose interrupt to trigger. * @retval kStatus_MU_Success Interrupt has been triggered successfully. * @retval kStatus_MU_IntPending Previous interrupt has not been accepted. */ @@ -426,9 +419,9 @@ mu_status_t MU_TriggerGeneralInt(MU_Type * base, uint32_t index); * been accepted by the other core or not. * * @param base Register base address for the module. - * @param index Index of the general purpose interrupt to check. - * @retval true General purpose interrupt is accepted. - * @retval false General purpose interrupt is not accepted. + * @param index Index of the general purpose interrupt to check. + * @retval true General purpose interrupt is accepted. + * @retval false General purpose interrupt is not accepted. */ static inline bool MU_IsGeneralIntAccepted(MU_Type * base, uint32_t index) { @@ -458,7 +451,7 @@ mu_status_t MU_TrySetFlags(MU_Type * base, uint32_t flags); * @brief Set some bits of the 3-bit flag reflect on the other MU side. * * This functions set some bits of the 3-bit flag. If previous flags update is - * still pending, this function will block and poll to set the flag. + * still pending, this function blocks and polls to set the flag. * * @param base Register base address for the module. */ @@ -467,13 +460,13 @@ void MU_SetFlags(MU_Type * base, uint32_t flags); /*! * @brief Checks whether the previous flag update is pending. * - * After setting flags, the flags update request is pending untill internally + * After setting flags, the flags update request is pending until internally * acknowledged. During the pending period, it is not allowed to set flags again. - * This function is used to check the pending status, it could be used together + * This function is used to check the pending status, it can be used together * with function MU_TrySetFlags. * * @param base Register base address for the module. - * @return True if pending, faulse if not. + * @return True if pending, false if not. */ static inline bool MU_IsFlagPending(MU_Type * base) { @@ -486,7 +479,7 @@ static inline bool MU_IsFlagPending(MU_Type * base) * This functions gets the current value of the 3-bit flag. * * @param base Register base address for the module. - * @return flags Current value of the 3-bit flag. + * @return flags Current value of the 3-bit flag. */ static inline uint32_t MU_GetFlags(MU_Type * base) { @@ -517,12 +510,12 @@ static inline mu_power_mode_t MU_GetOtherCorePowerMode(MU_Type * base) * @brief Get the event pending status. * * This functions gets the event pending status. To ensure events have been - * posted to the other side before entering STOP mode, please verify the + * posted to the other side before entering STOP mode, verify the * event pending status using this function. * * @param base Register base address for the module. - * @retval true Event is pending. - * @retval false Event is not pending. + * @retval true Event is pending. + * @retval false Event is not pending. */ static inline bool MU_IsEventPending(MU_Type * base) { diff --git a/platform/drivers/inc/rdc.h b/platform/drivers/inc/rdc.h index 6259e78..872e39d 100644 --- a/platform/drivers/inc/rdc.h +++ b/platform/drivers/inc/rdc.h @@ -73,7 +73,9 @@ static inline uint32_t RDC_GetSelfDomainID(RDC_Type * base) * @brief Check whether memory region controlled by RDC is accessible after low power recovery * * @param base RDC base pointer. - * @return Memory region power status (true: on and accessible, false: off) + * @return Memory region power status. + * - true: on and accessible. + * - false: off. */ static inline bool RDC_IsMemPowered(RDC_Type * base) { @@ -84,7 +86,9 @@ static inline bool RDC_IsMemPowered(RDC_Type * base) * @brief Check whether there's pending RDC memory region restoration interrupt * * @param base RDC base pointer. - * @return RDC interrupt status (true: interrupt pending, false: no interrupt pending) + * @return RDC interrupt status + * - true: Interrupt pending. + * - false: No interrupt pending. */ static inline bool RDC_IsIntPending(RDC_Type * base) { @@ -105,7 +109,9 @@ static inline void RDC_ClearStatusFlag(RDC_Type * base) * @brief Set RDC interrupt mode * * @param base RDC base pointer - * @param enable RDC interrupt control (true: enable, false: disable) + * @param enable RDC interrupt control. + * - true: enable interrupt. + * - false: disable interrupt. */ static inline void RDC_SetIntCmd(RDC_Type * base, bool enable) { @@ -123,13 +129,14 @@ static inline void RDC_SetIntCmd(RDC_Type * base, bool enable) * @brief Set RDC domain ID for RDC master * * @param base RDC base pointer - * @param mda RDC master assignment (see _rdc_mda in rdc_defs_.h) + * @param mda RDC master assignment (see @ref _rdc_mda in rdc_defs_.h) * @param domainId RDC domain ID (0-3) * @param lock Whether to lock this setting? Once locked, no one can change the domain assignment until reset */ static inline void RDC_SetDomainID(RDC_Type * base, uint32_t mda, uint32_t domainId, bool lock) { assert (domainId <= RDC_MDA_DID_MASK); + base->MDA[mda] = RDC_MDA_DID(domainId) | (lock ? RDC_MDA_LCK_MASK : 0); } @@ -137,7 +144,7 @@ static inline void RDC_SetDomainID(RDC_Type * base, uint32_t mda, uint32_t domai * @brief Get RDC domain ID for RDC master * * @param base RDC base pointer - * @param mda RDC master assignment (see _rdc_mda in rdc_defs_.h) + * @param mda RDC master assignment (see @ref _rdc_mda in rdc_defs_.h) * @return RDC domain ID (0-3) */ static inline uint32_t RDC_GetDomainID(RDC_Type * base, uint32_t mda) @@ -149,7 +156,7 @@ static inline uint32_t RDC_GetDomainID(RDC_Type * base, uint32_t mda) * @brief Set RDC peripheral access permission for RDC domains * * @param base RDC base pointer - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) * @param perm RDC access permission from RDC domain to peripheral (byte: D3R D3W D2R D2W D1R D1W D0R D0W) * @param sreq Force acquiring SEMA42 to access this peripheral or not * @param lock Whether to lock this setting or not. Once locked, no one can change the RDC setting until reset @@ -163,7 +170,7 @@ static inline void RDC_SetPdapAccess(RDC_Type * base, uint32_t pdap, uint8_t per * @brief Get RDC peripheral access permission for RDC domains * * @param base RDC base pointer - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) * @return RDC access permission from RDC domain to peripheral (byte: D3R D3W D2R D2W D1R D1W D0R D0W) */ static inline uint8_t RDC_GetPdapAccess(RDC_Type * base, uint32_t pdap) @@ -175,8 +182,10 @@ static inline uint8_t RDC_GetPdapAccess(RDC_Type * base, uint32_t pdap) * @brief Check whether RDC semaphore is required to access the peripheral * * @param base RDC base pointer - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) - * @return RDC semaphore required or not (true: required, false: not required) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) + * @return RDC semaphore required or not. + * - true: RDC semaphore is required. + * - false: RDC semaphore is not required. */ static inline bool RDC_IsPdapSemaphoreRequired(RDC_Type * base, uint32_t pdap) { @@ -187,7 +196,7 @@ static inline bool RDC_IsPdapSemaphoreRequired(RDC_Type * base, uint32_t pdap) * @brief Set RDC memory region access permission for RDC domains * * @param base RDC base pointer - * @param mr RDC memory region assignment (see _rdc_mr in rdc_defs_.h) + * @param mr RDC memory region assignment (see @ref _rdc_mr in rdc_defs_.h) * @param startAddr memory region start address (inclusive) * @param endAddr memory region end address (exclusive) * @param perm RDC access permission from RDC domain to peripheral (byte: D3R D3W D2R D2W D1R D1W D0R D0W) @@ -201,7 +210,7 @@ void RDC_SetMrAccess(RDC_Type * base, uint32_t mr, uint32_t startAddr, uint32_t * @brief Get RDC memory region access permission for RDC domains * * @param base RDC base pointer - * @param mr RDC memory region assignment (see _rdc_mr in rdc_defs_.h) + * @param mr RDC memory region assignment (see @ref _rdc_mr in rdc_defs_.h) * @param startAddr pointer to get memory region start address (inclusive), NULL is allowed. * @param endAddr pointer to get memory region end address (exclusive), NULL is allowed. * @return RDC access permission from RDC domain to peripheral (byte: D3R D3W D2R D2W D1R D1W D0R D0W) @@ -214,7 +223,9 @@ uint8_t RDC_GetMrAccess(RDC_Type * base, uint32_t mr, uint32_t *startAddr, uint3 * * @param base RDC base pointer * @param mr RDC memory region assignment (see _rdc_mr in rdc_defs_.h) - * @return Memory region enabled or not (true: enabled, false: not enabled) + * @return Memory region enabled or not. + * - true: Memory region is enabled. + * - false: Memory region is not enabled. */ static inline bool RDC_IsMrEnabled(RDC_Type * base, uint32_t mr) { @@ -225,10 +236,12 @@ static inline bool RDC_IsMrEnabled(RDC_Type * base, uint32_t mr) * @brief Get memory violation status * * @param base RDC base pointer - * @param mr RDC memory region assignment (see _rdc_mr in rdc_defs_.h) + * @param mr RDC memory region assignment (see @ref _rdc_mr in rdc_defs_.h) * @param violationAddr Pointer to store violation address, NULL allowed * @param violationDomain Pointer to store domain ID causing violation, NULL allowed - * @return Memory violation occured or not (true: violation happened, false: no violation happened) + * @return Memory violation occurred or not. + * - true: violation happened. + * - false: No violation happened. */ bool RDC_GetViolationStatus(RDC_Type * base, uint32_t mr, uint32_t *violationAddr, uint32_t *violationDomain); @@ -236,7 +249,7 @@ bool RDC_GetViolationStatus(RDC_Type * base, uint32_t mr, uint32_t *violationAdd * @brief Clear RDC violation status * * @param base RDC base pointer - * @param mr RDC memory region assignment (see _rdc_mr in rdc_defs_.h) + * @param mr RDC memory region assignment (see @ref _rdc_mr in rdc_defs_.h) */ static inline void RDC_ClearViolationStatus(RDC_Type * base, uint32_t mr) { diff --git a/platform/drivers/inc/rdc_defs_imx7d.h b/platform/drivers/inc/rdc_defs_imx7d.h index 20bff89..e77990f 100644 --- a/platform/drivers/inc/rdc_defs_imx7d.h +++ b/platform/drivers/inc/rdc_defs_imx7d.h @@ -40,183 +40,180 @@ * Definitions ******************************************************************************/ -/*! - * @brief RDC master assignment - */ -enum _rdc_mda { - rdcMdaA7 = 0U, - rdcMdaM4 = 1U, - rdcMdaPcie = 2U, - rdcMdaCsi = 3U, - rdcMdaEpdc = 4U, - rdcMdaLcdif = 5U, - rdcMdaDisplayPort = 6U, - rdcMdaPxp = 7U, - rdcMdaCoresight = 8U, - rdcMdaDap = 9U, - rdcMdaCaam = 10U, - rdcMdaSdmaPeriph = 11U, - rdcMdaSdmaBurst = 12U, - rdcMdaApbhdma = 13U, - rdcMdaRawnand = 14U, - rdcMdaUsdhc1 = 15U, - rdcMdaUsdhc2 = 16U, - rdcMdaUsdhc3 = 17U, - rdcMdaNc1 = 18U, - rdcMdaUsb = 19U, - rdcMdaNc2 = 20U, - rdcMdaTest = 21U, - rdcMdaEnet1Tx = 22U, - rdcMdaEnet1Rx = 23U, - rdcMdaEnet2Tx = 24U, - rdcMdaEnet2Rx = 25U, - rdcMdaSdmaPort = 26U +/*! @brief RDC master assignment. */ +enum _rdc_mda +{ + rdcMdaA7 = 0U, /*!< A7 RDC Master. */ + rdcMdaM4 = 1U, /*!< M4 RDC Master. */ + rdcMdaPcie = 2U, /*!< PCIE RDC Master. */ + rdcMdaCsi = 3U, /*!< CSI RDC Master. */ + rdcMdaEpdc = 4U, /*!< EPDC RDC Master. */ + rdcMdaLcdif = 5U, /*!< LCDIF RDC Master. */ + rdcMdaDisplayPort = 6U, /*!< DISPLAY PORT RDC Master. */ + rdcMdaPxp = 7U, /*!< PXP RDC Master. */ + rdcMdaCoresight = 8U, /*!< CORESIGHT RDC Master. */ + rdcMdaDap = 9U, /*!< DAP RDC Master. */ + rdcMdaCaam = 10U, /*!< CAAM RDC Master. */ + rdcMdaSdmaPeriph = 11U, /*!< SDMA PERIPHERAL RDC Master. */ + rdcMdaSdmaBurst = 12U, /*!< SDMA BURST RDC Master. */ + rdcMdaApbhdma = 13U, /*!< APBH DMA RDC Master. */ + rdcMdaRawnand = 14U, /*!< RAW NAND RDC Master. */ + rdcMdaUsdhc1 = 15U, /*!< USDHC1 RDC Master. */ + rdcMdaUsdhc2 = 16U, /*!< USDHC2 RDC Master. */ + rdcMdaUsdhc3 = 17U, /*!< USDHC3 RDC Master. */ + rdcMdaNc1 = 18U, /*!< NC1 RDC Master. */ + rdcMdaUsb = 19U, /*!< USB RDC Master. */ + rdcMdaNc2 = 20U, /*!< NC2 RDC Master. */ + rdcMdaTest = 21U, /*!< TEST RDC Master. */ + rdcMdaEnet1Tx = 22U, /*!< Ethernet1 Tx RDC Master. */ + rdcMdaEnet1Rx = 23U, /*!< Ethernet1 Rx RDC Master. */ + rdcMdaEnet2Tx = 24U, /*!< Ethernet2 Tx RDC Master. */ + rdcMdaEnet2Rx = 25U, /*!< Ethernet2 Rx RDC Master. */ + rdcMdaSdmaPort = 26U, /*!< SDMA PORT RDC Master. */ }; -/*! - * @brief RDC peripheral assignment - */ -enum _rdc_pdap { - rdcPdapGpio1 = 0U, - rdcPdapGpio2 = 1U, - rdcPdapGpio3 = 2U, - rdcPdapGpio4 = 3U, - rdcPdapGpio5 = 4U, - rdcPdapGpio6 = 5U, - rdcPdapGpio7 = 6U, - rdcPdapIomuxcLpsrGpr = 7U, - rdcPdapWdog1 = 8U, - rdcPdapWdog2 = 9U, - rdcPdapWdog3 = 10U, - rdcPdapWdog4 = 11U, - rdcPdapIomuxcLpsr = 12U, - rdcPdapGpt1 = 13U, - rdcPdapGpt2 = 14U, - rdcPdapGpt3 = 15U, - rdcPdapGpt4 = 16U, - rdcPdapRomcp = 17U, - rdcPdapKpp = 18U, - rdcPdapIomuxc = 19U, - rdcPdapIomuxcGpr = 20U, - rdcPdapOcotpCtrl = 21U, - rdcPdapAnatopDig = 22U, - rdcPdapSnvs = 23U, - rdcPdapCcm = 24U, - rdcPdapSrc = 25U, - rdcPdapGpc = 26U, - rdcPdapSemaphore1 = 27U, - rdcPdapSemaphore2 = 28U, - rdcPdapRdc = 29U, - rdcPdapCsu = 30U, - rdcPdapReserved1 = 31U, - rdcPdapReserved2 = 32U, - rdcPdapAdc1 = 33U, - rdcPdapAdc2 = 34U, - rdcPdapEcspi4 = 35U, - rdcPdapFlexTimer1 = 36U, - rdcPdapFlexTimer2 = 37U, - rdcPdapPwm1 = 38U, - rdcPdapPwm2 = 39U, - rdcPdapPwm3 = 40U, - rdcPdapPwm4 = 41U, - rdcPdapSystemCounterRead = 42U, - rdcPdapSystemCounterCompare = 43U, - rdcPdapSystemCounterControl = 44U, - rdcPdapPcie = 45U, - rdcPdapReserved3 = 46U, - rdcPdapEpdc = 47U, - rdcPdapPxp = 48U, - rdcPdapCsi = 49U, - rdcPdapReserved4 = 50U, - rdcPdapLcdif = 51U, - rdcPdapReserved5 = 52U, - rdcPdapMipiCsi = 53U, - rdcPdapMipiDsi = 54U, - rdcPdapReserved6 = 55U, - rdcPdapTzasc = 56U, - rdcPdapDdrPhy = 57U, - rdcPdapDdrc = 58U, - rdcPdapReserved7 = 59U, - rdcPdapPerfMon1 = 60U, - rdcPdapPerfMon2 = 61U, - rdcPdapAxi = 62U, - rdcPdapQosc = 63U, - rdcPdapFlexCan1 = 64U, - rdcPdapFlexCan2 = 65U, - rdcPdapI2c1 = 66U, - rdcPdapI2c2 = 67U, - rdcPdapI2c3 = 68U, - rdcPdapI2c4 = 69U, - rdcPdapUart4 = 70U, - rdcPdapUart5 = 71U, - rdcPdapUart6 = 72U, - rdcPdapUart7 = 73U, - rdcPdapMuA = 74U, - rdcPdapMuB = 75U, - rdcPdapSemaphoreHs = 76U, - rdcPdapUsbPl301 = 77U, - rdcPdapReserved8 = 78U, - rdcPdapReserved9 = 79U, - rdcPdapReserved10 = 80U, - rdcPdapUSB1Otg1 = 81U, - rdcPdapUSB2Otg2 = 82U, - rdcPdapUSB3Host = 83U, - rdcPdapUsdhc1 = 84U, - rdcPdapUsdhc2 = 85U, - rdcPdapUsdhc3 = 86U, - rdcPdapReserved11 = 87U, - rdcPdapReserved12 = 88U, - rdcPdapSim1 = 89U, - rdcPdapSim2 = 90U, - rdcPdapQspi = 91U, - rdcPdapWeim = 92U, - rdcPdapSdma = 93U, - rdcPdapEnet1 = 94U, - rdcPdapEnet2 = 95U, - rdcPdapReserved13 = 96U, - rdcPdapReserved14 = 97U, - rdcPdapEcspi1 = 98U, - rdcPdapEcspi2 = 99U, - rdcPdapEcspi3 = 100U, - rdcPdapReserved15 = 101U, - rdcPdapUart1 = 102U, - rdcPdapReserved16 = 103U, - rdcPdapUart3 = 104U, - rdcPdapUart2 = 105U, - rdcPdapSai1 = 106U, - rdcPdapSai2 = 107U, - rdcPdapSai3 = 108U, - rdcPdapReserved17 = 109U, - rdcPdapReserved18 = 110U, - rdcPdapSpba = 111U, - rdcPdapDap = 112U, - rdcPdapReserved19 = 113U, - rdcPdapReserved20 = 114U, - rdcPdapReserved21 = 115U, - rdcPdapCaam = 116U, - rdcPdapReserved22 = 117U +/*! @brief RDC peripheral assignment. */ +enum _rdc_pdap +{ + rdcPdapGpio1 = 0U, /*!< GPIO1 RDC Peripheral. */ + rdcPdapGpio2 = 1U, /*!< GPIO2 RDC Peripheral. */ + rdcPdapGpio3 = 2U, /*!< GPIO3 RDC Peripheral. */ + rdcPdapGpio4 = 3U, /*!< GPIO4 RDC Peripheral. */ + rdcPdapGpio5 = 4U, /*!< GPIO5 RDC Peripheral. */ + rdcPdapGpio6 = 5U, /*!< GPIO6 RDC Peripheral. */ + rdcPdapGpio7 = 6U, /*!< GPIO7 RDC Peripheral. */ + rdcPdapIomuxcLpsrGpr = 7U, /*!< IOMXUC LPSR GPR RDC Peripheral. */ + rdcPdapWdog1 = 8U, /*!< WDOG1 RDC Peripheral. */ + rdcPdapWdog2 = 9U, /*!< WDOG2 RDC Peripheral. */ + rdcPdapWdog3 = 10U, /*!< WDOG3 RDC Peripheral. */ + rdcPdapWdog4 = 11U, /*!< WDOG4 RDC Peripheral. */ + rdcPdapIomuxcLpsr = 12U, /*!< IOMUXC LPSR RDC Peripheral. */ + rdcPdapGpt1 = 13U, /*!< GPT1 RDC Peripheral. */ + rdcPdapGpt2 = 14U, /*!< GPT2 RDC Peripheral. */ + rdcPdapGpt3 = 15U, /*!< GPT3 RDC Peripheral. */ + rdcPdapGpt4 = 16U, /*!< GPT4 RDC Peripheral. */ + rdcPdapRomcp = 17U, /*!< ROMCP RDC Peripheral. */ + rdcPdapKpp = 18U, /*!< KPP RDC Peripheral. */ + rdcPdapIomuxc = 19U, /*!< IOMUXC RDC Peripheral. */ + rdcPdapIomuxcGpr = 20U, /*!< IOMUXC GPR RDC Peripheral. */ + rdcPdapOcotpCtrl = 21U, /*!< OCOTP CTRL RDC Peripheral. */ + rdcPdapAnatopDig = 22U, /*!< ANATOPDIG RDC Peripheral. */ + rdcPdapSnvs = 23U, /*!< SNVS RDC Peripheral. */ + rdcPdapCcm = 24U, /*!< CCM RDC Peripheral. */ + rdcPdapSrc = 25U, /*!< SRC RDC Peripheral. */ + rdcPdapGpc = 26U, /*!< GPC RDC Peripheral. */ + rdcPdapSemaphore1 = 27U, /*!< SEMAPHORE1 RDC Peripheral. */ + rdcPdapSemaphore2 = 28U, /*!< SEMAPHORE2 RDC Peripheral. */ + rdcPdapRdc = 29U, /*!< RDC RDC Peripheral. */ + rdcPdapCsu = 30U, /*!< CSU RDC Peripheral. */ + rdcPdapReserved1 = 31U, /*!< Reserved1 RDC Peripheral. */ + rdcPdapReserved2 = 32U, /*!< Reserved2 RDC Peripheral. */ + rdcPdapAdc1 = 33U, /*!< ADC1 RDC Peripheral. */ + rdcPdapAdc2 = 34U, /*!< ADC2 RDC Peripheral. */ + rdcPdapEcspi4 = 35U, /*!< ECSPI4 RDC Peripheral. */ + rdcPdapFlexTimer1 = 36U, /*!< FTM1 RDC Peripheral. */ + rdcPdapFlexTimer2 = 37U, /*!< FTM2 RDC Peripheral. */ + rdcPdapPwm1 = 38U, /*!< PWM1 RDC Peripheral. */ + rdcPdapPwm2 = 39U, /*!< PWM2 RDC Peripheral. */ + rdcPdapPwm3 = 40U, /*!< PWM3 RDC Peripheral. */ + rdcPdapPwm4 = 41U, /*!< PWM4 RDC Peripheral. */ + rdcPdapSystemCounterRead = 42U, /*!< System Counter Read RDC Peripheral. */ + rdcPdapSystemCounterCompare = 43U, /*!< System Counter Compare RDC Peripheral. */ + rdcPdapSystemCounterControl = 44U, /*!< System Counter Control RDC Peripheral. */ + rdcPdapPcie = 45U, /*!< PCIE RDC Peripheral. */ + rdcPdapReserved3 = 46U, /*!< Reserved3 RDC Peripheral. */ + rdcPdapEpdc = 47U, /*!< EPDC RDC Peripheral. */ + rdcPdapPxp = 48U, /*!< PXP RDC Peripheral. */ + rdcPdapCsi = 49U, /*!< CSI RDC Peripheral. */ + rdcPdapReserved4 = 50U, /*!< Reserved4 RDC Peripheral. */ + rdcPdapLcdif = 51U, /*!< LCDIF RDC Peripheral. */ + rdcPdapReserved5 = 52U, /*!< Reserved5 RDC Peripheral. */ + rdcPdapMipiCsi = 53U, /*!< MIPI CSI RDC Peripheral. */ + rdcPdapMipiDsi = 54U, /*!< MIPI DSI RDC Peripheral. */ + rdcPdapReserved6 = 55U, /*!< Reserved6 RDC Peripheral. */ + rdcPdapTzasc = 56U, /*!< TZASC RDC Peripheral. */ + rdcPdapDdrPhy = 57U, /*!< DDR PHY RDC Peripheral. */ + rdcPdapDdrc = 58U, /*!< DDRC RDC Peripheral. */ + rdcPdapReserved7 = 59U, /*!< Reserved7 RDC Peripheral. */ + rdcPdapPerfMon1 = 60U, /*!< PerfMon1 RDC Peripheral. */ + rdcPdapPerfMon2 = 61U, /*!< PerfMon2 RDC Peripheral. */ + rdcPdapAxi = 62U, /*!< AXI RDC Peripheral. */ + rdcPdapQosc = 63U, /*!< QOSC RDC Peripheral. */ + rdcPdapFlexCan1 = 64U, /*!< FLEXCAN1 RDC Peripheral. */ + rdcPdapFlexCan2 = 65U, /*!< FLEXCAN2 RDC Peripheral. */ + rdcPdapI2c1 = 66U, /*!< I2C1 RDC Peripheral. */ + rdcPdapI2c2 = 67U, /*!< I2C2 RDC Peripheral. */ + rdcPdapI2c3 = 68U, /*!< I2C3 RDC Peripheral. */ + rdcPdapI2c4 = 69U, /*!< I2C4 RDC Peripheral. */ + rdcPdapUart4 = 70U, /*!< UART4 RDC Peripheral. */ + rdcPdapUart5 = 71U, /*!< UART5 RDC Peripheral. */ + rdcPdapUart6 = 72U, /*!< UART6 RDC Peripheral. */ + rdcPdapUart7 = 73U, /*!< UART7 RDC Peripheral. */ + rdcPdapMuA = 74U, /*!< MUA RDC Peripheral. */ + rdcPdapMuB = 75U, /*!< MUB RDC Peripheral. */ + rdcPdapSemaphoreHs = 76U, /*!< SEMAPHORE HS RDC Peripheral. */ + rdcPdapUsbPl301 = 77U, /*!< USB PL301 RDC Peripheral. */ + rdcPdapReserved8 = 78U, /*!< Reserved8 RDC Peripheral. */ + rdcPdapReserved9 = 79U, /*!< Reserved9 RDC Peripheral. */ + rdcPdapReserved10 = 80U, /*!< Reserved10 RDC Peripheral. */ + rdcPdapUSB1Otg1 = 81U, /*!< USB2 OTG1 RDC Peripheral. */ + rdcPdapUSB2Otg2 = 82U, /*!< USB2 OTG2 RDC Peripheral. */ + rdcPdapUSB3Host = 83U, /*!< USB3 HOST RDC Peripheral. */ + rdcPdapUsdhc1 = 84U, /*!< USDHC1 RDC Peripheral. */ + rdcPdapUsdhc2 = 85U, /*!< USDHC2 RDC Peripheral. */ + rdcPdapUsdhc3 = 86U, /*!< USDHC3 RDC Peripheral. */ + rdcPdapReserved11 = 87U, /*!< Reserved11 RDC Peripheral. */ + rdcPdapReserved12 = 88U, /*!< Reserved12 RDC Peripheral. */ + rdcPdapSim1 = 89U, /*!< SIM1 RDC Peripheral. */ + rdcPdapSim2 = 90U, /*!< SIM2 RDC Peripheral. */ + rdcPdapQspi = 91U, /*!< QSPI RDC Peripheral. */ + rdcPdapWeim = 92U, /*!< WEIM RDC Peripheral. */ + rdcPdapSdma = 93U, /*!< SDMA RDC Peripheral. */ + rdcPdapEnet1 = 94U, /*!< Eneternet1 RDC Peripheral. */ + rdcPdapEnet2 = 95U, /*!< Eneternet2 RDC Peripheral. */ + rdcPdapReserved13 = 96U, /*!< Reserved13 RDC Peripheral. */ + rdcPdapReserved14 = 97U, /*!< Reserved14 RDC Peripheral. */ + rdcPdapEcspi1 = 98U, /*!< ECSPI1 RDC Peripheral. */ + rdcPdapEcspi2 = 99U, /*!< ECSPI2 RDC Peripheral. */ + rdcPdapEcspi3 = 100U, /*!< ECSPI3 RDC Peripheral. */ + rdcPdapReserved15 = 101U, /*!< Reserved15 RDC Peripheral. */ + rdcPdapUart1 = 102U, /*!< UART1 RDC Peripheral. */ + rdcPdapReserved16 = 103U, /*!< Reserved16 RDC Peripheral. */ + rdcPdapUart3 = 104U, /*!< UART3 RDC Peripheral. */ + rdcPdapUart2 = 105U, /*!< UART2 RDC Peripheral. */ + rdcPdapSai1 = 106U, /*!< SAI1 RDC Peripheral. */ + rdcPdapSai2 = 107U, /*!< SAI2 RDC Peripheral. */ + rdcPdapSai3 = 108U, /*!< SAI3 RDC Peripheral. */ + rdcPdapReserved17 = 109U, /*!< Reserved17 RDC Peripheral. */ + rdcPdapReserved18 = 110U, /*!< Reserved18 RDC Peripheral. */ + rdcPdapSpba = 111U, /*!< SPBA RDC Peripheral. */ + rdcPdapDap = 112U, /*!< DAP RDC Peripheral. */ + rdcPdapReserved19 = 113U, /*!< Reserved19 RDC Peripheral. */ + rdcPdapReserved20 = 114U, /*!< Reserved20 RDC Peripheral. */ + rdcPdapReserved21 = 115U, /*!< Reserved21 RDC Peripheral. */ + rdcPdapCaam = 116U, /*!< CAAM RDC Peripheral. */ + rdcPdapReserved22 = 117U, /*!< Reserved22 RDC Peripheral. */ }; -/*! - * @brief RDC memory region - */ -enum _rdc_mr { - rdcMrMmdc = 0U, /* alignment 4096 */ - rdcMrMmdcLast = 7U, /* alignment 4096 */ - rdcMrQspi = 8U, /* alignment 4096 */ - rdcMrQspiLast = 15U, /* alignment 4096 */ - rdcMrWeim = 16U, /* alignment 4096 */ - rdcMrWeimLast = 23U, /* alignment 4096 */ - rdcMrPcie = 24U, /* alignment 4096 */ - rdcMrPcieLast = 31U, /* alignment 4096 */ - rdcMrOcram = 32U, /* alignment 128 */ - rdcMrOcramLast = 36U, /* alignment 128 */ - rdcMrOcramS = 37U, /* alignment 128 */ - rdcMrOcramSLast = 41U, /* alignment 128 */ - rdcMrOcramEpdc = 42U, /* alignment 128 */ - rdcMrOcramEpdcLast = 46U, /* alignment 128 */ - rdcMrOcramPxp = 47U, /* alignment 128 */ - rdcMrOcramPxpLast = 51U /* alignment 128 */ +/*! @brief RDC memory region. */ +enum _rdc_mr +{ + rdcMrMmdc = 0U, /*!< alignment 4096 */ + rdcMrMmdcLast = 7U, /*!< alignment 4096 */ + rdcMrQspi = 8U, /*!< alignment 4096 */ + rdcMrQspiLast = 15U, /*!< alignment 4096 */ + rdcMrWeim = 16U, /*!< alignment 4096 */ + rdcMrWeimLast = 23U, /*!< alignment 4096 */ + rdcMrPcie = 24U, /*!< alignment 4096 */ + rdcMrPcieLast = 31U, /*!< alignment 4096 */ + rdcMrOcram = 32U, /*!< alignment 128 */ + rdcMrOcramLast = 36U, /*!< alignment 128 */ + rdcMrOcramS = 37U, /*!< alignment 128 */ + rdcMrOcramSLast = 41U, /*!< alignment 128 */ + rdcMrOcramEpdc = 42U, /*!< alignment 128 */ + rdcMrOcramEpdcLast = 46U, /*!< alignment 128 */ + rdcMrOcramPxp = 47U, /*!< alignment 128 */ + rdcMrOcramPxpLast = 51U, /*!< alignment 128 */ }; #endif /* __RDC_DEFS_IMX7D__ */ diff --git a/platform/drivers/inc/rdc_semaphore.h b/platform/drivers/inc/rdc_semaphore.h index 7e67e6d..ec990b8 100644 --- a/platform/drivers/inc/rdc_semaphore.h +++ b/platform/drivers/inc/rdc_semaphore.h @@ -43,15 +43,13 @@ /******************************************************************************* * Definitions ******************************************************************************/ -#define RDC_SEMAPHORE_MASTER_NONE (0xFF) +#define RDC_SEMAPHORE_MASTER_NONE (0xFF) -/*! - * @brief RDC SEMAPHORE status return codes. - */ +/*! @brief RDC Semaphore status return codes. */ typedef enum _rdc_semaphore_status { - statusRdcSemaphoreSuccess = 0U, /*!< Success. */ - statusRdcSemaphoreBusy = 1U /*!< RDC semaphore has been locked by other processor. */ + statusRdcSemaphoreSuccess = 0U, /*!< Success. */ + statusRdcSemaphoreBusy = 1U, /*!< RDC semaphore has been locked by other processor. */ } rdc_semaphore_status_t; /******************************************************************************* @@ -70,7 +68,7 @@ extern "C" { /*! * @brief Lock RDC semaphore for shared peripheral access * - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) * @retval statusRdcSemaphoreSuccess Lock the semaphore successfully. * @retval statusRdcSemaphoreBusy Semaphore has been locked by other processor. */ @@ -79,21 +77,21 @@ rdc_semaphore_status_t RDC_SEMAPHORE_TryLock(uint32_t pdap); /*! * @brief Lock RDC semaphore for shared peripheral access, polling until success. * - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) */ void RDC_SEMAPHORE_Lock(uint32_t pdap); /*! * @brief Unlock RDC semaphore * - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) */ void RDC_SEMAPHORE_Unlock(uint32_t pdap); /*! * @brief Get domain ID which locks the semaphore * - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) * @return domain ID which locks the RDC semaphore */ uint32_t RDC_SEMAPHORE_GetLockDomainID(uint32_t pdap); @@ -101,7 +99,7 @@ uint32_t RDC_SEMAPHORE_GetLockDomainID(uint32_t pdap); /*! * @brief Get master index which locks the semaphore * - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) * @return master index which locks the RDC semaphore, or RDC_SEMAPHORE_MASTER_NONE * to indicate it is not locked. */ @@ -117,12 +115,12 @@ uint32_t RDC_SEMAPHORE_GetLockMaster(uint32_t pdap); /*! * @brief Reset RDC semaphore to unlocked status * - * @param pdap RDC peripheral assignment (see _rdc_pdap in rdc_defs_.h) + * @param pdap RDC peripheral assignment (see @ref _rdc_pdap in rdc_defs_.h) */ void RDC_SEMAPHORE_Reset(uint32_t pdap); /*! - * @brief Reset all RDC semaphors to unlocked status for certain RDC_SEMAPHORE instance + * @brief Reset all RDC semaphore to unlocked status for certain RDC_SEMAPHORE instance * * @param base RDC semaphore base pointer. */ diff --git a/platform/drivers/inc/sema4.h b/platform/drivers/inc/sema4.h index 55ed0e0..cd04c14 100644 --- a/platform/drivers/inc/sema4.h +++ b/platform/drivers/inc/sema4.h @@ -43,48 +43,43 @@ /******************************************************************************* * Definitions ******************************************************************************/ -#define SEMA4_PROCESSOR_NONE (0xFF) -#define SEMA4_GATE_STATUS_FLAG(gate) ((uint16_t)(1U << ((gate) ^ 7))) +#define SEMA4_PROCESSOR_NONE (0xFF) +#define SEMA4_GATE_STATUS_FLAG(gate) ((uint16_t)(1U << ((gate) ^ 7))) -/*! - * @brief Status flag - */ -enum _sema4_status_flag { - sema4StatusFlagGate0 = 1U << 7, - sema4StatusFlagGate1 = 1U << 6, - sema4StatusFlagGate2 = 1U << 5, - sema4StatusFlagGate3 = 1U << 4, - sema4StatusFlagGate4 = 1U << 3, - sema4StatusFlagGate5 = 1U << 2, - sema4StatusFlagGate6 = 1U << 1, - sema4StatusFlagGate7 = 1U << 0, - sema4StatusFlagGate8 = 1U << 15, - sema4StatusFlagGate9 = 1U << 14, - sema4StatusFlagGate10 = 1U << 13, - sema4StatusFlagGate11 = 1U << 12, - sema4StatusFlagGate12 = 1U << 11, - sema4StatusFlagGate13 = 1U << 10, - sema4StatusFlagGate14 = 1U << 9, - sema4StatusFlagGate15 = 1U << 8 +/*! @brief Status flag. */ +enum _sema4_status_flag +{ + sema4StatusFlagGate0 = 1U << 7, /*!< Sema4 Gate 0 flag. */ + sema4StatusFlagGate1 = 1U << 6, /*!< Sema4 Gate 1 flag. */ + sema4StatusFlagGate2 = 1U << 5, /*!< Sema4 Gate 2 flag. */ + sema4StatusFlagGate3 = 1U << 4, /*!< Sema4 Gate 3 flag. */ + sema4StatusFlagGate4 = 1U << 3, /*!< Sema4 Gate 4 flag. */ + sema4StatusFlagGate5 = 1U << 2, /*!< Sema4 Gate 5 flag. */ + sema4StatusFlagGate6 = 1U << 1, /*!< Sema4 Gate 6 flag. */ + sema4StatusFlagGate7 = 1U << 0, /*!< Sema4 Gate 7 flag. */ + sema4StatusFlagGate8 = 1U << 15, /*!< Sema4 Gate 8 flag. */ + sema4StatusFlagGate9 = 1U << 14, /*!< Sema4 Gate 9 flag. */ + sema4StatusFlagGate10 = 1U << 13, /*!< Sema4 Gate 10 flag. */ + sema4StatusFlagGate11 = 1U << 12, /*!< Sema4 Gate 11 flag. */ + sema4StatusFlagGate12 = 1U << 11, /*!< Sema4 Gate 12 flag. */ + sema4StatusFlagGate13 = 1U << 10, /*!< Sema4 Gate 13 flag. */ + sema4StatusFlagGate14 = 1U << 9, /*!< Sema4 Gate 14 flag. */ + sema4StatusFlagGate15 = 1U << 8, /*!< Sema4 Gate 15 flag. */ }; -/*! - * @brief SEMA4 reset finite state machine. - */ +/*! @brief SEMA4 reset finite state machine. */ enum _sema4_reset_state { - sema4ResetIdle = 0U, /*!< Idle, waiting for the first data pattern write. */ - sema4ResetMid = 1U, /*!< Waiting for the second data pattern write. */ - sema4ResetFinished = 2U, /*!< Reset completed. Software could not get this state. */ + sema4ResetIdle = 0U, /*!< Idle, waiting for the first data pattern write. */ + sema4ResetMid = 1U, /*!< Waiting for the second data pattern write. */ + sema4ResetFinished = 2U, /*!< Reset completed. Software can't get this state. */ }; -/*! - * @brief SEMA4 status return codes. - */ +/*! @brief SEMA4 status return codes. */ typedef enum _sema4_status { - statusSema4Success = 0U, /*!< Success. */ - statusSema4Busy = 1U /*!< SEMA4 gate has been locked by other processor. */ + statusSema4Success = 0U, /*!< Success. */ + statusSema4Busy = 1U, /*!< SEMA4 gate has been locked by other processor. */ } sema4_status_t; /******************************************************************************* @@ -101,10 +96,10 @@ extern "C" { */ /*! - * @brief Lock SEMA4 gate for exclusive access between multicore + * @brief Lock SEMA4 gate for exclusive access between multicore. * - * @param base SEMA4 base address - * @param gateIndex SEMA4 gate index + * @param base SEMA4 base pointer. + * @param gateIndex SEMA4 gate index. * @retval statusSema4Success Lock the gate successfully. * @retval statusSema4Busy SEMA4 gate has been locked by other processor. */ @@ -113,24 +108,24 @@ sema4_status_t SEMA4_TryLock(SEMA4_Type *base, uint32_t gateIndex); /*! * @brief Lock SEMA4 gate for exclusive access between multicore, polling until success. * - * @param base SEMA4 base address - * @param gateIndex SEMA4 gate index + * @param base SEMA4 base pointer. + * @param gateIndex SEMA4 gate index. */ void SEMA4_Lock(SEMA4_Type *base, uint32_t gateIndex); /*! - * @brief Unlock SEMA4 gate + * @brief Unlock SEMA4 gate. * * @param base SEMA4 base pointer. - * @param gateIndex SEMA4 gate index + * @param gateIndex SEMA4 gate index. */ void SEMA4_Unlock(SEMA4_Type *base, uint32_t gateIndex); /*! - * @brief Get processor number which locks the SEMA4 gate + * @brief Get processor number which locks the SEMA4 gate. * * @param base SEMA4 base pointer. - * @param gateIndex SEMA4 gate index + * @param gateIndex SEMA4 gate index. * @return processor number which locks the SEMA4 gate, or SEMA4_PROCESSOR_NONE * to indicate the gate is not locked. */ @@ -144,15 +139,15 @@ uint32_t SEMA4_GetLockProcessor(SEMA4_Type *base, uint32_t gateIndex); */ /*! - * @brief Reset SEMA4 gate to unlocked status + * @brief Reset SEMA4 gate to unlocked status. * * @param base SEMA4 base pointer. - * @param gateIndex SEMA4 gate index + * @param gateIndex SEMA4 gate index. */ void SEMA4_ResetGate(SEMA4_Type *base, uint32_t gateIndex); /*! - * @brief Reset all SEMA4 gates to unlocked status + * @brief Reset all SEMA4 gates to unlocked status. * * @param base SEMA4 base pointer. */ @@ -160,9 +155,8 @@ void SEMA4_ResetAllGates(SEMA4_Type *base); /*! * @brief Get bus master number which performing the gate reset function. - * - * This function gets the bus master number which performing the gate reset - * function. + * This function gets the bus master number which performing the + * gate reset function. * * @param base SEMA4 base pointer. * @return Bus master number. @@ -174,11 +168,11 @@ static inline uint8_t SEMA4_GetGateResetBus(SEMA4_Type *base) /*! * @brief Get sema4 gate reset state. - * - * This function gets current state of the sema4 reset gate finite state machine. + * This function gets current state of the sema4 reset gate finite + * state machine. * * @param base SEMA4 base pointer. - * @return Current state, see _sema4_reset_state. + * @return Current state (see @ref _sema4_reset_state). */ static inline uint8_t SEMA4_GetGateResetState(SEMA4_Type *base) { @@ -186,15 +180,15 @@ static inline uint8_t SEMA4_GetGateResetState(SEMA4_Type *base) } /*! - * @brief Reset SEMA4 IRQ notification + * @brief Reset SEMA4 IRQ notification. * * @param base SEMA4 base pointer. - * @param gateIndex SEMA4 gate index + * @param gateIndex SEMA4 gate index. */ void SEMA4_ResetNotification(SEMA4_Type *base, uint32_t gateIndex); /*! - * @brief Reset all IRQ notifications + * @brief Reset all IRQ notifications. * * @param base SEMA4 base pointer. */ @@ -202,9 +196,8 @@ void SEMA4_ResetAllNotifications(SEMA4_Type *base); /*! * @brief Get bus master number which performing the notification reset function. - * - * This function gets the bus master number which performing the notification reset - * function. + * This function gets the bus master number which performing the notification + * reset function. * * @param base SEMA4 base pointer. * @return Bus master number. @@ -220,7 +213,7 @@ static inline uint8_t SEMA4_GetNotificationResetBus(SEMA4_Type *base) * This function gets current state of the sema4 reset notification finite state machine. * * @param base SEMA4 base pointer. - * @return Current state, see _sema4_reset_state. + * @return Current state (See @ref _sema4_reset_state). */ static inline uint8_t SEMA4_GetNotificationResetState(SEMA4_Type *base) { @@ -230,7 +223,7 @@ static inline uint8_t SEMA4_GetNotificationResetState(SEMA4_Type *base) /*@}*/ /*! - * @name SEMA4 Interupt and Status Control + * @name SEMA4 Interrupt and Status Control * @{ */ @@ -238,7 +231,7 @@ static inline uint8_t SEMA4_GetNotificationResetState(SEMA4_Type *base) * @brief Get SEMA4 notification status. * * @param base SEMA4 base pointer. - * @param flags SEMA4 gate status mask (see _sema4_status_flag) + * @param flags SEMA4 gate status mask (See @ref _sema4_status_flag). * @return SEMA4 notification status bits. If bit value is set, the corresponding * gate's notification is available. */ @@ -251,9 +244,10 @@ static inline uint16_t SEMA4_GetStatusFlag(SEMA4_Type * base, uint16_t flags) * @brief Enable or disable SEMA4 IRQ notification. * * @param base SEMA4 base pointer. - * @param intMask SEMA4 gate status mask (see _sema4_status_flag) - * @param enable Interrupt enable (true: enable, false: disable), only those gates - * whose intMask is set will be affected. + * @param intMask SEMA4 gate status mask (see @ref _sema4_status_flag). + * @param enable Enable/Disable Sema4 interrupt, only those gates whose intMask is set are affected. + * - true: Enable Sema4 interrupt. + * - false: Disable Sema4 interrupt. */ void SEMA4_SetIntCmd(SEMA4_Type * base, uint16_t intMask, bool enable); @@ -261,7 +255,7 @@ void SEMA4_SetIntCmd(SEMA4_Type * base, uint16_t intMask, bool enable); * @brief check whether SEMA4 IRQ notification enabled. * * @param base SEMA4 base pointer. - * @param flags SEMA4 gate status mask (see _sema4_status_flag) + * @param flags SEMA4 gate status mask (see @ref _sema4_status_flag). * @return SEMA4 notification interrupt enable status bits. If bit value is set, * the corresponding gate's notification is enabled */ diff --git a/platform/drivers/inc/uart_imx.h b/platform/drivers/inc/uart_imx.h index eae3f07..bb204ab 100644 --- a/platform/drivers/inc/uart_imx.h +++ b/platform/drivers/inc/uart_imx.h @@ -48,187 +48,162 @@ /*! @brief Uart module initialize structure. */ typedef struct _uart_init_config { - uint32_t clockRate; /*!< Current UART module clock freq. */ - uint32_t baudRate; /*!< Desired UART baud rate. */ - uint32_t wordLength; /*!< Data bits in one frame. */ - uint32_t stopBitNum; /*!< Number of stop bits in one frame. */ - uint32_t parity; /*!< Parity error check mode of this module. */ - uint32_t direction; /*!< Data transfer direction of this module. */ + uint32_t clockRate; /*!< Current UART module clock freq. */ + uint32_t baudRate; /*!< Desired UART baud rate. */ + uint32_t wordLength; /*!< Data bits in one frame. */ + uint32_t stopBitNum; /*!< Number of stop bits in one frame. */ + uint32_t parity; /*!< Parity error check mode of this module. */ + uint32_t direction; /*!< Data transfer direction of this module. */ } uart_init_config_t; -/*! - * @brief UART number of data bits in a character. - */ +/*! @brief UART number of data bits in a character. */ enum _uart_word_length { - uartWordLength7Bits = 0x0, - uartWordLength8Bits = UART_UCR2_WS_MASK, + uartWordLength7Bits = 0x0, /*!< One character has 7 bits. */ + uartWordLength8Bits = UART_UCR2_WS_MASK, /*!< One character has 8 bits. */ }; -/*! - * @brief UART number of stop bits. - */ +/*! @brief UART number of stop bits. */ enum _uart_stop_bit_num { - uartStopBitNumOne = 0x0, - uartStopBitNumTwo = UART_UCR2_STPB_MASK, + uartStopBitNumOne = 0x0, /*!< One bit Stop. */ + uartStopBitNumTwo = UART_UCR2_STPB_MASK, /*!< Two bits Stop. */ }; -/*! - * @brief UART parity mode. - */ +/*! @brief UART parity mode. */ enum _uart_partity_mode { - uartParityDisable = 0x0, - uartParityEven = UART_UCR2_PREN_MASK, - uartParityOdd = UART_UCR2_PREN_MASK | UART_UCR2_PROE_MASK + uartParityDisable = 0x0, /*!< Parity error check disabled. */ + uartParityEven = UART_UCR2_PREN_MASK, /*!< Even error check is selected. */ + uartParityOdd = UART_UCR2_PREN_MASK | UART_UCR2_PROE_MASK, /*!< Odd error check is selected. */ }; -/*! - * @brief Data transfer direction. - */ +/*! @brief Data transfer direction. */ enum _uart_direction_mode { - uartDirectionDisable = 0x0, - uartDirectionTx = UART_UCR2_TXEN_MASK, - uartDirectionRx = UART_UCR2_RXEN_MASK, - uartDirectionTxRx = UART_UCR2_TXEN_MASK | UART_UCR2_RXEN_MASK + uartDirectionDisable = 0x0, /*!< Both Tx and Rx are disabled. */ + uartDirectionTx = UART_UCR2_TXEN_MASK, /*!< Tx is enabled. */ + uartDirectionRx = UART_UCR2_RXEN_MASK, /*!< Rx is enabled. */ + uartDirectionTxRx = UART_UCR2_TXEN_MASK | UART_UCR2_RXEN_MASK, /*!< Both Tx and Rx are enabled. */ }; -/*! - * @brief This enumeration contains the settings for all of the UART - * interrupt configurations. - */ +/*! @brief This enumeration contains the settings for all of the UART interrupt configurations. */ enum _uart_interrupt { - uartIntAutoBaud = 0x0080000F, - uartIntTxReady = 0x0080000D, - uartIntIdle = 0x0080000C, - uartIntRxReady = 0x00800009, - uartIntTxEmpty = 0x00800006, - uartIntRtsDelta = 0x00800005, - uartIntEscape = 0x0084000F, - uartIntRts = 0x00840004, - uartIntAgingTimer = 0x00840003, - uartIntDtr = 0x0088000D, - uartIntParityError = 0x0088000C, - uartIntFrameError = 0x0088000B, - uartIntDcd = 0x00880009, - uartIntRi = 0x00880008, - uartIntRxDs = 0x00880006, - uartInttAirWake = 0x00880005, - uartIntAwake = 0x00880004, - uartIntDtrDelta = 0x00880003, - uartIntAutoBaudCnt = 0x00880000, - uartIntIr = 0x008C0008, - uartIntWake = 0x008C0007, - uartIntTxComplete = 0x008C0003, - uartIntBreakDetect = 0x008C0002, - uartIntRxOverrun = 0x008C0001, - uartIntRxDataReady = 0x008C0000, - uartIntRs485SlaveAddrMatch = 0x00B80003 + uartIntAutoBaud = 0x0080000F, /*!< Automatic baud rate detection Interrupt Enable. */ + uartIntTxReady = 0x0080000D, /*!< transmitter ready Interrupt Enable. */ + uartIntIdle = 0x0080000C, /*!< IDLE Interrupt Enable. */ + uartIntRxReady = 0x00800009, /*!< Receiver Ready Interrupt Enable. */ + uartIntTxEmpty = 0x00800006, /*!< Transmitter Empty Interrupt Enable. */ + uartIntRtsDelta = 0x00800005, /*!< RTS Delta Interrupt Enable. */ + uartIntEscape = 0x0084000F, /*!< Escape Sequence Interrupt Enable. */ + uartIntRts = 0x00840004, /*!< Request to Send Interrupt Enable. */ + uartIntAgingTimer = 0x00840003, /*!< Aging Timer Interrupt Enable. */ + uartIntDtr = 0x0088000D, /*!< Data Terminal Ready Interrupt Enable. */ + uartIntParityError = 0x0088000C, /*!< Parity Error Interrupt Enable. */ + uartIntFrameError = 0x0088000B, /*!< Frame Error Interrupt Enable. */ + uartIntDcd = 0x00880009, /*!< Data Carrier Detect Interrupt Enable. */ + uartIntRi = 0x00880008, /*!< Ring Indicator Interrupt Enable. */ + uartIntRxDs = 0x00880006, /*!< Receive Status Interrupt Enable. */ + uartInttAirWake = 0x00880005, /*!< Asynchronous IR WAKE Interrupt Enable. */ + uartIntAwake = 0x00880004, /*!< Asynchronous WAKE Interrupt Enable. */ + uartIntDtrDelta = 0x00880003, /*!< Data Terminal Ready Delta Interrupt Enable. */ + uartIntAutoBaudCnt = 0x00880000, /*!< Autobaud Counter Interrupt Enable. */ + uartIntIr = 0x008C0008, /*!< Serial Infrared Interrupt Enable. */ + uartIntWake = 0x008C0007, /*!< WAKE Interrupt Enable. */ + uartIntTxComplete = 0x008C0003, /*!< TransmitComplete Interrupt Enable. */ + uartIntBreakDetect = 0x008C0002, /*!< BREAK Condition Detected Interrupt Enable. */ + uartIntRxOverrun = 0x008C0001, /*!< Receiver Overrun Interrupt Enable. */ + uartIntRxDataReady = 0x008C0000, /*!< Receive Data Ready Interrupt Enable. */ + uartIntRs485SlaveAddrMatch = 0x00B80003, /*!< RS-485 Slave Address Detected Interrupt Enable. */ }; -/*! - * @brief Flag for UART interrupt/DMA status check or polling status. - */ +/*! @brief Flag for UART interrupt/DMA status check or polling status. */ enum _uart_status_flag { - uartStatusRxCharReady = 0x0000000F, - uartStatusRxError = 0x0000000E, - uartStatusRxOverrunError = 0x0000000D, - uartStatusRxFrameError = 0x0000000C, - uartStatusRxBreakDetect = 0x0000000B, - uartStatusRxParityError = 0x0000000A, - uartStatusParityError = 0x0094000F, - uartStatusRtsStatus = 0x0094000E, - uartStatusTxReady = 0x0094000D, - uartStatusRtsDelta = 0x0094000C, - uartStatusEscape = 0x0094000B, - uartStatusFrameError = 0x0094000A, - uartStatusRxReady = 0x00940009, - uartStatusAgingTimer = 0x00940008, - uartStatusDtrDelta = 0x00940007, - uartStatusRxDs = 0x00940006, - uartStatustAirWake = 0x00940005, - uartStatusAwake = 0x00940004, - uartStatusRs485SlaveAddrMatch = 0x00940003, - uartStatusAutoBaud = 0x0098000F, - uartStatusTxEmpty = 0x0098000E, - uartStatusDtr = 0x0098000D, - uartStatusIdle = 0x0098000C, - uartStatusAutoBaudCntStop = 0x0098000B, - uartStatusRiDelta = 0x0098000A, - uartStatusRi = 0x00980009, - uartStatusIr = 0x00980008, - uartStatusWake = 0x00980007, - uartStatusDcdDelta = 0x00980006, - uartStatusDcd = 0x00980005, - uartStatusRts = 0x00980004, - uartStatusTxComplete = 0x00980003, - uartStatusBreakDetect = 0x00980002, - uartStatusRxOverrun = 0x00980001, - uartStatusRxDataReady = 0x00980000 + uartStatusRxCharReady = 0x0000000F, /*!< Rx Character Ready Flag. */ + uartStatusRxError = 0x0000000E, /*!< Rx Error Detect Flag. */ + uartStatusRxOverrunError = 0x0000000D, /*!< Rx Overrun Flag. */ + uartStatusRxFrameError = 0x0000000C, /*!< Rx Frame Error Flag. */ + uartStatusRxBreakDetect = 0x0000000B, /*!< Rx Break Detect Flag. */ + uartStatusRxParityError = 0x0000000A, /*!< Rx Parity Error Flag. */ + uartStatusParityError = 0x0094000F, /*!< Parity Error Interrupt Flag. */ + uartStatusRtsStatus = 0x0094000E, /*!< RTS_B Pin Status Flag. */ + uartStatusTxReady = 0x0094000D, /*!< Transmitter Ready Interrupt/DMA Flag. */ + uartStatusRtsDelta = 0x0094000C, /*!< RTS Delta Flag. */ + uartStatusEscape = 0x0094000B, /*!< Escape Sequence Interrupt Flag. */ + uartStatusFrameError = 0x0094000A, /*!< Frame Error Interrupt Flag. */ + uartStatusRxReady = 0x00940009, /*!< Receiver Ready Interrupt/DMA Flag. */ + uartStatusAgingTimer = 0x00940008, /*!< Ageing Timer Interrupt Flag. */ + uartStatusDtrDelta = 0x00940007, /*!< DTR Delta Flag. */ + uartStatusRxDs = 0x00940006, /*!< Receiver IDLE Interrupt Flag. */ + uartStatustAirWake = 0x00940005, /*!< Asynchronous IR WAKE Interrupt Flag. */ + uartStatusAwake = 0x00940004, /*!< Asynchronous WAKE Interrupt Flag. */ + uartStatusRs485SlaveAddrMatch = 0x00940003, /*!< RS-485 Slave Address Detected Interrupt Flag. */ + uartStatusAutoBaud = 0x0098000F, /*!< Automatic Baud Rate Detect Complete Flag. */ + uartStatusTxEmpty = 0x0098000E, /*!< Transmit Buffer FIFO Empty. */ + uartStatusDtr = 0x0098000D, /*!< DTR edge triggered interrupt flag. */ + uartStatusIdle = 0x0098000C, /*!< Idle Condition Flag. */ + uartStatusAutoBaudCntStop = 0x0098000B, /*!< Autobaud Counter Stopped Flag. */ + uartStatusRiDelta = 0x0098000A, /*!< Ring Indicator Delta Flag. */ + uartStatusRi = 0x00980009, /*!< Ring Indicator Input Flag. */ + uartStatusIr = 0x00980008, /*!< Serial Infrared Interrupt Flag. */ + uartStatusWake = 0x00980007, /*!< Wake Flag. */ + uartStatusDcdDelta = 0x00980006, /*!< Data Carrier Detect Delta Flag. */ + uartStatusDcd = 0x00980005, /*!< Data Carrier Detect Input Flag. */ + uartStatusRts = 0x00980004, /*!< RTS Edge Triggered Interrupt Flag. */ + uartStatusTxComplete = 0x00980003, /*!< Transmitter Complete Flag. */ + uartStatusBreakDetect = 0x00980002, /*!< BREAK Condition Detected Flag. */ + uartStatusRxOverrun = 0x00980001, /*!< Overrun Error Flag. */ + uartStatusRxDataReady = 0x00980000, /*!< Receive Data Ready Flag. */ }; -/*! - * @brief The events will generate DMA Request. - */ +/*! @brief The events generate the DMA Request. */ enum _uart_dma { - uartDmaRxReady = 0x00800008, - uartDmaTxReady = 0x00800003, - uartDmaAgingTimer = 0x00800002, - uartDmaIdle = 0x008C0006 + uartDmaRxReady = 0x00800008, /*!< Receive Ready DMA Enable. */ + uartDmaTxReady = 0x00800003, /*!< Transmitter Ready DMA Enable. */ + uartDmaAgingTimer = 0x00800002, /*!< Aging DMA Timer Enable. */ + uartDmaIdle = 0x008C0006, /*!< DMA IDLE Condition Detected Interrupt Enable. */ }; -/*! - * @brief RTS pin interrupt trigger edge. - */ +/*! @brief RTS pin interrupt trigger edge. */ enum _uart_rts_int_trigger_edge { - uartRtsTriggerEdgeRising = UART_UCR2_RTEC(0), - uartRtsTriggerEdgeFalling = UART_UCR2_RTEC(1), - uartRtsTriggerEdgeBoth = UART_UCR2_RTEC(2) + uartRtsTriggerEdgeRising = UART_UCR2_RTEC(0), /*!< RTS pin interrupt triggered on rising edge. */ + uartRtsTriggerEdgeFalling = UART_UCR2_RTEC(1), /*!< RTS pin interrupt triggered on falling edge. */ + uartRtsTriggerEdgeBoth = UART_UCR2_RTEC(2), /*!< RTS pin interrupt triggered on both edge. */ }; -/*! - * @brief UART module modem role selections. - */ +/*! @brief UART module modem role selections. */ enum _uart_modem_mode { - uartModemModeDce = 0, - uartModemModeDte = UART_UFCR_DCEDTE_MASK + uartModemModeDce = 0, /*!< UART module works as DCE. */ + uartModemModeDte = UART_UFCR_DCEDTE_MASK, /*!< UART module works as DTE. */ }; -/*! - * @brief DTR pin interrupt trigger edge. - */ +/*! @brief DTR pin interrupt trigger edge. */ enum _uart_dtr_int_trigger_edge { - uartDtrTriggerEdgeRising = UART_UCR3_DPEC(0), - uartDtrTriggerEdgeFalling = UART_UCR3_DPEC(1), - uartDtrTriggerEdgeBoth = UART_UCR3_DPEC(2) + uartDtrTriggerEdgeRising = UART_UCR3_DPEC(0), /*!< DTR pin interrupt triggered on rising edge. */ + uartDtrTriggerEdgeFalling = UART_UCR3_DPEC(1), /*!< DTR pin interrupt triggered on falling edge. */ + uartDtrTriggerEdgeBoth = UART_UCR3_DPEC(2), /*!< DTR pin interrupt triggered on both edge. */ }; -/*! - * @brief IrDA vote clock selections. - */ +/*! @brief IrDA vote clock selections. */ enum _uart_irda_vote_clock { - uartIrdaVoteClockSampling = 0x0, - uartIrdaVoteClockReference = UART_UCR4_IRSC_MASK + uartIrdaVoteClockSampling = 0x0, /*!< The vote logic uses the sampling clock (16x baud rate) for normal operation. */ + uartIrdaVoteClockReference = UART_UCR4_IRSC_MASK, /*!< The vote logic uses the UART reference clock. */ }; -/*! - * @brief UART module Rx Idle condition selections. - */ +/*! @brief UART module Rx Idle condition selections. */ enum _uart_rx_idle_condition { - uartRxIdleMoreThan4Frames = UART_UCR1_ICD(0), - uartRxIdleMoreThan8Frames = UART_UCR1_ICD(1), - uartRxIdleMoreThan16Frames = UART_UCR1_ICD(2), - uartRxIdleMoreThan32Frames = UART_UCR1_ICD(3), + uartRxIdleMoreThan4Frames = UART_UCR1_ICD(0), /*!< Idle for more than 4 frames. */ + uartRxIdleMoreThan8Frames = UART_UCR1_ICD(1), /*!< Idle for more than 8 frames. */ + uartRxIdleMoreThan16Frames = UART_UCR1_ICD(2), /*!< Idle for more than 16 frames. */ + uartRxIdleMoreThan32Frames = UART_UCR1_ICD(3), /*!< Idle for more than 32 frames. */ }; /******************************************************************************* @@ -248,12 +223,12 @@ extern "C" { * @brief Initialize UART module with given initialize structure. * * @param base UART base pointer. - * @param initConfig UART initialize structure(see uart_init_config_t above). + * @param initConfig UART initialize structure (see @ref uart_init_config_t structure above). */ -void UART_Init(UART_Type* base, uart_init_config_t* initConfig); +void UART_Init(UART_Type* base, const uart_init_config_t* initConfig); /*! - * @brief This function reset Uart module register content to its default value. + * @brief This function reset UART module register content to its default value. * * @param base UART base pointer. */ @@ -292,26 +267,28 @@ void UART_SetBaudRate(UART_Type* base, uint32_t clockRate, uint32_t baudRate); * @brief This function is used to set the transform direction of UART Module. * * @param base UART base pointer. - * @param direction UART transfer direction(see _uart_direction_mode enumeration above). + * @param direction UART transfer direction (see @ref _uart_direction_mode enumeration). */ static inline void UART_SetDirMode(UART_Type* base, uint32_t direction) { assert((direction & uartDirectionTx) || (direction & uartDirectionRx)); + UART_UCR2_REG(base) = (UART_UCR2_REG(base) & ~(UART_UCR2_RXEN_MASK | UART_UCR2_TXEN_MASK)) | direction; } /*! * @brief This function is used to set the number of frames RXD is allowed to * be idle before an idle condition is reported. The available condition - * can be select from _uart_idle_condition enumeration. + * can be select from @ref _uart_idle_condition enumeration. * * @param base UART base pointer. * @param idleCondition The condition that an idle condition is reported - * (see _uart_idle_condition enumeration above). + * (see @ref _uart_idle_condition enumeration). */ static inline void UART_SetRxIdleCondition(UART_Type* base, uint32_t idleCondition) { assert(idleCondition <= uartRxIdleMoreThan32Frames); + UART_UCR1_REG(base) = (UART_UCR1_REG(base) & ~UART_UCR1_ICD_MASK) | idleCondition; } @@ -320,7 +297,7 @@ static inline void UART_SetRxIdleCondition(UART_Type* base, uint32_t idleConditi * of Tx and Rx can be set separately. * * @param base UART base pointer. - * @param direction UART transfer direction(see _uart_direction_mode enumeration above). + * @param direction UART transfer direction (see @ref _uart_direction_mode enumeration). * @param invert Set true to invert the polarity of UART signal. */ void UART_SetInvertCmd(UART_Type* base, uint32_t direction, bool invert); @@ -336,7 +313,9 @@ void UART_SetInvertCmd(UART_Type* base, uint32_t direction, bool invert); * @brief This function is used to set UART enable condition in the DOZE state. * * @param base UART base pointer. - * @param enable Set true to enable UART module in doze mode. + * @param enable Enable/Disable UART module in doze mode. + * - true: Enable UART module in doze mode. + * - false: Disable UART module in doze mode. */ void UART_SetDozeMode(UART_Type* base, bool enable); @@ -344,7 +323,9 @@ void UART_SetDozeMode(UART_Type* base, bool enable); * @brief This function is used to set UART enable condition of the UART low power feature. * * @param base UART base pointer. - * @param enable Set true to enable UART module low power feature. + * @param enable Enable/Disable UART module low power feature. + * - true: Enable UART module low power feature. + * - false: Disable UART module low power feature. */ void UART_SetLowPowerMode(UART_Type* base, bool enable); @@ -360,7 +341,7 @@ void UART_SetLowPowerMode(UART_Type* base, bool enable); * A independent 9 Bits RS-485 send data function is provided. * * @param base UART base pointer. - * @param data Data to be set through Uart module. + * @param data Data to be set through UART module. */ static inline void UART_Putchar(UART_Type* base, uint8_t data) { @@ -389,18 +370,20 @@ static inline uint8_t UART_Getchar(UART_Type* base) /*! * @brief This function is used to set the enable condition of * specific UART interrupt source. The available interrupt - * source can be select from uart_interrupt enumeration. + * source can be select from @ref _uart_interrupt enumeration. * * @param base UART base pointer. * @param intSource Available interrupt source for this module. - * @param enable Set true to enable corresponding interrupt. + * @param enable Enable/Disable corresponding interrupt. + * - true: Enable corresponding interrupt. + * - false: Disable corresponding interrupt. */ void UART_SetIntCmd(UART_Type* base, uint32_t intSource, bool enable); /*! * @brief This function is used to get the current status of specific * UART status flag(including interrupt flag). The available - * status flag can be select from _uart_status_flag enumeration. + * status flag can be select from @ref _uart_status_flag enumeration. * * @param base UART base pointer. * @param flag Status flag to check. @@ -411,7 +394,7 @@ bool UART_GetStatusFlag(UART_Type* base, uint32_t flag); /*! * @brief This function is used to get the current status * of specific UART status flag. The available status - * flag can be select from _uart_status_flag enumeration. + * flag can be select from @ref _uart_status_flag enumeration. * * @param base UART base pointer. * @param flag Status flag to clear. @@ -428,11 +411,13 @@ void UART_ClearStatusFlag(UART_Type* base, uint32_t flag); /*! * @brief This function is used to set the enable condition of * specific UART DMA source. The available DMA source - * can be select from _uart_dma enumeration. + * can be select from @ref _uart_dma enumeration. * * @param base UART base pointer. * @param dmaSource The Event that can generate DMA request. - * @param enable Set true to enable corresponding DMA source. + * @param enable Enable/Disable corresponding DMA source. + * - true: Enable corresponding DMA source. + * - false: Disable corresponding DMA source. */ void UART_SetDmaCmd(UART_Type* base, uint32_t dmaSource, bool enable); @@ -483,14 +468,16 @@ static inline void UART_SetRxFifoWatermark(UART_Type* base, uint8_t watermark) * Hardware flow control. * * @param base UART base pointer. - * @param enable Set true to enable RTS hardware flow control. + * @param enable Enable/Disbale RTS hardware flow control. + * - true: Enable RTS hardware flow control. + * - false: Disbale RTS hardware flow control. */ void UART_SetRtsFlowCtrlCmd(UART_Type* base, bool enable); /*! * @brief This function is used to set the RTS interrupt trigger edge. * The available trigger edge can be select from - * _uart_rts_trigger_edge enumeration. + * @ref _uart_rts_trigger_edge enumeration. * * @param base UART base pointer. * @param triggerEdge Available RTS pin interrupt trigger edge. @@ -507,12 +494,14 @@ static inline void UART_SetRtsIntTriggerEdge(UART_Type* base, uint32_t triggerEd /*! * @brief This function is used to set the enable condition of CTS - * auto control. if CTS control is enabled, the CTS_B pin will - * be controlled by the receiver, otherwise the CTS_B pin will + * auto control. if CTS control is enabled, the CTS_B pin + * is controlled by the receiver, otherwise the CTS_B pin is * controlled by UART_CTSPinCtrl function. * * @param base UART base pointer. - * @param enable Set true to enable CTS auto control. + * @param enable Enable/Disable CTS auto control. + * - true: Enable CTS auto control. + * - false: Disable CTS auto control. */ void UART_SetCtsFlowCtrlCmd(UART_Type* base, bool enable); @@ -523,14 +512,15 @@ void UART_SetCtsFlowCtrlCmd(UART_Type* base, bool enable); * The CTS_B pin is high(inactive) * * @param base UART base pointer. - * @param active Set true: the CTS_B pin active; - * Set false: the CTS_B pin inactive. + * @param active The CTS_B pin state to set. + * - true: the CTS_B pin active; + * - false: the CTS_B pin inactive. */ void UART_SetCtsPinLevel(UART_Type* base, bool active); /*! * @brief This function is used to set the auto CTS_B pin control - * trigger level. The CTS_B pin will be de-asserted when + * trigger level. The CTS_B pin is de-asserted when * Rx FIFO reach CTS trigger level. * * @param base UART base pointer. @@ -547,23 +537,24 @@ static inline void UART_SetCtsTriggerLevel(UART_Type* base, uint8_t triggerLevel * in RS-232 communication. * * @param base UART base pointer. - * @param mode The role(DTE/DCE) of UART module(see _uart_modem_mode enumeration above). + * @param mode The role(DTE/DCE) of UART module (see @ref _uart_modem_mode enumeration). */ void UART_SetModemMode(UART_Type* base, uint32_t mode); /*! * @brief This function is used to set the edge of DTR_B (DCE) or - * DSR_B (DTE) on which an interrupt will be generated. + * DSR_B (DTE) on which an interrupt is generated. * * @param base UART base pointer. - * @param triggerEdge The trigger edge on which an interrupt will be generated. - * (see _uart_dtr_trigger_edge enumeration above) + * @param triggerEdge The trigger edge on which an interrupt is generated + * (see @ref _uart_dtr_trigger_edge enumeration above). */ static inline void UART_SetDtrIntTriggerEdge(UART_Type* base, uint32_t triggerEdge) { assert((triggerEdge == uartDtrTriggerEdgeRising) || \ (triggerEdge == uartDtrTriggerEdgeFalling) || \ (triggerEdge == uartDtrTriggerEdgeBoth)); + UART_UCR3_REG(base) = (UART_UCR3_REG(base) & ~UART_UCR3_DPEC_MASK) | triggerEdge; } @@ -572,8 +563,9 @@ static inline void UART_SetDtrIntTriggerEdge(UART_Type* base, uint32_t triggerEd * or DTR pin(for DTE mode) for the modem interface. * * @param base UART base pointer. - * @param active Set true: DSR/DTR pin is logic one. - * Set false: DSR/DTR pin is logic zero. + * @param active The state of DSR pin. + * - true: DSR/DTR pin is logic one. + * - false: DSR/DTR pin is logic zero. */ void UART_SetDtrPinLevel(UART_Type* base, bool active); @@ -582,8 +574,9 @@ void UART_SetDtrPinLevel(UART_Type* base, bool active); * DCD pin. THIS FUNCTION IS FOR DCE MODE ONLY. * * @param base UART base pointer. - * @param active Set true: DCD_B pin is logic one (DCE mode) - * Set false: DCD_B pin is logic zero (DCE mode) + * @param active The state of DCD pin. + * - true: DCD_B pin is logic one (DCE mode) + * - false: DCD_B pin is logic zero (DCE mode) */ void UART_SetDcdPinLevel(UART_Type* base, bool active); @@ -592,15 +585,16 @@ void UART_SetDcdPinLevel(UART_Type* base, bool active); * RI pin. THIS FUNCTION IS FOR DCE MODE ONLY. * * @param base UART base pointer. - * @param active Set true: RI_B pin is logic one (DCE mode) - * Set false: RI_B pin is logic zero (DCE mode) + * @param active The state of RI pin. + * - true: RI_B pin is logic one (DCE mode) + * - false: RI_B pin is logic zero (DCE mode) */ void UART_SetRiPinLevel(UART_Type* base, bool active); /*@}*/ /*! - * @name Multi-processor and RS-485 functions. + * @name Multiprocessor and RS-485 functions. * @{ */ @@ -609,7 +603,7 @@ void UART_SetRiPinLevel(UART_Type* base, bool active); * RS-485 Multidrop mode. * * @param base UART base pointer. - * @param data Data(9 bits) to be set through uart module. + * @param data Data(9 bits) to be set through UART module. */ void UAER_Putchar9(UART_Type* base, uint16_t data); @@ -627,7 +621,9 @@ uint16_t UAER_Getchar9(UART_Type* base); * 9-Bits data or Multidrop mode. * * @param base UART base pointer. - * @param enable Set true to enable Multidrop mode. + * @param enable Enable/Disable Multidrop mode. + * - true: Enable Multidrop mode. + * - false: Disable Multidrop mode. */ void UART_SetMultidropMode(UART_Type* base, bool enable); @@ -636,13 +632,15 @@ void UART_SetMultidropMode(UART_Type* base, bool enable); * Automatic Address Detect Mode. * * @param base UART base pointer. - * @param enable Set true to enable Automatic Address Detect mode. + * @param enable Enable/Disable Automatic Address Detect mode. + * - true: Enable Automatic Address Detect mode. + * - false: Disable Automatic Address Detect mode. */ void UART_SetSlaveAddressDetectCmd(UART_Type* base, bool enable); /*! * @brief This function is used to set the slave address char - * that the receiver will try to detect. + * that the receiver tries to detect. * * @param base UART base pointer. * @param slaveAddress The slave to detect. @@ -665,14 +663,16 @@ static inline void UART_SetSlaveAddress(UART_Type* base, uint8_t slaveAddress) * IrDA Mode. * * @param base UART base pointer. - * @param enable Set true to enable IrDA mode. + * @param enable Enable/Disable IrDA mode. + * - true: Enable IrDA mode. + * - false: Disable IrDA mode. */ void UART_SetIrDACmd(UART_Type* base, bool enable); /*! * @brief This function is used to set the clock for the IR pulsed * vote logic. The available clock can be select from - * _uart_irda_vote_clock enumeration. + * @ref _uart_irda_vote_clock enumeration. * * @param base UART base pointer. * @param voteClock The available IrDA vote clock selection. @@ -691,7 +691,9 @@ void UART_SetIrDAVoteClock(UART_Type* base, uint32_t voteClock); * Automatic Baud Rate Detection feature. * * @param base UART base pointer. - * @param enable Set true to enable Automatic Baud Rate Detection feature. + * @param enable Enable/Disable Automatic Baud Rate Detection feature. + * - true: Enable Automatic Baud Rate Detection feature. + * - false: Disable Automatic Baud Rate Detection feature. */ void UART_SetAutoBaudRateCmd(UART_Type* base, bool enable); @@ -715,16 +717,19 @@ static inline uint16_t UART_ReadBaudRateCount(UART_Type* base) * * @param base UART base pointer. * @param active Asserted high to generate BREAK. + * - true: Generate BREAK character. + * - false: Stop generate BREAK character. */ void UART_SendBreakChar(UART_Type* base, bool active); /*! - * @brief This function is used to send BREAK character.It is - * important that SNDBRK is asserted high for a sufficient - * period of time to generate a valid BREAK. + * @brief This function is used to Enable/Disable the Escape + * Sequence Decection feature. * * @param base UART base pointer. - * @param active Asserted high to generate BREAK. + * @param enable Enable/Disable Escape Sequence Decection. + * - true: Enable Escape Sequence Decection. + * - false: Disable Escape Sequence Decection. */ void UART_SetEscapeDecectCmd(UART_Type* base, bool enable); diff --git a/platform/drivers/inc/wdog_imx.h b/platform/drivers/inc/wdog_imx.h index 42b982e..8b053df 100644 --- a/platform/drivers/inc/wdog_imx.h +++ b/platform/drivers/inc/wdog_imx.h @@ -44,16 +44,22 @@ /******************************************************************************* * Definitions ******************************************************************************/ -/*! - * @brief Structure to configure the running mode. - */ -typedef struct WdogModeConfig +/*! @brief The reset source of latest reset. */ +enum _wdog_reset_source +{ + wdogResetSourcePor = WDOG_WRSR_POR_MASK, /*!< Indicates the reset is the result of a power on reset.*/ + wdogResetSourceTimeout = WDOG_WRSR_TOUT_MASK, /*!< Indicates the reset is the result of a WDOG timeout.*/ + wdogResetSourceSwRst = WDOG_WRSR_SFTW_MASK, /*!< Indicates the reset is the result of a software reset.*/ +}; + +/*! @brief Structure to configure the running mode. */ +typedef struct _wdog_init_config { - bool wdw; /*!< true: suspend in low power wait, false: not suspend */ - bool wdt; /*!< true: assert WDOG_B when timeout, false: not assert WDOG_B */ - bool wdbg; /*!< true: suspend in debug mode, false: not suspend */ - bool wdzst; /*!< true: suspend in doze and stop mode, false: not suspend */ -} wdog_mode_config_t; + bool wdw; /*!< true: suspend in low power wait, false: not suspend */ + bool wdt; /*!< true: assert WDOG_B when timeout, false: not assert WDOG_B */ + bool wdbg; /*!< true: suspend in debug mode, false: not suspend */ + bool wdzst; /*!< true: suspend in doze and stop mode, false: not suspend */ +} wdog_init_config_t; /******************************************************************************* * API @@ -69,17 +75,17 @@ extern "C" { */ /*! - * @brief Configure WDOG funtions, call once only + * @brief Configure WDOG functions, call once only * * @param base WDOG base pointer. - * @param config WDOG mode configuration + * @param initConfig WDOG mode configuration */ -static inline void WDOG_Init(WDOG_Type *base, wdog_mode_config_t *config) +static inline void WDOG_Init(WDOG_Type *base, const wdog_init_config_t *initConfig) { - base->WCR |= config->wdw ? WDOG_WCR_WDW_MASK : 0 | - config->wdt ? WDOG_WCR_WDT_MASK : 0 | - config->wdbg ? WDOG_WCR_WDBG_MASK : 0 | - config->wdzst ? WDOG_WCR_WDZST_MASK : 0; + base->WCR |= (initConfig->wdw ? WDOG_WCR_WDW_MASK : 0) | + (initConfig->wdt ? WDOG_WCR_WDT_MASK : 0) | + (initConfig->wdbg ? WDOG_WCR_WDBG_MASK : 0) | + (initConfig->wdzst ? WDOG_WCR_WDZST_MASK : 0); } /*! @@ -94,11 +100,27 @@ void WDOG_Enable(WDOG_Type *base, uint8_t timeout); * @brief Assert WDOG software reset signal * * @param base WDOG base pointer. - * @param wda WDOG reset (true: assert WDOG_B, false: no impact on WDOG_B) - * @param srs System reset (true: assert system reset WDOG_RESET_B_DEB, false: no impact on system reset) + * @param wda WDOG reset. + * - true: Assert WDOG_B. + * - false: No impact on WDOG_B. + * @param srs System reset. + * - true: Assert system reset WDOG_RESET_B_DEB. + * - false: No impact on system reset. */ void WDOG_Reset(WDOG_Type *base, bool wda, bool srs); +/*! + * @brief Get the latest reset source generated due to + * WatchDog Timer. + * + * @param base WDOG base pointer. + * @return The latest reset source (see @ref _wdog_reset_source enumeration). + */ +static inline uint32_t WDOG_GetResetSource(WDOG_Type *base) +{ + return base->WRSR; +} + /*! * @brief Refresh the WDOG to prevent timeout * @@ -138,7 +160,9 @@ static inline void WDOG_EnableInt(WDOG_Type *base, uint8_t time) * @brief Check whether WDOG interrupt is pending * * @param base WDOG base pointer. - * @return WDOG interrupt status (true: pending, false: not pending) + * @return WDOG interrupt status. + * - true: Pending. + * - false: Not pending. */ static inline bool WDOG_IsIntPending(WDOG_Type *base) { diff --git a/platform/drivers/src/adc_imx7d.c b/platform/drivers/src/adc_imx7d.c index 37d98d3..e69ac0b 100644 --- a/platform/drivers/src/adc_imx7d.c +++ b/platform/drivers/src/adc_imx7d.c @@ -44,7 +44,7 @@ * structure. * *END**************************************************************************/ -void ADC_Init(ADC_Type* base, adc_init_config_t* initConfig) +void ADC_Init(ADC_Type* base, const adc_init_config_t* initConfig) { assert(initConfig); @@ -81,20 +81,20 @@ void ADC_Deinit(ADC_Type* base) /* Reset ADC Module Register content to default value */ ADC_CH_A_CFG1_REG(base) = 0x0; - ADC_CH_A_CFG2_REG(base) = 0x8000; + ADC_CH_A_CFG2_REG(base) = ADC_CH_A_CFG2_CHA_AUTO_DIS_MASK; ADC_CH_B_CFG1_REG(base) = 0x0; - ADC_CH_B_CFG2_REG(base) = 0x8000; + ADC_CH_B_CFG2_REG(base) = ADC_CH_B_CFG2_CHB_AUTO_DIS_MASK; ADC_CH_C_CFG1_REG(base) = 0x0; - ADC_CH_C_CFG2_REG(base) = 0x8000; + ADC_CH_C_CFG2_REG(base) = ADC_CH_C_CFG2_CHC_AUTO_DIS_MASK; ADC_CH_D_CFG1_REG(base) = 0x0; - ADC_CH_D_CFG2_REG(base) = 0x8000; + ADC_CH_D_CFG2_REG(base) = ADC_CH_D_CFG2_CHD_AUTO_DIS_MASK; ADC_CH_SW_CFG_REG(base) = 0x0; ADC_TIMER_UNIT_REG(base) = 0x0; - ADC_DMA_FIFO_REG(base) = 0xF; + ADC_DMA_FIFO_REG(base) = ADC_DMA_FIFO_DMA_WM_LVL(0xF); ADC_INT_SIG_EN_REG(base) = 0x0; ADC_INT_EN_REG(base) = 0x0; ADC_INT_STATUS_REG(base) = 0x0; - ADC_ADC_CFG_REG(base) = 0x1; + ADC_ADC_CFG_REG(base) = ADC_ADC_CFG_ADC_EN_MASK; } /*FUNCTION********************************************************************** @@ -177,10 +177,10 @@ void ADC_SetPowerDownCmd(ADC_Type* base, bool powerDown) /*FUNCTION********************************************************************** * * Function Name : ADC_LogicChInit - * Description : Initialize ADC Logic channel with initialize structure. + * Description : Initialize ADC Logic channel with initialization structure. * *END**************************************************************************/ -void ADC_LogicChInit(ADC_Type* base, uint8_t logicCh, adc_logic_ch_init_config_t* chInitConfig) +void ADC_LogicChInit(ADC_Type* base, uint8_t logicCh, const adc_logic_ch_init_config_t* chInitConfig) { assert(chInitConfig); @@ -427,16 +427,20 @@ void ADC_SetConvertCmd(ADC_Type* base, uint8_t logicCh, bool enable) switch (logicCh) { case adcLogicChA: - ADC_CH_A_CFG1_REG(base) |= ADC_CH_A_CFG1_CHA_EN_MASK; + ADC_CH_A_CFG1_REG(base) = (ADC_CH_A_CFG1_REG(base) & ~ADC_CH_A_CFG1_CHA_SINGLE_MASK) | + ADC_CH_A_CFG1_CHA_EN_MASK; break; case adcLogicChB: - ADC_CH_B_CFG1_REG(base) |= ADC_CH_B_CFG1_CHB_EN_MASK; + ADC_CH_B_CFG1_REG(base) = (ADC_CH_B_CFG1_REG(base) & ~ADC_CH_B_CFG1_CHB_SINGLE_MASK) | + ADC_CH_B_CFG1_CHB_EN_MASK; break; case adcLogicChC: - ADC_CH_C_CFG1_REG(base) |= ADC_CH_C_CFG1_CHC_EN_MASK; + ADC_CH_C_CFG1_REG(base) = (ADC_CH_C_CFG1_REG(base) & ~ADC_CH_C_CFG1_CHC_SINGLE_MASK) | + ADC_CH_C_CFG1_CHC_EN_MASK; break; case adcLogicChD: - ADC_CH_D_CFG1_REG(base) |= ADC_CH_D_CFG1_CHD_EN_MASK; + ADC_CH_D_CFG1_REG(base) = (ADC_CH_D_CFG1_REG(base) & ~ADC_CH_D_CFG1_CHD_SINGLE_MASK) | + ADC_CH_D_CFG1_CHD_EN_MASK; break; default: break; @@ -467,7 +471,7 @@ void ADC_SetConvertCmd(ADC_Type* base, uint8_t logicCh, bool enable) /*FUNCTION********************************************************************** * * Function Name : ADC_TriggerSingleConvert - * Description : Trigger single time convert on target logic channel. + * Description : Trigger single time convert on the target logic channel. * *END**************************************************************************/ void ADC_TriggerSingleConvert(ADC_Type* base, uint8_t logicCh) @@ -477,16 +481,16 @@ void ADC_TriggerSingleConvert(ADC_Type* base, uint8_t logicCh) switch (logicCh) { case adcLogicChA: - ADC_CH_A_CFG1_REG(base) |= ADC_CH_A_CFG1_CHA_SINGLE_MASK; + ADC_CH_A_CFG1_REG(base) |= ADC_CH_A_CFG1_CHA_SINGLE_MASK | ADC_CH_A_CFG1_CHA_EN_MASK; break; case adcLogicChB: - ADC_CH_B_CFG1_REG(base) |= ADC_CH_B_CFG1_CHB_SINGLE_MASK; + ADC_CH_B_CFG1_REG(base) |= ADC_CH_B_CFG1_CHB_SINGLE_MASK | ADC_CH_B_CFG1_CHB_EN_MASK; break; case adcLogicChC: - ADC_CH_C_CFG1_REG(base) |= ADC_CH_C_CFG1_CHC_SINGLE_MASK; + ADC_CH_C_CFG1_REG(base) |= ADC_CH_C_CFG1_CHC_SINGLE_MASK | ADC_CH_C_CFG1_CHC_EN_MASK; break; case adcLogicChD: - ADC_CH_D_CFG1_REG(base) |= ADC_CH_D_CFG1_CHD_SINGLE_MASK; + ADC_CH_D_CFG1_REG(base) |= ADC_CH_D_CFG1_CHD_SINGLE_MASK | ADC_CH_D_CFG1_CHD_EN_MASK; break; case adcLogicChSW: ADC_CH_SW_CFG_REG(base) |= ADC_CH_SW_CFG_START_CONV_MASK; @@ -496,6 +500,39 @@ void ADC_TriggerSingleConvert(ADC_Type* base, uint8_t logicCh) } } +/*FUNCTION********************************************************************** + * + * Function Name : ADC_StopConvert + * Description : Stop current convert on the target logic channel. + * + *END**************************************************************************/ +void ADC_StopConvert(ADC_Type* base, uint8_t logicCh) +{ + assert(logicCh <= adcLogicChSW); + + switch (logicCh) + { + case adcLogicChA: + ADC_CH_A_CFG1_REG(base) &= ~ADC_CH_A_CFG1_CHA_EN_MASK; + break; + case adcLogicChB: + ADC_CH_B_CFG1_REG(base) &= ~ADC_CH_B_CFG1_CHB_EN_MASK; + break; + case adcLogicChC: + ADC_CH_C_CFG1_REG(base) &= ~ADC_CH_C_CFG1_CHC_EN_MASK; + break; + case adcLogicChD: + ADC_CH_D_CFG1_REG(base) &= ~ADC_CH_D_CFG1_CHD_EN_MASK; + break; + case adcLogicChSW: + /* Wait until ADC conversion finish. */ + while (ADC_CH_SW_CFG_REG(base) & ADC_CH_SW_CFG_START_CONV_MASK); + break; + default: + break; + } +} + /*FUNCTION********************************************************************** * * Function Name : ADC_GetConvertResult diff --git a/platform/drivers/src/ccm_analog_imx7d.c b/platform/drivers/src/ccm_analog_imx7d.c index 3493690..0264202 100644 --- a/platform/drivers/src/ccm_analog_imx7d.c +++ b/platform/drivers/src/ccm_analog_imx7d.c @@ -34,6 +34,20 @@ * Code ******************************************************************************/ +/*FUNCTION********************************************************************** + * + * Function Name : CCM_ANALOG_GetArmPllFreq + * Description : Get ARM PLL frequency + * + *END**************************************************************************/ +uint32_t CCM_ANALOG_GetArmPllFreq(CCM_ANALOG_Type * base) +{ + if (CCM_ANALOG_IsPllBypassed(base, ccmAnalogPllArmControl)) + return 24000000ul; + + return 12000000ul * (CCM_ANALOG_PLL_ARM & CCM_ANALOG_PLL_ARM_DIV_SELECT_MASK); +} + /*FUNCTION********************************************************************** * * Function Name : CCM_ANALOG_GetSysPllFreq @@ -43,12 +57,193 @@ uint32_t CCM_ANALOG_GetSysPllFreq(CCM_ANALOG_Type * base) { if (CCM_ANALOG_IsPllBypassed(base, ccmAnalogPll480Control)) - return 24000000; + return 24000000ul; if (CCM_ANALOG_PLL_480 & CCM_ANALOG_PLL_480_DIV_SELECT_MASK) - return 528000000; + return 528000000ul; + else + return 480000000ul; +} + +/*FUNCTION********************************************************************** + * + * Function Name : CCM_ANALOG_GetDdrPllFreq + * Description : Get DDR PLL frequency + * + *END**************************************************************************/ +uint32_t CCM_ANALOG_GetDdrPllFreq(CCM_ANALOG_Type * base) +{ + uint8_t divSelect, divTestSelect; + float factor; + + if (CCM_ANALOG_IsPllBypassed(base, ccmAnalogPllDdrControl)) + return 24000000ul; + + divSelect = CCM_ANALOG_PLL_DDR_REG(CCM_ANALOG) & CCM_ANALOG_PLL_DDR_DIV_SELECT_MASK; + divTestSelect = (CCM_ANALOG_PLL_DDR_REG(CCM_ANALOG) & CCM_ANALOG_PLL_DDR_TEST_DIV_SELECT_MASK) >> + CCM_ANALOG_PLL_DDR_TEST_DIV_SELECT_SHIFT; + + switch (divTestSelect) + { + case 0x0: + divTestSelect = 2; + break; + case 0x1: + divTestSelect = 1; + break; + case 0x2: + case 0x3: + divTestSelect = 0; + break; + } + + if (CCM_ANALOG_PLL_DDR_SS_REG(base) & CCM_ANALOG_PLL_DDR_SS_ENABLE_MASK) + { + factor = ((float)(CCM_ANALOG_PLL_DDR_SS_REG(base) & CCM_ANALOG_PLL_DDR_SS_STEP_MASK)) / + ((float)(CCM_ANALOG_PLL_DDR_DENOM_REG(base) & CCM_ANALOG_PLL_DDR_DENOM_B_MASK)) * + ((float)(CCM_ANALOG_PLL_DDR_NUM_REG(base) & CCM_ANALOG_PLL_DDR_NUM_A_MASK)); + return (uint32_t)((24000000ul >> divTestSelect) * (divSelect + factor)); + } + else + { + return (24000000ul >> divTestSelect) * divSelect; + } +} + +/*FUNCTION********************************************************************** + * + * Function Name : CCM_ANALOG_GetEnetPllFreq + * Description : Get Ethernet PLL frequency + * + *END**************************************************************************/ +uint32_t CCM_ANALOG_GetEnetPllFreq(CCM_ANALOG_Type * base) +{ + if (CCM_ANALOG_IsPllBypassed(base, ccmAnalogPllEnetControl)) + return 24000000ul; + + return 1000000000ul; +} + +/*FUNCTION********************************************************************** + * + * Function Name : CCM_ANALOG_GetAudioPllFreq + * Description : Get Ethernet PLL frequency + * + *END**************************************************************************/ +uint32_t CCM_ANALOG_GetAudioPllFreq(CCM_ANALOG_Type * base) +{ + uint8_t divSelect, divPostSelect, divTestSelect; + float factor; + + if (CCM_ANALOG_IsPllBypassed(base, ccmAnalogPllAudioControl)) + return 24000000ul; + + divSelect = CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG) & CCM_ANALOG_PLL_AUDIO_DIV_SELECT_MASK; + divPostSelect = (CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG) & CCM_ANALOG_PLL_AUDIO_POST_DIV_SEL_MASK) >> + CCM_ANALOG_PLL_AUDIO_POST_DIV_SEL_SHIFT; + divTestSelect = (CCM_ANALOG_PLL_AUDIO_REG(CCM_ANALOG) & CCM_ANALOG_PLL_AUDIO_TEST_DIV_SELECT_MASK) >> + CCM_ANALOG_PLL_AUDIO_TEST_DIV_SELECT_SHIFT; + + switch (divPostSelect) + { + case 0x0: + case 0x2: + divPostSelect = 0; + break; + case 0x1: + divPostSelect = 1; + break; + case 0x3: + divPostSelect = 2; + break; + } + + switch (divTestSelect) + { + case 0x0: + divTestSelect = 2; + break; + case 0x1: + divTestSelect = 1; + break; + case 0x2: + case 0x3: + divTestSelect = 0; + break; + } + + if (CCM_ANALOG_PLL_AUDIO_SS_REG(base) & CCM_ANALOG_PLL_AUDIO_SS_ENABLE_MASK) + { + factor = ((float)(CCM_ANALOG_PLL_AUDIO_SS_REG(base) & CCM_ANALOG_PLL_AUDIO_SS_STEP_MASK)) / + ((float)(CCM_ANALOG_PLL_AUDIO_DENOM_REG(base) & CCM_ANALOG_PLL_AUDIO_DENOM_B_MASK)) * + ((float)(CCM_ANALOG_PLL_AUDIO_NUM_REG(base) & CCM_ANALOG_PLL_AUDIO_NUM_A_MASK)); + return (uint32_t)(((24000000ul >> divTestSelect) >> divPostSelect) * (divSelect + factor)); + } + else + { + return ((24000000ul >> divTestSelect) >> divPostSelect) * divSelect; + } +} + +/*FUNCTION********************************************************************** + * + * Function Name : CCM_ANALOG_GetVideoPllFreq + * Description : Get Ethernet PLL frequency + * + *END**************************************************************************/ +uint32_t CCM_ANALOG_GetVideoPllFreq(CCM_ANALOG_Type * base) +{ + uint8_t divSelect, divPostSelect, divTestSelect; + float factor; + + if (CCM_ANALOG_IsPllBypassed(base, ccmAnalogPllVideoControl)) + return 24000000ul; + + divSelect = CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG) & CCM_ANALOG_PLL_VIDEO_DIV_SELECT_MASK; + divPostSelect = (CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG) & CCM_ANALOG_PLL_VIDEO_POST_DIV_SEL_MASK) >> + CCM_ANALOG_PLL_VIDEO_POST_DIV_SEL_SHIFT; + divTestSelect = (CCM_ANALOG_PLL_VIDEO_REG(CCM_ANALOG) & CCM_ANALOG_PLL_VIDEO_TEST_DIV_SELECT_MASK) >> + CCM_ANALOG_PLL_VIDEO_TEST_DIV_SELECT_SHIFT; + + switch (divPostSelect) + { + case 0x0: + case 0x2: + divPostSelect = 0; + break; + case 0x1: + divPostSelect = 1; + break; + case 0x3: + divPostSelect = 2; + break; + } + + switch (divTestSelect) + { + case 0x0: + divTestSelect = 2; + break; + case 0x1: + divTestSelect = 1; + break; + case 0x2: + case 0x3: + divTestSelect = 0; + break; + } + + if (CCM_ANALOG_PLL_VIDEO_SS_REG(base) & CCM_ANALOG_PLL_VIDEO_SS_ENABLE_MASK) + { + factor = ((float)(CCM_ANALOG_PLL_VIDEO_SS_REG(base) & CCM_ANALOG_PLL_VIDEO_SS_STEP_MASK)) / + ((float)(CCM_ANALOG_PLL_VIDEO_DENOM_REG(base) & CCM_ANALOG_PLL_VIDEO_DENOM_B_MASK)) * + ((float)(CCM_ANALOG_PLL_VIDEO_NUM_REG(base) & CCM_ANALOG_PLL_VIDEO_NUM_A_MASK)); + return (uint32_t)(((24000000ul >> divTestSelect) >> divPostSelect) * (divSelect + factor)); + } else - return 480000000; + { + return ((24000000ul >> divTestSelect) >> divPostSelect) * divSelect; + } } /*FUNCTION********************************************************************** diff --git a/platform/drivers/src/ccm_imx7d.c b/platform/drivers/src/ccm_imx7d.c index 55015d3..11f2889 100644 --- a/platform/drivers/src/ccm_imx7d.c +++ b/platform/drivers/src/ccm_imx7d.c @@ -46,8 +46,8 @@ void CCM_SetRootDivider(CCM_Type * base, uint32_t ccmRoot, uint32_t pre, uint32_ assert (post < 64); CCM_REG(ccmRoot) = (CCM_REG(ccmRoot) & - (~(CCM_TARGET_ROOT0_PRE_PODF_MASK | CCM_TARGET_ROOT0_POST_PODF_MASK))) | - CCM_TARGET_ROOT0_PRE_PODF(pre) | CCM_TARGET_ROOT0_POST_PODF(post); + (~(CCM_TARGET_ROOT_PRE_PODF_MASK | CCM_TARGET_ROOT_POST_PODF_MASK))) | + CCM_TARGET_ROOT_PRE_PODF(pre) | CCM_TARGET_ROOT_POST_PODF(post); } /*FUNCTION********************************************************************** @@ -60,8 +60,8 @@ void CCM_GetRootDivider(CCM_Type * base, uint32_t ccmRoot, uint32_t *pre, uint32 { assert (pre && post); - *pre = (CCM_REG(ccmRoot) & CCM_TARGET_ROOT0_PRE_PODF_MASK) >> CCM_TARGET_ROOT0_PRE_PODF_SHIFT; - *post = (CCM_REG(ccmRoot) & CCM_TARGET_ROOT0_POST_PODF_MASK) >> CCM_TARGET_ROOT0_POST_PODF_SHIFT; + *pre = (CCM_REG(ccmRoot) & CCM_TARGET_ROOT_PRE_PODF_MASK) >> CCM_TARGET_ROOT_PRE_PODF_SHIFT; + *post = (CCM_REG(ccmRoot) & CCM_TARGET_ROOT_POST_PODF_MASK) >> CCM_TARGET_ROOT_POST_PODF_SHIFT; } /*FUNCTION********************************************************************** @@ -76,8 +76,8 @@ void CCM_UpdateRoot(CCM_Type * base, uint32_t ccmRoot, uint32_t mux, uint32_t pr assert (post < 64); CCM_REG(ccmRoot) = (CCM_REG(ccmRoot) & - (~(CCM_TARGET_ROOT0_MUX_MASK | CCM_TARGET_ROOT0_PRE_PODF_MASK | CCM_TARGET_ROOT0_POST_PODF_MASK))) | - CCM_TARGET_ROOT0_MUX(mux) | CCM_TARGET_ROOT0_PRE_PODF(pre) | CCM_TARGET_ROOT0_POST_PODF(post); + (~(CCM_TARGET_ROOT_MUX_MASK | CCM_TARGET_ROOT_PRE_PODF_MASK | CCM_TARGET_ROOT_POST_PODF_MASK))) | + CCM_TARGET_ROOT_MUX(mux) | CCM_TARGET_ROOT_PRE_PODF(pre) | CCM_TARGET_ROOT_POST_PODF(post); } /******************************************************************************* diff --git a/platform/drivers/src/ecspi.c b/platform/drivers/src/ecspi.c index bdf4aa8..cfba518 100644 --- a/platform/drivers/src/ecspi.c +++ b/platform/drivers/src/ecspi.c @@ -35,41 +35,41 @@ ******************************************************************************/ /******************************************************************************* - * ECSPI Initialization and Configuration functions + * eCSPI Initialization and Configuration functions ******************************************************************************/ /*FUNCTION********************************************************************** * * Function Name : ECSPI_Init - * Description : Initializes the ECSPI module according to the specified - * parameters in the initStruct. + * Description : Initializes the eCSPI module according to the specified + * parameters in the initConfig. * *END**************************************************************************/ -void ECSPI_Init(ECSPI_Type* base, ecspi_init_t* initStruct) +void ECSPI_Init(ECSPI_Type* base, const ecspi_init_config_t* initConfig) { - /* Disable ECSPI module */ + /* Disable eCSPI module */ ECSPI_CONREG_REG(base) = 0; - /* Enable the ECSPI module before write to other registers */ + /* Enable the eCSPI module before write to other registers */ ECSPI_Enable(base); - /* ECSPI CONREG Configuration */ - ECSPI_CONREG_REG(base) |= ECSPI_CONREG_BURST_LENGTH(initStruct->burstLength) | - ECSPI_CONREG_CHANNEL_SELECT(initStruct->channelSelect); - ECSPI_CONREG_REG(base) |= initStruct->ecspiAutoStart ? ECSPI_CONREG_SMC_MASK : 0; + /* eCSPI CONREG Configuration */ + ECSPI_CONREG_REG(base) |= ECSPI_CONREG_BURST_LENGTH(initConfig->burstLength) | + ECSPI_CONREG_CHANNEL_SELECT(initConfig->channelSelect); + ECSPI_CONREG_REG(base) |= initConfig->ecspiAutoStart ? ECSPI_CONREG_SMC_MASK : 0; - /* ECSPI CONFIGREG Configuration */ - ECSPI_CONFIGREG_REG(base) = ECSPI_CONFIGREG_SCLK_PHA(((initStruct->clockPhase) & 1) << (initStruct->channelSelect)) | - ECSPI_CONFIGREG_SCLK_POL(((initStruct->clockPolarity) & 1) << (initStruct->channelSelect)); + /* eCSPI CONFIGREG Configuration */ + ECSPI_CONFIGREG_REG(base) = ECSPI_CONFIGREG_SCLK_PHA(((initConfig->clockPhase) & 1) << (initConfig->channelSelect)) | + ECSPI_CONFIGREG_SCLK_POL(((initConfig->clockPolarity) & 1) << (initConfig->channelSelect)); /* Master or Slave mode Configuration */ - if(initStruct->mode == ecspiMasterMode) + if(initConfig->mode == ecspiMasterMode) { /* Set baud rate in bits per second */ - ECSPI_CONREG_REG(base) |= ECSPI_CONREG_CHANNEL_MODE(1 << (initStruct->channelSelect)); - ECSPI_SetBaudRate(base, initStruct->clockRate, initStruct->baudRate); + ECSPI_CONREG_REG(base) |= ECSPI_CONREG_CHANNEL_MODE(1 << (initConfig->channelSelect)); + ECSPI_SetBaudRate(base, initConfig->clockRate, initConfig->baudRate); } else - ECSPI_CONREG_REG(base) &= ~ECSPI_CONREG_CHANNEL_MODE(1 << (initStruct->channelSelect)); + ECSPI_CONREG_REG(base) &= ~ECSPI_CONREG_CHANNEL_MODE(1 << (initConfig->channelSelect)); } /*FUNCTION********************************************************************** @@ -90,7 +90,7 @@ void ECSPI_SetSampClockSource(ECSPI_Type* base, uint32_t source) /*FUNCTION********************************************************************** * * Function Name : ECSPI_SetBaudRate - * Description : Calculated the ECSPI baud rate in bits per second. + * Description : Calculated the eCSPI baud rate in bits per second. * *END**************************************************************************/ uint32_t ECSPI_SetBaudRate(ECSPI_Type* base, uint32_t sourceClockInHz, uint32_t bitsPerSec) @@ -188,7 +188,7 @@ void ECSPI_SetFIFOThreshold(ECSPI_Type* base, uint32_t fifo, uint32_t threshold) /*FUNCTION********************************************************************** * * Function Name : ECSPI_SetIntCmd - * Description : Enable or disable ECSPI interrupts. + * Description : Enable or disable eCSPI interrupts. * *END**************************************************************************/ void ECSPI_SetIntCmd(ECSPI_Type* base, uint32_t flags, bool enable) diff --git a/platform/drivers/src/flexcan.c b/platform/drivers/src/flexcan.c index 25177ad..2fb1d16 100644 --- a/platform/drivers/src/flexcan.c +++ b/platform/drivers/src/flexcan.c @@ -89,7 +89,7 @@ static void FLEXCAN_ExitFreezeMode(CAN_Type* base) /* De-assert Freeze Mode */ CAN_MCR_REG(base) &= ~CAN_MCR_HALT_MASK; CAN_MCR_REG(base) &= ~CAN_MCR_FRZ_MASK; - /* Wait for entering the freeze mode */ + /* Wait for exit the freeze mode */ while (CAN_MCR_REG(base) & CAN_MCR_FRZ_ACK_MASK); } @@ -102,7 +102,7 @@ static void FLEXCAN_ExitFreezeMode(CAN_Type* base) * Description : Initialize Flexcan module with given initialize structure. * *END**************************************************************************/ -void FLEXCAN_Init(CAN_Type* base, flexcan_init_config_t* initConfig) +void FLEXCAN_Init(CAN_Type* base, const flexcan_init_config_t* initConfig) { assert(initConfig); @@ -136,6 +136,8 @@ void FLEXCAN_Init(CAN_Type* base, flexcan_init_config_t* initConfig) *END**************************************************************************/ void FLEXCAN_Deinit(CAN_Type* base) { + uint32_t i; + /* Reset the FLEXCAN module */ CAN_MCR_REG(base) |= CAN_MCR_SOFT_RST_MASK; /* Wait for reset cycle to complete */ @@ -150,8 +152,17 @@ void FLEXCAN_Deinit(CAN_Type* base) /* Reset CTRL2 Register */ CAN_CTRL2_REG(base) = 0x0; + /* Reset All Message Buffer Content */ + for (i = 0; i < CAN_CS_COUNT; i++) + { + base->MB[i].CS = 0x0; + base->MB[i].ID = 0x0; + base->MB[i].WORD0 = 0x0; + base->MB[i].WORD1 = 0x0; + } + /* Reset Rx Individual Mask */ - for (uint8_t i=0; i < CAN_RXIMR_COUNT; i++) + for (i = 0; i < CAN_RXIMR_COUNT; i++) CAN_RXIMR_REG(base, i) = 0x0; /* Reset Rx Mailboxes Global Mask */ @@ -167,8 +178,8 @@ void FLEXCAN_Deinit(CAN_Type* base) CAN_RXFGMASK_REG(base) = 0xFFFFFFFF; /* Disable all MB interrupts */ - CAN_IMASK1_REG(base) = 0X0; - CAN_IMASK2_REG(base) = 0X0; + CAN_IMASK1_REG(base) = 0x0; + CAN_IMASK2_REG(base) = 0x0; // Clear all MB interrupt flags CAN_IFLAG1_REG(base) = 0xFFFFFFFF; @@ -215,7 +226,7 @@ void FLEXCAN_Disable(CAN_Type* base) * Description : Sets the FlexCAN time segments for setting up bit rate. * *END**************************************************************************/ -void FLEXCAN_SetTiming(CAN_Type* base, flexcan_timing_t* timing) +void FLEXCAN_SetTiming(CAN_Type* base, const flexcan_timing_t* timing) { assert(timing); @@ -288,15 +299,6 @@ void FLEXCAN_SetMaxMsgBufNum(CAN_Type* base, uint32_t bufNum) /* Set the maximum number of MBs*/ CAN_MCR_REG(base) = (CAN_MCR_REG(base) & (~CAN_MCR_MAXMB_MASK)) | CAN_MCR_MAXMB(bufNum-1); - /* Clean MBs content to default value */ - for (uint8_t i = 0; i < bufNum; i++) - { - base->MB[i].CS = 0x0; - base->MB[i].ID = 0x0; - base->MB[i].WORD0 = 0x0; - base->MB[i].WORD1 = 0x0; - } - /* De-assert Freeze Mode*/ FLEXCAN_ExitFreezeMode(base); } @@ -491,14 +493,17 @@ void FLEXCAN_ClearMsgBufStatusFlag(CAN_Type* base, uint32_t msgBufIdx) assert(msgBufIdx < CAN_CS_COUNT); if (msgBufIdx > 0x31) + { index = msgBufIdx - 32; + /* write 1 to clear. */ + base->IFLAG2 = 0x1 << index; + } else + { index = msgBufIdx; - - /* The Interrupt flag must be cleared by writing it to '1'. - * Writing '0' has no effect. - */ - base->IFLAG1 = 0x1 << index; + /* write 1 to clear. */ + base->IFLAG1 = 0x1 << index; + } } /*FUNCTION********************************************************************** @@ -693,7 +698,7 @@ void FLEXCAN_SetRxFifoFilter(CAN_Type* base, uint32_t idFormat, flexcan_id_table switch (idFormat) { - case flexcanFxFifoIdElementFormatA: + case flexcanRxFifoIdElementFormatA: /* One full ID (standard and extended) per ID Filter Table element.*/ if (idFilterTable->isRemoteFrame) { @@ -718,7 +723,7 @@ void FLEXCAN_SetRxFifoFilter(CAN_Type* base, uint32_t idFormat, flexcan_id_table } } break; - case flexcanFxFifoIdElementFormatB: + case flexcanRxFifoIdElementFormatB: /* Two full standard IDs or two partial 14-bit (standard and extended) IDs*/ /* per ID Filter Table element.*/ if (idFilterTable->isRemoteFrame) @@ -754,7 +759,7 @@ void FLEXCAN_SetRxFifoFilter(CAN_Type* base, uint32_t idFormat, flexcan_id_table j = j + 2; } break; - case flexcanFxFifoIdElementFormatC: + case flexcanRxFifoIdElementFormatC: /* Four partial 8-bit Standard IDs per ID Filter Table element.*/ j = 0; for (i = 0; i < RxFifoFilterElementNum(numOfFilters); i++) @@ -774,7 +779,7 @@ void FLEXCAN_SetRxFifoFilter(CAN_Type* base, uint32_t idFormat, flexcan_id_table j = j + 4; } break; - case flexcanFxFifoIdElementFormatD: + case flexcanRxFifoIdElementFormatD: /* All frames rejected.*/ break; } @@ -835,7 +840,7 @@ void FLEXCAN_SetRxMaskMode(CAN_Type* base, uint32_t mode) * Description : Set the remote trasmit request mask enablement. * *END**************************************************************************/ -void FLEXCAN_SetRxMaskRtrCmd(CAN_Type* base, uint32_t enable) +void FLEXCAN_SetRxMaskRtrCmd(CAN_Type* base, bool enable) { /* Assert Freeze mode */ FLEXCAN_EnterFreezeMode(base); diff --git a/platform/drivers/src/gpio_imx.c b/platform/drivers/src/gpio_imx.c index 9029876..ffefaf2 100644 --- a/platform/drivers/src/gpio_imx.c +++ b/platform/drivers/src/gpio_imx.c @@ -41,10 +41,10 @@ * * Function Name : GPIO_Init * Description : Initializes the GPIO module according to the specified - * parameters in the initStruct. + * parameters in the initConfig. * *END**************************************************************************/ -void GPIO_Init(GPIO_Type* base, gpio_init_t* initStruct) +void GPIO_Init(GPIO_Type* base, const gpio_init_config_t* initConfig) { uint32_t pin; volatile uint32_t *icr; @@ -54,10 +54,10 @@ void GPIO_Init(GPIO_Type* base, gpio_init_t* initStruct) GPIO_EDGE_SEL_REG(base) = 0; /* Get pin number */ - pin = initStruct->pin; + pin = initConfig->pin; /* Configure GPIO pin direction */ - if (initStruct->direction == gpioDigitalOutput) + if (initConfig->direction == gpioDigitalOutput) GPIO_GDIR_REG(base) |= (1U << pin); else GPIO_GDIR_REG(base) &= ~(1U << pin); @@ -70,7 +70,7 @@ void GPIO_Init(GPIO_Type* base, gpio_init_t* initStruct) icr = &GPIO_ICR2_REG(base); pin -= 16; } - switch(initStruct->interruptMode) + switch(initConfig->interruptMode) { case(gpioIntLowLevel): { @@ -127,12 +127,13 @@ void GPIO_WritePinOutput(GPIO_Type* base, uint32_t pin, gpio_pin_action_t pinVal /*FUNCTION********************************************************************** * * Function Name : GPIO_SetPinIntMode - * Description : Disable or enable the specific pin interrupt. + * Description : Enable or Disable the specific pin interrupt. * *END**************************************************************************/ void GPIO_SetPinIntMode(GPIO_Type* base, uint32_t pin, bool enable) { assert(pin < 32); + if(enable) GPIO_IMR_REG(base) |= (1U << pin); else @@ -142,13 +143,14 @@ void GPIO_SetPinIntMode(GPIO_Type* base, uint32_t pin, bool enable) /*FUNCTION********************************************************************** * * Function Name : GPIO_SetIntEdgeSelect - * Description : Disable or enable the specific pin interrupt. + * Description : Enable or Disable the specific pin interrupt. * *END**************************************************************************/ void GPIO_SetIntEdgeSelect(GPIO_Type* base, uint32_t pin, bool enable) { assert(pin < 32); + if(enable) GPIO_EDGE_SEL_REG(base) |= (1U << pin); else diff --git a/platform/drivers/src/gpt.c b/platform/drivers/src/gpt.c index a9c8a21..6c6d12c 100644 --- a/platform/drivers/src/gpt.c +++ b/platform/drivers/src/gpt.c @@ -40,20 +40,20 @@ * Description : Initialize GPT to reset state and initialize running mode * *END**************************************************************************/ -void GPT_Init(GPT_Type * base, gpt_mode_config_t *config) +void GPT_Init(GPT_Type* base, const gpt_init_config_t* initConfig) { - assert(config); + assert(initConfig); base->CR = 0; GPT_SoftReset(base); - base->CR = (config->freeRun ? GPT_CR_FRR_MASK : 0) | - (config->waitEnable ? GPT_CR_WAITEN_MASK : 0) | - (config->stopEnable ? GPT_CR_STOPEN_MASK : 0) | - (config->dozeEnable ? GPT_CR_DOZEEN_MASK : 0) | - (config->dbgEnable ? GPT_CR_DBGEN_MASK : 0) | - (config->enableMode ? GPT_CR_ENMOD_MASK : 0); + base->CR = (initConfig->freeRun ? GPT_CR_FRR_MASK : 0) | + (initConfig->waitEnable ? GPT_CR_WAITEN_MASK : 0) | + (initConfig->stopEnable ? GPT_CR_STOPEN_MASK : 0) | + (initConfig->dozeEnable ? GPT_CR_DOZEEN_MASK : 0) | + (initConfig->dbgEnable ? GPT_CR_DBGEN_MASK : 0) | + (initConfig->enableMode ? GPT_CR_ENMOD_MASK : 0); } /*FUNCTION********************************************************************** @@ -62,14 +62,14 @@ void GPT_Init(GPT_Type * base, gpt_mode_config_t *config) * Description : Set clock source of GPT * *END**************************************************************************/ -void GPT_SetClockSource(GPT_Type * base, uint32_t source) +void GPT_SetClockSource(GPT_Type* base, uint32_t source) { assert(source <= gptClockSourceOsc); if (source == gptClockSourceOsc) - base->CR = (base->CR & ~GPT_CR_CLKSRC_MASK) | GPT_CR_ENABLE_24MHZ_MASK | GPT_CR_CLKSRC(source); + base->CR = (base->CR & ~GPT_CR_CLKSRC_MASK) | GPT_CR_EN_24M_MASK | GPT_CR_CLKSRC(source); else - base->CR = (base->CR & ~(GPT_CR_CLKSRC_MASK | GPT_CR_ENABLE_24MHZ_MASK)) | GPT_CR_CLKSRC(source); + base->CR = (base->CR & ~(GPT_CR_CLKSRC_MASK | GPT_CR_EN_24M_MASK)) | GPT_CR_CLKSRC(source); } /*FUNCTION********************************************************************** @@ -78,7 +78,7 @@ void GPT_SetClockSource(GPT_Type * base, uint32_t source) * Description : Enable or disable GPT interrupts * *END**************************************************************************/ -void GPT_SetIntCmd(GPT_Type * base, uint32_t flags, bool enable) +void GPT_SetIntCmd(GPT_Type* base, uint32_t flags, bool enable) { if (enable) base->IR |= flags; diff --git a/platform/drivers/src/i2c_imx.c b/platform/drivers/src/i2c_imx.c index 9475c15..e6f5664 100644 --- a/platform/drivers/src/i2c_imx.c +++ b/platform/drivers/src/i2c_imx.c @@ -57,7 +57,7 @@ static const uint32_t i2cClkDivTab[][2] = * Description : Initialize I2C module with given initialize structure. * *END**************************************************************************/ -void I2C_Init(I2C_Type* base, i2c_init_config_t* initConfig) +void I2C_Init(I2C_Type* base, const i2c_init_config_t* initConfig) { assert(initConfig); diff --git a/platform/drivers/src/lmem.c b/platform/drivers/src/lmem.c new file mode 100644 index 0000000..d3ed88a --- /dev/null +++ b/platform/drivers/src/lmem.c @@ -0,0 +1,348 @@ +/* + * Copyright (c) 2015, Freescale Semiconductor, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * o Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. + * + * o Redistributions in binary form must reproduce the above copyright notice, this + * list of conditions and the following disclaimer in the documentation and/or + * other materials provided with the distribution. + * + * o Neither the name of Freescale Semiconductor, Inc. nor the names of its + * contributors may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "lmem.h" + +/******************************************************************************* + * Definitions + ******************************************************************************/ +#define LMEM_CACHE_LINE_SIZE 32 + +/******************************************************************************* + * Code + ******************************************************************************/ + +/******************************************************************************* + * System Cache control functions + ******************************************************************************/ +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_EnableSystemCache + * Description : This function enable the System Cache. + * + *END**************************************************************************/ +void LMEM_EnableSystemCache(LMEM_Type *base) +{ + /* set command to invalidate all ways */ + /* and write GO bit to initiate command */ + LMEM_PSCCR_REG(base) = LMEM_PSCCR_INVW1_MASK | LMEM_PSCCR_INVW0_MASK; + LMEM_PSCCR_REG(base) |= LMEM_PSCCR_GO_MASK; + + /* wait until the command completes */ + while (LMEM_PSCCR_REG(base) & LMEM_PSCCR_GO_MASK); + + /* Enable cache, enable write buffer */ + LMEM_PSCCR_REG(base) = (LMEM_PSCCR_ENWRBUF_MASK | LMEM_PSCCR_ENCACHE_MASK); + __ISB(); + __DSB(); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_DisableSystemCache + * Description : This function disable the System Cache. + * + *END**************************************************************************/ +void LMEM_DisableSystemCache(LMEM_Type *base) +{ + LMEM_PSCCR_REG(base) = 0x0; + __ISB(); + __DSB(); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_FlushSystemCache + * Description : This function flush the System Cache. + * + *END**************************************************************************/ +void LMEM_FlushSystemCache(LMEM_Type *base) +{ + LMEM_PSCCR_REG(base) |= LMEM_PSCCR_PUSHW0_MASK | LMEM_PSCCR_PUSHW1_MASK ; + LMEM_PSCCR_REG(base) |= LMEM_PSCCR_GO_MASK; + + /* wait until the command completes */ + while (LMEM_PSCCR_REG(base) & LMEM_PSCCR_GO_MASK); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_FlushSystemCacheLine + * Description : This function is called to push a line out of the System Cache. + * + *END**************************************************************************/ +static void LMEM_FlushSystemCacheLine(LMEM_Type *base, void *address) +{ + assert((uint32_t)address >= 0x20000000); + + /* Invalidate by physical address */ + LMEM_PSCLCR_REG(base) = LMEM_PSCLCR_LADSEL_MASK | LMEM_PSCLCR_LCMD(2); + /* Set physical address and activate command */ + LMEM_PSCSAR_REG(base) = ((uint32_t)address & LMEM_PSCSAR_PHYADDR_MASK) | LMEM_PSCSAR_LGO_MASK; + + /* wait until the command completes */ + while (LMEM_PSCSAR_REG(base) & LMEM_PSCSAR_LGO_MASK); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_FlushSystemCacheLines + * Description : This function is called to flush the System Cache by + * performing cache copy-backs. It must determine how + * many cache lines need to be copied back and then + * perform the copy-backs. + * + *END**************************************************************************/ +void LMEM_FlushSystemCacheLines(LMEM_Type *base, void *address, uint32_t length) +{ + void *endAddress = (void *)((uint32_t)address + length); + + address = (void *) ((uint32_t)address & ~(LMEM_CACHE_LINE_SIZE - 1)); + do + { + LMEM_FlushSystemCacheLine(base, address); + address = (void *) ((uint32_t)address + LMEM_CACHE_LINE_SIZE); + } while (address < endAddress); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_InvalidateSystemCache + * Description : This function invalidate the System Cache. + * + *END**************************************************************************/ +void LMEM_InvalidateSystemCache(LMEM_Type *base) +{ + LMEM_PSCCR_REG(base) |= LMEM_PSCCR_INVW0_MASK | LMEM_PSCCR_INVW1_MASK; + LMEM_PSCCR_REG(base) |= LMEM_PSCCR_GO_MASK; + + /* wait until the command completes */ + while (LMEM_PSCCR_REG(base) & LMEM_PSCCR_GO_MASK); + __ISB(); + __DSB(); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_InvalidateSystemCacheLine + * Description : This function is called to invalidate a line out of + * the System Cache. + * + *END**************************************************************************/ +static void LMEM_InvalidateSystemCacheLine(LMEM_Type *base, void *address) +{ + assert((uint32_t)address >= 0x20000000); + + /* Invalidate by physical address */ + LMEM_PSCLCR_REG(base) = LMEM_PSCLCR_LADSEL_MASK | LMEM_PSCLCR_LCMD(1); + /* Set physical address and activate command */ + LMEM_PSCSAR_REG(base) = ((uint32_t)address & LMEM_PSCSAR_PHYADDR_MASK) | LMEM_PSCSAR_LGO_MASK; + + /* wait until the command completes */ + while (LMEM_PSCSAR_REG(base) & LMEM_PSCSAR_LGO_MASK); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_InvalidateSystemCacheLines + * Description : This function is responsible for performing an data + * cache invalidate. It must determine how many cache + * lines need to be invalidated and then perform the + * invalidation. + * + *END**************************************************************************/ +void LMEM_InvalidateSystemCacheLines(LMEM_Type *base, void *address, uint32_t length) +{ + void *endAddress = (void *)((uint32_t)address + length); + address = (void *)((uint32_t)address & ~(LMEM_CACHE_LINE_SIZE - 1)); + + do + { + LMEM_InvalidateSystemCacheLine(base, address); + address = (void *)((uint32_t)address + LMEM_CACHE_LINE_SIZE); + } while (address < endAddress); + __ISB(); + __DSB(); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_EnableCodeCache + * Description : This function enable the Code Cache. + * + *END**************************************************************************/ +void LMEM_EnableCodeCache(LMEM_Type *base) +{ + /* set command to invalidate all ways, enable write buffer */ + /* and write GO bit to initiate command */ + LMEM_PCCCR_REG(base) = LMEM_PCCCR_INVW1_MASK | LMEM_PCCCR_INVW0_MASK; + LMEM_PCCCR_REG(base) |= LMEM_PCCCR_GO_MASK; + + /* wait until the command completes */ + while (LMEM_PCCCR_REG(base) & LMEM_PCCCR_GO_MASK); + + /* Enable cache, enable write buffer */ + LMEM_PCCCR_REG(base) = (LMEM_PCCCR_ENWRBUF_MASK | LMEM_PCCCR_ENCACHE_MASK); + __ISB(); + __DSB(); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_DisableCodeCache + * Description : This function disable the Code Cache. + * + *END**************************************************************************/ +void LMEM_DisableCodeCache(LMEM_Type *base) +{ + LMEM_PCCCR_REG(base) = 0x0; + __ISB(); + __DSB(); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_FlushCodeCache + * Description : This function flush the Code Cache. + * + *END**************************************************************************/ +void LMEM_FlushCodeCache(LMEM_Type *base) +{ + LMEM_PCCCR_REG(base) |= LMEM_PCCCR_PUSHW0_MASK | LMEM_PCCCR_PUSHW1_MASK; + LMEM_PCCCR_REG(base) |= LMEM_PCCCR_GO_MASK; + + /* wait until the command completes */ + while (LMEM_PCCCR_REG(base) & LMEM_PCCCR_GO_MASK); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_FlushCodeCacheLine + * Description : This function is called to push a line out of the + * Code Cache. + * + *END**************************************************************************/ +static void LMEM_FlushCodeCacheLine(LMEM_Type *base, void *address) +{ + assert((uint32_t)address < 0x20000000); + + /* Invalidate by physical address */ + LMEM_PCCLCR_REG(base) = LMEM_PCCLCR_LADSEL_MASK | LMEM_PCCLCR_LCMD(2); + /* Set physical address and activate command */ + LMEM_PCCSAR_REG(base) = ((uint32_t)address & LMEM_PCCSAR_PHYADDR_MASK) | LMEM_PCCSAR_LGO_MASK; + + /* wait until the command completes */ + while (LMEM_PCCSAR_REG(base) & LMEM_PCCSAR_LGO_MASK); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_FlushCodeCacheLines + * Description : This function is called to flush the instruction + * cache by performing cache copy-backs. It must + * determine how many cache lines need to be copied + * back and then perform the copy-backs. + * + *END**************************************************************************/ +void LMEM_FlushCodeCacheLines(LMEM_Type *base, void *address, uint32_t length) +{ + void *endAddress = (void *)((uint32_t)address + length); + + address = (void *) ((uint32_t)address & ~(LMEM_CACHE_LINE_SIZE - 1)); + do + { + LMEM_FlushCodeCacheLine(base, address); + address = (void *)((uint32_t)address + LMEM_CACHE_LINE_SIZE); + } while (address < endAddress); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_InvalidateCodeCache + * Description : This function invalidate the Code Cache. + * + *END**************************************************************************/ +void LMEM_InvalidateCodeCache(LMEM_Type *base) +{ + LMEM_PCCCR_REG(base) |= LMEM_PCCCR_INVW0_MASK | LMEM_PCCCR_INVW1_MASK; + LMEM_PCCCR_REG(base) |= LMEM_PCCCR_GO_MASK; + + /* wait until the command completes */ + while (LMEM_PCCCR_REG(base) & LMEM_PCCCR_GO_MASK); + __ISB(); + __DSB(); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_InvalidateCodeCacheLine + * Description : This function is called to invalidate a line out + * of the Code Cache. + * + *END**************************************************************************/ +static void LMEM_InvalidateCodeCacheLine(LMEM_Type *base, void *address) +{ + assert((uint32_t)address < 0x20000000); + + /* Invalidate by physical address */ + LMEM_PCCLCR_REG(base) = LMEM_PCCLCR_LADSEL_MASK | LMEM_PCCLCR_LCMD(1); + /* Set physical address and activate command */ + LMEM_PCCSAR_REG(base) = ((uint32_t)address & LMEM_PCCSAR_PHYADDR_MASK) | LMEM_PCCSAR_LGO_MASK; + + /* wait until the command completes */ + while (LMEM_PCCSAR_REG(base) & LMEM_PCCSAR_LGO_MASK); +} + +/*FUNCTION********************************************************************** + * + * Function Name : LMEM_InvalidateCodeCacheLines + * Description : This function is responsible for performing an + * Code Cache invalidate. It must determine + * how many cache lines need to be invalidated and then + * perform the invalidation. + * + *END**************************************************************************/ +void LMEM_InvalidateCodeCacheLines(LMEM_Type *base, void *address, uint32_t length) +{ + void *endAddress = (void *)((uint32_t)address + length); + address = (void *)((uint32_t)address & ~(LMEM_CACHE_LINE_SIZE - 1)); + + do + { + LMEM_InvalidateCodeCacheLine(base, address); + address = (void *)((uint32_t)address + LMEM_CACHE_LINE_SIZE); + } while (address < endAddress); + __ISB(); + __DSB(); +} + +/******************************************************************************* + * EOF + ******************************************************************************/ diff --git a/platform/drivers/src/uart_imx.c b/platform/drivers/src/uart_imx.c index f86d559..0f78265 100644 --- a/platform/drivers/src/uart_imx.c +++ b/platform/drivers/src/uart_imx.c @@ -44,7 +44,7 @@ * initialize structure. * *END**************************************************************************/ -void UART_Init(UART_Type* base, uart_init_config_t* initConfig) +void UART_Init(UART_Type* base, const uart_init_config_t* initConfig) { assert(initConfig); @@ -85,16 +85,18 @@ void UART_Deinit(UART_Type* base) UART_UCR1_REG(base) &= ~UART_UCR1_UARTEN_MASK; /* Reset UART Module Register content to default value */ - UART_UCR1_REG(base) = 0x00000000; - UART_UCR2_REG(base) = 0x00000001; - UART_UCR3_REG(base) = 0x00000700; - UART_UCR4_REG(base) = 0x00008000; - UART_UFCR_REG(base) = 0x00000801; - UART_UESC_REG(base) = 0x0000002B; - UART_UTIM_REG(base) = 0x00000000; - UART_ONEMS_REG(base) = 0x00000000; - UART_UTS_REG(base) = 0x00000060; - UART_UMCR_REG(base) = 0x00000000; + UART_UCR1_REG(base) = 0x0; + UART_UCR2_REG(base) = UART_UCR2_SRST_MASK; + UART_UCR3_REG(base) = UART_UCR3_DSR_MASK | + UART_UCR3_DCD_MASK | + UART_UCR3_RI_MASK; + UART_UCR4_REG(base) = UART_UCR4_CTSTL(32); + UART_UFCR_REG(base) = UART_UFCR_TXTL(2) | UART_UFCR_RXTL(1); + UART_UESC_REG(base) = UART_UESC_ESC_CHAR(0x2B); + UART_UTIM_REG(base) = 0x0; + UART_ONEMS_REG(base) = 0x0; + UART_UTS_REG(base) = UART_UTS_TXEMPTY_MASK | UART_UTS_RXEMPTY_MASK; + UART_UMCR_REG(base) = 0x0; /* Reset the transmit and receive state machines, all FIFOs and register * USR1, USR2, UBIR, UBMR, UBRC, URXD, UTXD and UTS[6-3]. */ @@ -179,7 +181,7 @@ void UART_SetBaudRate(UART_Type* base, uint32_t clockRate, uint32_t baudRate) UART_UFCR_REG(base) |= UART_UFCR_RFDIV(refFreqDiv); UART_UBIR_REG(base) = UART_UBIR_INC(denominator - 1); UART_UBMR_REG(base) = UART_UBMR_MOD(numerator / divider - 1); - UART_ONEMS_REG(base) = UART_ONEMS_ONEMS(clockRate/(1000 * refFreqDiv)); + UART_ONEMS_REG(base) = UART_ONEMS_ONEMS(clockRate/(1000 * divider)); } /*FUNCTION********************************************************************** @@ -301,7 +303,7 @@ void UART_ClearStatusFlag(UART_Type* base, uint32_t flag) uart_mask = (1 << (flag & 0x0000FFFF)); /* write 1 to clear. */ - *uart_reg |= uart_mask; + *uart_reg = uart_mask; } /******************************************************************************* @@ -443,7 +445,7 @@ void UART_SetRiPinLevel(UART_Type* base, bool active) } /******************************************************************************* - * Multi-processor and RS-485 functions + * Multiprocessor and RS-485 functions ******************************************************************************/ /*FUNCTION********************************************************************** * @@ -472,11 +474,17 @@ void UAER_Putchar9(UART_Type* base, uint16_t data) *END**************************************************************************/ uint16_t UAER_Getchar9(UART_Type* base) { - uint16_t rxData = 0; + uint16_t rxData = UART_URXD_REG(base); + + if (rxData & UART_URXD_PRERR_MASK) + { + rxData = (rxData & 0x00FF) | 0x0100; + } + else + { + rxData &= 0x00FF; + } - if (UART_URXD_REG(base) & UART_URXD_PRERR_MASK) - rxData |= 0x0100; - rxData |= (UART_URXD_REG(base) & UART_URXD_RX_DATA_MASK); return rxData; } diff --git a/platform/utilities/inc/debug_console_imx.h b/platform/utilities/inc/debug_console_imx.h index 21069b8..6779e67 100644 --- a/platform/utilities/inc/debug_console_imx.h +++ b/platform/utilities/inc/debug_console_imx.h @@ -76,11 +76,11 @@ extern "C" { */ /*! - * @brief Init the UART_IMX used for debug messages. + * @brief Initialize the UART_IMX used for debug messages. * * Call this function to enable debug log messages to be output via the specified UART_IMX * base address and at the specified baud rate. Just initializes the UART_IMX to the given baud - * rate and 8N1. After this function has returned, stdout and stdin will be connected to the + * rate and 8N1. After this function has returned, stdout and stdin are connected to the * selected UART_IMX. The debug_printf() function also uses this UART_IMX. * * @param base Which UART_IMX instance is used to send debug messages. @@ -95,7 +95,7 @@ debug_console_status_t DbgConsole_Init(UART_Type* base, uint32_t mode); /*! - * @brief Deinit the UART/LPUART used for debug messages. + * @brief Deinitialize the UART/LPUART used for debug messages. * * Call this function to disable debug log messages to be output via the specified UART/LPUART * base address and at the specified baud rate. diff --git a/platform/utilities/src/debug_console_imx.c b/platform/utilities/src/debug_console_imx.c index 93c9a3c..a03e441 100644 --- a/platform/utilities/src/debug_console_imx.c +++ b/platform/utilities/src/debug_console_imx.c @@ -366,6 +366,7 @@ void UART_SendDataPolling(void *base, const uint8_t *txBuff, uint32_t txSize) while (txSize--) { UART_Putchar((UART_Type*)base, *txBuff++); + while (!UART_GetStatusFlag((UART_Type*)base, uartStatusTxEmpty)); while (!UART_GetStatusFlag((UART_Type*)base, uartStatusTxComplete)); } } diff --git a/platform/utilities/src/print_scan.c b/platform/utilities/src/print_scan.c index 01667af..6c09099 100644 --- a/platform/utilities/src/print_scan.c +++ b/platform/utilities/src/print_scan.c @@ -756,7 +756,7 @@ static int32_t mkfloatnumstr (char *numstr, void *nump, int32_t radix, uint32_t for (i = 0; i < precision_width; i++) { fb = fa / (int32_t)radix; - c = (int32_t)(fa - (uint64_t)fb * (int32_t)radix); + c = (int32_t)(fa - (int64_t)fb * (int32_t)radix); if (c < 0) { c = ~c + 1 + '0'; @@ -771,20 +771,28 @@ static int32_t mkfloatnumstr (char *numstr, void *nump, int32_t radix, uint32_t *nstrp++ = (char)'.'; ++nlen; a = (int32_t)intpart; - while (a != 0) + if(a == 0) { - b = (int32_t)a / (int32_t)radix; - c = (int32_t)a - ((int32_t)b * (int32_t)radix); - if (c < 0) - { - c = ~c + 1 + '0'; - }else + *nstrp++ = '0'; + ++nlen; + } + else + { + while (a != 0) { - c = c + '0'; + b = (int32_t)a / (int32_t)radix; + c = (int32_t)a - ((int32_t)b * (int32_t)radix); + if (c < 0) + { + c = ~c + 1 + '0'; + }else + { + c = c + '0'; + } + a = b; + *nstrp++ = (char)c; + ++nlen; } - a = b; - *nstrp++ = (char)c; - ++nlen; } done: return nlen; diff --git a/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c b/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c deleted file mode 100644 index e78573a..0000000 --- a/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c +++ /dev/null @@ -1,639 +0,0 @@ -/* - FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/*----------------------------------------------------------- - * Implementation of functions defined in portable.h for the ARM CM4F port. - *----------------------------------------------------------*/ - -/* Compiler includes. */ -#include - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "task.h" - -#ifndef __ARMVFP__ - #error This port can only be used when the project options are configured to enable hardware floating point support. -#endif - -#if configMAX_SYSCALL_INTERRUPT_PRIORITY == 0 - #error configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to 0. See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html -#endif - -#ifndef configSYSTICK_CLOCK_HZ - #define configSYSTICK_CLOCK_HZ configCPU_CLOCK_HZ - /* Ensure the SysTick is clocked at the same frequency as the core. */ - #define portNVIC_SYSTICK_CLK_BIT ( 1UL << 2UL ) -#else - /* The way the SysTick is clocked is not modified in case it is not the same - as the core. */ - #define portNVIC_SYSTICK_CLK_BIT ( 0 ) -#endif - -/* Constants required to manipulate the core. Registers first... */ -#define portNVIC_SYSTICK_CTRL_REG ( * ( ( volatile uint32_t * ) 0xe000e010 ) ) -#define portNVIC_SYSTICK_LOAD_REG ( * ( ( volatile uint32_t * ) 0xe000e014 ) ) -#define portNVIC_SYSTICK_CURRENT_VALUE_REG ( * ( ( volatile uint32_t * ) 0xe000e018 ) ) -#define portNVIC_SYSPRI2_REG ( * ( ( volatile uint32_t * ) 0xe000ed20 ) ) -/* ...then bits in the registers. */ -#define portNVIC_SYSTICK_INT_BIT ( 1UL << 1UL ) -#define portNVIC_SYSTICK_ENABLE_BIT ( 1UL << 0UL ) -#define portNVIC_SYSTICK_COUNT_FLAG_BIT ( 1UL << 16UL ) -#define portNVIC_PENDSVCLEAR_BIT ( 1UL << 27UL ) -#define portNVIC_PEND_SYSTICK_CLEAR_BIT ( 1UL << 25UL ) - -#define portNVIC_PENDSV_PRI ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 16UL ) -#define portNVIC_SYSTICK_PRI ( ( ( uint32_t ) configKERNEL_INTERRUPT_PRIORITY ) << 24UL ) - -/* Constants required to check the validity of an interrupt priority. */ -#define portFIRST_USER_INTERRUPT_NUMBER ( 16 ) -#define portNVIC_IP_REGISTERS_OFFSET_16 ( 0xE000E3F0 ) -#define portAIRCR_REG ( * ( ( volatile uint32_t * ) 0xE000ED0C ) ) -#define portMAX_8_BIT_VALUE ( ( uint8_t ) 0xff ) -#define portTOP_BIT_OF_BYTE ( ( uint8_t ) 0x80 ) -#define portMAX_PRIGROUP_BITS ( ( uint8_t ) 7 ) -#define portPRIORITY_GROUP_MASK ( 0x07UL << 8UL ) -#define portPRIGROUP_SHIFT ( 8UL ) - -/* Constants required to manipulate the VFP. */ -#define portFPCCR ( ( volatile uint32_t * ) 0xe000ef34 ) /* Floating point context control register. */ -#define portASPEN_AND_LSPEN_BITS ( 0x3UL << 30UL ) - -/* Constants required to set up the initial stack. */ -#define portINITIAL_XPSR ( 0x01000000 ) -#define portINITIAL_EXEC_RETURN ( 0xfffffffd ) - -/* The systick is a 24-bit counter. */ -#define portMAX_24_BIT_NUMBER ( 0xffffffUL ) - -/* A fiddle factor to estimate the number of SysTick counts that would have -occurred while the SysTick counter is stopped during tickless idle -calculations. */ -#define portMISSED_COUNTS_FACTOR ( 45UL ) - - -/* Each task maintains its own interrupt status in the critical nesting -variable. */ -static UBaseType_t uxCriticalNesting = 0xaaaaaaaa; - -/* - * Setup the timer to generate the tick interrupts. The implementation in this - * file is weak to allow application writers to change the timer used to - * generate the tick interrupt. - */ -void vPortSetupTimerInterrupt( void ); - -/* - * Exception handlers. - */ -void xPortSysTickHandler( void ); - -/* - * Start first task is a separate function so it can be tested in isolation. - */ -extern void vPortStartFirstTask( void ); - -/* - * Turn the VFP on. - */ -extern void vPortEnableVFP( void ); - -/* - * Used to catch tasks that attempt to return from their implementing function. - */ -static void prvTaskExitError( void ); - -/*-----------------------------------------------------------*/ - -/* - * The number of SysTick increments that make up one tick period. - */ -#if configUSE_TICKLESS_IDLE == 1 - static uint32_t ulTimerCountsForOneTick = 0; -#endif /* configUSE_TICKLESS_IDLE */ - -/* - * The maximum number of tick periods that can be suppressed is limited by the - * 24 bit resolution of the SysTick timer. - */ -#if configUSE_TICKLESS_IDLE == 1 - static uint32_t xMaximumPossibleSuppressedTicks = 0; -#endif /* configUSE_TICKLESS_IDLE */ - -/* - * Compensate for the CPU cycles that pass while the SysTick is stopped (low - * power functionality only. - */ -#if configUSE_TICKLESS_IDLE == 1 - static uint32_t ulStoppedTimerCompensation = 0; -#endif /* configUSE_TICKLESS_IDLE */ - -/* - * Used by the portASSERT_IF_INTERRUPT_PRIORITY_INVALID() macro to ensure - * FreeRTOS API functions are not called from interrupts that have been assigned - * a priority above configMAX_SYSCALL_INTERRUPT_PRIORITY. - */ -#if ( configASSERT_DEFINED == 1 ) - static uint8_t ucMaxSysCallPriority = 0; - static uint32_t ulMaxPRIGROUPValue = 0; - static const volatile uint8_t * const pcInterruptPriorityRegisters = ( const volatile uint8_t * const ) portNVIC_IP_REGISTERS_OFFSET_16; -#endif /* configASSERT_DEFINED */ - -/*-----------------------------------------------------------*/ - -/* - * See header file for description. - */ -StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters ) -{ - /* Simulate the stack frame as it would be created by a context switch - interrupt. */ - - /* Offset added to account for the way the MCU uses the stack on entry/exit - of interrupts, and to ensure alignment. */ - pxTopOfStack--; - - *pxTopOfStack = portINITIAL_XPSR; /* xPSR */ - pxTopOfStack--; - *pxTopOfStack = ( StackType_t ) pxCode; /* PC */ - pxTopOfStack--; - *pxTopOfStack = ( StackType_t ) prvTaskExitError; /* LR */ - - /* Save code space by skipping register initialisation. */ - pxTopOfStack -= 5; /* R12, R3, R2 and R1. */ - *pxTopOfStack = ( StackType_t ) pvParameters; /* R0 */ - - /* A save method is being used that requires each task to maintain its - own exec return value. */ - pxTopOfStack--; - *pxTopOfStack = portINITIAL_EXEC_RETURN; - - pxTopOfStack -= 8; /* R11, R10, R9, R8, R7, R6, R5 and R4. */ - - return pxTopOfStack; -} -/*-----------------------------------------------------------*/ - -static void prvTaskExitError( void ) -{ - /* A function that implements a task must not exit or attempt to return to - its caller as there is nothing to return to. If a task wants to exit it - should instead call vTaskDelete( NULL ). - - Artificially force an assert() to be triggered if configASSERT() is - defined, then stop here so application writers can catch the error. */ - configASSERT( uxCriticalNesting == ~0UL ); - portDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -/* - * See header file for description. - */ -BaseType_t xPortStartScheduler( void ) -{ - #if( configASSERT_DEFINED == 1 ) - { - volatile uint32_t ulOriginalPriority; - volatile uint8_t * const pucFirstUserPriorityRegister = ( volatile uint8_t * const ) ( portNVIC_IP_REGISTERS_OFFSET_16 + portFIRST_USER_INTERRUPT_NUMBER ); - volatile uint8_t ucMaxPriorityValue; - - /* Determine the maximum priority from which ISR safe FreeRTOS API - functions can be called. ISR safe functions are those that end in - "FromISR". FreeRTOS maintains separate thread and ISR API functions to - ensure interrupt entry is as fast and simple as possible. - - Save the interrupt priority value that is about to be clobbered. */ - ulOriginalPriority = *pucFirstUserPriorityRegister; - - /* Determine the number of priority bits available. First write to all - possible bits. */ - *pucFirstUserPriorityRegister = portMAX_8_BIT_VALUE; - - /* Read the value back to see how many bits stuck. */ - ucMaxPriorityValue = *pucFirstUserPriorityRegister; - - /* Use the same mask on the maximum system call priority. */ - ucMaxSysCallPriority = configMAX_SYSCALL_INTERRUPT_PRIORITY & ucMaxPriorityValue; - - /* Calculate the maximum acceptable priority group value for the number - of bits read back. */ - ulMaxPRIGROUPValue = portMAX_PRIGROUP_BITS; - while( ( ucMaxPriorityValue & portTOP_BIT_OF_BYTE ) == portTOP_BIT_OF_BYTE ) - { - ulMaxPRIGROUPValue--; - ucMaxPriorityValue <<= ( uint8_t ) 0x01; - } - - /* Shift the priority group value back to its position within the AIRCR - register. */ - ulMaxPRIGROUPValue <<= portPRIGROUP_SHIFT; - ulMaxPRIGROUPValue &= portPRIORITY_GROUP_MASK; - - /* Restore the clobbered interrupt priority register to its original - value. */ - *pucFirstUserPriorityRegister = ulOriginalPriority; - } - #endif /* conifgASSERT_DEFINED */ - - /* Make PendSV and SysTick the lowest priority interrupts. */ - portNVIC_SYSPRI2_REG |= portNVIC_PENDSV_PRI; - portNVIC_SYSPRI2_REG |= portNVIC_SYSTICK_PRI; - - /* Start the timer that generates the tick ISR. Interrupts are disabled - here already. */ - vPortSetupTimerInterrupt(); - - /* Initialise the critical nesting count ready for the first task. */ - uxCriticalNesting = 0; - - /* Ensure the VFP is enabled - it should be anyway. */ - vPortEnableVFP(); - - /* Lazy save always. */ - *( portFPCCR ) |= portASPEN_AND_LSPEN_BITS; - - /* Start the first task. */ - vPortStartFirstTask(); - - /* Should not get here! */ - return 0; -} -/*-----------------------------------------------------------*/ - -void vPortEndScheduler( void ) -{ - /* Not implemented in ports where there is nothing to return to. - Artificially force an assert. */ - configASSERT( uxCriticalNesting == 1000UL ); -} -/*-----------------------------------------------------------*/ - -void vPortYield( void ) -{ - /* Set a PendSV to request a context switch. */ - portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; - - /* Barriers are normally not required but do ensure the code is completely - within the specified behaviour for the architecture. */ - __DSB(); - __ISB(); -} -/*-----------------------------------------------------------*/ - -void vPortEnterCritical( void ) -{ - portDISABLE_INTERRUPTS(); - uxCriticalNesting++; - __DSB(); - __ISB(); -} -/*-----------------------------------------------------------*/ - -void vPortExitCritical( void ) -{ - configASSERT( uxCriticalNesting ); - uxCriticalNesting--; - if( uxCriticalNesting == 0 ) - { - portENABLE_INTERRUPTS(); - } -} -/*-----------------------------------------------------------*/ - -void xPortSysTickHandler( void ) -{ - /* The SysTick runs at the lowest interrupt priority, so when this interrupt - executes all interrupts must be unmasked. There is therefore no need to - save and then restore the interrupt mask value as its value is already - known. */ - ( void ) portSET_INTERRUPT_MASK_FROM_ISR(); - { - /* Increment the RTOS tick. */ - if( xTaskIncrementTick() != pdFALSE ) - { - /* A context switch is required. Context switching is performed in - the PendSV interrupt. Pend the PendSV interrupt. */ - portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT; - } - } - portCLEAR_INTERRUPT_MASK_FROM_ISR( 0 ); -} -/*-----------------------------------------------------------*/ - -#if configUSE_TICKLESS_IDLE == 1 - - __weak void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ) - { - uint32_t ulReloadValue, ulCompleteTickPeriods, ulCompletedSysTickDecrements, ulSysTickCTRL; - TickType_t xModifiableIdleTime; - - /* Make sure the SysTick reload value does not overflow the counter. */ - if( xExpectedIdleTime > xMaximumPossibleSuppressedTicks ) - { - xExpectedIdleTime = xMaximumPossibleSuppressedTicks; - } - - /* Stop the SysTick momentarily. The time the SysTick is stopped for - is accounted for as best it can be, but using the tickless mode will - inevitably result in some tiny drift of the time maintained by the - kernel with respect to calendar time. */ - portNVIC_SYSTICK_CTRL_REG &= ~portNVIC_SYSTICK_ENABLE_BIT; - - /* Calculate the reload value required to wait xExpectedIdleTime - tick periods. -1 is used because this code will execute part way - through one of the tick periods. */ - ulReloadValue = portNVIC_SYSTICK_CURRENT_VALUE_REG + ( ulTimerCountsForOneTick * ( xExpectedIdleTime - 1UL ) ); - if( ulReloadValue > ulStoppedTimerCompensation ) - { - ulReloadValue -= ulStoppedTimerCompensation; - } - - /* Enter a critical section but don't use the taskENTER_CRITICAL() - method as that will mask interrupts that should exit sleep mode. */ - __disable_interrupt(); - - /* If a context switch is pending or a task is waiting for the scheduler - to be unsuspended then abandon the low power entry. */ - if( eTaskConfirmSleepModeStatus() == eAbortSleep ) - { - /* Restart from whatever is left in the count register to complete - this tick period. */ - portNVIC_SYSTICK_LOAD_REG = portNVIC_SYSTICK_CURRENT_VALUE_REG; - - /* Restart SysTick. */ - portNVIC_SYSTICK_CTRL_REG |= portNVIC_SYSTICK_ENABLE_BIT; - - /* Reset the reload register to the value required for normal tick - periods. */ - portNVIC_SYSTICK_LOAD_REG = ulTimerCountsForOneTick - 1UL; - - /* Re-enable interrupts - see comments above __disable_interrupt() - call above. */ - __enable_interrupt(); - } - else - { - /* Set the new reload value. */ - portNVIC_SYSTICK_LOAD_REG = ulReloadValue; - - /* Clear the SysTick count flag and set the count value back to - zero. */ - portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL; - - /* Restart SysTick. */ - portNVIC_SYSTICK_CTRL_REG |= portNVIC_SYSTICK_ENABLE_BIT; - - /* Sleep until something happens. configPRE_SLEEP_PROCESSING() can - set its parameter to 0 to indicate that its implementation contains - its own wait for interrupt or wait for event instruction, and so wfi - should not be executed again. However, the original expected idle - time variable must remain unmodified, so a copy is taken. */ - xModifiableIdleTime = xExpectedIdleTime; - configPRE_SLEEP_PROCESSING( xModifiableIdleTime ); - if( xModifiableIdleTime > 0 ) - { - __DSB(); - __WFI(); - __ISB(); - } - configPOST_SLEEP_PROCESSING( xExpectedIdleTime ); - - /* Stop SysTick. Again, the time the SysTick is stopped for is - accounted for as best it can be, but using the tickless mode will - inevitably result in some tiny drift of the time maintained by the - kernel with respect to calendar time. */ - ulSysTickCTRL = portNVIC_SYSTICK_CTRL_REG; - portNVIC_SYSTICK_CTRL_REG = ( ulSysTickCTRL & ~portNVIC_SYSTICK_ENABLE_BIT ); - - /* Re-enable interrupts - see comments above __disable_interrupt() - call above. */ - __enable_interrupt(); - - if( ( ulSysTickCTRL & portNVIC_SYSTICK_COUNT_FLAG_BIT ) != 0 ) - { - uint32_t ulCalculatedLoadValue; - - /* The tick interrupt has already executed, and the SysTick - count reloaded with ulReloadValue. Reset the - portNVIC_SYSTICK_LOAD_REG with whatever remains of this tick - period. */ - ulCalculatedLoadValue = ( ulTimerCountsForOneTick - 1UL ) - ( ulReloadValue - portNVIC_SYSTICK_CURRENT_VALUE_REG ); - - /* Don't allow a tiny value, or values that have somehow - underflowed because the post sleep hook did something - that took too long. */ - if( ( ulCalculatedLoadValue < ulStoppedTimerCompensation ) || ( ulCalculatedLoadValue > ulTimerCountsForOneTick ) ) - { - ulCalculatedLoadValue = ( ulTimerCountsForOneTick - 1UL ); - } - - portNVIC_SYSTICK_LOAD_REG = ulCalculatedLoadValue; - - /* The tick interrupt handler will already have pended the tick - processing in the kernel. As the pending tick will be - processed as soon as this function exits, the tick value - maintained by the tick is stepped forward by one less than the - time spent waiting. */ - ulCompleteTickPeriods = xExpectedIdleTime - 1UL; - } - else - { - /* Something other than the tick interrupt ended the sleep. - Work out how long the sleep lasted rounded to complete tick - periods (not the ulReload value which accounted for part - ticks). */ - ulCompletedSysTickDecrements = ( xExpectedIdleTime * ulTimerCountsForOneTick ) - portNVIC_SYSTICK_CURRENT_VALUE_REG; - - /* How many complete tick periods passed while the processor - was waiting? */ - ulCompleteTickPeriods = ulCompletedSysTickDecrements / ulTimerCountsForOneTick; - - /* The reload value is set to whatever fraction of a single tick - period remains. */ - portNVIC_SYSTICK_LOAD_REG = ( ( ulCompleteTickPeriods + 1 ) * ulTimerCountsForOneTick ) - ulCompletedSysTickDecrements; - } - - /* Restart SysTick so it runs from portNVIC_SYSTICK_LOAD_REG - again, then set portNVIC_SYSTICK_LOAD_REG back to its standard - value. The critical section is used to ensure the tick interrupt - can only execute once in the case that the reload register is near - zero. */ - portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL; - portENTER_CRITICAL(); - { - portNVIC_SYSTICK_CTRL_REG |= portNVIC_SYSTICK_ENABLE_BIT; - vTaskStepTick( ulCompleteTickPeriods ); - portNVIC_SYSTICK_LOAD_REG = ulTimerCountsForOneTick - 1UL; - } - portEXIT_CRITICAL(); - } - } - -#endif /* #if configUSE_TICKLESS_IDLE */ -/*-----------------------------------------------------------*/ - -/* - * Setup the systick timer to generate the tick interrupts at the required - * frequency. - */ -__weak void vPortSetupTimerInterrupt( void ) -{ - /* Calculate the constants required to configure the tick interrupt. */ - #if configUSE_TICKLESS_IDLE == 1 - { - ulTimerCountsForOneTick = ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ); - xMaximumPossibleSuppressedTicks = portMAX_24_BIT_NUMBER / ulTimerCountsForOneTick; - ulStoppedTimerCompensation = portMISSED_COUNTS_FACTOR / ( configCPU_CLOCK_HZ / configSYSTICK_CLOCK_HZ ); - } - #endif /* configUSE_TICKLESS_IDLE */ - - /* Configure SysTick to interrupt at the requested rate. */ - portNVIC_SYSTICK_LOAD_REG = ( configSYSTICK_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL; - portNVIC_SYSTICK_CTRL_REG = ( portNVIC_SYSTICK_CLK_BIT | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT ); -} -/*-----------------------------------------------------------*/ - -#if( configASSERT_DEFINED == 1 ) - - void vPortValidateInterruptPriority( void ) - { - uint32_t ulCurrentInterrupt; - uint8_t ucCurrentPriority; - - /* Obtain the number of the currently executing interrupt. */ - __asm volatile( "mrs %0, ipsr" : "=r"( ulCurrentInterrupt ) ); - - /* Is the interrupt number a user defined interrupt? */ - if( ulCurrentInterrupt >= portFIRST_USER_INTERRUPT_NUMBER ) - { - /* Look up the interrupt's priority. */ - ucCurrentPriority = pcInterruptPriorityRegisters[ ulCurrentInterrupt ]; - - /* The following assertion will fail if a service routine (ISR) for - an interrupt that has been assigned a priority above - configMAX_SYSCALL_INTERRUPT_PRIORITY calls an ISR safe FreeRTOS API - function. ISR safe FreeRTOS API functions must *only* be called - from interrupts that have been assigned a priority at or below - configMAX_SYSCALL_INTERRUPT_PRIORITY. - - Numerically low interrupt priority numbers represent logically high - interrupt priorities, therefore the priority of the interrupt must - be set to a value equal to or numerically *higher* than - configMAX_SYSCALL_INTERRUPT_PRIORITY. - - Interrupts that use the FreeRTOS API must not be left at their - default priority of zero as that is the highest possible priority, - which is guaranteed to be above configMAX_SYSCALL_INTERRUPT_PRIORITY, - and therefore also guaranteed to be invalid. - - FreeRTOS maintains separate thread and ISR API functions to ensure - interrupt entry is as fast and simple as possible. - - The following links provide detailed information: - http://www.freertos.org/RTOS-Cortex-M3-M4.html - http://www.freertos.org/FAQHelp.html */ - configASSERT( ucCurrentPriority >= ucMaxSysCallPriority ); - } - - /* Priority grouping: The interrupt controller (NVIC) allows the bits - that define each interrupt's priority to be split between bits that - define the interrupt's pre-emption priority bits and bits that define - the interrupt's sub-priority. For simplicity all bits must be defined - to be pre-emption priority bits. The following assertion will fail if - this is not the case (if some bits represent a sub-priority). - - If the application only uses CMSIS libraries for interrupt - configuration then the correct setting can be achieved on all Cortex-M - devices by calling NVIC_SetPriorityGrouping( 0 ); before starting the - scheduler. Note however that some vendor specific peripheral libraries - assume a non-zero priority group setting, in which cases using a value - of zero will result in unpredicable behaviour. */ - configASSERT( ( portAIRCR_REG & portPRIORITY_GROUP_MASK ) <= ulMaxPRIGROUPValue ); - } - -#endif /* configASSERT_DEFINED */ - - - - - - - - - - - - - - - - - - - - - diff --git a/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s b/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s deleted file mode 100644 index e80e5fa..0000000 --- a/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s +++ /dev/null @@ -1,194 +0,0 @@ -/* - FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -#include - - RSEG CODE:CODE(2) - thumb - - EXTERN pxCurrentTCB - EXTERN vTaskSwitchContext - - PUBLIC xPortPendSVHandler - PUBLIC ulPortSetInterruptMask - PUBLIC vPortClearInterruptMask - PUBLIC vPortSVCHandler - PUBLIC vPortStartFirstTask - PUBLIC vPortEnableVFP - - -/*-----------------------------------------------------------*/ - -xPortPendSVHandler: - mrs r0, psp - isb - /* Get the location of the current TCB. */ - ldr r3, =pxCurrentTCB - ldr r2, [r3] - - /* Is the task using the FPU context? If so, push high vfp registers. */ - tst r14, #0x10 - it eq - vstmdbeq r0!, {s16-s31} - - /* Save the core registers. */ - stmdb r0!, {r4-r11, r14} - - /* Save the new top of stack into the first member of the TCB. */ - str r0, [r2] - - stmdb sp!, {r3} - mov r0, #configMAX_SYSCALL_INTERRUPT_PRIORITY - msr basepri, r0 - bl vTaskSwitchContext - mov r0, #0 - msr basepri, r0 - ldmia sp!, {r3} - - /* The first item in pxCurrentTCB is the task top of stack. */ - ldr r1, [r3] - ldr r0, [r1] - - /* Pop the core registers. */ - ldmia r0!, {r4-r11, r14} - - /* Is the task using the FPU context? If so, pop the high vfp registers - too. */ - tst r14, #0x10 - it eq - vldmiaeq r0!, {s16-s31} - - msr psp, r0 - isb - #ifdef WORKAROUND_PMU_CM001 /* XMC4000 specific errata */ - #if WORKAROUND_PMU_CM001 == 1 - push { r14 } - pop { pc } - #endif - #endif - - bx r14 - - -/*-----------------------------------------------------------*/ - -ulPortSetInterruptMask: - mrs r0, basepri - mov r1, #configMAX_SYSCALL_INTERRUPT_PRIORITY - msr basepri, r1 - bx r14 - -/*-----------------------------------------------------------*/ - -vPortClearInterruptMask: - msr basepri, r0 - bx r14 - -/*-----------------------------------------------------------*/ - -vPortSVCHandler: - /* Get the location of the current TCB. */ - ldr r3, =pxCurrentTCB - ldr r1, [r3] - ldr r0, [r1] - /* Pop the core registers. */ - ldmia r0!, {r4-r11, r14} - msr psp, r0 - isb - mov r0, #0 - msr basepri, r0 - bx r14 - -/*-----------------------------------------------------------*/ - -vPortStartFirstTask - /* Use the NVIC offset register to locate the stack. */ - ldr r0, =0xE000ED08 - ldr r0, [r0] - ldr r0, [r0] - /* Set the msp back to the start of the stack. */ - msr msp, r0 - /* Call SVC to start the first task. */ - cpsie i - dsb - isb - svc 0 - -/*-----------------------------------------------------------*/ - -vPortEnableVFP: - /* The FPU enable bits are in the CPACR. */ - ldr.w r0, =0xE000ED88 - ldr r1, [r0] - - /* Enable CP10 and CP11 coprocessors, then save back. */ - orr r1, r1, #( 0xf << 20 ) - str r1, [r0] - bx r14 - - - - END - diff --git a/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h b/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h deleted file mode 100644 index a956142..0000000 --- a/rtos/FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h +++ /dev/null @@ -1,189 +0,0 @@ -/* - FreeRTOS V8.0.0 - Copyright (C) 2014 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that has become a de facto standard. * - * * - * Help yourself get started quickly and support the FreeRTOS * - * project by purchasing a FreeRTOS tutorial book, reference * - * manual, or both from: http://www.FreeRTOS.org/Documentation * - * * - * Thank you! * - * * - *************************************************************************** - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - >>! NOTE: The modification to the GPL is included to allow you to distribute - >>! a combined work that includes FreeRTOS without being obliged to provide - >>! the source code for proprietary components outside of the FreeRTOS - >>! kernel. - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available from the following - link: http://www.freertos.org/a00114.html - - 1 tab == 4 spaces! - - *************************************************************************** - * * - * Having a problem? Start by reading the FAQ "My application does * - * not run, what could be wrong?" * - * * - * http://www.FreeRTOS.org/FAQHelp.html * - * * - *************************************************************************** - - http://www.FreeRTOS.org - Documentation, books, training, latest versions, - license and Real Time Engineers Ltd. contact details. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High - Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -#ifndef PORTMACRO_H -#define PORTMACRO_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*----------------------------------------------------------- - * Port specific definitions. - * - * The settings in this file configure FreeRTOS correctly for the - * given hardware and compiler. - * - * These settings should not be altered. - *----------------------------------------------------------- - */ - -/* Type definitions. */ -#define portCHAR char -#define portFLOAT float -#define portDOUBLE double -#define portLONG long -#define portSHORT short -#define portSTACK_TYPE uint32_t -#define portBASE_TYPE long - -typedef portSTACK_TYPE StackType_t; -typedef long BaseType_t; -typedef unsigned long UBaseType_t; - -#if( configUSE_16_BIT_TICKS == 1 ) - typedef uint16_t TickType_t; - #define portMAX_DELAY ( TickType_t ) 0xffff -#else - typedef uint32_t TickType_t; - #define portMAX_DELAY ( TickType_t ) 0xffffffffUL -#endif -/*-----------------------------------------------------------*/ - -/* Architecture specifics. */ -#define portSTACK_GROWTH ( -1 ) -#define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ ) -#define portBYTE_ALIGNMENT 8 -/*-----------------------------------------------------------*/ - -/* Scheduler utilities. */ -extern void vPortYield( void ); -#define portNVIC_INT_CTRL_REG ( * ( ( volatile uint32_t * ) 0xe000ed04 ) ) -#define portNVIC_PENDSVSET_BIT ( 1UL << 28UL ) -#define portYIELD() vPortYield() -#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) portNVIC_INT_CTRL_REG = portNVIC_PENDSVSET_BIT -#define portYIELD_FROM_ISR( x ) portEND_SWITCHING_ISR( x ) -/*-----------------------------------------------------------*/ - -/* Architecture specific optimisations. */ -#if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 - - /* Check the configuration. */ - #if( configMAX_PRIORITIES > 32 ) - #error configUSE_PORT_OPTIMISED_TASK_SELECTION can only be set to 1 when configMAX_PRIORITIES is less than or equal to 32. It is very rare that a system requires more than 10 to 15 difference priorities as tasks that share a priority will time slice. - #endif - - /* Store/clear the ready priorities in a bit map. */ - #define portRECORD_READY_PRIORITY( uxPriority, uxReadyPriorities ) ( uxReadyPriorities ) |= ( 1UL << ( uxPriority ) ) - #define portRESET_READY_PRIORITY( uxPriority, uxReadyPriorities ) ( uxReadyPriorities ) &= ~( 1UL << ( uxPriority ) ) - - /*-----------------------------------------------------------*/ - - #include - #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) uxTopPriority = ( 31 - __CLZ( ( uxReadyPriorities ) ) ) - -#endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */ -/*-----------------------------------------------------------*/ - -/* Critical section management. */ -extern void vPortEnterCritical( void ); -extern void vPortExitCritical( void ); -extern uint32_t ulPortSetInterruptMask( void ); -extern void vPortClearInterruptMask( uint32_t ulNewMask ); - -#define portDISABLE_INTERRUPTS() ulPortSetInterruptMask() -#define portENABLE_INTERRUPTS() vPortClearInterruptMask( 0 ) -#define portENTER_CRITICAL() vPortEnterCritical() -#define portEXIT_CRITICAL() vPortExitCritical() -#define portSET_INTERRUPT_MASK_FROM_ISR() ulPortSetInterruptMask() -#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) vPortClearInterruptMask( x ) -/*-----------------------------------------------------------*/ - -/* Tickless idle/low power functionality. */ -#ifndef portSUPPRESS_TICKS_AND_SLEEP - extern void vPortSuppressTicksAndSleep( TickType_t xExpectedIdleTime ); - #define portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ) vPortSuppressTicksAndSleep( xExpectedIdleTime ) -#endif - -/*-----------------------------------------------------------*/ - -/* Task function macros as described on the FreeRTOS.org WEB site. These are -not necessary for to use this port. They are defined so the common demo files -(which build with all the ports) will build. */ -#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters ) -#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters ) -/*-----------------------------------------------------------*/ - -#ifdef configASSERT - void vPortValidateInterruptPriority( void ); - #define portASSERT_IF_INTERRUPT_PRIORITY_INVALID() vPortValidateInterruptPriority() -#endif - -/* portNOP() is not required by this port. */ -#define portNOP() - -/* Suppress warnings that are generated by the IAR tools, but cannot be fixed in -the source code because to do so would cause other compilers to generate -warnings. */ -#pragma diag_suppress=Pe191 -#pragma diag_suppress=Pa082 - -#ifdef __cplusplus -} -#endif - -#endif /* PORTMACRO_H */ - -- cgit v1.2.3