add EEPROM emulation snippet

This commit is contained in:
eddyem 2017-12-06 20:14:24 +03:00
parent c07884c06d
commit 7a69f7b3e7
20 changed files with 239 additions and 1542 deletions

View File

@ -0,0 +1,9 @@
EEPROM emulation in flash
All user data stored in user_conf structure.
macro/constants:
FLASH_CONF_START_ADDR - start address of flash page used
maxnum - maximal amount of structures in data
Call function get_userconf() at the beginning of your code after base initialisation. It will copy data from last non-empty flash storage to variable the_conf (or leave the_conf empty if all flash is clean).
Change some data in `the_conf` and after it call store_userconf() to save data in flash. This function returnc 1 in case of error. It will clear the flash page if all indexes used and store at first.

View File

@ -0,0 +1,162 @@
/*
* geany_encoding=koi8-r
* flash.c
*
* Copyright 2017 Edward V. Emelianov <eddy@sao.ru, edward.emelianoff@gmail.com>
*
* 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 2 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*/
#include "stm32f0.h"
#include <string.h> // memcpy
#include "flash.h"
#include "usart.h"
// start of configuration data in flash (from 15kB, one kB size)
#define FLASH_CONF_START_ADDR ((uint32_t)0x08003C00)
static const int maxnum = 1024 / sizeof(user_conf);
user_conf the_conf = {
.userconf_sz = sizeof(user_conf)
,.devID = 0
,.v12numerator = 1
,.v12denominator = 1
,.i12numerator = 1
,.i12denominator = 1
,.v33denominator = 1
,.v33numerator = 1
,.ESW_thres = 150
};
static int erase_flash();
static int get_gooddata(){
user_conf *c = (user_conf*) FLASH_CONF_START_ADDR;
// have data - move it to `the_conf`
int idx;
//write2trbuf("get_gooddata()\n");
for(idx = 0; idx < maxnum; ++idx){ // find current settings index - first good
uint16_t sz = c[idx].userconf_sz;
/*write2trbuf("idx=");
put_int((int32_t) idx);
write2trbuf(", sz=");
put_uint((uint32_t) sz);
write2trbuf(", devID=");
put_uint((uint32_t) c[idx].devID);
write2trbuf(", ESW_thres=");
put_uint((uint32_t) c[idx].ESW_thres);
SENDBUF();*/
if(sz != sizeof(user_conf)){
if(sz == 0xffff) break; // first clear
else{
return -2; // flash corrupt, need to erase
}
}
}
return idx-1; // -1 if there's no data at all & flash is clear; maxnum-1 if flash is full
}
void get_userconf(){
user_conf *c = (user_conf*) FLASH_CONF_START_ADDR;
int idx = get_gooddata();
if(idx < 0) return; // no data stored
memcpy(&the_conf, &c[idx], sizeof(user_conf));
}
// store new configuration
// @return 0 if all OK
int store_userconf(){
int ret = 0;
user_conf *c = (user_conf*) FLASH_CONF_START_ADDR;
int idx = get_gooddata();
if(idx == -2 || idx == maxnum - 1){ // data corruption or there's no more place
idx = 0;
if(erase_flash()) return 1;
}else ++idx; // take next data position
/*write2trbuf("store_userconf()\nidx=");
put_int((int32_t) idx);
SENDBUF();*/
if (FLASH->CR & FLASH_CR_LOCK){ // unloch flash
FLASH->KEYR = FLASH_FKEY1;
FLASH->KEYR = FLASH_FKEY2;
}
while (FLASH->SR & FLASH_SR_BSY);
if(FLASH->SR & FLASH_SR_WRPERR) return 1; // write protection
FLASH->SR = FLASH_SR_EOP | FLASH_SR_PGERR | FLASH_SR_WRPERR; // clear all flags
FLASH->CR |= FLASH_CR_PG;
uint16_t *data = (uint16_t*) &the_conf;
uint16_t *address = (uint16_t*) &c[idx];
uint32_t i, count = sizeof(user_conf) / 2;
for (i = 0; i < count; ++i){
*(volatile uint16_t*)(address + i) = data[i];
while (FLASH->SR & FLASH_SR_BSY);
if(FLASH->SR & FLASH_SR_PGERR) ret = 1; // program error - meet not 0xffff
else while (!(FLASH->SR & FLASH_SR_EOP));
/*write2trbuf("write byte ");
put_int((int32_t) i);
write2trbuf(", write value=");
put_uint(data[i]);
write2trbuf(", read value=");
put_uint(address[i]);
SENDBUF();
if(ret){
write2trbuf("PGERR");
SENDBUF();*/
}
FLASH->SR = FLASH_SR_EOP | FLASH_SR_PGERR | FLASH_SR_WRPERR;
}
FLASH->CR &= ~(FLASH_CR_PG);
return ret;
}
static int erase_flash(){
int ret = 0;
/*write2trbuf("erase_flash()");
SENDBUF();*/
/* (1) Wait till no operation is on going */
/* (2) Clear error & EOP bits */
/* (3) Check that the Flash is unlocked */
/* (4) Perform unlock sequence */
while ((FLASH->SR & FLASH_SR_BSY) != 0){} /* (1) */
FLASH->SR = FLASH_SR_EOP | FLASH_SR_PGERR | FLASH_SR_WRPERR; /* (2) */
/* if (FLASH->SR & FLASH_SR_EOP){
FLASH->SR |= FLASH_SR_EOP;
}*/
if ((FLASH->CR & FLASH_CR_LOCK) != 0){ /* (3) */
FLASH->KEYR = FLASH_FKEY1; /* (4) */
FLASH->KEYR = FLASH_FKEY2;
}
/* (1) Set the PER bit in the FLASH_CR register to enable page erasing */
/* (2) Program the FLASH_AR register to select a page to erase */
/* (3) Set the STRT bit in the FLASH_CR register to start the erasing */
/* (4) Wait until the EOP flag in the FLASH_SR register set */
/* (5) Clear EOP flag by software by writing EOP at 1 */
/* (6) Reset the PER Bit to disable the page erase */
FLASH->CR |= FLASH_CR_PER; /* (1) */
FLASH->AR = FLASH_CONF_START_ADDR; /* (2) */
FLASH->CR |= FLASH_CR_STRT; /* (3) */
while(!(FLASH->SR & FLASH_SR_EOP));
FLASH->SR |= FLASH_SR_EOP; /* (5)*/
if(FLASH->SR & FLASH_SR_WRPERR){ /* Check Write protection error */
ret = 1;
FLASH->SR |= FLASH_SR_WRPERR; /* Clear the flag by software by writing it at 1*/
}
FLASH->CR &= ~FLASH_CR_PER; /* (6) */
return ret;
}

