구조체의 사이즈가 큰 경우, 전역 변수(Global Variable)로 코드가 생성되는 것을 방지하는 방법

2 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2021 年 5 月 10 日
編集済み: MathWorks Support Team 2021 年 5 月 10 日
Autosar 기반 code generation하고 있으며, API function output 구조체의 데이터 크기에 따라 구조체 선언 방식이 달라지는 부분이 있어 문의드립니다. 일반적으로 Function output 구조체는 전역변수에 추가되지 않고, Rte_Type의 구조체를 참조하여 전역변수 용량이 증가하지 않았습니다.
제가 사용하는 구조체(Bus Structure)의 사이즈가 늘어나기 전에는 생성된 코드에서 로컬 변수로 생성되었습니다. 일부 요소의 크기를 늘린 후(예를 들어, unit8에서 uint16 또는 uint32로 변경), 생성된 코드에서 전역 변수(Global Variable)로 생성됩니다. 나머지 코드는 두 경우 모두 동일하며, 사이즈의 크기만 유일한 차이입니다. 크기를 늘린 후, 전역 변수로 생성되는 이유는 무엇입니다. 이 동작을 방지할 수 있는 방법이 있습니까?

採用された回答

MathWorks Support Team
MathWorks Support Team 2023 年 2 月 20 日
구조체의 크기에 따라 전역 변수 생성 여부가 결정됩니다. 변수가 전역 데이터(Global data)로 생성되는 최대 스택 크기에 대한 임계 값이 있습니다. 이 임계 값은 모델의 "Configuration Parameters" 옵션 내에 "Maximum stack size" 를 통해 액세스하고 수정할 수 있습니다.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDeployment, Integration, and Supported Hardware についてさらに検索

タグ

タグが未入力です。

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!