Commit 6c9b7025 authored by Pedro Henrique Kopper's avatar Pedro Henrique Kopper

Começar documentação no README

parent b17d4c86
# SACADA Mini Firmware
This repository contains a template for developing firmware for SACADA Mini boards. It contains everything you need to blink a LED and write stuff to UART. You're expected to bring your own compiler suite (arm-none-eabi-*) and clone this repository along with it submodules:
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.
{: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.
```bash
git clone --recursive https://github.com/BlazingDesign/sacada-mini-template.git
git clone --recursive https://git.cta.if.ufrgs.br/SACADA/sacada-mini-firmware.git
```
To compile, just run
Assumindo que o compilador esteja instalado, o firmware poderá ser compilado usando o `make`.
```bash
make
```
This will generate the build/ch.bin file. You can flash it using [STLink](https://github.com/texane/stlink/) using:
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.
```bash
st-flash write build/ch.bin 0x8000000
```
or by shorting JP2 and using DFU (USB):
## 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.
```bash
sudo dfu-util -a 0 -D build/ch.bin -s 0x08000000:leave
sudo dfu-util -a 0 -D build/sacadamini.bin -s 0x08000000:leave
```
Copyright 2019 Pedro Henrique Capp Kopper
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.
---
Enjoy!
\ No newline at end of file
Copyright 2019 Pedro Henrique Capp Kopper.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment