nuttx/arch/arm/src
chao.an 0d7ea348d5 arm/armv8-m: indicating no low-overhead-loop predication by default
Fix usage fault on clang version 13.0.0 (-Ofast):
------------------------------------------------------------------
| arm_hardfault: Hard Fault escalation:
| arm_usagefault: PANIC!!! Usage Fault:
| arm_usagefault:  IRQ: 3 regs: 0x3c58c510
| arm_usagefault:  BASEPRI: 00000080 PRIMASK: 00000000 IPSR: 00000003 CONTROL: 00000004
| arm_usagefault:  CFSR: 00020000 HFSR: 40000000 DFSR: 00000000 BFAR: 01608050 AFSR: 00000000
| arm_usagefault: Usage Fault Reason:
| arm_usagefault:  Invalid state
| up_assert: Assertion failed at file:armv8-m/arm_usagefault.c line: 113 task: lpwork
| backtrace:
| [ 2] [<0x2c58124a>] up_backtrace+0xa/0x2e2
| [ 2] [<0x2c56f7cc>] sched_dumpstack+0x28/0x66
| [ 2] [<0x2c580cd0>] up_assert+0x62/0x254
| [ 2] [<0x2c56ab8a>] _assert+0/0xa
| [ 2] [<0x2c55575a>] nxsched_add_prioritized+0x38/0xa2
| [ 2] [<0x2c555894>] nxsched_add_blocked+0x2e/0x44
| [ 2] [<0x2c580748>] up_block_task+0x2a/0x96
| [ 2] [<0x2c5569ea>] nxsem_wait+0x64/0xb4
| [ 2] [<0x2c556a40>] nxsem_wait_uninterruptible+0x6/0x10
| [ 2] [<0x2c559b9a>] work_thread+0x1c/0x48
-------------------------------------------------------------------

usage fault on 0x2c55575a:

------------------------------------
|2c555722 <nxsched_add_prioritized>:
|; {
|2c555722: 80 b5         push  {r7, lr}
|...
|2c55575a: 2f f0 17 c0   le  0x2c555732 <nxsched_add_prioritized+0x10> @ imm = #-44
|...
------------------------------------

Arm v8-M Architecture Reference Manual:

C2.4.103 LE, LETP

B3.28 Low overhead loops:

An INVSTATE UsageFault is raised if a LE instruction is executed and FPSCR.LTPSIZE does not read as four.
When a new floating-point context is created and FPCCR.ASPEN is set to zero it is the responsibility of software
to correctly initialize FPSCR.LTPSIZE.

Signed-off-by: chao.an <anchao@xiaomi.com>
2022-04-13 09:39:22 +08:00
..
a1x arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
am335x arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
arm arch:tcbinfo: update tcbinfo as xcpcontext update 2022-04-05 13:33:00 +02:00
armv6-m arch:tcbinfo: update tcbinfo as xcpcontext update 2022-04-05 13:33:00 +02:00
armv7-a arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
armv7-m arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
armv7-r arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
armv8-m arm/armv8-m: indicating no low-overhead-loop predication by default 2022-04-13 09:39:22 +08:00
c5471 arch/arm: remove unused arm_copyfullstate/arm_copyarmstate 2022-03-15 23:03:51 +09:00
common arch/stack_color: correct the end address of stack color 2022-04-13 09:37:54 +08:00
cxd56xx arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
dm320 arch/arm: remove unused arm_copyfullstate/arm_copyarmstate 2022-03-15 23:03:51 +09:00
efm32 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
eoss3 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
imx1 arch/arm: remove unused arm_copyfullstate/arm_copyarmstate 2022-03-15 23:03:51 +09:00
imx6 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
imxrt arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
kinetis arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
kl arm/chip: add backtrace support for all chips that support thumb instruction set. 2022-04-03 00:22:57 +08:00
lc823450 arm/chip: add backtrace support for all chips that support thumb instruction set. 2022-04-03 00:22:57 +08:00
lpc17xx_40xx arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
lpc31xx nuttx: unify FAR attribute usage across the code 2022-04-04 21:32:58 +08:00
lpc43xx arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
lpc54xx arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
lpc214x arch/arm: remove unused arm_copyfullstate/arm_copyarmstate 2022-03-15 23:03:51 +09:00
lpc2378 arch/arm: remove unused arm_copyfullstate/arm_copyarmstate 2022-03-15 23:03:51 +09:00
max326xx arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
moxart arch/arm: remove unused arm_copyfullstate/arm_copyarmstate 2022-03-15 23:03:51 +09:00
nrf52 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
nuc1xx arm/chip: add backtrace support for all chips that support thumb instruction set. 2022-04-03 00:22:57 +08:00
phy62xx phy62xx_exception: using armv6-m exception_common code. 2022-03-18 20:01:00 +08:00
rp2040 arm/chip: add backtrace support for all chips that support thumb instruction set. 2022-04-03 00:22:57 +08:00
rtl8720c arm/chip: add backtrace support for all chips that support thumb instruction set. 2022-04-03 00:22:57 +08:00
s32k1xx arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
sam34 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
sama5 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
samd2l2 arm/chip: add backtrace support for all chips that support thumb instruction set. 2022-04-03 00:22:57 +08:00
samd5e5 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
samv7 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
stm32 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
stm32f0l0g0 arm/chip: add backtrace support for all chips that support thumb instruction set. 2022-04-03 00:22:57 +08:00
stm32f7 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
stm32h7 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
stm32l4 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
stm32l5 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
stm32u5 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
str71x arch/arm: remove unused arm_copyfullstate/arm_copyarmstate 2022-03-15 23:03:51 +09:00
tiva arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
tms570 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
xmc4 arch/arm: Move FPU initialization to common place 2022-04-12 23:35:06 +03:00
.gitignore arch/arm: Add support for boot stage2 from Raspberry Pi Pico SDK 2021-02-20 03:45:24 -08:00
Makefile boards: Replace CONFIG_CYGWIN_WINTOOL with CONVERT_PATH 2022-02-20 21:15:36 +01:00