{"id":20672268,"url":"https://github.com/embeddedcrab/synchronization_arm_cm4","last_synced_at":"2025-10-29T14:34:10.466Z","repository":{"id":191409731,"uuid":"342948472","full_name":"embeddedcrab/synchronization_arm_cm4","owner":"embeddedcrab","description":"Synchronization technique in ARM processors using Exclusive Instructions and bit fields.","archived":false,"fork":false,"pushed_at":"2021-02-27T21:07:34.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-17T13:50:57.990Z","etag":null,"topics":["api","arm","bit-field-locks","lightweight-mutex","mutex-locks","synchronization","thread-synchronization"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/embeddedcrab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2021-02-27T20:10:43.000Z","updated_at":"2023-06-26T08:09:08.000Z","dependencies_parsed_at":"2023-08-29T20:23:12.915Z","dependency_job_id":null,"html_url":"https://github.com/embeddedcrab/synchronization_arm_cm4","commit_stats":null,"previous_names":["embeddedcrab/synchronization_arm_cm4"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedcrab%2Fsynchronization_arm_cm4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedcrab%2Fsynchronization_arm_cm4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedcrab%2Fsynchronization_arm_cm4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/embeddedcrab%2Fsynchronization_arm_cm4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/embeddedcrab","download_url":"https://codeload.github.com/embeddedcrab/synchronization_arm_cm4/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242891419,"owners_count":20202334,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","arm","bit-field-locks","lightweight-mutex","mutex-locks","synchronization","thread-synchronization"],"created_at":"2024-11-16T20:33:18.601Z","updated_at":"2025-10-29T14:34:10.381Z","avatar_url":"https://github.com/embeddedcrab.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synchronization_ARM\nSynchronization technique in ARM processors using Exclusive Instructions and bit fields.\n\nI have created a simple API for synchronization, to be used on ARM Processors and others(if instructions available).\n\nMain motive of API is to use less memory and have more functionalities for synchronization in single data field. \nI have used Bit-Field and Exclusive Laod-Store instructions to achieve so..\n\n---------------------------------------------------------------------------------------------------------------------\n\nUsage of API is as follows:\n- Check test application in test/src for reference\n\n- Can add more data fields in structure according to usage and your design\n\n- Can be used for operation synchronization, exclusive data access etc..\n\n---------------------------------------------------------------------------------------------------------------------\n\nTip:  Allocate the variable in such a way that it takes 1 byte of memory in memory space!\n\nvoid some_function( void )\n{\n\tunsigned short some_var_1 = 0;\n\tunsigned char some_var_2 = 0;\n\tsync_mutex_t synch_mutex = {.byte = 0};\n\t\n\t/* Processing */\n}\n\n\n\n\n\nExplore it, you will definitely like it.\nHappy to Help and Share 😊\n\nCheers!!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedcrab%2Fsynchronization_arm_cm4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembeddedcrab%2Fsynchronization_arm_cm4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedcrab%2Fsynchronization_arm_cm4/lists"}