This article will help you get setup if you have a M1 with a solution using Docker Desktop.
\uD83D\uDCD8 Instructions for Docker Setup
Info |
---|
This guide will provide instructions for getting a virtual environment setup with Docker which will allow you to simulate your code in a Linux environment |
Download Docker Desktop for Apple Silicon (https://www.docker.com/products/docker-desktop/ )
Install the latest version of vagrant (https://www.vagrantup.com/downloads )
Clone the repo:
git clone https://github.com/uw-midsun/box.git && cd box
Go to your box directory and switch to branch main
Code Block ~ % cd box box % git checkout main
Run
vagrant up --provider=docker
Run
vagrant ssh
Run
cd shared
Run
git clone https://github.com/uw-midsun/fwxv.git && cd fwxv
(if you clone with https, you will need to set up an ssh key later which is covered in our setup page)Run
scons sim --project=leds --platform=x86
to test that your environment is working correctly. If it compiles and runs your environment is set up.
👾 Guide to flashing on M1s
Note |
---|
Only follow these instructions if you have already finished the instructions below and are ready to flash |
Ensure you are not in the linux environment
Go to the box repository and start up your python virtual environment by running
source venv/bin/activate
Try running
arm-none-eabi-gcc --version
and look for output. If it says that it cannot findarm-none-eabi-gcc
then runsource ~/.zshrc
If it still doesn’t work, please contact a lead for help
Make the necessary connections you need with the hardware
cd shared/fwxv
then runscons flash --project=[project name]
(If you need some other scons command please reference the build_system.md file)
✨ Guide to setting up dependencies for flashing on M1s
Info |
---|
While this guide provides instructions for flashing, it's important to note that the execution of scons sim still remains necessary within the Docker environment |
Note |
---|
Ensure that these steps, including any future flashing activities, are performed outside the Vagrant/Docker environment |
Install package dependencies:
Run this shell script in box directory:
View file name setup.sh This uses virtualenv, a python package manager. (https://docs.python.org/3/library/venv.html )
Install arm-none-eabi-gcc compiler
Download gcc-arm-none-eabi version 9.2.1 which is obtained from https://developer.arm.com/downloads/-/gnu-rm
Move this to your tar file into your box folder and change current directory to
box directory
Run this code in the box repository:
View file name m1.sh Run
scons
in the box/shared/fwxv folder to test if building works
For people who care about the step-by-step of the m1.sh:Code Block // Should be in the box repository with .tar.bz2 file tar xzf gcc-arm-none-eabi-9-2019-q4-major-mac.tar.bz2 // move into gcc-arm-none-eabi folder cd gcc-arm-none-eabi-9-2019-q4-major/ // run pwd and copy output into next command pwd // enter pwd output in [pwd input here] (do not include [] braces) // ex. echo 'export PATH="/Users/your-user-name/box/gcc-arm-none-eabi-9-2019-q4-major/bin:$PATH"' >> ~/.
zshrc echo 'export PATH="[pwd input here]:$PATH"' >> ~/.
zshrc source ~/.
zshrc // you may get a permissions issue so we will "unquarantine" (remove quarantine attribute) our files // path to gcc-arm-none-eabi folder can be grabbed by cd gcc-arm-none-eabi-9-2019-q4-major and pwd // ex. xattr -d -r com.apple.quarantine /Users/your-user-name/box/gcc-arm-none-eabi-9-2019-q4-major/ xattr -d -r com.apple.quarantine [path to gcc-arm-none-eabi folder] // check arm-none-eabi-gcc version // Should get output similar to: /* * arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 9-2019-q4-major) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] * Copyright (C) 2019 Free Software Foundation, Inc. * This is free software; see the source for copying conditions. There is NO * warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. /* arm-none-eabi-gcc --version // To test if it works, run scons to see if everything compiles correctly for you scons