]> begriffs open source - cmsis/log
cmsis
5 years agoRTX5: added support for Cortex-M55 (without FPU)
Robert Rostohar [Fri, 20 Mar 2020 14:20:01 +0000 (15:20 +0100)]
RTX5: added support for Cortex-M55 (without FPU)

5 years agoCMSIS-NN Add MVE support in requantization for a variant of DWC
Felix Johnny [Fri, 20 Mar 2020 13:30:53 +0000 (14:30 +0100)]
CMSIS-NN Add MVE support in requantization for a variant of DWC

1. MVE support is added to depthwise_conv_s8_mult_4() for requantization.
2. CMSIS version is bumped up in ARM.CMSIS.pdsc

Change-Id: Ia80cf9830bfe7ac46302f107ceb4769903cdf134

5 years agoCore(M): Fix-up to Armv8.1-M core headers after adding PMU.
Jonatan Antoni [Fri, 20 Mar 2020 13:32:06 +0000 (14:32 +0100)]
Core(M): Fix-up to Armv8.1-M core headers after adding PMU.
- Fixed reserved numbering in PMU_Type struct
- Added missing PMU_BASE and PMU defines for CM55

Change-Id: I9583227a6e8904ad73b06a6e225c8096c1fb2053

5 years agoMerge branch 'develop' of https://github.com/ARM-software/CMSIS_5 into develop
GuentherMartin [Fri, 20 Mar 2020 12:31:22 +0000 (13:31 +0100)]
Merge branch 'develop' of https://github.com/ARM-software/CMSIS_5 into develop

5 years agoCMSIS DSP: reworked examples.
GuentherMartin [Fri, 20 Mar 2020 12:29:31 +0000 (13:29 +0100)]
CMSIS DSP: reworked examples.

5 years agoVIO initial documentation added; more work on the header file for easy documentation.
Christopher Seidl [Fri, 20 Mar 2020 12:29:30 +0000 (13:29 +0100)]
VIO initial documentation added; more work on the header file for easy documentation.

5 years agoDevice: Enhanced Armv8.1-MML TrustZone setup for MVE.
Jonatan Antoni [Fri, 20 Mar 2020 11:35:39 +0000 (12:35 +0100)]
Device: Enhanced Armv8.1-MML TrustZone setup for MVE.
Configure security for FPU/MVE coprocessors CP10/CP11
if either FPU or MVE (or both) are used.

Change-Id: I3137aa69e3358e29f6d69ebda1741e71115369cb

5 years agoCorrected typo in return sections of functions.
Christopher Seidl [Fri, 20 Mar 2020 10:00:07 +0000 (11:00 +0100)]
Corrected typo in return sections of functions.

5 years agoCMSIS-DSP: Correction to spline function to be able to build examples
Christophe Favergeon [Fri, 20 Mar 2020 08:07:26 +0000 (09:07 +0100)]
CMSIS-DSP: Correction to spline function to be able to build examples
Correction of CMSIS-DSP version number for binary version of the CMSIS-DSP.

5 years agoUpdated pmu_armv8.h with PMU functions and event macros.
Edmund Player [Wed, 18 Mar 2020 16:15:31 +0000 (16:15 +0000)]
Updated pmu_armv8.h with PMU functions and event macros.

Updated core_armv81mml.h with PMU structure and macro definitions.

Updated core_cm55.h with PMU structure and macro definitions, plus M55 specific events.

5 years agoFixed link for SDCMSIS-1172
Christopher Seidl [Thu, 19 Mar 2020 14:58:49 +0000 (15:58 +0100)]
Fixed link for SDCMSIS-1172

5 years agoCMSIS VIO: registered API and added virtual implementation (using memory only)
Robert Rostohar [Thu, 19 Mar 2020 12:31:52 +0000 (13:31 +0100)]
CMSIS VIO: registered API and added virtual implementation (using memory only)

5 years agoCMSIS VIO: moved to CMSIS-Driver
Robert Rostohar [Thu, 19 Mar 2020 12:27:50 +0000 (13:27 +0100)]
CMSIS VIO: moved to CMSIS-Driver

