Summary
- This commit fixes interrupt handling for SMP
- The following are the changes
- Introduce up_copyfullstate.c
- Add enter_critical_section() to up_exit()
- Add a critical section to up_schedule_sigaction()
- Introduce pseudo timer thread to send periodic events
- UART and interval timer are now handled in the pause handler
- Apply the same SMP related code as other CPU architectures
- However, signal handling and context switching are not changed
- Also enable debug features and some tools in smp/defconfig
Imact
- SMP only
Testing
- Tested with sim:smp on ubuntu18.04 x86_64
- Tested with hello, taskset, smp, ostest
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
The following nxstyle errrors are intentionally left.
They are a part of a large table, which is not trivial to fix.
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:43:87: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:44:86: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:45:87: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:46:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:47:89: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:48:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:49:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:50:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:51:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:52:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:53:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:54:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:55:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:56:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:57:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:58:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:59:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:60:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:61:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:62:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:63:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:64:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:65:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:66:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:67:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:68:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:69:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:70:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:71:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:72:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:73:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:74:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:75:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:76:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:77:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:78:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:79:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:80:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:81:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:82:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:83:84: error: Long line found
boards/arm/sam34/sam3u-ek/src/sam_lcd.c:84:84: error: Long line found
The following nxstyle error was intentionally left.
(a URL in a comment)
boards/arm/stm32l4/nucleo-l452re/src/stm32_adc.c:79:93: error: Long line found
The following nxstyle errors are intentionally left.
* A table, not trivial to fix:
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:142:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:143:95: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:144:88: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:145:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:146:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:147:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:148:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:149:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:150:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:151:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:152:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:153:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:154:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:155:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:156:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:157:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:158:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:159:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:160:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:161:119: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:162:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:163:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:164:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:165:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:166:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:167:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:168:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:169:108: error: Long line found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:170:119: error: Long line found
* Identifiers like ASCII_a:
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:397:35: error: Mixed case identifier found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:651:16: error: Mixed case identifier found
boards/arm/stm32/stm32ldiscovery/src/stm32_lcd.c:660:38: error: Mixed case identifier found