diff --git a/Cargo.toml b/Cargo.toml index d8b1b42..025c3c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "igloo" -version = "1.0.2" +version = "2.0.0" authors = ["Penguin <...>"] edition = "2021" repository = "https://github.com/Embedded-Penguin/ePenguin-igloo/" readme = "README.md" -description = "I am bringing this project back..." -license="GPL-2.0" +description = "Igloo is a project management tool for C/C++. It supports both embedded and non-embedded systems. The current GPL-3.0 license may change as I learn more about licenses." +license="GPL-3.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] diff --git a/README.md b/README.md deleted file mode 100644 index c78e2af..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# ePenguin-Igloo - -I am bringing this project back! It will still be an embedded project management tool, but it will also work for non-embedded projects. - diff --git a/README.org b/README.org new file mode 100644 index 0000000..79572c3 --- /dev/null +++ b/README.org @@ -0,0 +1,38 @@ +#+title: Igloo +#+author: Penguin +#+Date: 5/6/2023 +#+OPTIONS: ^:nil + +* WIP: What is Igloo? + +Igloo is a project management tool for C/C++ projects. It supports embedded and non-embedded systems projects. Igloo aims to be for C/C++ what cargo is for Rust. I was tired of manually making the same makefiles over and over again. I was tired of downloading BSPs from manufacturers websites and manually stringing together the same project structure over and over again. So I made Igloo. + +* WIP: How does igloo work? +Igloo has many moving parts in order to keep a compatible, working interface between embedded and non-embedded projects. A diagram is being worked on currently. Igloo creates and manages projects. It works with another component (snowman) to manage packages that hold piece together different components required for a working project. + +* Getting Started +** Installation +*** TODO: Gentoo +*** TODO: Ubuntu +*** TODO: Arch +*** TODO: Manual (Binary) Installation +*** TODO: Manual (Source) Installation +** Usage +*** TODO: Creating a project +*** TODO: Running a project +*** TODO: Debugging a project +*** TODO: Creating an embedded project +*** TODO: Flashing an embedded target +*** TODO: Debugging an embedded target +** Configuration +Igloo follows the normal configuration path for linux. It looks (in order) at: +- /etc/igloo/config.toml +- $HOME/.config/igloo/config.toml +- /.igloo/config.toml + +Example configs can be found here: + +src_path[:exports code]{/usr/share/doc/igloo---/} + +* Supported Hardware +A full list of supported MCUs can be found [[./SUPPORTED_HARDWARE.org][here]]. diff --git a/SUPPORTED_HARDWARE.org b/SUPPORTED_HARDWARE.org new file mode 100644 index 0000000..841057b --- /dev/null +++ b/SUPPORTED_HARDWARE.org @@ -0,0 +1,183 @@ +#+title: Supported Hardware +#+author: Penguin +#+date: 5/6/23 +#+options: ^:nil + +* Supported Hardware +Supported hardware is divided into categories (in order, if applicable): +- Architecture +- Manufacturer/Family +- Series +- Part Number + +- ARM [0%] + - Atmel SAM [0%] + - SAMD21 [0%] + - samd21e15a [33%] + - [ ] Project Creation + - [X] Project Run + - [ ] Project Debug + - samd21e16a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21e17a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21e18a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21g15a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21g16a [33%] + - [X] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21g17a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21g17au [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21g18a [100%] + - [X] Project Creation + - [X] Project Run + - [X] Project Debug + - samd21g18au [100%] + - [X] Project Creation + - [X] Project Run + - [X] Project Debug + - samd21j15a [100%] + - [X] Project Creation + - [X] Project Run + - [X] Project Debug + - samd21j16a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21j17a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + - samd21j18a [0%] + - [ ] Project Creation + - [ ] Project Run + - [ ] Project Debug + +*** STM32 +** AVR +*** Atmel AVR +** RISC-V +*** SiFive +** Other +*** MSP430 + +[target.make] +# samd21 family +# samd21a series +samd21e15a = "arch.arm.samd21a.samd21e15a" +samd21e16a = "arch.arm.samd21a.samd21e16a" +samd21e17a = "arch.arm.samd21a.samd21e17a" +samd21e18a = "arch.arm.samd21a.samd21e18a" +samd21g15a = "arch.arm.samd21a.samd21g15a" +samd21g16a = "arch.arm.samd21a.samd21g16a" +samd21g17a = "arch.arm.samd21a.samd21g17a" +samd21g17au = "arch.arm.samd2a1.samd21g17au" +samd21g18a = "arch.arm.samd21a.samd21g18a" +samd21g18au = "arch.arm.samd21a.samd21g18au" +samd21j15a = "arch.arm.samd21a.samd21j15a" +samd21j16a = "arch.arm.samd21a.samd21j16a" +samd21j17a = "arch.arm.samd21a.samd21j17a" +samd21j18a = "arch.arm.samd21a.samd21j18a" +# samd51 family +# samd51a series +samd51g18a = "arch.arm.samd51a.samd51g18a" +samd51g19a = "arch.arm.samd51a.samd51g19a" +samd51j18a = "arch.arm.samd51a.samd51j18a" +samd51j19a = "arch.arm.samd51a.samd51j19a" +samd51j20a = "arch.arm.samd51a.samd51j20a" +samd51n19a = "arch.arm.samd51a.samd51n19a" +samd51n20a = "arch.arm.samd51a.samd51n20a" +samd51p19a = "arch.arm.samd51a.samd51p19a" +samd51p20a = "arch.arm.samd51a.samd51p20a" +# same54 family +# same54n/p series +same54n19a = "arch.arm.same54a.same54n19a" +same54n20a = "arch.arm.same54a.same54n20a" +same54p19a = "arch.arm.same54a.same54p19a" +same54p20a = "arch.arm.same54a.same54p20a" +# same70 family +# same70a series +same70j19a = "arch.arm.same70a.same70j19a" +same70j20a = "arch.arm.same70a.same70j20a" +same70j21a = "arch.arm.same70a.same70j21a" +same70n19a = "arch.arm.same70a.same70n19a" +same70n20a = "arch.arm.same70a.same70n20a" +same70n21a = "arch.arm.same70a.same70n21a" +same70q19a = "arch.arm.same70a.same70q19a" +same70q20a = "arch.arm.same70a.same70q20a" +same70q21a = "arch.arm.same70a.same70q21a" + +# fe310 family +# fe310g series +fe310g000 = "arch.riscv.fe310g.fe310g000" +fe310g002 = "arch.riscv.fe310g.fe310g002" + +# target.cfg contains the file locations for all config manifests for all mcus +# target.cfg contains things like symlinks +[target.manifest] +[targets] +# samd21 family +# samd21a series +samd21e15a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21e16a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21e17a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21e18a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21g15a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21g16a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21g17a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21g17au = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21g18a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21g18au = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21j15a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21j16a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21j17a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +samd21j18a = "arch/arm/SAMD21/SAMD21A/manifest/samd21a.toml" +# samd51 family + +samd51g19a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +samd51j18a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +samd51j19a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +samd51j20a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +samd51n19a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +samd51n20a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +samd51p19a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +samd51p20a = "arch/arm/SAMD51/SAMD51A/manifest/samd51a.toml" +# same54 family +# same54a series +same54n19a = "arch/arm/SAME54/SAME54A/manifest/same54a.toml" +same54n20a = "arch/arm/SAME54/SAME54A/manifest/same54a.toml" +same54p19a = "arch/arm/SAME54/SAME54A/manifest/same54a.toml" +same54p20a = "arch/arm/SAME54/SAME54A/manifest/same54a.toml" +# same70 family +# same70a series +same70j19a = "arch/arm/SAME70/SAME70A/manifest/same70j19a.toml" +same70j20a = "arch/arm/SAME70/SAME70A/manifest/same70j20a.toml" +same70j21a = "arch/arm/SAME70/SAME70A/manifest/same70j21a.toml" +same70n19a = "arch/arm/SAME70/SAME70A/manifest/same70n19a.toml" +same70n20a = "arch/arm/SAME70/SAME70A/manifest/same70n19a.toml" +same70n21a = "arch/arm/SAME70/SAME70A/manifest/same70n20a.toml" +same70q19a = "arch/arm/SAME70/SAME70A/manifest/same70q21a.toml" +same70q20a = "arch/arm/SAME70/SAME70A/manifest/same70q20a.toml" +same70q21a = "arch/arm/SAME70/SAME70A/manifest/same70q21a.toml" + +# fe310 family +# fe310g series +fe310g000 = "arch/riscv/FE310/FE310_G/manifest/fe310g.toml" +fe310g002 = "arch/riscv/FE310/FE310_G/manifest/fe310g.toml"