Skip to content

Commit 23565f3

Browse files
committed
[BL] Updating project documentation
1 parent 0b77c57 commit 23565f3

File tree

1 file changed

+39
-13
lines changed

1 file changed

+39
-13
lines changed

bootloaders/zero/README.md

Lines changed: 39 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,47 @@
1-
1- Prerequisites
1+
# Arduino Zero Bootloader
2+
# -----------------------
23

3-
IAR Embedded Workbench for ARM 7.30
4+
## 1- Prerequisites
45

5-
2- Selecting between USB and UART interface
6+
The project build is based on Makefile system.
7+
Makefile is present at project root and try to handle multi-platform cases.
8+
9+
Multi-plaform GCC is provided by ARM here: https://launchpad.net/gcc-arm-embedded/+download
10+
11+
### Windows
12+
13+
Native command line:
14+
Make binary can be obtained here: http://gnuwin32.sourceforge.net/packages/make.htm
15+
16+
* Cygwin/MSys/MSys2/Babun/etc...:
17+
It is available natively in all distributions.
18+
19+
* Atmel Studio:
20+
An Atmel Studio Makefile-based project is present at project root, just open samd21_sam_ba.atsln file.
21+
22+
### Linux
23+
24+
Make is usually available by default.
25+
26+
### OS X
27+
28+
Make is available through XCode package.
29+
30+
31+
## 2- Selecting available SAM-BA interfaces
32+
33+
By default both USB and UART are made available, but this parameter can be modified in sam_ba_monitor.h, line 31:
634

735
Set the define SAM_BA_INTERFACE to
8-
SAM_BA_UART_ONLY for only UART interface
9-
SAM_BA_USBCDC_ONLY for only USB CDC interface
10-
SAM_BA_BOTH_INTERFACES for enabling both the interfaces
36+
* SAM_BA_UART_ONLY for only UART interface
37+
* SAM_BA_USBCDC_ONLY for only USB CDC interface
38+
* SAM_BA_BOTH_INTERFACES for enabling both the interfaces
1139

12-
SAM_BA_INTERFACE value should be modified in
13-
Project Options -> C/C++ Compiler -> Preprocessor -> Defined symbols
14-
Project Options -> Assembler -> Preprocessor -> Defined symbols
1540

16-
3- Start application check
41+
## 3- Behaviour
1742

18-
Bootloader checks for the state of BOOT_LOAD_PIN (configurable by the user from main.h). If BOOT_LOAD_PIN is pulled low, bootloader execution is resumed.
19-
Else, the first location of application is fetched and checked. If it is empty (0xFFFFFFFF), then bootloader execution is resumed. Else it jumps to application and starts execution from there.
43+
This bootloader implements the double-tap on Reset button.
44+
By quickly pressing this button two times, the board will reset and stay in bootloader, waiting for communication on either USB or USART.
2045

21-
Currently, BOOT_LOAD_PIN is PA15 of SAMD21G18A, pin 5 of Arduino Zero board.
46+
The USB port in use is the USB Native port, close to the Reset button.
47+
The USART in use is the one available on pins D0/D1, labelled respectively RX/TX.

0 commit comments

Comments
 (0)