Gregory Nutt
b1001b4e50
Update TODO list regarding non-queuing of signal actions; Add comments in code at areas where the issue applies.
2019-02-04 08:35:03 -06:00
Xiang Xiao
2e70eef767
arch/arm/include/armv-7m/irq.h and armv6-m/irq.h: Remove redundant conditioning on CONFIG_BUILD_PROTECTED
2019-01-26 07:04:15 -06:00
Dave Marples
d0cda60442
In the current implementation we only use very high priority interrupts (levels 0, 0x10 and 0x20 in CORTEX-M speak) but that means there are loads of lower priority ones that are effectively unused. I have *not* changed the semantics of these levels but have 'shifted' them to be based around the midpoint of the available interrupts (0x80) rather than at the top end....that allows for interrupts to be defined above (or, indeed, below) them as needed by the application. This should have no functional effect on existing code but adds in a clean capability to define higher priority interrupts.
2018-12-03 17:41:59 -06:00
Gregory Nutt
5996d70883
Revise commit 09ccd43d61
: That change had the subtle side-effect of unconditionally enabling interrupts in the primask. That may be what we want in most cases, but certainly not all. This does increse the size of the inline function by about 48-bits per instantiation.
2018-08-04 07:37:31 -06:00
Gregory Nutt
09ccd43d61
arch/arm/include/armv7-m, arch/arm/include/armv7-m, arch/arm/include/stm32f7: Add a configuration to enable workaround for r0p1 Errata 837070: Increasing priority usingwrite to BASEPRI does not take effect immediately.
...
This update is required to be serialized to the instruction stream meaning that after this update completes, it takes effect immediately and no exceptions of lower priority than the new boosted priority can pre-empt execution. Because of this erratum, the priority boosting does not take place immediately, allowing the instruction after the MSR to be interrupted by an exception of lower priority than the new boosted priority. This effect is only limited to the next instruction. Subsequent instructions are guaranteed to see the new boosted priority.
This was raised in Bitbucket issue 113 from Vadzim Dambrouski.
2018-08-02 16:51:58 -06:00
Gregory Nutt
8bd9cfe038
Squashed commit of the following:
...
arch/arm: Remove support for CONFIG_ARMV7M_CMNVECTOR. It is now the only vector support available. Also remove CONFIG_HAVE_CMNVECTOR. That no longer signifies anything."
arch/arm/src/stm32: This commit removes support for the dedicated vector handling from the STM32 architecture support. Only common vectors are now supported.
2018-06-20 12:30:37 -06:00
Gregory Nutt
6230ab01b6
arch/arm/include/armv7-m: Last change requires inclusion of chip.h for definition.
2018-06-06 10:38:51 -06:00
Gregory Nutt
977d41d519
Based on a change recommended by Mark Shulte:
...
Signal handlers maybe run with interrupts enabled or disabled, depending on how the task the received the signal was blocked. (i.e.: If sem_wait() is called, then we disable interrupts, then block the currently running task). This could be dangerous, because user code would be running with interrupts disabled.
This change forces interrupts to be enabled in up_sigdeliver() before executing the signal handler calling up_irq_enable() explicitly. This is safe because, when we return to normal execution, interrupts will be restored to their previous state when the signal handler returns.
2018-06-06 09:54:30 -06:00
Aleksandr Vyhovanec
472115eda9
ARMv7-M: Add support for the IAR compiler
2016-04-02 08:14:09 -06:00
Gregory Nutt
666cc280f4
Rename irqenable() to up_irq_enable(); rename irqdisable() to up_irq_disable()
2016-02-14 16:54:09 -06:00
Gregory Nutt
83bc1c97c3
Rename irqsave() and irqrestore() to up_irq_save() and up_irq_restore()
2016-02-14 16:11:25 -06:00
Gregory Nutt
36726b1bc4
Standardize the width of all comment boxes in header files
2015-10-02 17:42:29 -06:00
Gregory Nutt
cbdafb96d5
Remove unused function setipsr. Cortex-M IPSR register is not writable
2015-09-23 08:38:32 -06:00
Gregory Nutt
29136e51cc
Clean up and review of header files for conformance to standards
2015-06-12 19:26:01 -06:00
Gregory Nutt
9bcdf974a0
Add new common lazy FPU state saving option for ARMv7-M. Not yet verified
2015-03-06 08:26:43 -06:00
Gregory Nutt
e11679acf8
Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL
2014-08-29 14:47:22 -06:00
Gregory Nutt
8dd679e875
ARMv7-A: Add SYSCALL handling logic
2014-08-28 14:52:14 -06:00
Gregory Nutt
9e941f1195
Change bne to bne.n in irqrestore()
2014-05-22 09:01:25 -06:00
Gregory Nutt
36ead78f07
ARMv6-M/ARMv7-M: Correct a register handling error in signal delivery (Kernel build mode only). Noted by Mike Smith.
2014-02-23 08:25:49 -06:00
Gregory Nutt
a8004f9e07
Fix major misthink in Cortex-M0 port: The Cortex-M0 has no BASEPRI register. We have to revert to using the nasty PRIMASK register
2013-04-16 18:00:59 -06:00
patacongo
990c1febf8
Add support for nested system calls
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5752 42af7a65-404d-4744-a932-0658087f49c3
2013-03-17 16:13:28 +00:00
patacongo
c702374d7b
Add support for calling to and returning from signal handlers in in user-mode threads
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5750 42af7a65-404d-4744-a932-0658087f49c3
2013-03-17 00:40:49 +00:00
patacongo
d256021c41
More MPU-related fixes
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5746 42af7a65-404d-4744-a932-0658087f49c3
2013-03-16 00:34:43 +00:00
patacongo
8159804f9c
Fix some ARMv7-M syscall logic
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5736 42af7a65-404d-4744-a932-0658087f49c3
2013-03-12 21:53:18 +00:00
patacongo
bd1488bdab
Fix some bad syscall dispatching log. This change is not testable until these is a tested NuttX kernel build.
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5713 42af7a65-404d-4744-a932-0658087f49c3
2013-03-06 19:56:32 +00:00
patacongo
30d1159097
More logic to use BASEPRI to control interrupts -- still doesn't work
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5547 42af7a65-404d-4744-a932-0658087f49c3
2013-01-22 14:37:17 +00:00
patacongo
5ab31d456e
Add option to use BASEPRI instead of PRIMASK to disable interrupts in all ARMv7-M architectures
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5546 42af7a65-404d-4744-a932-0658087f49c3
2013-01-22 01:25:40 +00:00
patacongo
5acf2fe3e1
Resync new repository with old repo r5166
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5154 42af7a65-404d-4744-a932-0658087f49c3
2012-09-17 18:35:37 +00:00
patacongo
c7aa0b0a23
Incoporate (more) new ARMv7-M exception handling logic contributed by Mike Smith
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4414 42af7a65-404d-4744-a932-0658087f49c3
2012-02-22 18:44:34 +00:00
patacongo
6e2a5140fb
Incoporate new ARMv7-M exception handling logic contributed by Mike Smith
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4413 42af7a65-404d-4744-a932-0658087f49c3
2012-02-22 18:14:18 +00:00
patacongo
599b52fb69
Add support for the Cortex-M4 floating pointing
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4144 42af7a65-404d-4744-a932-0658087f49c3
2011-12-07 18:58:21 +00:00
patacongo
2dbde8d001
Add storage space for FPU registers in context switching
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4143 42af7a65-404d-4744-a932-0658087f49c3
2011-12-07 15:36:46 +00:00
patacongo
f93b962f28
Name change: Change Cortex-M3 naming to ARMv7-M naming so support Cortex-M4
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3846 42af7a65-404d-4744-a932-0658087f49c3
2011-08-05 21:57:49 +00:00