How to optimize this generated code?

1 回表示 (過去 30 日間)
Xiaojie Qiu
Xiaojie Qiu 2018 年 3 月 5 日
コメント済み: Xiaojie Qiu 2018 年 3 月 20 日
Hi everyone,
I'm using embedded coder to generate code for an STM32 microcontroller, but having problem with optimizing generated code.
As shown in figure below, I want to reset two GPIOs to LOW.
However, the generated code for this algorithm is:
if (0.0 == 0)
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_RESET);
else
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_SET);
if (0.0 == 0)
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, GPIO_PIN_RESET);
else
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, GPIO_PIN_SET);
But I don't think it's necessary to check if 0 equels 0. Instead, to save code execution time, the code should be:
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_3, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_4, GPIO_PIN_RESET);
So, I'd like to know how to configue Simulink model to optimize this code?
Apart from this problem, what documentations for code optimization techniques would be highly recommended while using embedded coder?
Any recommendations would be highly appreciated.
Thanks and best regards! qxj

回答 (1 件)

Mark McBroom
Mark McBroom 2018 年 3 月 9 日
Try changing the data type of the contant blocks to be integer or boolean.
  1 件のコメント
Xiaojie Qiu
Xiaojie Qiu 2018 年 3 月 20 日
Hi Mark, thanks for your help! I tried both uint8 and boolean data types for these two constant blocks. But the problem still stays.

サインインしてコメントする。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by