Commit Graph

306 Commits

Author SHA1 Message Date
Gregory Nutt
5c5b6ab8f6 arch/arm/src/stm32h7: Remove old references to RXDMA. Add configuration option to select the Rx FIFO threshold level. 2018-09-02 08:35:22 -06:00
Xiang Xiao
4030fc5e1a arch/arm/src/armv7-m/up_systick.c: Fix warning: 'NVIC_IRQ_SYSTICK redefined' 2018-08-29 06:10:52 -06:00
Gregory Nutt
96840c7127 arch/arm/src/armv7-m/up_trigger_irq.c: Correct copyright and authorship of file. Cloning error. 2018-08-25 11:12:12 -06:00
Gregory Nutt
cc75e33816 arch/arm/src/armv-7m/nvic.h: Add definitions needed by up_trigger_irq(). 2018-08-25 10:40:37 -06:00
Gregory Nutt
f8bfbd58c5 arch/arm/src/armv7-m/up_trigger_irq.c: Add logic to trigger ARMv7-M interrupts and exceptions. 2018-08-25 10:23:21 -06:00
Xiang Xiao
8b63d02309 arch/arm/armv7-m: MPU: mpu_log2regionceil needs take into account the offset too 2018-08-24 07:13:05 -06:00
Xiang Xiao
7a9309370f arm syscalls: svcall/sycall logic needs to get the ucontext argument from R4 instead of stack since all syscall parameters pass from registers in syscall.h 2018-08-24 07:11:18 -06:00
Gregory Nutt
4824b04b44 arch/arm/src/armv6+7-m/up_vectors.c: Fix the type mismatch warning for _ebss 2018-08-24 07:04:51 -06:00
Xiang Xiao
e1202d2ed3 Replace all ASSERT with DEBUGASSERT to save the code space 2018-08-24 06:58:30 -06:00
Xiang Xiao
467d2a58ea Replace non critical PANIC with DEBUGPANIC to save the code space 2018-08-24 06:21:15 -06:00
Xiang Xiao
22a44465e4 arch/arm/src/armv7-m: Implement SYSTICK timer driver 2018-08-23 10:09:56 -06:00
Xiang Xiao
a465b6f0d4 configs/: Change CONFIG_BOARD_RESET_ON_CRASH to CONFIG_BOARD_RESET_ON_ASSERT, arch/: Implement call to board_reset() if in all implementations of up_assert() when CONFIG_BOARD_RESET_ON_ASSERT=y. 2018-08-22 17:04:39 -06:00
Gregory Nutt
d68b0c35f9 Squashed commit of the following:
configs/olimex-stm32-p407:  Various changes as necessary to get the new kelf configuration working.
    configs/olimex-stm32-p407:  Add kernel ELF (kelf) configuration.
