{"id":13411161,"url":"https://github.com/gabriele-galeotti/SweetAda","last_synced_at":"2025-03-14T16:34:16.817Z","repository":{"id":40583932,"uuid":"391203838","full_name":"gabriele-galeotti/SweetAda","owner":"gabriele-galeotti","description":"Ada-language framework","archived":false,"fork":false,"pushed_at":"2024-10-29T23:57:51.000Z","size":28977,"stargazers_count":38,"open_issues_count":1,"forks_count":5,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-10-30T01:55:19.841Z","etag":null,"topics":["ada","ada-language","arm","avr","embedded","embedded-system","gnat-ada","m68k","microblaze","mips","neorv32","nios2","openrisc","powerpc","risc-v","s390","sh4","sparc","x86","x86-64"],"latest_commit_sha":null,"homepage":"https://sweetada.org","language":"Ada","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabriele-galeotti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.COPYING.RUNTIME","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-30T22:55:39.000Z","updated_at":"2024-10-29T23:57:55.000Z","dependencies_parsed_at":"2023-10-12T01:47:12.167Z","dependency_job_id":"ede825e5-5ffe-45c4-a021-36119e2da253","html_url":"https://github.com/gabriele-galeotti/SweetAda","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabriele-galeotti%2FSweetAda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabriele-galeotti%2FSweetAda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabriele-galeotti%2FSweetAda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabriele-galeotti%2FSweetAda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabriele-galeotti","download_url":"https://codeload.github.com/gabriele-galeotti/SweetAda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243610976,"owners_count":20319063,"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":["ada","ada-language","arm","avr","embedded","embedded-system","gnat-ada","m68k","microblaze","mips","neorv32","nios2","openrisc","powerpc","risc-v","s390","sh4","sparc","x86","x86-64"],"created_at":"2024-07-30T20:01:11.839Z","updated_at":"2025-03-14T16:34:14.703Z","avatar_url":"https://github.com/gabriele-galeotti.png","language":"Ada","funding_links":[],"categories":["Hardware and Embedded"],"sub_categories":["Frameworks"],"readme":"\n![alt text](https://www.sweetada.org/images/banner.jpg)\n\n\u003cscroll down for the news\u003e\n\n## SweetAda overview\n\nWelcome to SweetAda.\n\nSweetAda is a lightweight development framework whose purpose is the\nimplementation of Ada-based software systems.\n\nThe code produced by SweetAda is able to run on a wide range of machines, from\nARM\u0026reg; embedded boards up to x86-64-class machines, as well as MIPS\u0026reg; machines\nand Virtex\u0026reg;/Spartan\u0026reg; PowerPC\u0026reg;/MicroBlaze\u0026reg; FPGAs. It could theoretically\nrun even on System/390\u0026reg; IBM\u0026reg; mainframes (indeed it runs on the Hercules\nemulator). SweetAda is not an operating system, however it includes a set of both low-\nand high-level primitives and kernel services, like memory management, PCI bus handling,\nFAT mass-storage handling, which could be used as building blocks in the construction of\ncomplex software-controlled devices.\n\nSweetAda has some distinctive characteristics, like:\n- is ROMable\n- could use a ZFP run-time\n- has no dependencies; neither external libraries nor underlying code are needed\n\nSweetAda uses standard GNU toolchains, GNU Make and a decent POSIX\u0026reg; shell\nenvironment. In a Linux\u0026reg; workstation the latter is quite standard, while for a\nWindows\u0026#174; machine you can download and install either MSYS2 (preferred) or\nCygwin\u0026reg;. Anyway, SweetAda comes with a port of Make and support for CMD/PowerShell\nCLI. Being completely makefile- and script- driven, SweetAda has many hooks which\nallow a nicely integration in a GUI environment such as, e.g., Eclipse, Kate or Visual\nStudio Code.\n\nTo make SweetAda generic and, at the same time, reliable, it is regularly\ntested against an heterogeneous set of machines which are able to succesfully\nexecute the system code; a brief list could be given, e.g.:\n\n- PC-style PIIX3/PIIX4 motherboards (ROM-boot)\n- Cobalt RaQ 2 router MIPS RM5231 (ROM-boot)\n- DECstation 5000/133 MIPS R3000 (ROM-boot)\n- Memec FX12 Virtex-4 PPC405 (JTAG-boot)\n- DigiNS7520 board ARM7TDMI (JTAG-boot)\n- Terasic DE10-Lite Nios\u0026reg;II softcore (JTAG-boot)\n- MVME1600-011 PPC603 VME board (JTAG-boot)\n- Force SPARC\u0026reg;/CPU-3CE VME board (ROM-boot)\n- Malta\u0026trade; MIPS (ROM-boot)\n- M5235BCC ColdFire development board (ROM-boot)\n- SPARCstation\u0026trade; 5 (ROM-boot)\n- Spartan 3E MicroBlaze softcore (JTAG-boot)\n- Raspberry Pi\u0026trade; 3 ARMv8 (microSD-boot)\n\nSome machines are supported through a virtual emulator like QEMU(TM), and as\nan option, a virtual IOEMU physical I/O system could be used, which allows software\ncode to interact with a visual environment.\n\nGreat care has been put in the design and development of SweetAda.\nThe software code is logically organized, written with aesthetically precise\nguidelines, and is compiled by a build machinery which enforces a very high\nseverity level. Usefulness, simplicity and expandability rather than extreme\nor obscure optimizations are the key features behind the project. Nevertheless,\nSweetAda grants the implementation of appropriate customizations, down to\nmachine code level, to satisfy specific needs.\n\nSweetAda is in a state of steady growth. BSPs, device drivers, a TLSF memory\nallocator, TCP/IP basic functionalities, as well as low-level CAN primitives\nare under heavy development. More target machines and additional feautures/modules\nsuch as a tiny Python bytecode interpreter and expanded SFP runtimes are scheduled\nin future releases.\n\nPlease note that much of the platform-specific code provided is given as an\nexample. The emphasis of SweetAda is not about operating system design but\nrather on exploiting Ada language everywhere.\n\n## NEWS\n\n21/06/2023\n\nThanks to the work of Fernando Oleo Blanco ([https://irvise.xyz/](https://irvise.xyz/)), SweetAda got displayed\nin the real world, running on a RISC-V SiFive(R) HiFive1 board.\n\nThe Ada-based system was shown at the FOSDEM '23 recently held in Brussels.\n\n![alt text](https://www.sweetada.org/images/20230204_100149.jpg)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabriele-galeotti%2FSweetAda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabriele-galeotti%2FSweetAda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabriele-galeotti%2FSweetAda/lists"}