Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/embeddedcrab/synchronization_arm_cm4
Synchronization technique in ARM processors using Exclusive Instructions and bit fields.
https://github.com/embeddedcrab/synchronization_arm_cm4
api arm bit-field-locks lightweight-mutex mutex-locks synchronization thread-synchronization
Last synced: 4 days ago
JSON representation
Synchronization technique in ARM processors using Exclusive Instructions and bit fields.
- Host: GitHub
- URL: https://github.com/embeddedcrab/synchronization_arm_cm4
- Owner: embeddedcrab
- License: gpl-3.0
- Created: 2021-02-27T20:10:43.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-02-27T21:07:34.000Z (over 3 years ago)
- Last Synced: 2023-08-29T20:05:54.569Z (about 1 year ago)
- Topics: api, arm, bit-field-locks, lightweight-mutex, mutex-locks, synchronization, thread-synchronization
- Language: C
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Synchronization_ARM
Synchronization technique in ARM processors using Exclusive Instructions and bit fields.I have created a simple API for synchronization, to be used on ARM Processors and others(if instructions available).
Main motive of API is to use less memory and have more functionalities for synchronization in single data field.
I have used Bit-Field and Exclusive Laod-Store instructions to achieve so..---------------------------------------------------------------------------------------------------------------------
Usage of API is as follows:
- Check test application in test/src for reference- Can add more data fields in structure according to usage and your design
- Can be used for operation synchronization, exclusive data access etc..
---------------------------------------------------------------------------------------------------------------------
Tip: Allocate the variable in such a way that it takes 1 byte of memory in memory space!
void some_function( void )
{
unsigned short some_var_1 = 0;
unsigned char some_var_2 = 0;
sync_mutex_t synch_mutex = {.byte = 0};
/* Processing */
}Explore it, you will definitely like it.
Happy to Help and Share 😊Cheers!!