# SACADA Mini Firmware 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://git.cta.if.ufrgs.br/SACADA/sacada-mini-firmware.git ``` Assumindo que o compilador esteja instalado, o firmware poderá ser compilado usando o `make`. ```bash make ``` 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 ``` ## 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/sacadamini.bin -s 0x08000000:leave ``` 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. --- Este projeto utiliza código da biblioteca scpi-parser, cuja licensa e copyright está disponível em [/lib/libscpi/LICENSE](/lib/libscpi/LICENSE). Copyright 2019 Pedro Henrique Capp Kopper.