-
Notifications
You must be signed in to change notification settings - Fork 518
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dependency clarification #1665
base: develop
Are you sure you want to change the base?
Dependency clarification #1665
Conversation
Removed dfu-util from build dependencies Added gcc-arm-none-eabi dependencies
5. [Git](#5-git) | ||
6. [Command line tools](#6-command-line-tools) | ||
1. You can download and install the dependencies natively | ||
1. You can install Docker and run the toolchain in a container _(with all dependencies supplied therein)_ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In markdown you just use the number 1 over and over again, and it will render it correctly. This allows you to rearrange steps without having to renumber the whole list.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While I agree that it renders correctly, markdown is still a human-readable format and I don't see any reason why the enumeration shouldn't be correct even in plain-text.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not only saying it works, but it's also recommended by linters.
That being said, I understand your feelings and I don't have a strong preference. You are correct it is more human readable 👍 , but I've learned to read it like a machine. 🤖
I'll change it back, it seems like the right thing to do.
The Docker build container will execute `make`, and any parameters you pass behind it will be passed directly to `make`. Although more verbose, the Docker build container has a couple of advantages over native installation. | ||
|
||
1. Isolation of build dependencies required by the Particle firmware | ||
1. Dependencies are always in sync and are managed by Particle |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2?
The Core/Photon uses an ARM Cortex M3 CPU based microcontroller. All of the code is built around the GNU GCC toolchain offered and maintained by ARM. | ||
|
||
The build requires version 5.3.1 20160307 or newer of ARM GCC and will print an error | ||
message if the version is older than this. | ||
|
||
| OS | Distribution | Package Manager | Command | | ||
|:-- |:------------ |:--------------- |:------- | | ||
| Linux | Ubuntu | apt-get | `sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa && sudo apt-get update && sudo apt-get install gcc-arm-embedded` | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will install gcc 8 though, which we do not support.
|
||
| Confirmed version | Download page | | ||
|:-----------------:|:-------------:| | ||
| 5.3.1 | [launchpad.net](https://launchpad.net/gcc-arm-embedded) | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK ARM toolchains can no longer be downloaded from Launchpad. This link should instead be https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
|
||
**Linux and Windows**: | ||
- Download and install version 5.3.1 from: https://launchpad.net/gcc-arm-embedded | ||
Additional 32-bit dependencies: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should generalize this section and remove Debian-specific references.
|
||
#### 6. Command line tools | ||
### Zadig (Windows only) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In theory this should no longer be required as we implement proper WCID descriptors for Windows on both Gen 2 and Gen 3 devices (but not for Core). So we might add something like 'generally this should not be required for recent releases'.
@@ -1,10 +0,0 @@ | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Problem
The dependency information is incomplete, and the available information is unorganized and hard to process.
Solution
Introduced markdown tables to help standardize the dependencies and where to find them. Also created new section to describe using the toolchain via Docker container (which manages all dependencies for the end-user).
I have also supplied the Dockerfile used to create the image that supports containerized toolchain.
Completeness