README.md 3.54 KB
Newer Older
1
# SACADA Mini Firmware 
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
2

3
Esse repositório contém o firmware que roda nas [placas SACADA Mini](https://git.cta.if.ufrgs.br/SACADA/sacada-mini-hardware). Atualmente, esta é uma versão de desenvolvimento e não é adequada para uso geral.
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
4

5
6
7
8
9
10
11
{:toc}

---
# Compilando
Para compilar firmware para a arquitetura ARM, seu computador deve possuir uma toolchain adequada. Este repositório é desenvolvido utilizando o compilador `gcc-arm-none-eabi`, porém outras toolchains podem funcionar também, caso seja necessário. A instalação do compilador pode ser realizada via gerenciador de pacotes na maioria das distros procurado pelo pacote homônimo.

Para clonar o repositório, é importante utilizar a flag `--recursive` para que os submódulos sejam clonados automaticamente.
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
12
```bash
13
git clone --recursive https://git.cta.if.ufrgs.br/SACADA/sacada-mini-firmware.git
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
14
15
```

16
Assumindo que o compilador esteja instalado, o firmware poderá ser compilado usando o `make`.
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
17
18
19
20
21

```bash
make
```

22
23
24
25
26
27
28
29
Se tudo correr bem, a imagem pronta para ser gravada poderá ser encontrada em `build/sacadamini.bin`.

---
# Gravando a imagem
## Utilizando um depurador STLink v2
Um gravador STLink v2 pode ser utilizado para gravar e depurar o firmware na placa. Para isso, é necessário conectar ele ao header J2 da placa, seguindo a disposição impressa dos pinos.

Para a gravação é utilizado o software [stlink](https://github.com/texane/stlink/), que deve ser instalado manualmente conforme orientações no seu repositório.
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
30
31
32
33
34

```bash
st-flash write build/ch.bin 0x8000000
```

35
36
37
38
## Via USB (DFU)
Primeiramente, é necessário colocar a placa em modo de atualização DFU. Isso pode ser feito curto-circuitando o jumper JP2 (BOOT), localizado logo abaixo do cristal, com uma chave de fenda, enquanto insere o cabo USB. É importante que o pino esteja curto-circuitado enquanto a placa está sendo ligada, caso contrário ela seguirá com a execução normal do firmware.

Para gravar, é utilizada a ferramenta `dfu-util`, disponível em pacote homônimo.
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
39
40

```bash
41
sudo dfu-util -a 0 -D build/sacadamini.bin -s 0x08000000:leave
Pedro Henrique Kopper's avatar
Pedro Henrique Kopper committed
42
43
```

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
Após isso, será necessário reconectar a placa de modo a iniciar o novo firmware corretamente.

---

# Licença

Este programa é um software livre; você pode redistribuí-lo e/ou
modificá-lo sob os termos da Licença Pública Geral GNU como publicada
pela Free Software Foundation; na versão 3 da Licença, ou
(a seu critério) qualquer versão posterior.

Este programa é distribuído na esperança de que possa ser útil,
mas SEM NENHUMA GARANTIA; sem uma garantia implícita de ADEQUAÇÃO
a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. Veja a
Licença Pública Geral GNU para mais detalhes.

Uma cópia da licença (em inglês) está disponível no arquivo [LICENSE](/LICENSE).

---

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

A copy of this license is provided in the [LICENSE](/LICENSE) file.

---
77

78
Este projeto utiliza código da biblioteca scpi-parser, cuja licensa e copyright está disponível em [/lib/libscpi/LICENSE](/lib/libscpi/LICENSE).
79
Copyright 2019 Pedro Henrique Capp Kopper.