5 years agoCore(M): Removed __MVE_PRESENT and __MVE_USED macros for Armv8.1-M based devices.
Jonatan Antoni [Wed, 18 Mar 2020 16:44:57 +0000 (17:44 +0100)]
Core(M): Removed __MVE_PRESENT and __MVE_USED macros for Armv8.1-M based devices.
Instead of using those macros we decided to rely on the ACLE macros defined
by the Compiler (i.e. __ARM_FEATURE_MVE).

Change-Id: Ib04aa3a32f02d855db2e24431ea351dc82809637

5 years agoPack: Enhanced TrustZone Secure/Non-secure conditions
Robert Rostohar [Wed, 18 Mar 2020 07:49:55 +0000 (08:49 +0100)]
Pack: Enhanced TrustZone Secure/Non-secure conditions

5 years agoPack: Fixed pack description and generator script ...
Jonatan Antoni [Tue, 17 Mar 2020 15:07:31 +0000 (16:07 +0100)]
Pack: Fixed pack description and generator script ...
... after adding new files to DSP component.
- Consider new Build section in Documentation
- Consider DSP ComputeLibrary and PrivateInclude

Change-Id: I52a44f609ab81dfcc24809e17d762dd5272c6fa3

5 years agoChanges made as required by SDCMSIS-1172
Christopher Seidl [Tue, 17 Mar 2020 13:37:29 +0000 (14:37 +0100)]
Changes made as required by SDCMSIS-1172

5 years agoCMSIS-NN List source files and update revision number
Felix Johnny [Mon, 16 Mar 2020 14:37:07 +0000 (15:37 +0100)]
CMSIS-NN List source files and update revision number

1. All CMSIS-NN soure files are listed in ARM.CMSIS.pdsc
2. Version history is updated

Change-Id: Ic87f42e753165ff6228321ee2c61a8b6ff57b0d2

5 years agocore: add SPDX identifier
Martin Kojtal [Fri, 21 Feb 2020 07:07:46 +0000 (07:07 +0000)]
core: add SPDX identifier

5 years agoCMSIS-DSP: Added path to new headers for building CMSIS-DSP pack.
Christophe Favergeon [Mon, 16 Mar 2020 12:31:17 +0000 (13:31 +0100)]
CMSIS-DSP: Added path to new headers for building CMSIS-DSP pack.

5 years agoCMSIS-DSP: Updates pack source component.
Jonatan Antoni [Mon, 16 Mar 2020 12:13:49 +0000 (13:13 +0100)]
CMSIS-DSP: Updates pack source component.
- Bumped component version to 1.8.0
- Added new groups/functions/files

Change-Id: Iee15d6af1e7e9c1169867270ca04f9ca7d5552c7

5 years agoAdded examples to the tutorial.
Christopher Seidl [Fri, 13 Mar 2020 09:22:42 +0000 (10:22 +0100)]
Added examples to the tutorial.

5 years agoRTX5: typo correction in documentation (rtx_evr.h)
Robert Rostohar [Thu, 12 Mar 2020 08:22:49 +0000 (09:22 +0100)]
RTX5: typo correction in documentation (rtx_evr.h)

5 years agoAdded RTX5 tutorial, waiting for example projects
Christopher Seidl [Wed, 11 Mar 2020 13:48:30 +0000 (14:48 +0100)]
Added RTX5 tutorial, waiting for example projects

5 years agoRTX5: added support for Cortex-M55
Robert Rostohar [Fri, 6 Mar 2020 13:13:30 +0000 (14:13 +0100)]
RTX5: added support for Cortex-M55

5 years agoCMSIS Driver: minor update in the documentation
Milorad Cvjetkovic [Fri, 6 Mar 2020 06:28:18 +0000 (07:28 +0100)]
CMSIS Driver: minor update in the documentation

5 years agoRTX5: updated version history
Robert Rostohar [Thu, 5 Mar 2020 14:36:07 +0000 (15:36 +0100)]
RTX5: updated version history

