일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- flutter tcpip server
- Properties.Settings.Default
- dart:io
- ubuntu 19 한글 입력
- flutter
- ListView.build
- flutter button
- TCPIP
- AlertDialog
- debugShowCheckedModeBanner
- array
- debug banner
- showDialog
- c
- flutter tcpip client
- Listview filtering
- peaks
- Server
- Today
- Total
Louie De Janeiru
STM32CubeIDE osMessagePut in ISR issue 본문
I used cli function on STM32 platform many years based on STM32CubeMx and CubeIDE.
Recenlty I have a chance to build new project based on F746-DISCO EVM with STM32CubeIDE.
So I ported cli function as I used to and tested via UART as I usaully did...but it get stuck inside of osMesagePut API.
It stucks at port.c/vPortValidateInterruptPriority/configASSERT( ( portAIRCR_REG & portPRIORITY_GROUP_MASK ) <= ulMaxPRIGROUPValue );.
This routine is relates with interrupt priority issue...interrupt priority issue???
I have re-generated based on STM32CubeMx + TrueStudio and tested...it works without issue...??
While some comparison between CubeMX and CubeIDE, I found that "NVIC settings" is not generated in CubeIDE even CubeMx does.
So in UART1 setting menu, if I enabled "NVIC Interrupt", CubeMx generates "Preemption Priority" to "5" but CubeIDE sets "0".
"0" is highest priority interrupt and it looks causes root cause of problem.
To fix this, I should set manually "Preemption Priority" at "/System Core/NVIC/USART1 global interrupt"'s value to "5" and it works as I expected.
CDC function has same issue with UART and could fix with same way above, not sure how many others.
It happened not only osMessagePut but also Signal/Semaphore API.
'StCubeMx' 카테고리의 다른 글
Basic CLI code for STM32 (0) | 2020.11.17 |
---|---|
float printf (0) | 2020.11.16 |
STM32 Timer Equation (0) | 2020.04.09 |
F469 + CubeMx + SD 32G + FatFs (0) | 2019.02.27 |