diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindgen.h b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindgen.h deleted file mode 100644 index 595262f8..00000000 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindgen.h +++ /dev/null @@ -1,6 +0,0 @@ - -#include -#include -#include -#include -#include "../../Source/tasks.c" \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/bindgen.h b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/bindgen.h new file mode 100644 index 00000000..15956d13 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/bindgen.h @@ -0,0 +1,8 @@ + +#include +#include +#include +#include +#include +#include "../../../Source/queue.c" +#include "../../../Source/tasks.c" \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/header.rs b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/header.rs new file mode 100644 index 00000000..ec0d3905 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/header.rs @@ -0,0 +1,4 @@ +#![allow(non_camel_case_types,non_snake_case,non_upper_case_globals,deref_nullptr,unused)] +use serde::{Deserialize, Serialize}; + +/*========== Start of generated Code =============*/ diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/make_header.sh b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/make_header.sh new file mode 100644 index 00000000..a96abd92 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/make_header.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +rm -f bindings.i bindings.rs _bindings.rs _header.rs +arm-none-eabi-gcc -E bindgen.h \ + -I ../../../Source/include -I ../../../Source/portable/GCC/ARM_CM3 -I .. > bindings.i +bindgen bindings.i --ignore-functions --no-layout-tests \ + --allowlist-type "TaskStatus_t|List_t|QueueHandle_t|Queue_t|TCB_t" \ + -- --target=armv7a-none-eabi > _bindings.rs + +while IFS= read -r line; do +echo pub type $line = "::std::os::raw::c_uint;" | sed -f transform.sed +done <<< "$(grep -oE "\*mut [A-Z:_a-z0-9]*|\*const [A-Z:a-z_]*char" _bindings.rs | sort | uniq)" > _header.rs + +cat header.rs _header.rs _bindings.rs | sed -f transform.sed > bindings.rs + +rm -f bindings.i _bindings.rs _header.rs \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/transform.sed b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/transform.sed similarity index 100% rename from FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/transform.sed rename to FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/bindings/transform.sed diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/typeheader.rs b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/typeheader.rs deleted file mode 100644 index b739e5bf..00000000 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/typeheader.rs +++ /dev/null @@ -1,8 +0,0 @@ -// Manual Types -pub type xLIST_ITEM_ptr = ::std::os::raw::c_uint; -pub type xLIST_ptr = ::std::os::raw::c_uint; -pub type ListItem_t_ptr = ::std::os::raw::c_uint; -pub type StackType_t_ptr = ::std::os::raw::c_uint; -pub type char_ptr = ::std::os::raw::c_uint; -pub type void_ptr = ::std::os::raw::c_uint; - diff --git a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/write_header.sh b/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/write_header.sh deleted file mode 100644 index 8393e725..00000000 --- a/FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC/write_header.sh +++ /dev/null @@ -1,3 +0,0 @@ -while IFS= read -r line; do -echo pub type $line = "::std::os::raw::c_uint;" | sed -f transform.sed -done <<< "$(grep -oE "\*mut [A-Z:_a-z]*|\*const [A-Z:a-z_]*char" build/bindings.rs | sort | uniq)" > build/header.rs \ No newline at end of file