diff --git a/Firmware/Board/v3.3/0001-fix-return-type-of-osSemaphoreWait.patch b/Firmware/Board/v3.3/0001-fix-return-type-of-osSemaphoreWait.patch new file mode 100644 index 00000000..b5a72591 --- /dev/null +++ b/Firmware/Board/v3.3/0001-fix-return-type-of-osSemaphoreWait.patch @@ -0,0 +1,46 @@ +From 49353ccb7023c02c2bc6e3b6f14fac02a13fe599 Mon Sep 17 00:00:00 2001 +From: Samuel Sadok +Date: Mon, 26 Feb 2018 14:55:17 -0800 +Subject: [PATCH] fix return type of osSemaphoreWait + +--- + .../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c | 6 +++--- + .../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h | 6 +++--- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c b/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c +index d0e0fd7..e764cbc 100644 +--- a/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c ++++ b/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.c +@@ -816,10 +816,10 @@ osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t + * @brief Wait until a Semaphore token becomes available + * @param semaphore_id semaphore object referenced with \ref osSemaphore. + * @param millisec timeout value or 0 in case of no time-out. +-* @retval number of available tokens, or -1 in case of incorrect parameters. ++* @retval status code that indicates the execution status of the function. + * @note MUST REMAIN UNCHANGED: \b osSemaphoreWait shall be consistent in every CMSIS-RTOS. + */ +-int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec) ++osStatus osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec) + { + TickType_t ticks; + portBASE_TYPE taskWoken = pdFALSE; +diff --git a/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h b/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h +index 15e25b9..5223f8e 100644 +--- a/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h ++++ b/Firmware/Board/v3.3/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS/cmsis_os.h +@@ -719,9 +719,9 @@ osSemaphoreId osSemaphoreCreate (const osSemaphoreDef_t *semaphore_def, int32_t + /// Wait until a Semaphore token becomes available. + /// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate. + /// \param[in] millisec timeout value or 0 in case of no time-out. +-/// \return number of available tokens, or -1 in case of incorrect parameters. ++/// \return status code that indicates the execution status of the function. + /// \note MUST REMAIN UNCHANGED: \b osSemaphoreWait shall be consistent in every CMSIS-RTOS. +-int32_t osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec); ++osStatus osSemaphoreWait (osSemaphoreId semaphore_id, uint32_t millisec); + + /// Release a Semaphore token. + /// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate. +-- +2.16.1 + diff --git a/Firmware/Board/v3.3/0001-release-sem_usb_tx-in-usbd_cdc.c.patch b/Firmware/Board/v3.3/0001-release-sem_usb_tx-in-usbd_cdc.c.patch new file mode 100644 index 00000000..93bcfa38 --- /dev/null +++ b/Firmware/Board/v3.3/0001-release-sem_usb_tx-in-usbd_cdc.c.patch @@ -0,0 +1,35 @@ +From 965f7f2c80e30d7a66dcac7abaa9bdc371d9ea51 Mon Sep 17 00:00:00 2001 +From: Samuel Sadok +Date: Mon, 26 Feb 2018 14:53:52 -0800 +Subject: [PATCH] release sem_usb_tx in usbd_cdc.c + +--- + .../Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/Firmware/Board/v3.3/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c b/Firmware/Board/v3.3/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c +index b2ca5f1..6ae33e8 100644 +--- a/Firmware/Board/v3.3/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c ++++ b/Firmware/Board/v3.3/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c +@@ -62,7 +62,8 @@ + #include "usbd_cdc.h" + #include "usbd_desc.h" + #include "usbd_ctlreq.h" +- ++#include ++#include + + /** @addtogroup STM32_USB_DEVICE_LIBRARY + * @{ +@@ -669,7 +670,7 @@ static uint8_t USBD_CDC_DataIn (USBD_HandleTypeDef *pdev, uint8_t epnum) + { + + hcdc->TxState = 0; +- ++ osSemaphoreRelease(sem_usb_tx); + return USBD_OK; + } + else +-- +2.16.1 + diff --git a/Firmware/CHANGELOG.md b/Firmware/CHANGELOG.md index 11ee6e82..052c5e59 100644 --- a/Firmware/CHANGELOG.md +++ b/Firmware/CHANGELOG.md @@ -10,6 +10,7 @@ Please add a note of your changes below this heading if you make a PR ### Changed * Build system is now tup instead of make +* Update CubeMX generated STM platform code to version 1.19.0 ## [0.3.4] - 2018-02-13 diff --git a/Firmware/README.md b/Firmware/README.md index 424042a7..117d8485 100644 --- a/Firmware/README.md +++ b/Firmware/README.md @@ -280,6 +280,8 @@ You will likely want the pinout for this process. It is available [here](https:/ * Run stm32cubeMX and load the `stm32cubemx/Odrive.ioc` project file. * Press `Project -> Generate code` * You may need to let it download some drivers and such. +* After generating/updating the code, some minor patches need to be applied. To do this, run: + `git apply Firmware/Board/v3.3/*.patch`

## Notes for Contributors