wip
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="502542006040019408" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1023042563599610397" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
@@ -16,7 +16,7 @@
|
||||
<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="502542006040019408" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1023042563599610397" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
@@ -27,7 +27,7 @@
|
||||
<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="502542006040019408" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1023042563599610397" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
@@ -38,7 +38,7 @@
|
||||
<provider-reference id="org.eclipse.cdt.ui.UserLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="502542006040019408" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1023042563599610397" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||
</provider>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include "usb_device.h"
|
||||
|
||||
#include "usbd_cdc_if.h"
|
||||
#include "cdc_int.h"
|
||||
#include "stm32f1xx_hal.h"
|
||||
#include "eeprom.h"
|
||||
#include "pwm.h"
|
||||
|
||||
extern TIM_HandleTypeDef htim1;
|
||||
@@ -11,12 +13,49 @@ extern TIM_HandleTypeDef htim2;
|
||||
extern TIM_HandleTypeDef htim3;
|
||||
extern TIM_HandleTypeDef htim4;
|
||||
|
||||
bool toHex(char c1,char c2,char c3,char c4,uint16_t* retval){
|
||||
if((c1>='0')&&(c1<='9')){
|
||||
c1-='0';
|
||||
}else if((c1>='a')&&(c1<='f')){
|
||||
c1=(c1-'a')+10;
|
||||
}else return false;
|
||||
|
||||
if((c2>='0')&&(c2<='9')){
|
||||
c2-='0';
|
||||
}else if((c2>='a')&&(c2<='f')){
|
||||
c2=(c2-'a')+10;
|
||||
}else return false;
|
||||
|
||||
if((c3>='0')&&(c3<='9')){
|
||||
c3-='0';
|
||||
}else if((c3>='a')&&(c3<='f')){
|
||||
c3=(c3-'a')+10;
|
||||
}else return false;
|
||||
|
||||
if((c4>='0')&&(c4<='9')){
|
||||
c4-='0';
|
||||
}else if((c4>='a')&&(c4<='f')){
|
||||
c4=(c4-'a')+10;
|
||||
}else return false;
|
||||
|
||||
*retval=c1;
|
||||
*retval*=10;
|
||||
*retval+=c2;
|
||||
*retval*=10;
|
||||
*retval+=c3;
|
||||
*retval*=10;
|
||||
*retval+=c4;
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
void manageCDC(void){
|
||||
static uint8_t rxbuf[100];
|
||||
static uint8_t rxidx=0;
|
||||
unsigned char s[100];
|
||||
uint8_t mot,dir,dm,m,c,d,u;
|
||||
uint16_t val;
|
||||
uint16_t eeadd;
|
||||
|
||||
if (CDC_Available()) {
|
||||
int rx = CDC_ReadByte();
|
||||
@@ -80,6 +119,50 @@ void manageCDC(void){
|
||||
while (CDC_Transmit_FS(s, 10) == USBD_BUSY);
|
||||
}
|
||||
break;
|
||||
case 'e':
|
||||
if(rxidx>1){
|
||||
if(rxbuf[1]=='r'){
|
||||
if(rxidx==4){
|
||||
if(toHex('0','0',rxbuf[2],rxbuf[3],&eeadd)){
|
||||
EEW_Read(eeadd, &val);
|
||||
sprintf((char*)s,"\nee 0x%02x=%04x",eeadd,val);
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}else{
|
||||
sprintf((char*)s,"\n?eraa hex values");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}
|
||||
}else{
|
||||
sprintf((char*)s,"\n?eraa");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}
|
||||
}else if(rxbuf[1]=='w'){
|
||||
if(rxidx==8){
|
||||
if(toHex('0','0',rxbuf[2],rxbuf[3],&eeadd)){
|
||||
if(toHex(rxbuf[4],rxbuf[5],rxbuf[6],rxbuf[7],&val)){
|
||||
EEW_Write(eeadd, val);
|
||||
sprintf((char*)s,"\ndone");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}else{
|
||||
sprintf((char*)s,"\n?ewaavvvv hex values");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}
|
||||
}else{
|
||||
sprintf((char*)s,"\n?ewaa hex values");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}
|
||||
}else{
|
||||
sprintf((char*)s,"\n?ewaavvvv");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}
|
||||
}else{
|
||||
sprintf((char*)s,"\n?er|w");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}
|
||||
}else{
|
||||
sprintf((char*)s,"\n?eraa | ewaavvvv");
|
||||
while (CDC_Transmit_FS(s, strlen((char*)s)) == USBD_BUSY);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
sprintf((char*)s,"\n?");
|
||||
while (CDC_Transmit_FS(s, 2) == USBD_BUSY);
|
||||
|
||||
287
workspace/AUTOM10/Core/Src/eeprom.c
Normal file
287
workspace/AUTOM10/Core/Src/eeprom.c
Normal file
@@ -0,0 +1,287 @@
|
||||
#include "eeprom.h"
|
||||
|
||||
/*
|
||||
* Record format (4 bytes):
|
||||
* [0] VirtAddress (uint16_t)
|
||||
* [2] Data (uint16_t)
|
||||
*
|
||||
* Page layout:
|
||||
* [0] PageStatus (uint16_t)
|
||||
* [2..] Records...
|
||||
*/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint16_t VirtAddress;
|
||||
uint16_t Data;
|
||||
} EE_Record_t;
|
||||
|
||||
/* Active page base address (runtime selected in EE_Init) */
|
||||
static uint32_t EE_ActivePageBase = EE_PAGE0_BASE;
|
||||
|
||||
/* 32 sequential virtual addresses */
|
||||
const uint16_t EE_VirtAddrs[EE_NUM_VIRTUAL_ADDR] =
|
||||
{
|
||||
0x0001, 0x0002, 0x0003, 0x0004,
|
||||
0x0005, 0x0006, 0x0007, 0x0008,
|
||||
0x0009, 0x000A, 0x000B, 0x000C,
|
||||
0x000D, 0x000E, 0x000F, 0x0010,
|
||||
0x0011, 0x0012, 0x0013, 0x0014,
|
||||
0x0015, 0x0016, 0x0017, 0x0018,
|
||||
0x0019, 0x001A, 0x001B, 0x001C,
|
||||
0x001D, 0x001E, 0x001F, 0x0020
|
||||
};
|
||||
|
||||
/* ========================================================================= */
|
||||
|
||||
/* --- Internal helpers ---------------------------------------------------- */
|
||||
|
||||
static uint16_t EE_GetPageStatus(uint32_t pageBase)
|
||||
{
|
||||
return *(__IO uint16_t *)pageBase;
|
||||
}
|
||||
|
||||
static HAL_StatusTypeDef EE_FlashProgramHalfWord(uint32_t Address, uint16_t Data)
|
||||
{
|
||||
HAL_StatusTypeDef status;
|
||||
|
||||
HAL_FLASH_Unlock();
|
||||
status = HAL_FLASH_Program(FLASH_TYPEPROGRAM_HALFWORD, Address, Data);
|
||||
HAL_FLASH_Lock();
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
static HAL_StatusTypeDef EE_FlashErasePage(uint32_t PageAddress)
|
||||
{
|
||||
HAL_StatusTypeDef status;
|
||||
FLASH_EraseInitTypeDef EraseInit;
|
||||
uint32_t PageError = 0;
|
||||
|
||||
HAL_FLASH_Unlock();
|
||||
|
||||
EraseInit.TypeErase = FLASH_TYPEERASE_PAGES;
|
||||
EraseInit.PageAddress = PageAddress;
|
||||
EraseInit.NbPages = 1;
|
||||
|
||||
status = HAL_FLASHEx_Erase(&EraseInit, &PageError);
|
||||
|
||||
HAL_FLASH_Lock();
|
||||
return status;
|
||||
}
|
||||
|
||||
/* Find first free record address in given page (returns 0 if full) */
|
||||
static uint32_t EE_FindFreeAddress(uint32_t pageBase)
|
||||
{
|
||||
uint32_t addr = pageBase + 2U; /* Skip status word */
|
||||
uint32_t pageEnd = pageBase + EE_PAGE_SIZE;
|
||||
|
||||
while (addr < (pageEnd - sizeof(EE_Record_t) + 1U))
|
||||
{
|
||||
uint16_t vaddr = *(__IO uint16_t *)addr;
|
||||
|
||||
if (vaddr == 0xFFFFU)
|
||||
{
|
||||
/* Empty slot */
|
||||
return addr;
|
||||
}
|
||||
addr += sizeof(EE_Record_t);
|
||||
}
|
||||
|
||||
return 0U; /* No space */
|
||||
}
|
||||
|
||||
/* Find latest value of VirtAddress in a specific page */
|
||||
static EE_Status EE_FindInPage(uint32_t pageBase, uint16_t VirtAddress, uint16_t *Data)
|
||||
{
|
||||
uint32_t pageEnd = pageBase + EE_PAGE_SIZE;
|
||||
uint32_t addr;
|
||||
|
||||
if (Data == NULL)
|
||||
return EE_ERROR;
|
||||
|
||||
/* Start from last possible record and go backwards */
|
||||
for (addr = pageEnd - sizeof(EE_Record_t); addr > pageBase + 1U; addr -= sizeof(EE_Record_t))
|
||||
{
|
||||
uint16_t vaddr = *(__IO uint16_t *)addr;
|
||||
uint16_t value = *(__IO uint16_t *)(addr + 2U);
|
||||
|
||||
if (vaddr == 0xFFFFU)
|
||||
{
|
||||
/* Empty slot, skip */
|
||||
continue;
|
||||
}
|
||||
|
||||
if (vaddr == VirtAddress)
|
||||
{
|
||||
*Data = value;
|
||||
return EE_OK;
|
||||
}
|
||||
}
|
||||
|
||||
return EE_NOT_FOUND;
|
||||
}
|
||||
|
||||
/* Format both pages: erase and set PAGE0 as VALID */
|
||||
static EE_Status EE_Format(void)
|
||||
{
|
||||
if (EE_FlashErasePage(EE_PAGE0_BASE) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
if (EE_FlashErasePage(EE_PAGE1_BASE) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
if (EE_FlashProgramHalfWord(EE_PAGE0_BASE, EE_PAGE_STATUS_VALID) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
/* PAGE1 will remain erased (status = 0xFFFF) */
|
||||
EE_ActivePageBase = EE_PAGE0_BASE;
|
||||
|
||||
return EE_OK;
|
||||
}
|
||||
|
||||
/* Get the base of the other page */
|
||||
static uint32_t EE_GetOtherPageBase(uint32_t pageBase)
|
||||
{
|
||||
return (pageBase == EE_PAGE0_BASE) ? EE_PAGE1_BASE : EE_PAGE0_BASE;
|
||||
}
|
||||
|
||||
/* Page transfer (garbage collection + new write) */
|
||||
static EE_Status EE_PageTransfer(uint16_t VirtAddress, uint16_t Data)
|
||||
{
|
||||
uint32_t oldBase = EE_ActivePageBase;
|
||||
uint32_t newBase = EE_GetOtherPageBase(oldBase);
|
||||
uint32_t addr;
|
||||
uint16_t value;
|
||||
EE_Status st;
|
||||
|
||||
/* Erase new page */
|
||||
if (EE_FlashErasePage(newBase) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
/* Mark new page as RECEIVE */
|
||||
if (EE_FlashProgramHalfWord(newBase, EE_PAGE_STATUS_RECEIVE) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
/* Start writing records just after status */
|
||||
addr = newBase + 2U;
|
||||
|
||||
/* For each known virtual variable */
|
||||
for (uint16_t i = 0; i < EE_NUM_VIRTUAL_ADDR; i++)
|
||||
{
|
||||
uint16_t vaddr = EE_VirtAddrs[i];
|
||||
|
||||
if (vaddr == VirtAddress)
|
||||
{
|
||||
/* Use the new data passed into PageTransfer */
|
||||
value = Data;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Read latest value from old active page */
|
||||
st = EE_FindInPage(oldBase, vaddr, &value);
|
||||
if (st != EE_OK)
|
||||
{
|
||||
/* Variable never written -> skip */
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Write record to new page */
|
||||
if (EE_FlashProgramHalfWord(addr, vaddr) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
if (EE_FlashProgramHalfWord(addr + 2U, value) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
addr += sizeof(EE_Record_t);
|
||||
if (addr >= (newBase + EE_PAGE_SIZE))
|
||||
return EE_NO_SPACE;
|
||||
}
|
||||
|
||||
/* Erase old page */
|
||||
if (EE_FlashErasePage(oldBase) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
/* Mark new page as VALID */
|
||||
if (EE_FlashProgramHalfWord(newBase, EE_PAGE_STATUS_VALID) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
/* Update active page */
|
||||
EE_ActivePageBase = newBase;
|
||||
|
||||
return EE_OK;
|
||||
}
|
||||
|
||||
/* --- Public API ----------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
* Initialize the EEPROM emulation.
|
||||
* - Checks page statuses and chooses the active page.
|
||||
* - If inconsistent or blank, formats pages.
|
||||
*/
|
||||
EE_Status EE_Init(void)
|
||||
{
|
||||
uint16_t status0 = EE_GetPageStatus(EE_PAGE0_BASE);
|
||||
uint16_t status1 = EE_GetPageStatus(EE_PAGE1_BASE);
|
||||
|
||||
if ((status0 == EE_PAGE_STATUS_ERASED) && (status1 == EE_PAGE_STATUS_ERASED))
|
||||
{
|
||||
/* Fresh device -> format */
|
||||
return EE_Format();
|
||||
}
|
||||
else if ((status0 == EE_PAGE_STATUS_VALID) && (status1 == EE_PAGE_STATUS_ERASED))
|
||||
{
|
||||
EE_ActivePageBase = EE_PAGE0_BASE;
|
||||
return EE_OK;
|
||||
}
|
||||
else if ((status1 == EE_PAGE_STATUS_VALID) && (status0 == EE_PAGE_STATUS_ERASED))
|
||||
{
|
||||
EE_ActivePageBase = EE_PAGE1_BASE;
|
||||
return EE_OK;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Any weird or inconsistent state -> reformat */
|
||||
return EE_Format();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Read a 16-bit variable by its virtual address.
|
||||
*/
|
||||
EE_Status EE_ReadVariable(uint16_t VirtAddress, uint16_t *Data)
|
||||
{
|
||||
if (Data == NULL)
|
||||
return EE_ERROR;
|
||||
|
||||
return EE_FindInPage(EE_ActivePageBase, VirtAddress, Data);
|
||||
}
|
||||
|
||||
/*
|
||||
* Write (append) a 16-bit variable.
|
||||
* - Writes a new record in the active page.
|
||||
* - If the page is full, triggers a page transfer (GC).
|
||||
*/
|
||||
EE_Status EE_WriteVariable(uint16_t VirtAddress, uint16_t Data)
|
||||
{
|
||||
uint32_t freeAddr;
|
||||
EE_Status st;
|
||||
|
||||
/* Find free space in active page */
|
||||
freeAddr = EE_FindFreeAddress(EE_ActivePageBase);
|
||||
if (freeAddr != 0U)
|
||||
{
|
||||
/* Write new record */
|
||||
if (EE_FlashProgramHalfWord(freeAddr, VirtAddress) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
if (EE_FlashProgramHalfWord(freeAddr + 2U, Data) != HAL_OK)
|
||||
return EE_ERROR;
|
||||
|
||||
return EE_OK;
|
||||
}
|
||||
|
||||
/* No space -> page transfer */
|
||||
st = EE_PageTransfer(VirtAddress, Data);
|
||||
return st;
|
||||
}
|
||||
|
||||
88
workspace/AUTOM10/Core/Src/eeprom.h
Normal file
88
workspace/AUTOM10/Core/Src/eeprom.h
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* eeprom.h
|
||||
*
|
||||
* Created on: Dec 7, 2025
|
||||
* Author: user
|
||||
*/
|
||||
|
||||
#ifndef __EEPROM_H
|
||||
#define __EEPROM_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include "stm32f1xx_hal.h"
|
||||
|
||||
/*
|
||||
* Simple EEPROM emulation for STM32F103C8T6 (medium density).
|
||||
* - Uses 2 Flash pages (1 kB each) at the end of Flash.
|
||||
* - Stores variables as 16-bit values identified by 16-bit "virtual addresses".
|
||||
*
|
||||
* You must define the list of virtual addresses in eeprom.c: EE_VirtAddrs[].
|
||||
*/
|
||||
|
||||
typedef enum
|
||||
{
|
||||
EE_OK = 0,
|
||||
EE_ERROR,
|
||||
EE_NOT_FOUND,
|
||||
EE_NO_SPACE
|
||||
} EE_Status;
|
||||
|
||||
/* Flash parameters for STM32F103C8T6 */
|
||||
#define EE_FLASH_BASE_ADDR 0x08000000U
|
||||
#define EE_PAGE_SIZE 0x400U /* 1 kB pages */
|
||||
|
||||
/*
|
||||
* Here we assume a 64 kB Flash device (STM32F103C8T6):
|
||||
* Flash range: 0x0800 0000 - 0x0800 FFFF
|
||||
* Pages: 0..63 (64 pages)
|
||||
* We use the last 2 pages for EEPROM:
|
||||
* - Page 62: 0x0800 F800
|
||||
* - Page 63: 0x0800 FC00
|
||||
*/
|
||||
#define EE_PAGE0_BASE (EE_FLASH_BASE_ADDR + (62U * EE_PAGE_SIZE))
|
||||
#define EE_PAGE1_BASE (EE_FLASH_BASE_ADDR + (63U * EE_PAGE_SIZE))
|
||||
|
||||
/* Page status markers (stored in the first halfword of each page) */
|
||||
#define EE_PAGE_STATUS_ERASED 0xFFFFU
|
||||
#define EE_PAGE_STATUS_VALID 0xAAAAU
|
||||
#define EE_PAGE_STATUS_RECEIVE 0x5555U
|
||||
|
||||
/*
|
||||
* Configure how many virtual variables you have.
|
||||
* Example: bytes, words, and array elements mapped to 16-bit variables.
|
||||
* Set EE_NUM_VIRTUAL_ADDR and define EE_VirtAddrs[] in eeprom.c.
|
||||
*/
|
||||
/* 32 virtual variables, sequential addresses */
|
||||
#define EE_NUM_VIRTUAL_ADDR 32U
|
||||
#define EEW_ADDR(i) (uint16_t)(0x0001 + (i)) // i = 0..31
|
||||
|
||||
|
||||
|
||||
|
||||
/* Virtual address table (defined in eeprom.c, can be customized) */
|
||||
extern const uint16_t EE_VirtAddrs[EE_NUM_VIRTUAL_ADDR];
|
||||
|
||||
/* Public API */
|
||||
EE_Status EE_Init(void);
|
||||
EE_Status EE_ReadVariable(uint16_t VirtAddress, uint16_t *Data);
|
||||
EE_Status EE_WriteVariable(uint16_t VirtAddress, uint16_t Data);
|
||||
|
||||
/* Pseudo-array accessor */
|
||||
static inline EE_Status EEW_Read(uint8_t idx, uint16_t *value)
|
||||
{
|
||||
return EE_ReadVariable(EEW_ADDR(idx), value);
|
||||
}
|
||||
|
||||
static inline EE_Status EEW_Write(uint8_t idx, uint16_t value)
|
||||
{
|
||||
return EE_WriteVariable(EEW_ADDR(idx), value);
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __EEPROM_H */
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "usbd_cdc_if.h"
|
||||
#include "cdc_int.h"
|
||||
|
||||
#include "eeprom.h"
|
||||
#include "pwm.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
@@ -133,7 +133,11 @@ int main(void)
|
||||
StopMot(timMot3,BWMot3);
|
||||
StopMot(timMot4,FWMot4);
|
||||
StopMot(timMot4,BWMot4);
|
||||
CDC_Transmit_FS((uint8_t*)"Start\r\n", 7);
|
||||
//CDC_Transmit_FS((uint8_t*)"Start\r\n", 7);
|
||||
while (CDC_Transmit_FS((uint8_t*)"Start\r\n", 7) == USBD_BUSY);
|
||||
if (EE_Init() != EE_OK){
|
||||
for(;;);//errore eeprom
|
||||
}
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1 +1,4 @@
|
||||
../Core/Src/cdc_int.c:14:6:manageCDC 32
|
||||
../Core/Src/eeprom.h:74:25:EEW_Read 1
|
||||
../Core/Src/eeprom.h:79:25:EEW_Write 1
|
||||
../Core/Src/cdc_int.c:16:6:toHex 17
|
||||
../Core/Src/cdc_int.c:52:6:manageCDC 51
|
||||
|
||||
@@ -38,7 +38,7 @@ Core/Src/cdc_int.o: ../Core/Src/cdc_int.c ../USB_DEVICE/App/usb_device.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \
|
||||
../Core/Inc/cdc_int.h ../Core/Inc/pwm.h
|
||||
../Core/Inc/cdc_int.h ../Core/Src/eeprom.h ../Core/Inc/pwm.h
|
||||
../USB_DEVICE/App/usb_device.h:
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h:
|
||||
@@ -81,4 +81,5 @@ Core/Src/cdc_int.o: ../Core/Src/cdc_int.c ../USB_DEVICE/App/usb_device.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h:
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h:
|
||||
../Core/Inc/cdc_int.h:
|
||||
../Core/Src/eeprom.h:
|
||||
../Core/Inc/pwm.h:
|
||||
|
||||
Binary file not shown.
@@ -1 +1,4 @@
|
||||
../Core/Src/cdc_int.c:14:6:manageCDC 184 static
|
||||
../Core/Src/eeprom.h:74:25:EEW_Read 16 static
|
||||
../Core/Src/eeprom.h:79:25:EEW_Write 16 static
|
||||
../Core/Src/cdc_int.c:16:6:toHex 16 static
|
||||
../Core/Src/cdc_int.c:52:6:manageCDC 184 static
|
||||
|
||||
11
workspace/AUTOM10/Debug/Core/Src/eeprom.cyclo
Normal file
11
workspace/AUTOM10/Debug/Core/Src/eeprom.cyclo
Normal file
@@ -0,0 +1,11 @@
|
||||
../Core/Src/eeprom.c:39:17:EE_GetPageStatus 1
|
||||
../Core/Src/eeprom.c:44:26:EE_FlashProgramHalfWord 1
|
||||
../Core/Src/eeprom.c:55:26:EE_FlashErasePage 1
|
||||
../Core/Src/eeprom.c:74:17:EE_FindFreeAddress 3
|
||||
../Core/Src/eeprom.c:95:18:EE_FindInPage 5
|
||||
../Core/Src/eeprom.c:126:18:EE_Format 4
|
||||
../Core/Src/eeprom.c:144:17:EE_GetOtherPageBase 2
|
||||
../Core/Src/eeprom.c:150:18:EE_PageTransfer 11
|
||||
../Core/Src/eeprom.c:222:11:EE_Init 7
|
||||
../Core/Src/eeprom.c:252:11:EE_ReadVariable 2
|
||||
../Core/Src/eeprom.c:265:11:EE_WriteVariable 4
|
||||
62
workspace/AUTOM10/Debug/Core/Src/eeprom.d
Normal file
62
workspace/AUTOM10/Debug/Core/Src/eeprom.d
Normal file
@@ -0,0 +1,62 @@
|
||||
Core/Src/eeprom.o: ../Core/Src/eeprom.c ../Core/Src/eeprom.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h \
|
||||
../Core/Inc/stm32f1xx_hal_conf.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h \
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h \
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h \
|
||||
../Drivers/CMSIS/Include/core_cm3.h \
|
||||
../Drivers/CMSIS/Include/cmsis_version.h \
|
||||
../Drivers/CMSIS/Include/cmsis_compiler.h \
|
||||
../Drivers/CMSIS/Include/cmsis_gcc.h \
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pcd.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_usb.h \
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pcd_ex.h
|
||||
../Core/Src/eeprom.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
|
||||
../Core/Inc/stm32f1xx_hal_conf.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h:
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h:
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h:
|
||||
../Drivers/CMSIS/Include/core_cm3.h:
|
||||
../Drivers/CMSIS/Include/cmsis_version.h:
|
||||
../Drivers/CMSIS/Include/cmsis_compiler.h:
|
||||
../Drivers/CMSIS/Include/cmsis_gcc.h:
|
||||
../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pcd.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_usb.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pcd_ex.h:
|
||||
BIN
workspace/AUTOM10/Debug/Core/Src/eeprom.o
Normal file
BIN
workspace/AUTOM10/Debug/Core/Src/eeprom.o
Normal file
Binary file not shown.
11
workspace/AUTOM10/Debug/Core/Src/eeprom.su
Normal file
11
workspace/AUTOM10/Debug/Core/Src/eeprom.su
Normal file
@@ -0,0 +1,11 @@
|
||||
../Core/Src/eeprom.c:39:17:EE_GetPageStatus 16 static
|
||||
../Core/Src/eeprom.c:44:26:EE_FlashProgramHalfWord 32 static
|
||||
../Core/Src/eeprom.c:55:26:EE_FlashErasePage 40 static
|
||||
../Core/Src/eeprom.c:74:17:EE_FindFreeAddress 32 static
|
||||
../Core/Src/eeprom.c:95:18:EE_FindInPage 40 static
|
||||
../Core/Src/eeprom.c:126:18:EE_Format 8 static
|
||||
../Core/Src/eeprom.c:144:17:EE_GetOtherPageBase 16 static
|
||||
../Core/Src/eeprom.c:150:18:EE_PageTransfer 40 static
|
||||
../Core/Src/eeprom.c:222:11:EE_Init 16 static
|
||||
../Core/Src/eeprom.c:252:11:EE_ReadVariable 16 static
|
||||
../Core/Src/eeprom.c:265:11:EE_WriteVariable 24 static
|
||||
@@ -1,9 +1,9 @@
|
||||
../Core/Src/main.c:74:6:HAL_SYSTICK_Callback 4
|
||||
../Core/Src/main.c:97:5:main 1
|
||||
../Core/Src/main.c:170:6:SystemClock_Config 4
|
||||
../Core/Src/main.c:218:13:MX_ADC1_Init 3
|
||||
../Core/Src/main.c:265:13:MX_TIM2_Init 9
|
||||
../Core/Src/main.c:341:13:MX_TIM4_Init 9
|
||||
../Core/Src/main.c:415:13:MX_USART1_UART_Init 2
|
||||
../Core/Src/main.c:448:13:MX_GPIO_Init 1
|
||||
../Core/Src/main.c:524:6:Error_Handler 1
|
||||
../Core/Src/main.c:97:5:main 3
|
||||
../Core/Src/main.c:174:6:SystemClock_Config 4
|
||||
../Core/Src/main.c:222:13:MX_ADC1_Init 3
|
||||
../Core/Src/main.c:269:13:MX_TIM2_Init 9
|
||||
../Core/Src/main.c:345:13:MX_TIM4_Init 9
|
||||
../Core/Src/main.c:419:13:MX_USART1_UART_Init 2
|
||||
../Core/Src/main.c:452:13:MX_GPIO_Init 1
|
||||
../Core/Src/main.c:528:6:Error_Handler 1
|
||||
|
||||
@@ -38,7 +38,7 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_core.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h \
|
||||
../Core/Inc/cdc_int.h ../Core/Inc/pwm.h
|
||||
../Core/Inc/cdc_int.h ../Core/Src/eeprom.h ../Core/Inc/pwm.h
|
||||
../Core/Inc/main.h:
|
||||
../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h:
|
||||
../Core/Inc/stm32f1xx_hal_conf.h:
|
||||
@@ -81,4 +81,5 @@ Core/Src/main.o: ../Core/Src/main.c ../Core/Inc/main.h \
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ioreq.h:
|
||||
../Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_ctlreq.h:
|
||||
../Core/Inc/cdc_int.h:
|
||||
../Core/Src/eeprom.h:
|
||||
../Core/Inc/pwm.h:
|
||||
|
||||
Binary file not shown.
@@ -1,9 +1,9 @@
|
||||
../Core/Src/main.c:74:6:HAL_SYSTICK_Callback 8 static
|
||||
../Core/Src/main.c:97:5:main 8 static
|
||||
../Core/Src/main.c:170:6:SystemClock_Config 88 static
|
||||
../Core/Src/main.c:218:13:MX_ADC1_Init 24 static
|
||||
../Core/Src/main.c:265:13:MX_TIM2_Init 64 static
|
||||
../Core/Src/main.c:341:13:MX_TIM4_Init 64 static
|
||||
../Core/Src/main.c:415:13:MX_USART1_UART_Init 8 static
|
||||
../Core/Src/main.c:448:13:MX_GPIO_Init 40 static
|
||||
../Core/Src/main.c:524:6:Error_Handler 4 static,ignoring_inline_asm
|
||||
../Core/Src/main.c:174:6:SystemClock_Config 88 static
|
||||
../Core/Src/main.c:222:13:MX_ADC1_Init 24 static
|
||||
../Core/Src/main.c:269:13:MX_TIM2_Init 64 static
|
||||
../Core/Src/main.c:345:13:MX_TIM4_Init 64 static
|
||||
../Core/Src/main.c:419:13:MX_USART1_UART_Init 8 static
|
||||
../Core/Src/main.c:452:13:MX_GPIO_Init 40 static
|
||||
../Core/Src/main.c:528:6:Error_Handler 4 static,ignoring_inline_asm
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
# Add inputs and outputs from these tool invocations to the build variables
|
||||
C_SRCS += \
|
||||
../Core/Src/cdc_int.c \
|
||||
../Core/Src/eeprom.c \
|
||||
../Core/Src/main.c \
|
||||
../Core/Src/pwm.c \
|
||||
../Core/Src/stm32f1xx_hal_msp.c \
|
||||
@@ -16,6 +17,7 @@ C_SRCS += \
|
||||
|
||||
OBJS += \
|
||||
./Core/Src/cdc_int.o \
|
||||
./Core/Src/eeprom.o \
|
||||
./Core/Src/main.o \
|
||||
./Core/Src/pwm.o \
|
||||
./Core/Src/stm32f1xx_hal_msp.o \
|
||||
@@ -26,6 +28,7 @@ OBJS += \
|
||||
|
||||
C_DEPS += \
|
||||
./Core/Src/cdc_int.d \
|
||||
./Core/Src/eeprom.d \
|
||||
./Core/Src/main.d \
|
||||
./Core/Src/pwm.d \
|
||||
./Core/Src/stm32f1xx_hal_msp.d \
|
||||
@@ -42,7 +45,7 @@ Core/Src/%.o Core/Src/%.su Core/Src/%.cyclo: ../Core/Src/%.c Core/Src/subdir.mk
|
||||
clean: clean-Core-2f-Src
|
||||
|
||||
clean-Core-2f-Src:
|
||||
-$(RM) ./Core/Src/cdc_int.cyclo ./Core/Src/cdc_int.d ./Core/Src/cdc_int.o ./Core/Src/cdc_int.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/pwm.cyclo ./Core/Src/pwm.d ./Core/Src/pwm.o ./Core/Src/pwm.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su
|
||||
-$(RM) ./Core/Src/cdc_int.cyclo ./Core/Src/cdc_int.d ./Core/Src/cdc_int.o ./Core/Src/cdc_int.su ./Core/Src/eeprom.cyclo ./Core/Src/eeprom.d ./Core/Src/eeprom.o ./Core/Src/eeprom.su ./Core/Src/main.cyclo ./Core/Src/main.d ./Core/Src/main.o ./Core/Src/main.su ./Core/Src/pwm.cyclo ./Core/Src/pwm.d ./Core/Src/pwm.o ./Core/Src/pwm.su ./Core/Src/stm32f1xx_hal_msp.cyclo ./Core/Src/stm32f1xx_hal_msp.d ./Core/Src/stm32f1xx_hal_msp.o ./Core/Src/stm32f1xx_hal_msp.su ./Core/Src/stm32f1xx_it.cyclo ./Core/Src/stm32f1xx_it.d ./Core/Src/stm32f1xx_it.o ./Core/Src/stm32f1xx_it.su ./Core/Src/syscalls.cyclo ./Core/Src/syscalls.d ./Core/Src/syscalls.o ./Core/Src/syscalls.su ./Core/Src/sysmem.cyclo ./Core/Src/sysmem.d ./Core/Src/sysmem.o ./Core/Src/sysmem.su ./Core/Src/system_stm32f1xx.cyclo ./Core/Src/system_stm32f1xx.d ./Core/Src/system_stm32f1xx.o ./Core/Src/system_stm32f1xx.su
|
||||
|
||||
.PHONY: clean-Core-2f-Src
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
"./Core/Src/cdc_int.o"
|
||||
"./Core/Src/eeprom.o"
|
||||
"./Core/Src/main.o"
|
||||
"./Core/Src/pwm.o"
|
||||
"./Core/Src/stm32f1xx_hal_msp.o"
|
||||
|
||||
Reference in New Issue
Block a user