summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabian-Robert Stöter <fabian-robert.stoeter@audiolabs.uni-erlangen.de>2016-04-25 15:07:56 +0200
committerFabian-Robert Stöter <fabian-robert.stoeter@audiolabs.uni-erlangen.de>2016-04-25 15:07:56 +0200
commit6cd0be065a55d34f4edf9e3c14e5c8a31008aea0 (patch)
treefb26cd4f833373a79323151d7a58384848feedba
parent6edc776b3d0a33c1b59ed29d66570cc8b5bc74e2 (diff)
downloadlaunchpad-polymaker-6cd0be065a55d34f4edf9e3c14e5c8a31008aea0.tar.gz
launchpad-polymaker-6cd0be065a55d34f4edf9e3c14e5c8a31008aea0.zip
add description to readme how to install devtools on OS X using homebrew
-rw-r--r--README.md27
1 files changed, 20 insertions, 7 deletions
diff --git a/README.md b/README.md
index c22b331..512d927 100644
--- a/README.md
+++ b/README.md
@@ -20,8 +20,11 @@ We could have released the full source for the factory shipping firmware, but we
20 20
21I'm sure you'll have feedback for us, so please do get in touch! I'm [blogging the process too](http://launchpadfirmware.tumblr.com/) if you'd like to read my musings. 21I'm sure you'll have feedback for us, so please do get in touch! I'm [blogging the process too](http://launchpadfirmware.tumblr.com/) if you'd like to read my musings.
22 22
23# Installation 23# Setup the Development Environment
24This project uses [Vagrant](https://www.vagrantup.com/) to manage the build environment. As such, you need to: 24
25## Using Vagrant
26
27To use [Vagrant](https://www.vagrantup.com/) to manage the build environment you need to:
25 28
261. Clone this repository on your host computer (if using the command line, make sure you `git clone --recursive`). 291. Clone this repository on your host computer (if using the command line, make sure you `git clone --recursive`).
272. Install [Vagrant](https://www.vagrantup.com/) 302. Install [Vagrant](https://www.vagrantup.com/)
@@ -31,21 +34,21 @@ This project uses [Vagrant](https://www.vagrantup.com/) to manage the build envi
31 34
32If you have a poor internet connection, ummm, find a better one :) 35If you have a poor internet connection, ummm, find a better one :)
33 36
34# Building 37### Building
35Once your new "box" is up and running, you can build the app in one of two ways. In the spirit of experimentation, we've created a full Eclipse development environment for you to use. However, you might prefer to do things on the command line. 38Once your new "box" is up and running, you can build the app in one of two ways. In the spirit of experimentation, we've created a full Eclipse development environment for you to use. However, you might prefer to do things on the command line.
36 39
37# To use the command line interface: 40### To use the command line interface:
381. SSH into the Vagrant "box" by doing `vagrant ssh` 411. SSH into the Vagrant "box" by doing `vagrant ssh`
392. At the command prompt, simply type `make` 422. At the command prompt, simply type `make`
40 43
41# To build using the Eclipse GUI 44### To build using Eclipse GUI
42 45
43**Make sure you wait until the `vagrant up` command has fully completed** before logging in to your VM. The GUI appears long before the provisioning script finishes. If you don't, you'll have to log out and log back in again before Eclipse can see the correct path. 46**Make sure you wait until the `vagrant up` command has fully completed** before logging in to your VM. The GUI appears long before the provisioning script finishes. If you don't, you'll have to log out and log back in again before Eclipse can see the correct path.
44 47
451. Log in to the Ubuntu GUI (the password is, as is the convention, **vagrant**). 481. Log in to the Ubuntu GUI (the password is, as is the convention, **vagrant**).
462. Launch Eclipse from the doodah on the top left (it's a bit like Spotlight) 492. Launch Eclipse from the doodah on the top left (it's a bit like Spotlight)
473. Accept the default when Eclipse asks you for a workspace. I can't figure out how to store the workspace in source control, so you need to import it. 503. Accept the default when Eclipse asks you for a workspace. I can't figure out how to store the workspace in source control, so you need to import it.
484. Click "Workbench" at the Ecliplse startup screen. 514. Click "Workbench" at the Eclipse startup screen.
495. In Eclipse, choose "File->Import..." 525. In Eclipse, choose "File->Import..."
506. Under "C/C++", choose "Existing Code as Makefile Project", hit "Next" 536. Under "C/C++", choose "Existing Code as Makefile Project", hit "Next"
517. Give the project any name you like (launchpad?) 547. Give the project any name you like (launchpad?)
@@ -56,6 +59,16 @@ Once your new "box" is up and running, you can build the app in one of two ways.
56 59
57Either of the above methods will generate the firmware image, `launchpad_pro.syx`, in the project `build` directory. You can then upload this to your Launchpad Pro from the host! 60Either of the above methods will generate the firmware image, `launchpad_pro.syx`, in the project `build` directory. You can then upload this to your Launchpad Pro from the host!
58 61
62## Using OS X
63
64On OS X you can easily install the GCC ARM toolchain using the [homebrew package manager](http://brew.sh). The EABI tools are maintained in an external repository which you need to put on tap first. You can then run ```make``` to directly compile the code:
65
66```
67brew tap PX4/homebrew-px4
68brew install gcc-arm-none-eabi
69make
70```
71
59# Uploading to a Launchpad Pro 72# Uploading to a Launchpad Pro
60Now you've got some nice new code to run! To upload it to your Launchpad Pro, you'll need a sysex tool for your host platform (I'd love to get it working from the virtual machine, but that's for later). I recommend [Sysex Librarian](http://www.snoize.com/SysExLibrarian/) on OS X, and [MIDI OX](http://www.midiox.com/) on Windows. On Linux, I'll bet you already have a tool in mind. 73Now you've got some nice new code to run! To upload it to your Launchpad Pro, you'll need a sysex tool for your host platform (I'd love to get it working from the virtual machine, but that's for later). I recommend [Sysex Librarian](http://www.snoize.com/SysExLibrarian/) on OS X, and [MIDI OX](http://www.midiox.com/) on Windows. On Linux, I'll bet you already have a tool in mind.
61 74
@@ -131,4 +144,4 @@ It appears that VirtualBox does not yet work on Windows 10.
131If your connection drops out while updating the Vagrant box, you can get stuck, unable to `vagrant up`. To resolve, you need to delete the temp file - `~/vagrant.d/tmp`. 144If your connection drops out while updating the Vagrant box, you can get stuck, unable to `vagrant up`. To resolve, you need to delete the temp file - `~/vagrant.d/tmp`.
132 145
133# Firmware development tips 146# Firmware development tips
134OK - we're not going to need to use the MISRA rules, but there are a few things to avoid. Dynamic memory allocation is a no (well it will work, but it's best avoided). Floating point will work, but it's implemented in software and will be slooooow. C++ ought to work, but you'll definitely want to avoid exceptions and RTTI! \ No newline at end of file 147OK - we're not going to need to use the MISRA rules, but there are a few things to avoid. Dynamic memory allocation is a no (well it will work, but it's best avoided). Floating point will work, but it's implemented in software and will be slooooow. C++ ought to work, but you'll definitely want to avoid exceptions and RTTI!