{"id":19500863,"url":"https://github.com/fxpool/emva","last_synced_at":"2026-06-11T18:31:26.136Z","repository":{"id":158455988,"uuid":"582630446","full_name":"FxPool/emva","owner":"FxPool","description":"Embedded virtual architecture 嵌入式虚拟架构平台","archived":false,"fork":false,"pushed_at":"2023-09-05T08:31:15.000Z","size":1233,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-18T18:25:44.178Z","etag":null,"topics":["avr","c51","embedded","embedded-c","mcu","msp430","stm32"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FxPool.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-27T12:17:59.000Z","updated_at":"2024-12-12T16:11:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"a84214b7-7e72-4d5a-b0cc-3f585a4c158e","html_url":"https://github.com/FxPool/emva","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/FxPool/emva","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FxPool%2Femva","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FxPool%2Femva/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FxPool%2Femva/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FxPool%2Femva/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FxPool","download_url":"https://codeload.github.com/FxPool/emva/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FxPool%2Femva/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34213180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["avr","c51","embedded","embedded-c","mcu","msp430","stm32"],"created_at":"2024-11-10T22:10:00.115Z","updated_at":"2026-06-11T18:31:26.120Z","avatar_url":"https://github.com/FxPool.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# emva\nEmbedded virtual architecture allows you to quickly start the development of single chip microcomputer without having to learn the complex internal principles of single chip microcomputer. You only need to learn all the apis of this architecture. emva can virtualize all single chip microcomputer on the market and provide standard upper level api operation interface\n## deploy\n- open **emva_create_lib_keilv5** project\n- build this project and you will get **emva_lib.lib** file\n- create your project and add **emva_lib.lib** file to your project\n- implements hal interface \n## implements \nImplement some standard implementations of the interface for your target platform\n- hal_arch\n```code\nstruct hal_arch bsp_arch = {\n\t.Initialize = 'implements your mcu init',\n};\n```\n- hal_usart\n```code\nstruct hal_usart bsp_usart = {\n\t.Initialize = 'implements init',\n\t.Write = 'implements write func',\n\t.Read = 'implements read func',\n\t.CallBack = 'implements call back func',\n};\n```\n- hal_time\n```code\nstruct hal_time bsp_time = {\n\t.Initialize = 'implements init',\n\t.Control = 'implements control ',\n\t.CallBack = 'implements call back func',\n};\n```\n- hal_gpio \n```code\nstruct hal_time bsp_time = {\n\t.write.pin0 = NULL,\n};\n```\n- hal_usb_hid \n```code\nstruct hal_usb_hid bsp_usb_hid = {\n\t.Initialize = 'implements',\n\t.Write = 'implements',\n\t.CallBack = 'implements',\n};\n```\n- sleep implements\n```code\n#include \"bsp_type.h\"\n#include \"emva_os.h\"\ninline void os_sleep(uint32_t nms)\n{\n\t// your code\n}\ninline void os_sleepus(uint32_t nus)\n{\n\t// your code\n}\n```\n- dv mem manage implements\n```code\n#include \"bsp_type.h\"\n#include \"bsp_configure.h\"\n#include \"emva_mem_pool.h\"\n#include \"dv_mem_pool.h\"\nuint8 eg_dv_mem_pool[DV_MEM_SIZE];\n#if defined(__CC_ARM) || defined(__CLANG_ARM) /* ARMCC Complier */\n__align(8) uint8 g_dv_membase[DV_MEM_SIZE];\n#endif\nuint16 g_dvmmt[DV_MMTS];\nvoid dv_mem_pool_init(void)\n{\n    // your code\n}\nvoid *dv_mem_pool_malloc(uint32 size)\n{\n    // your code\n}\nuint8 dv_mem_pool_free(void *mem_pointer)\n{\n    // your code\n}\n```\n\n- emva mem manage implements\n```code\n#include \"bsp_type.h\"\n#include \"bsp_configure.h\"\n#include \"emva_mem_pool.h\"\n#include \"dv_mem_pool.h\"\nuint8 eg_emva_mem_pool[EMVA_MEM_SIZE];\n#if defined(__CC_ARM) || defined(__CLANG_ARM) /* ARMCC Complier */\n__align(8) uint8 g_emva_membase[EMVA_MEM_SIZE];\n#endif\nuint16 g_emvammt[EMVA_MMTS];\nvoid emva_mem_pool_init(void)\n{\n    // your code\n}\nvoid *emva_mem_pool_malloc(unsigned int size)\n{\n    // your code\n}\nuint8 emva_mem_pool_free(void *mem_pointer)\n{\n    // your code\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffxpool%2Femva","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffxpool%2Femva","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffxpool%2Femva/lists"}