View File

@ -0,0 +1,46 @@
/*
* geany_encoding=koi8-r
* flash.h
*
* Copyright 2017 Edward V. Emelianov <eddy@sao.ru, edward.emelianoff@gmail.com>
*
* 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 2 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.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301, USA.
*
*/
#pragma once
#ifndef __FLASH_H__
#define __FLASH_H__
typedef struct{
uint16_t userconf_sz; // size of data
uint16_t devID; // device address (id)
uint16_t ESW_thres; // ADC threshold for end-switches/Hall sensors
// calibration values for current/voltage sensors
uint16_t v12numerator; // 12V to motors
uint16_t v12denominator;
uint16_t i12numerator; // motors' current
uint16_t i12denominator;
uint16_t v33numerator; // 3.3V (vref)
uint16_t v33denominator;
} user_conf;
extern user_conf the_conf;
void get_userconf();
int store_userconf();
#endif // __FLASH_H__

View File

@ -0,0 +1,4 @@
Some snippets
=============
* Flash_EEPROM - EEPROM emulation in flash

View File

@ -32,6 +32,9 @@
#define NULL (0)
#endif
// some good things from CMSIS
#define nop() __NOP()
/************************* RCC *************************/
// reset clocking registers
TRUE_INLINE void sysreset(void){
@ -62,7 +65,7 @@ TRUE_INLINE void sysreset(void){
#elif defined (STM32F091xC) || defined (STM32F098xx)
/* Reset USART3SW[1:0], USART2SW[1:0], USART1SW[1:0], I2C1SW, CECSW and ADCSW bits */
RCC->CFGR3 &= (uint32_t)0xFFF0FEAC;
#elif defined (STM32F030x6) || defined (STM32F030x8) || defined (STM32F031x6) || defined (STM32F038xx) || defined (STM32F030xC)
#elif defined (STM32F030x4) || defined (STM32F030x6) || defined (STM32F030x8) || defined (STM32F031x6) || defined (STM32F038xx) || defined (STM32F030xC)
/* Reset USART1SW[1:0], I2C1SW and ADCSW bits */
RCC->CFGR3 &= (uint32_t)0xFFFFFEEC;
#elif defined (STM32F051x8) || defined (STM32F058xx)
@ -91,7 +94,7 @@ TRUE_INLINE void sysreset(void){
RCC->CFGR |= RCC_CFGR_PPRE_DIV1;
/* PLL configuration = (HSI/2) * 12 = ~48 MHz */
RCC->CFGR &= ~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLMUL);
RCC->CFGR |= RCC_CFGR_PLLSRC_HSI_DIV2 | RCC_CFGR_PLLMUL12;
RCC->CFGR |= RCC_CFGR_PLLMUL12;
/* Enable PLL */
RCC->CR |= RCC_CR_PLLON;
/* Wait till PLL is ready */
@ -116,6 +119,7 @@ TRUE_INLINE void StartHSE(){
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_PLL){}
}
#if !defined (STM32F030x4) && !defined (STM32F030x6) && !defined (STM32F030x8) && !defined (STM32F031x6) && !defined (STM32F038xx) && !defined (STM32F030xC)
TRUE_INLINE void StartHSI48(){
// disable PLL
RCC->CR &= ~RCC_CR_PLLON;
@ -130,6 +134,7 @@ TRUE_INLINE void StartHSI48(){
RCC->CFGR |= RCC_CFGR_SW_HSI48;
while ((RCC->CFGR & (uint32_t)RCC_CFGR_SWS) != (uint32_t)RCC_CFGR_SWS_HSI48){}
}
#endif
/************************* GPIO *************************/
@ -202,7 +207,14 @@ TRUE_INLINE void StartHSI48(){
#define TEMP30_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7B8))
// VDDA_Actual = 3.3V * VREFINT_CAL / average vref value
#define VREFINT_CAL_ADDR ((uint16_t*) ((uint32_t) 0x1FFFF7BA))
#define VDD_CALIB ((uint16_t) (330))
#define VDD_APPLI ((uint16_t) (300))
/************************* USART *************************/
#define USART_CR2_ADD_SHIFT 24
// set address/character match value
#define USART_CR2_ADD_VAL(x) ((x) << USART_CR2_ADD_SHIFT)
//#define do{}while(0)

View File

@ -64,7 +64,7 @@
* @{
*/
#if !defined (STM32F030x6) && !defined (STM32F030x8) && \
#if !defined (STM32F030x4) && !defined (STM32F030x6) && !defined (STM32F030x8) && \
!defined (STM32F031x6) && !defined (STM32F038xx) && \
!defined (STM32F042x6) && !defined (STM32F048xx) && !defined (STM32F070x6) && \
!defined (STM32F051x8) && !defined (STM32F058xx) && \
@ -139,7 +139,9 @@ void WEAK usb_isr(void);
*/
// arch-dependent defines
#if defined(STM32F030x6)
#if defined(STM32F030x4)
#include "stm32f030x6.h"
#elif defined(STM32F030x6)
#include "stm32f030x6.h"
#elif defined(STM32F030x8)
#include "stm32f030x8.h"

View File

@ -1,46 +0,0 @@
mk/cdcacm.o: cdcacm.c cdcacm.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbd.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbstd.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/newlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/config.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/ieeefp.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/features.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/common.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdbool.h user_proto.h main.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stddef.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/reent.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_default_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/lock.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/alloca.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/string.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/cdefs.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/string.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/gpio_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/dispatch/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/cdc.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/systick.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/rcc_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/adc_common_v1.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/timer_common_all.h \
sync.h

Binary file not shown.

View File

@ -1,46 +0,0 @@
mk/hardware_ini.o: hardware_ini.c main.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/ieeefp.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/newlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/config.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/features.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stddef.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/reent.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_default_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/lock.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/alloca.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/string.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/cdefs.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/string.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/common.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdbool.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/gpio_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/dispatch/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/cdc.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbd.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbstd.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/systick.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/rcc_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/adc_common_v1.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/timer_common_all.h \
sync.h user_proto.h cdcacm.h hardware_ini.h

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +0,0 @@
mk/main.o: main.c main.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/ieeefp.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/newlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/config.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/features.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stddef.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/reent.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_default_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/lock.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/alloca.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/string.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/cdefs.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/string.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/common.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdbool.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/gpio_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/dispatch/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/cdc.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbd.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbstd.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/systick.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/rcc_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/adc_common_v1.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/timer_common_all.h \
sync.h user_proto.h cdcacm.h hardware_ini.h timer.h

Binary file not shown.

View File

@ -1,10 +0,0 @@
mk/sync.o: sync.c /usr/local/arm-none-eabi/include/libopencm3/cm3/sync.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/common.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/newlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/config.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/ieeefp.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/features.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdbool.h

Binary file not shown.

View File

@ -1,46 +0,0 @@
mk/timer.o: timer.c timer.h main.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/ieeefp.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/newlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/config.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/features.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stddef.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/reent.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_default_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/lock.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/alloca.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/string.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/cdefs.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/string.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/common.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdbool.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/gpio_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/dispatch/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/cdc.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbd.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbstd.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/systick.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/rcc_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/adc_common_v1.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/timer_common_all.h \
sync.h user_proto.h cdcacm.h hardware_ini.h

Binary file not shown.

View File

@ -1,46 +0,0 @@
mk/user_proto.o: user_proto.c cdcacm.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbd.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/usbstd.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdint.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/newlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/config.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/ieeefp.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/features.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/common.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stdbool.h main.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/_ansi.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/include/stddef.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/reent.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/_default_types.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/lock.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/machine/stdlib.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/alloca.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/string.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/cdefs.h \
/usr/lib/gcc/arm-none-eabi/4.7.3/../../../../arm-none-eabi/include/sys/string.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/memorymap.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/gpio.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/gpio_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/dispatch/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/nvic.h \
/usr/local/arm-none-eabi/include/libopencm3/usb/cdc.h \
/usr/local/arm-none-eabi/include/libopencm3/cm3/systick.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/rcc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/rcc_common_all.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/adc.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/adc_common_v1.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/f1/timer.h \
/usr/local/arm-none-eabi/include/libopencm3/stm32/common/timer_common_all.h \
sync.h user_proto.h hardware_ini.h timer.h

Binary file not shown.