5 years agoRTX5: updated configuration template default values
Robert Rostohar [Thu, 5 Mar 2020 14:32:59 +0000 (15:32 +0100)]
RTX5: updated configuration template default values
 - increased Global Dynamic Memory size to 32768 bytes
 - increased Default Thread Stack size to 3072 bytes
 - increased Idle Thread Stack size to 512 bytes
 - increased Timer Thread Stack size to 512 bytes

5 years agoDoxygen: Fixed warnings for CMSIS-RTOS2 Mutex attributes
Robert Rostohar [Thu, 5 Mar 2020 13:06:59 +0000 (14:06 +0100)]
Doxygen: Fixed warnings for CMSIS-RTOS2 Mutex attributes

5 years agoCMSIS Driver: minor update in the documentation
Milorad Cvjetkovic [Wed, 4 Mar 2020 09:45:47 +0000 (10:45 +0100)]
CMSIS Driver: minor update in the documentation

5 years agoDoxyGen: Added Armv8.1-MML and CM55 to template lists.
Jonatan Antoni [Tue, 3 Mar 2020 16:25:11 +0000 (17:25 +0100)]
DoxyGen: Added Armv8.1-MML and CM55 to template lists.
- Removed implemented extensions from device name for ARMCM55
  as adding all those becomes unmaintainable.

Change-Id: Idc07ac2977087a63d16cb9bbacfc74ba03f35670

5 years agoCore(M): Refactored/aligned L1 Cache Functions
Jonatan Antoni [Tue, 3 Mar 2020 13:46:07 +0000 (14:46 +0100)]
Core(M): Refactored/aligned L1 Cache Functions
 - Moved functions from core_cm7.h to cachel1_armv7.h
 - Added L1 Cache to CM55 and ARMv8MML/ARMv81MML devices

Change-Id: I6102603595e3aba6e2666a3e73efe39b80da3bde

5 years agoIrq modes handling
ua1arn [Tue, 3 Mar 2020 08:36:07 +0000 (11:36 +0300)]
Irq modes handling

Change-Id: I427af99ad6c561619068155c1e52fe4081282785

5 years agoDevice: Fix wrong core header file inclusion for SC300 and SC000
Surendran Kanagaraj [Wed, 18 Dec 2019 17:30:33 +0000 (23:00 +0530)]
Device: Fix wrong core header file inclusion for SC300 and SC000

core header file included should be core_sc300.h instead
of core_SC300.h and core_sc000.h instead of core_SC000.h

Signed-off-by: Surendran Kanagaraj <surendran.k@samsung.com>
5 years agoCMSIS Driver: minor update in the documentation
Milorad Cvjetkovic [Wed, 26 Feb 2020 11:46:53 +0000 (12:46 +0100)]
CMSIS Driver: minor update in the documentation

5 years agoPartner Meeting 2020 slides uploaded
reinhardkeil [Wed, 26 Feb 2020 00:07:50 +0000 (01:07 +0100)]
Partner Meeting 2020 slides uploaded

5 years agorenamed a few tabs in docs
Joachim Krech [Fri, 21 Feb 2020 10:34:54 +0000 (11:34 +0100)]
renamed a few tabs in docs

5 years agoAdded Cortex-M55 support.
GuentherMartin [Thu, 20 Feb 2020 09:42:53 +0000 (10:42 +0100)]
Added Cortex-M55 support.
Added ARMCM55 device.

5 years agoAdded Tutorial "Scaleable Software Stack"
reinhardkeil [Thu, 20 Feb 2020 08:17:05 +0000 (09:17 +0100)]
Added Tutorial "Scaleable Software Stack"