2018-08-04 16:18:51 -06:00
Gregory Nutt
679d2875f2 Update some comments. 2018-08-03 16:20:42 -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
c14d97a921 ARMv7-M/ARMv6-M: Review last PR. Rename CONFIG_DEBUG_HARDFAULT to OHNFIG_DEBUG_HARDFAULT_ALERT for consistency. 2018-07-30 06:46:44 -06:00
Masayuki Ishikawa
382a829657 Merged in masayuki2009/nuttx.nuttx/hardfault_info (pull request #699)
hardfault info

* arch/arm: Introduce CONFIG_DEBUG_HARDFAULT_INFO to Kconfig

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

* arch/arm/src/armv7-m: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

* arch/arm/src/armv6-m: Introduce CONFIG_DEBUG_HARDFAULT_INFO to up_hardfault.c

    Also, replace _alert() with hfalert()

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

Approved-by: GregoryN <gnutt@nuttx.org>
2018-07-30 12:32:55 +00:00
Gregory Nutt
e428f3852a arm/Kconfig: Add spurious 'invisible' configuration settings to avoid prompting users for hardfault or memfault debug on systems where such debug is not available. 2018-07-24 05:54:30 -06:00
Masayuki Ishikawa
3b15cae493 Merged in masayuki2009/nuttx.nuttx/debug_memfault (pull request #693)
arch/arm: Add CONFIG_DEBUG_MEMFAULT to Kconfig

Also, fix src/armv7-m/up_memfault.c

Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

Approved-by: GregoryN <gnutt@nuttx.org>
2018-07-24 11:42:54 +00:00
Gregory Nutt
bb88f8d0bb Squashed commit of the following:
A few bugfixes in initial testing on the i.MX6.  Behavior seems a little more stable, but there are still memory corruption issues.  Also print CPU number on assertion.
    Add a file missed in the last big commit.
    arch/arm/src/armv7a and imx6:  Add support for per-CPU IRQ and FIQ interrupt stacks (bugfix).  Add support so that up_assert will print the correct interrupt stack on an assertion (FIQ stack is still not printed).
    arch/arm/src/lc823450: Combine the content of smp_macros.h into chip.h.  Add support so that up_assert will print the correct interrupt stack on an assertion.
2018-06-21 10:59:58 -06:00
Gregory Nutt
b3f61e8a4a arch/arm/src/armv7-m and arch/arm/src/lc823450: Fix support for multiple interrupt stacks needed in SMP mode. This was broken in the last set of commits that force all architectures to use the common interrupt vector logic. 2018-06-20 18:45:17 -06:00
Gregory Nutt
49ec86ddb1 arch/arm: Fix an error found in build testing. 2018-06-20 13:12:54 -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
Juha Niskanen
d42b6cbb97 arch/arm/src/stm32l4: STM32L4 has fetchadd and testset 2018-06-18 07:14:52 -06:00
Gregory Nutt
a94e3284b3 syslog: Enable is partial, crippled version of syslog_flush(); arch/: Call syslog_flush() from assertion handling logic. 2018-06-07 16:29:16 -06:00
Gregory Nutt
8aa486515e arch/: Correct critical section logic associated with the recent signal handler changes (yet again). 2018-06-06 17:39:10 -06:00
Gregory Nutt
b5c6d9c849 Update some comments. 2018-06-06 17:20:01 -06:00
Gregory Nutt
a581d7c2e3 arch/: Relasted to last big change to force interrupts to be disabled. In the SMP case, we still must call leave_critical_section() at least once in order to compensate for the fact that the irqcount was incremented in up_schedsigaction(). 2018-06-06 17:04:12 -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
Gregory Nutt
de6b13b3ab Per OpenGroup.org, syslog -- and, hence, nonstandard vsyslog, and debug wrappers -- does not return a value. Rename _vsyslog to nx_vsyslog. Use internal nx_vsyslog in the few cases where a return value is required. 2018-03-04 08:07:07 -06:00
Gregory Nutt
d7fae340c1 Trivial changes from review of last PR. 2018-02-14 08:20:40 -06:00
Masayuki Ishikawa
b9707776d6 Merged in masayuki2009/nuttx.nuttx/fix_signal_handing_for_smp (pull request #599)
Fix signal handing for smp

* sched/signal: Remove SMP related logic in sig_dispatch.c

    This change prevents from a deadlock in up_schedulesigaction.c
    where inter-CPU signal handling is actually implemented.

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

* arch/arm/src/armv7-m: Fix signal handling for SMP

    In previous implementation, signal handling for SMP was incorrect.
    Thus, for example, if an inter-CPU signal happened an incorret tcb
    was signaled and caused ASSERT().

    This change fixes the issues and works for both inter-CPU signal
    handling and signal handling on the same CPU.

    Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>

Approved-by: Gregory Nutt <gnutt@nuttx.org>
2018-02-14 14:10:32 +00:00
Gregory Nutt
1e59d9dd14 armv7-a, armv7-r, armv7-m: Add atomic read-add-write and read-subtract-write functions. 2018-02-04 12:22:03 -06:00
Gregory Nutt
7cf88d7dbd Make sure that labeling is used consistently in all function headers. 2018-02-01 10:00:02 -06:00
Gregory Nutt
9d3b1af1cd ARM syscall logic: Clear bit 0 in PC settings. Bit 0 is the thumb mode indication and should not be set in the PC. 2017-08-30 13:56:03 -06:00
Gregory Nutt
cf44fd6ec0 Add CLANG definitions in Kconfig and Toolchain.defs 2017-07-02 06:42:48 -06:00
Gregory Nutt
1c5ec07414 arch/: Remove dangling space at the end of lines. 2017-06-28 13:16:48 -06:00
Hidetaka Takano
5591fc6b16 Fixed ARMv7-M Toolchain setting.
- Cortex-M4 only have Single Precision FPU.
2017-06-15 20:52:37 +09:00
Gregory Nutt
b0fda33e13 Kconfig: Rename CONFIG_ARM_TOOLCHAIN_IAR to CONFIG_ARCH_TOOLCHAIN_IAR 2017-05-13 16:01:38 -06:00
Gregory Nutt
6e4918c557 Remove CONFIG_ARM_TOOLCHAIN_GNU; replace with CONFIG_ARCH_TOOLCHAIN_GNU 2017-05-13 13:28:15 -06:00
Gregory Nutt
0de294a586 Fix lots of occurrences of 'the the', 'the there', 'the these', 'the then', 'the they. 2017-05-11 13:35:56 -06:00
Gregory Nutt
4a93b0dc0c Update comments. 2017-03-14 08:44:56 -06:00
David Cabecinhas
86400a252d ARM: Fix off-by-one interrupt stack allocation in 8-byte aligned architectures 2017-03-14 20:01:45 +08:00
Mark Schulte
b3222bbc8a irq_dispatch: Add argument pointer to irq_dispatch
Provide a user defined callback context for irq's, such that when
registering a callback users can provide a pointer that will get
passed back when the isr is called.
2017-02-27 06:27:56 -06:00
Gregory Nutt
3b9bcd57ba Remove uninterpretable comment. 2017-01-26 07:20:35 -06:00
Gregory Nutt
4a8c6a6d2d ELF: Move ARMv6-M, ARMv7-M, and legacy ARM versions of ELF relocation logic to libc/machine 2017-01-21 15:24:25 -06:00
Gregory Nutt
be5ba90d4f Move optimized ARM memcpy functions from arch/arm/src/ to libc/machine/. This is necessary for the PROTECTED and KERNEL build modes. Otherwise, memcpy() will be built in to kernel space and not accessible to applications. 2017-01-20 10:53:46 -06:00
Gregory Nutt
cbeade4069 Remove comment blocks from empty file sections. 2017-01-19 11:59:41 -06:00
Gregory Nutt
0db31d0cd1 SMP: Fix a typo introduced in c5b00ccfc4 2017-01-16 08:48:05 -06:00
Gregory Nutt
a2083fbc92 Update some comments 2017-01-15 12:35:03 -06:00