You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: bootloaders/zero/README.md
+32-7
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,4 @@
1
1
# Arduino Zero Bootloader
2
-
# -----------------------
3
2
4
3
## 1- Prerequisites
5
4
@@ -8,16 +7,18 @@ Makefile is present at project root and try to handle multi-platform cases.
8
7
9
8
Multi-plaform GCC is provided by ARM here: https://launchpad.net/gcc-arm-embedded/+download
10
9
10
+
Atmel Studio contains both make and ARM GCC toolchain. You don't need to install them in this specific use case.
11
+
11
12
### Windows
12
13
13
-
Native command line:
14
+
*Native command line
14
15
Make binary can be obtained here: http://gnuwin32.sourceforge.net/packages/make.htm
15
16
16
-
* Cygwin/MSys/MSys2/Babun/etc...:
17
+
* Cygwin/MSys/MSys2/Babun/etc...
17
18
It is available natively in all distributions.
18
19
19
-
* Atmel Studio:
20
-
An Atmel Studio Makefile-based project is present at project root, just open samd21_sam_ba.atsln file.
20
+
* Atmel Studio
21
+
An Atmel Studio **7**Makefile-based project is present at project root, just open samd21_sam_ba.atsln file in AS7.
21
22
22
23
### Linux
23
24
@@ -37,11 +38,35 @@ Set the define SAM_BA_INTERFACE to
37
38
* SAM_BA_USBCDC_ONLY for only USB CDC interface
38
39
* SAM_BA_BOTH_INTERFACES for enabling both the interfaces
39
40
40
-
41
41
## 3- Behaviour
42
42
43
43
This bootloader implements the double-tap on Reset button.
44
44
By quickly pressing this button two times, the board will reset and stay in bootloader, waiting for communication on either USB or USART.
45
45
46
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.
47
+
The USART in use is the one available on pins D0/D1, labelled respectively RX/TX. Communication parameters are a baudrate at 115200, 8bits of data, no parity and 1 stop bit (8N1).
48
+
49
+
## 4- Description
50
+
51
+
**Pinmap**
52
+
The following pins are used by the program :
53
+
PA25 : input/output (USB DP)
54
+
PA24 : input/output (USB DM)
55
+
PA11 : input (USART RX)
56
+
PA10 : output (USART TX)
57
+
58
+
The application board shall avoid driving the PA25, PA24, PB23 and PB22 signals while the boot program is running (after a POR for example).
59
+
60
+
**Clock system**
61
+
62
+
CPU runs at 48MHz from Generic Clock Generator 0 on DFLL48M.
63
+
Generic Clock Generator 1 is using external 32kHz oscillator and is the source of DFLL48M.
64
+
USB and USART are using Generic Clock Generator 0 also.
65
+
66
+
**Memory Mapping**
67
+
68
+
Bootloader code will be located at 0x0 and executed before any applicative code.
69
+
70
+
Applications compiled to be executed along with the bootloader will start at 0x2000 (see linker script bootloader_samd21x18.ld).
71
+
72
+
Before jumping to the application, the bootloader changes the VTOR register to use the interrupt vectors of the application @0x2000.<- not required as application code is taking care of this.
0 commit comments