|
@ -0,0 +1,103 @@ |
|
|
|
|
|
# Introduction |
|
|
|
|
|
Basic code to Blink the LED on the MSP430 F5529 Launchpad Evaluation Kit MSP-EXP430F5529LP from Texas Instruments, using the GCC tool-chain from terminal. |
|
|
|
|
|
|
|
|
|
|
|
# The repository |
|
|
|
|
|
This repository includes the `main.c` and `msp430.dat` files required to accomplish the compilation and debuging process. |
|
|
|
|
|
|
|
|
|
|
|
## The Code `main.c` |
|
|
|
|
|
|
|
|
|
|
|
The example code blinks the on board LED attached to **P1.0**, you can copy the contents from here or clone use the file included in the repository: |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
#include <msp430f5529.h> |
|
|
|
|
|
void main(void) |
|
|
|
|
|
{ |
|
|
|
|
|
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer |
|
|
|
|
|
// PM5CTL0 = 0x0000; // disable high impedance mode |
|
|
|
|
|
P1DIR = 0x01; //set up bit 0 of P1 as output |
|
|
|
|
|
P1OUT = 0x00; //initialize bit 0 of P1 to 0 |
|
|
|
|
|
|
|
|
|
|
|
for(;;){ //loop |
|
|
|
|
|
volatile unsigned int i; |
|
|
|
|
|
P1OUT ^= 0x01; //toggle bit 0 of P1 |
|
|
|
|
|
//Delay |
|
|
|
|
|
for(i=40000; i>0;){ |
|
|
|
|
|
i--; |
|
|
|
|
|
__no_operation(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
## The `msp430.dat` |
|
|
|
|
|
The content of `msp430.dat` configures the communication between computer and the launchpad. |
|
|
|
|
|
|
|
|
|
|
|
Add more description later |
|
|
|
|
|
|
|
|
|
|
|
# Compiling |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
export PATH="/home/gmarx/msp430-gcc/bin:$PATH" |
|
|
|
|
|
msp430-elf-gcc -I /home/gmarx/msp430-gcc/include -L /home/gmarx/msp430-gcc/include -mmcu=msp430f5529 -O2 -g main.c -o main.o |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
# Debuging |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
gdb_agent_console msp430.dat |
|
|
|
|
|
CPU Name Port |
|
|
|
|
|
-------- ---- |
|
|
|
|
|
msp430 :55000 |
|
|
|
|
|
|
|
|
|
|
|
Starting all cores |
|
|
|
|
|
CPU Name Status |
|
|
|
|
|
-------- ------ |
|
|
|
|
|
msp430 Waiting for client |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
In a new terminal tab or window: |
|
|
|
|
|
``` |
|
|
|
|
|
msp430-elf-gdb --tui main.o |
|
|
|
|
|
(gdb) target remote :55000 |
|
|
|
|
|
Remote debugging using :55000 |
|
|
|
|
|
0x00004400 in __crt0_start () |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
The agent will response in the other terminal: |
|
|
|
|
|
``` |
|
|
|
|
|
msp430 Client connected...Connecting to Target |
|
|
|
|
|
Found USB FET at ttyACM0 |
|
|
|
|
|
Target connected...Starting server |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
Then, continue in the gdb terminal prompt: |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
(gdb) load |
|
|
|
|
|
Loading section .lowtext, size 0xa lma 0x4400 |
|
|
|
|
|
Loading section .text, size 0x2e lma 0x440a |
|
|
|
|
|
Loading section __reset_vector, size 0x2 lma 0xfffe |
|
|
|
|
|
Start address 0x00004400, load size 58 |
|
|
|
|
|
Transfer rate: 38 bytes/sec, 19 bytes/write. |
|
|
|
|
|
(gdb) b 1 |
|
|
|
|
|
Breakpoint 1 at 0x440c: file main.c, line 4. |
|
|
|
|
|
(gdb) continue |
|
|
|
|
|
Continuing. |
|
|
|
|
|
|
|
|
|
|
|
Breakpoint 1, main () at main.c:4 |
|
|
|
|
|
(gdb) s 1 |
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
and you will see the code in the terminal running step by step, or write `continue` to observe the LED blinking on the Launch pad board. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Problems: |
|
|
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
msp430-elf-gdb main.o |
|
|
|
|
|
msp430-elf-gdb: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory |
|
|
|
|
|
|
|
|
|
|
|
yay -S ncurses5-compat-libs |
|
|
|
|
|
``` |
|
|
|
|
|
|