5 years agoCMSIS-Core documentation: partition_<device>.h includes now partition_gen.h (that...
reinhardkeil [Wed, 19 Feb 2020 14:38:29 +0000 (15:38 +0100)]
CMSIS-Core documentation: partition_<device>.h includes now partition_gen.h (that is generated using CMSIS-Zone); added FPU settings to partition_<device>.h

5 years agoRemoved unused old CMSIS logo
Christopher Seidl [Wed, 19 Feb 2020 14:12:20 +0000 (15:12 +0100)]
Removed unused old CMSIS logo

5 years agoUploaded new CMSIS logo
Christopher Seidl [Wed, 19 Feb 2020 14:10:49 +0000 (15:10 +0100)]
Uploaded new CMSIS logo

5 years agoUpdated file list image
Christopher Seidl [Wed, 19 Feb 2020 12:12:33 +0000 (13:12 +0100)]
Updated file list image

5 years agoDoxygen: Fixed wording for CMSIS-RTOS2 Mutex Priority Inheritance.
Jonatan Antoni [Mon, 17 Feb 2020 11:28:25 +0000 (12:28 +0100)]
Doxygen: Fixed wording for CMSIS-RTOS2 Mutex Priority Inheritance.

Change-Id: I8097e29c542e07b61d18d9e77a30eb92ceefafeb

5 years agoAdded use of predefined macro __ARM_ARCH_8_1M_MAIN__
GuentherMartin [Thu, 13 Feb 2020 13:22:20 +0000 (14:22 +0100)]
Added use of predefined macro __ARM_ARCH_8_1M_MAIN__

5 years agoAdded UDE support to ARM-v8-M header files.
GuentherMartin [Tue, 11 Feb 2020 13:43:10 +0000 (14:43 +0100)]
Added UDE support to ARM-v8-M header files.

5 years agoCore(M): Fixed barriers in MPU enable/disable.
Jonatan Antoni [Mon, 10 Feb 2020 13:26:05 +0000 (14:26 +0100)]
Core(M): Fixed barriers in MPU enable/disable.

Change-Id: Ieb7c6dd5c1bc46cf73aa6496f199c79f4c8682e4

5 years agoCore(M): Fixed FPU_Type by adding missing MVFR2 field.
Jonatan Antoni [Mon, 10 Feb 2020 13:18:46 +0000 (14:18 +0100)]
Core(M): Fixed FPU_Type by adding missing MVFR2 field.

Change-Id: I3241aa219d633c52d4dcad517900893a76e23918

5 years agoRTX5: Enhanced support for Armv8-M (specifying thread TrustZone module identifier...
Robert Rostohar [Thu, 6 Feb 2020 16:32:14 +0000 (17:32 +0100)]
RTX5: Enhanced support for Armv8-M (specifying thread TrustZone module identifier is optional)

5 years agoCore(M): Ignore -Wpedantic on Armv8-M core headers.
Jonatan Antoni [Fri, 31 Jan 2020 12:33:23 +0000 (13:33 +0100)]
Core(M): Ignore -Wpedantic on Armv8-M core headers.
The MPU register definition makes use of (non ISO C99) features, i.e.
the struct definition contains unnamed structs/unions, deliberately.

Change-Id: I98beb3503c5859a6fb987f25e01b296459ecc18a

5 years agoCore(M): Fixup for syntax error introduced by #796
Jonatan Antoni [Fri, 31 Jan 2020 08:11:44 +0000 (09:11 +0100)]
Core(M): Fixup for syntax error introduced by #796

Change-Id: I73e160c4a277b353e6c98a82cff8102f63c55511

5 years agoCMSIS CORE: Adding support for __SXTB16_RORn
Gian Marco Iodice [Fri, 10 Jan 2020 14:35:13 +0000 (14:35 +0000)]
CMSIS CORE: Adding support for __SXTB16_RORn

5 years agoCMSIS Driver: minor documentation fix (ARM_USART_EVENT_ bit 11 is DSR not CTS)
Vladimir Umek [Thu, 30 Jan 2020 13:45:45 +0000 (14:45 +0100)]
CMSIS Driver: minor documentation fix (ARM_USART_EVENT_ bit 11 is DSR not CTS)

5 years agoCMSIS Driver: improved MISRA compliance in APIs (added literal suffix U)
Robert Rostohar [Thu, 30 Jan 2020 11:21:38 +0000 (12:21 +0100)]
CMSIS Driver: improved MISRA compliance in APIs (added literal suffix U)

5 years agoCore(A): Fixed GIC_SetPendingIRQ to use GICD_SGIR instead of GICD_SPENDSGIR for compl...
Daniel Brondani [Tue, 28 Jan 2020 14:22:38 +0000 (15:22 +0100)]
Core(A): Fixed GIC_SetPendingIRQ to use GICD_SGIR instead of GICD_SPENDSGIR for compliance with all GIC specification versions.

5 years agoCore(M): Added SCB_GetMVEType to decode implemented type of MVE.
Jonatan Antoni [Tue, 28 Jan 2020 10:50:09 +0000 (11:50 +0100)]
Core(M): Added SCB_GetMVEType to decode implemented type of MVE.

Change-Id: I9d3c1fb9295c12217e3bdd70e0d02ddadd96e0ea

5 years agoCMSIS Driver: minor update in WiFi Interface API documentation
Robert Rostohar [Mon, 27 Jan 2020 07:42:12 +0000 (08:42 +0100)]
CMSIS Driver: minor update in WiFi Interface API documentation

5 years agoCMSIS Driver: updated custom driver template versions
Robert Rostohar [Fri, 24 Jan 2020 14:51:22 +0000 (15:51 +0100)]
CMSIS Driver: updated custom driver template versions

5 years agoCMSIS Driver: updated WiFi Interface API version
Robert Rostohar [Fri, 24 Jan 2020 13:37:40 +0000 (14:37 +0100)]
CMSIS Driver: updated WiFi Interface API version

5 years agoCMSIS Driver: enhanced WiFi Interface API with support for polling Socket Receive...
Robert Rostohar [Fri, 24 Jan 2020 13:35:11 +0000 (14:35 +0100)]
CMSIS Driver: enhanced WiFi Interface API with support for polling Socket Receive/Send

5 years agoCMSIS Driver: removed volatile from status related typedefs APIs
Robert Rostohar [Fri, 24 Jan 2020 12:04:51 +0000 (13:04 +0100)]
CMSIS Driver: removed volatile from status related typedefs APIs

5 years agoDoxyGen: Updated all references/links to keil.com to use https instead of http.
Jonatan Antoni [Fri, 24 Jan 2020 10:37:53 +0000 (11:37 +0100)]
DoxyGen: Updated all references/links to keil.com to use https instead of http.

Change-Id: I2589b0de59fb0f20bef11ed031771ed995b24855

6 years agoCMSIS-DSP: Corrected build issues with AC5 and gcc. Improved Doxygen comments.
Christophe Favergeon [Tue, 17 Dec 2019 10:37:34 +0000 (11:37 +0100)]
CMSIS-DSP: Corrected build issues with AC5 and gcc. Improved Doxygen comments.

6 years agoCoreValidation: Fixed TC_CoreFunc_IRQVect missing external declaration to ROM vector...
Jonatan Antoni [Tue, 17 Dec 2019 10:42:20 +0000 (11:42 +0100)]
CoreValidation: Fixed TC_CoreFunc_IRQVect missing external declaration to ROM vector table.

Change-Id: I83dea2bbeb992e5271959c767735a2671552d3f3

6 years agoCMSIS-Build: skeleton and initial information.
Vladimir Marchenko [Wed, 11 Dec 2019 13:16:16 +0000 (14:16 +0100)]
CMSIS-Build: skeleton and initial information.

6 years agoCMSIS-NN: Fixed component dependency to DSP.
Jonatan Antoni [Mon, 9 Dec 2019 11:58:41 +0000 (12:58 +0100)]
CMSIS-NN: Fixed component dependency to DSP.

Change-Id: I845afeb2b0d8123a7bcaa6cc0d08d90f5b2e392b

6 years agoMinor documentation update (added WiFi Driver Validation)
Milorad Cvjetkovic [Fri, 6 Dec 2019 11:01:24 +0000 (12:01 +0100)]
Minor documentation update (added WiFi Driver Validation)

6 years agoBump pack dev-drop version.
Jonatan Antoni [Wed, 4 Dec 2019 15:10:15 +0000 (16:10 +0100)]
Bump pack dev-drop version.

Change-Id: I50019dbd058d5c4ed4b5824893490e38947dbcbf

6 years agoDevice: Updated all Cortex-M devices with strongly typed vector table references.
Jonatan Antoni [Mon, 18 Nov 2019 15:10:45 +0000 (16:10 +0100)]
Device: Updated all Cortex-M devices with strongly typed vector table references.

Change-Id: Ibe763ae993c61cd4906721a2d170cd2073099616

6 years agoGraphic update
Christopher Seidl [Thu, 21 Nov 2019 07:26:41 +0000 (08:26 +0100)]
Graphic update

6 years agoUpdated CMSIS-Driver overview
Christopher Seidl [Wed, 20 Nov 2019 16:04:20 +0000 (17:04 +0100)]
Updated CMSIS-Driver overview

6 years agoUpdated block diagram to incorporate WiFi driver
Christopher Seidl [Mon, 18 Nov 2019 09:09:09 +0000 (10:09 +0100)]
Updated block diagram to incorporate WiFi driver

6 years agoDevice: Renamed globally exposed interrupt function pointer type.
Jonatan Antoni [Wed, 13 Nov 2019 15:53:46 +0000 (16:53 +0100)]
Device: Renamed globally exposed interrupt function pointer type.

Change-Id: I927e00d13b964b6770c7b81e37e884be1fbe6c1b

6 years agoCMSIS-Pack:
reinhardkeil [Thu, 24 Oct 2019 11:49:23 +0000 (13:49 +0200)]
CMSIS-Pack:
  - api documentation improved
  - added bash_script to support pack generation on Linux or Windows
  - added custom attribute to component element
  - added TrustZone-disabled value to software model selection

6 years agoCore(M): reverted core_armv8mml header file
GuentherMartin [Wed, 23 Oct 2019 08:33:18 +0000 (10:33 +0200)]
Core(M): reverted core_armv8mml header file

6 years agoCore(M): updated core_armv8(1)mml header files
GuentherMartin [Mon, 21 Oct 2019 09:06:34 +0000 (11:06 +0200)]
Core(M): updated core_armv8(1)mml header files
 - updated core_armv8mml.h  according DDI0553A_m_armv8m_arm.pdf
 - updated core_armv81mml.h according DDI0553B_i_armv8m_arm.pdf

6 years agoRTX5: Fixed thread priority restore on mutex acquire timeout when priority inherit...
Robert Rostohar [Fri, 18 Oct 2019 11:18:01 +0000 (13:18 +0200)]
RTX5: Fixed thread priority restore on mutex acquire timeout when priority inherit is used (#705)

6 years agoChange OS_THREAD_LIBSPACE_NUM to be defined as a (compiler) macro
Ari Parkkila [Fri, 27 Sep 2019 05:54:55 +0000 (22:54 -0700)]
Change OS_THREAD_LIBSPACE_NUM to be defined as a (compiler) macro

6 years agoDoxyGen: Enhanced description of osKernelGetSysTimerCount (#693)
Jonatan Antoni [Mon, 7 Oct 2019 11:49:39 +0000 (13:49 +0200)]
DoxyGen: Enhanced description of osKernelGetSysTimerCount (#693)

Change-Id: I0081e8971aeeef5bd37d1bb744471f75f11e77e8

6 years agoChanged wording on osThreadFlagsSet and added diagrams for better understanding.
Christopher Seidl [Thu, 26 Sep 2019 10:01:56 +0000 (12:01 +0200)]
Changed wording on osThreadFlagsSet and added diagrams for better understanding.

6 years agoCoreValidation: Removed filter on CM23/33 for Arm Compiler 6.6 LTS
Jonatan Antoni [Wed, 18 Sep 2019 13:19:18 +0000 (15:19 +0200)]
CoreValidation: Removed filter on CM23/33 for Arm Compiler 6.6 LTS
Since LTS branch version 6.6.2 CM23/33 are supported.

Change-Id: I9237e45946e6df8fb644b2ed51dd75a34fbe5787

6 years agoCMSIS-Zone limited to Cortex-M as Cache support for complex Cortex-A/R systems is...
reinhardkeil [Fri, 13 Sep 2019 14:49:10 +0000 (16:49 +0200)]
CMSIS-Zone limited to Cortex-M as Cache support for complex Cortex-A/R systems is not available.

6 years agoUpdate README.md
Reinhard Keil [Fri, 13 Sep 2019 14:41:54 +0000 (16:41 +0200)]
Update README.md

6 years agoDoxygen: Fixed input file for Core(A).
Jonatan Antoni [Tue, 3 Sep 2019 11:37:57 +0000 (13:37 +0200)]
Doxygen: Fixed input file for Core(A).

Change-Id: Ic32c3526ef8c0f85d0cf2ea312df4e483efe7af7

6 years agoCclass="IoT Service" added
reinhardkeil [Mon, 2 Sep 2019 06:21:47 +0000 (08:21 +0200)]
Cclass="IoT Service" added

6 years agoreworked __NVIC_SetVector(), __NVIC_GetVector() in core CM0, CM0+ include files ...
GuentherMartin [Wed, 21 Aug 2019 09:41:14 +0000 (11:41 +0200)]
reworked __NVIC_SetVector(), __NVIC_GetVector() in core CM0, CM0+ include files (#655).
 - checked that the code works for ARMCC, ARMCLANG and GCC.

6 years agoreworked __NVIC_SetVector(), __NVIC_GetVector() in core_cm*.h include files (#655).
GuentherMartin [Tue, 20 Aug 2019 05:45:18 +0000 (07:45 +0200)]
reworked __NVIC_SetVector(), __NVIC_GetVector() in core_cm*.h include files (#655).

6 years agoUpdate README.md
Reinhard Keil [Wed, 14 Aug 2019 13:59:47 +0000 (15:59 +0200)]
Update README.md

6 years agoUpdate README.md
Reinhard Keil [Wed, 14 Aug 2019 13:58:57 +0000 (15:58 +0200)]
Update README.md

6 years agoCore(M): Added additional parentheses to MPUv8 function-like-macro parameters.
Jonatan Antoni [Fri, 9 Aug 2019 11:01:38 +0000 (13:01 +0200)]
Core(M): Added additional parentheses to MPUv8 function-like-macro parameters.

Change-Id: I709f1977c92330eb301ffa85ba00ba4655f31fb1

6 years agoCMSIS-NN: Added missing intrinsics for Cortex-A.
Christophe Favergeon [Mon, 5 Aug 2019 07:09:19 +0000 (09:09 +0200)]
CMSIS-NN: Added missing intrinsics for Cortex-A.

6 years agoGCC/Clang: cope with __set_CPSR changing condition codes
Kevin Bracey [Mon, 14 Jan 2019 08:03:14 +0000 (10:03 +0200)]
GCC/Clang: cope with __set_CPSR changing condition codes

Add a "cc" clobber to __set_CPSR to reflect the fact that it could be
changing the condition codes.

6 years agoIAR: RRX doesn't modify flags, but has flags as input
Kevin Bracey [Wed, 9 Jan 2019 13:51:08 +0000 (15:51 +0200)]
IAR: RRX doesn't modify flags, but has flags as input

IAR assembler version of RRX had a "cc" clobber for RRX, but this is
unneeded - it doesn't modify the condition codes - it's not "RRXS".

Instead the assembler should have a volatile, as already seen in GCC and Clang
versions to reflect the CC input to the instruction.

CMSIS intrinsics use "volatile" attributes to force ordering of
instructions that work on the PSR, either input or output.

A "cc" clobber does not have that effect, at least in gcc; it only
indicates "changes condition codes", not "reads condition codes", so
CC-clobbering instructions can be reordered. This reflects that in
general the compilers make no guarantees about preserving flag state
between assembler sequences, meaning that __RRX will always be prone to
unreliability.

But the volatile marker increases the chances of stuff coming out in the
right order.

6 years agoGCC: add WFI/WFE compiler barriers
Kevin Bracey [Wed, 9 Jan 2019 12:22:32 +0000 (14:22 +0200)]
GCC: add WFI/WFE compiler barriers

Add "memory" clobber to __WFI and __WFE. Architecturally these should
always be immediately preceded by a __DSB (eg to ensure the write buffer
is drained). Without a barrier on WFI, the following compiler reordering
would be permitted:

     __DSB();             __DSB();
     __WFI();       ->    val_in_ram = 3;
     val_in_ram = 3;      __WFI();

This could cause some power issues with the external bus not being
idle.

The added barrier should have no impact on code size, assuming these
instructions are always accompanied by DSB, as DSB does have its own
memory clobber already.

SEV not modified as there are no issues with the equivalent reordering;
we only need the SEV to not be reordered before the DSB, which is
ensured by volatile.

6 years agoGCC: SSAT and USAT need asm volatile
Kevin Bracey [Fri, 11 Jan 2019 10:23:24 +0000 (12:23 +0200)]
GCC: SSAT and USAT need asm volatile

Both SSAT and USAT modify the Q flag, so need something to order them
with respect to reads of the PSR. Add `volatile`, matching SADD8 et al.

Also SSAT16 and USAT16.

Change-Id: Ia2a5669609fd9533ccedc8dbdae791ec5d86b054

6 years agoIAR: LDRT et al must be asm volatile
Kevin Bracey [Wed, 9 Jan 2019 13:23:03 +0000 (15:23 +0200)]
IAR: LDRT et al must be asm volatile

As these functions take volatile pointers, the API is promising that the
loads and stores will happen, so the assembler statements need volatile
qualifiers too.

If the functions took non-volatile pointers, or had a separate
non-volatile overload for C++, then the volatile could be omitted - the
instructions are normal loads and stores with no side-effects.

GCC and clang assembler already is "asm volatile", and armcc uses
intrinsics.

Change-Id: I4f5ce19ad732caa03ea9110501f0634175c85d4e

6 years agoGCC: remove unneeded asm volatiles
Kevin Bracey [Wed, 9 Jan 2019 12:34:02 +0000 (14:34 +0200)]
GCC: remove unneeded asm volatiles

Many assembler intrinsics are pure - they read only the input registers,
write only the output registers, and change no PSR flags.

Remove volatile from all such intrinisics to improve potential
optimisation.

   REV, REV16, REVSH, RBIT
   QADD8, SHADD8, UQADD8, UHADD8
   QSUB8, SHSUB8, UQSUB8, UHSUB8
   QADD16, SHADD16, UQADD16, UHADD16
   QSUB16, SHSUB16, UQSUB16, UHSUB16
   QASX, SHASX, UQASX, UHASX
   QSAX, SHSAX, UQSAX, UHSAX
   USAD8, USADA8
   UXTB16, UXTAB16, SXTB16, SXTAB16
   SMMLA

Change-Id: Id7e245e621dfc78b027db89f073102cf99d92174

6 years agoGCC: remove stray EMBEDDED_ASM annotations
Kevin Bracey [Fri, 11 Jan 2019 13:50:05 +0000 (15:50 +0200)]
GCC: remove stray EMBEDDED_ASM annotations

REV16 for Core_A/cmsis_gcc.h had a __NO_EMBEDDED_ASM test and section
directive - presumably a copy-paste error.

Align with other intrinsics and Core REV16 version.

6 years agoCore(M): Add LDA/STL memory clobbers
Kevin Bracey [Fri, 18 Jan 2019 12:43:22 +0000 (14:43 +0200)]
Core(M): Add LDA/STL memory clobbers

Constrain compiler reordering around acquire and release accesses by
adding memory clobbers to assembler fragments for LDA/STL and
LDAEX/STLEX.

Fixes #494.

Change-Id: Icdf7a4007e34a731f4de0bdc6474e4e9807d32f2

6 years agoRevert "Core(M): Added memory clobbers to get_PRIMASK on GCC to prevent (erroneous...
Kevin Bracey [Thu, 17 Jan 2019 14:19:40 +0000 (16:19 +0200)]
Revert "Core(M): Added memory clobbers to get_PRIMASK on GCC to prevent (erroneous) instruction reordering. [Issue #261]"

GCC bug was fixed in October 2017 - change went to GCC 6.5, 7.3 and 8.1.

Remove the unnecessary memory clobbers to improve optimisation, on the
assumption that people will have updated their compilers.

This reverts commit 6261e0c956188bf51065b84e6edfe5ffda2c87e7.

Change-Id: I0e6fff7910c8cdc0d50176cabc9c03369083ebe2