From 9c4d8c4ba9da6b3d239ab795a776cfa7209769fd Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Wed, 16 Apr 2025 14:09:23 +0300 Subject: [PATCH] remove extra files --- F1:F103/Canon_managing_device/canonusb.bin | Bin 10980 -> 10908 bytes F3:F303/Multistepper/multistepper.bin | Bin 27708 -> 27392 bytes F3:F303/Multistepper/steppers.c | 1 - F3:F303/Multistepper/usb.c | 135 ------------------ F3:F303/Multistepper/usb.h | 48 ------- F3:F303/Multistepper/usbhw.c | 63 --------- F3:F303/Multistepper/usbhw.h | 155 --------------------- F3:F303/Multistepper/version.inc | 4 +- 8 files changed, 2 insertions(+), 404 deletions(-) delete mode 100644 F3:F303/Multistepper/usb.c delete mode 100644 F3:F303/Multistepper/usb.h delete mode 100644 F3:F303/Multistepper/usbhw.c delete mode 100644 F3:F303/Multistepper/usbhw.h diff --git a/F1:F103/Canon_managing_device/canonusb.bin b/F1:F103/Canon_managing_device/canonusb.bin index 23df0e81af40161eb64dd0c4311a548c9087cc76..3cc6098b3ca25621e53db480aed5e72dd8f3e651 100755 GIT binary patch delta 5710 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 diff --git a/F3:F303/Multistepper/steppers.c b/F3:F303/Multistepper/steppers.c index 6dc33d1..fda2a9f 100644 --- a/F3:F303/Multistepper/steppers.c +++ b/F3:F303/Multistepper/steppers.c @@ -324,7 +324,6 @@ void addmicrostep(uint8_t i){ // check state of i`th stepper static void chkstepper(int i){ int32_t i32; - uint32_t u32; static uint8_t stopctr[MOTORSNO] = {0}; // counters for encoders/position zeroing after stopping @ esw // check DIAGN only for UART/SPI if(the_conf.motflags[i].drvtype == DRVTYPE_UART || the_conf.motflags[i].drvtype == DRVTYPE_SPI){ diff --git a/F3:F303/Multistepper/usb.c b/F3:F303/Multistepper/usb.c deleted file mode 100644 index a2ee479..0000000 --- a/F3:F303/Multistepper/usb.c +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2024 Edward V. Emelianov . - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include - -#include "hardware.h" -#include "usb.h" -#include "usb_lib.h" - -static volatile uint8_t usbbuff[USB_TXBUFSZ]; // temporary buffer for sending data -// ring buffers for incoming and outgoing data -static uint8_t obuf[RBOUTSZ], ibuf[RBINSZ]; -volatile ringbuffer rbout = {.data = obuf, .length = RBOUTSZ, .head = 0, .tail = 0}; -volatile ringbuffer rbin = {.data = ibuf, .length = RBINSZ, .head = 0, .tail = 0}; -// inbuf overflow when receiving -volatile uint8_t bufovrfl = 0; -// last send data size -static volatile int lastdsz = 0; - -// called from transmit EP -void send_next(){ - int buflen = RB_read((ringbuffer*)&rbout, (uint8_t*)usbbuff, USB_TXBUFSZ); - if(buflen == 0){ - if(lastdsz == 64) EP_Write(3, NULL, 0); // send ZLP after 64 bits packet when nothing more to send - lastdsz = 0; - return; - }else if(buflen < 0){ - lastdsz = 0; - // Uncomment next line if you want 4Mbit/s instead of 6Mbit/s - //EP_Write(3, NULL, 0); // send ZLP if buffer is in writting state now - return; - } - EP_Write(3, (uint8_t*)usbbuff, buflen); - lastdsz = buflen; -} - -// blocking send full content of ring buffer -int USB_sendall(){ - while(lastdsz > 0){ - if(!usbON) return FALSE; - } - return TRUE; -} - -// put `buf` into queue to send -int USB_send(const uint8_t *buf, int len){ - if(!buf || !usbON || !len) return FALSE; - while(len){ - int a = RB_write((ringbuffer*)&rbout, buf, len); - if(a > 0){ - len -= a; - buf += a; - } else if (a < 0) continue; // do nothing if buffer is in reading state - if(lastdsz == 0) send_next(); // need to run manually - all data sent, so no IRQ on IN - } - return TRUE; -} - -int USB_putbyte(uint8_t byte){ - if(!usbON) return FALSE; - int l = 0; - while((l = RB_write((ringbuffer*)&rbout, &byte, 1)) != 1){ - if(l < 0) continue; - } - if(lastdsz == 0) send_next(); // need to run manually - all data sent, so no IRQ on IN - return TRUE; -} - -int USB_sendstr(const char *string){ - if(!string || !usbON) return FALSE; - int len = 0; - const char *b = string; - while(*b++) ++len; - if(!len) return FALSE; - return USB_send((const uint8_t*)string, len); -} - -/** - * @brief USB_receive - get binary data from receiving ring-buffer - * @param buf (i) - buffer for received data - * @param len - length of `buf` - * @return amount of received bytes (negative, if overfull happened) - */ -int USB_receive(uint8_t *buf, int len){ - chkin(); - if(bufovrfl){ - while(1 != RB_clearbuf((ringbuffer*)&rbin)); - bufovrfl = 0; - return -1; - } - int sz = RB_read((ringbuffer*)&rbin, buf, len); - if(sz < 0) return 0; // buffer in writting state - return sz; -} - -/** - * @brief USB_receivestr - get string up to '\n' and replace '\n' with 0 - * @param buf - receiving buffer - * @param len - its length - * @return strlen or negative value indicating overflow (if so, string won't be ends with 0 and buffer should be cleared) - */ -int USB_receivestr(char *buf, int len){ - chkin(); - if(bufovrfl){ - while(1 != RB_clearbuf((ringbuffer*)&rbin)); - bufovrfl = 0; - return -1; - } - int l = RB_readto((ringbuffer*)&rbin, '\n', (uint8_t*)buf, len); - if(l < 1){ - if(rbin.length == RB_datalen((ringbuffer*)&rbin)){ // buffer is full but no '\n' found - while(1 != RB_clearbuf((ringbuffer*)&rbin)); - return -1; - } - return 0; - } - if(l == 0) return 0; - buf[l-1] = 0; // replace '\n' with strend - return l; -} - diff --git a/F3:F303/Multistepper/usb.h b/F3:F303/Multistepper/usb.h deleted file mode 100644 index 4583b9b..0000000 --- a/F3:F303/Multistepper/usb.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2024 Edward V. Emelianov . - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "ringbuffer.h" -#include "usbhw.h" - -// sizes of ringbuffers for outgoing and incoming data -#define RBOUTSZ (512) -#define RBINSZ (256) - -#define newline() USB_putbyte('\n') -#define USND(s) do{USB_sendstr(s); USB_putbyte('\n');}while(0) - -#define STR_HELPER(s) #s -#define STR(s) STR_HELPER(s) - -#ifdef EBUG -#define DBG(str) do{USB_sendstr(__FILE__ " (L" STR(__LINE__) "): " str); newline();}while(0) -#else -#define DBG(str) -#endif - -extern volatile ringbuffer rbout, rbin; -extern volatile uint8_t bufisempty, bufovrfl; - -void send_next(); -int USB_sendall(); -int USB_send(const uint8_t *buf, int len); -int USB_putbyte(uint8_t byte); -int USB_sendstr(const char *string); -int USB_receive(uint8_t *buf, int len); -int USB_receivestr(char *buf, int len); diff --git a/F3:F303/Multistepper/usbhw.c b/F3:F303/Multistepper/usbhw.c deleted file mode 100644 index 4f061b7..0000000 --- a/F3:F303/Multistepper/usbhw.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2024 Edward V. Emelianov . - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "usb.h" -#include "usb_lib.h" - -// here we suppose that all PIN settings done in hw_setup earlier -void USB_setup(){ -#if defined STM32F3 - NVIC_DisableIRQ(USB_LP_IRQn); - // remap USB LP & Wakeup interrupts to 75 and 76 - works only on pure F303 - RCC->APB2ENR |= RCC_APB2ENR_SYSCFGEN; // enable tacting of SYSCFG - SYSCFG->CFGR1 |= SYSCFG_CFGR1_USB_IT_RMP; -#elif defined STM32F1 - NVIC_DisableIRQ(USB_LP_CAN1_RX0_IRQn); - NVIC_DisableIRQ(USB_HP_CAN1_TX_IRQn); -#elif defined STM32F0 - NVIC_DisableIRQ(USB_IRQn); - RCC->APB1ENR |= RCC_APB1ENR_CRSEN; - RCC->CFGR3 &= ~RCC_CFGR3_USBSW; // reset USB - RCC->CR2 |= RCC_CR2_HSI48ON; // turn ON HSI48 - uint32_t tmout = 16000000; - while(!(RCC->CR2 & RCC_CR2_HSI48RDY)){if(--tmout == 0) break;} - FLASH->ACR = FLASH_ACR_PRFTBE | FLASH_ACR_LATENCY; - CRS->CFGR &= ~CRS_CFGR_SYNCSRC; - CRS->CFGR |= CRS_CFGR_SYNCSRC_1; // USB SOF selected as sync source - CRS->CR |= CRS_CR_AUTOTRIMEN; // enable auto trim - CRS->CR |= CRS_CR_CEN; // enable freq counter & block CRS->CFGR as read-only - RCC->CFGR |= RCC_CFGR_SW; -#endif - RCC->APB1ENR |= RCC_APB1ENR_USBEN; - //?? - USB->CNTR = USB_CNTR_FRES; // Force USB Reset - for(uint32_t ctr = 0; ctr < 72000; ++ctr) nop(); // wait >1ms - USB->CNTR = 0; - USB->BTABLE = 0; - USB->DADDR = 0; - USB->ISTR = 0; - USB->CNTR = USB_CNTR_RESETM | USB_CNTR_WKUPM; // allow only wakeup & reset interrupts -#if defined STM32F3 - NVIC_EnableIRQ(USB_LP_IRQn); -#elif defined STM32F1 - NVIC_EnableIRQ(USB_LP_CAN1_RX0_IRQn); -#elif defined STM32F0 - USB->BCDR |= USB_BCDR_DPPU; - NVIC_EnableIRQ(USB_IRQn); -#endif -} - - diff --git a/F3:F303/Multistepper/usbhw.h b/F3:F303/Multistepper/usbhw.h deleted file mode 100644 index 033846f..0000000 --- a/F3:F303/Multistepper/usbhw.h +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright 2024 Edward V. Emelianov . - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once - -#if defined STM32F0 -#include -#elif defined STM32F1 -#include -// there's no this define in standard header -#define USB_BASE ((uint32_t)0x40005C00) -#elif defined STM32F3 -#include -#endif - -// max endpoints number -#define STM32ENDPOINTS 8 -/** - * Buffers size definition - **/ - -// F0 - USB2_16; F1 - USB1_16; F3 - 1/2 depending on series -#if !defined USB1_16 && !defined USB2_16 -#if defined STM32F0 -#define USB2_16 -#elif defined STM32F1 -#define USB1_16 -#else -#error "Can't determine USB1_16 or USB2_16, define by hands" -#endif -#endif - -// BTABLE_SIZE FOR STM32F3: -// In STM32F303/302xB/C, 512 bytes SRAM is not shared with CAN. -// In STM32F302x6/x8 and STM32F30xxD/E, 726 bytes dedicated SRAM and 256 bytes shared SRAM with CAN i.e. -// 1Kbytes dedicated SRAM in case CAN is disabled. -// remember, that USB_BTABLE_SIZE will be divided by ACCESSZ, so don't divide it twice for 32-bit addressing - -#ifdef NOCAN -#if defined STM32F0 -#define USB_BTABLE_SIZE 1024 -#elif defined STM32F3 -#define USB_BTABLE_SIZE 512 -#warning "Please, check real buffer size due to docs" -#else -#error "define STM32F0 or STM32F3" -#endif -#else // !NOCAN: F0/F3 with CAN or F1 (can't simultaneously run CAN and USB) -#if defined STM32F0 -#define USB_BTABLE_SIZE 768 -#elif defined STM32F3 -#define USB_BTABLE_SIZE 726 -//#warning "Please, check real buffer size due to docs" -#else // STM32F103: 1024 bytes but with 32-bit addressing -#define USB_BTABLE_SIZE 1024 -#endif -#endif // NOCAN - -// first 64 bytes of USB_BTABLE are registers! -//#define USB_EP0_BASEADDR 64 -// for USB FS EP0 buffers are from 8 to 64 bytes long (64 for PL2303) -#define USB_EP0_BUFSZ 64 -// USB transmit buffer size (64 for PL2303) -#define USB_TXBUFSZ 64 -// USB receive buffer size (64 for PL2303) -#define USB_RXBUFSZ 64 -// EP1 - interrupt - buffer size -#define USB_EP1BUFSZ 8 - -#define USB_BTABLE_BASE 0x40006000 -#define USB ((USB_TypeDef *) USB_BASE) - -#ifdef USB_BTABLE -#undef USB_BTABLE -#endif -#define USB_BTABLE ((USB_BtableDef *)(USB_BTABLE_BASE)) -#define USB_ISTR_EPID 0x0000000F -#define USB_FNR_LSOF_0 0x00000800 -#define USB_FNR_lSOF_1 0x00001000 -#define USB_LPMCSR_BESL_0 0x00000010 -#define USB_LPMCSR_BESL_1 0x00000020 -#define USB_LPMCSR_BESL_2 0x00000040 -#define USB_LPMCSR_BESL_3 0x00000080 -#define USB_EPnR_CTR_RX 0x00008000 -#define USB_EPnR_DTOG_RX 0x00004000 -#define USB_EPnR_STAT_RX 0x00003000 -#define USB_EPnR_STAT_RX_0 0x00001000 -#define USB_EPnR_STAT_RX_1 0x00002000 -#define USB_EPnR_SETUP 0x00000800 -#define USB_EPnR_EP_TYPE 0x00000600 -#define USB_EPnR_EP_TYPE_0 0x00000200 -#define USB_EPnR_EP_TYPE_1 0x00000400 -#define USB_EPnR_EP_KIND 0x00000100 -#define USB_EPnR_CTR_TX 0x00000080 -#define USB_EPnR_DTOG_TX 0x00000040 -#define USB_EPnR_STAT_TX 0x00000030 -#define USB_EPnR_STAT_TX_0 0x00000010 -#define USB_EPnR_STAT_TX_1 0x00000020 -#define USB_EPnR_EA 0x0000000F -#define USB_COUNTn_RX_BLSIZE 0x00008000 -#define USB_COUNTn_NUM_BLOCK 0x00007C00 -#define USB_COUNTn_RX 0x0000003F - -#define USB_TypeDef USB_TypeDef_custom - -typedef struct { - __IO uint32_t EPnR[STM32ENDPOINTS]; - __IO uint32_t RESERVED[STM32ENDPOINTS]; - __IO uint32_t CNTR; - __IO uint32_t ISTR; - __IO uint32_t FNR; - __IO uint32_t DADDR; - __IO uint32_t BTABLE; -} USB_TypeDef; - -// F303 D/E have 2x16 access scheme -typedef struct{ -#if defined USB2_16 - __IO uint16_t USB_ADDR_TX; - __IO uint16_t USB_COUNT_TX; - __IO uint16_t USB_ADDR_RX; - __IO uint16_t USB_COUNT_RX; -#define ACCESSZ (1) -#define BUFTYPE uint8_t -#elif defined USB1_16 - __IO uint32_t USB_ADDR_TX; - __IO uint32_t USB_COUNT_TX; - __IO uint32_t USB_ADDR_RX; - __IO uint32_t USB_COUNT_RX; -#define ACCESSZ (2) -#define BUFTYPE uint16_t -#else -#error "Define USB1_16 or USB2_16" -#endif -} USB_EPDATA_TypeDef; - - -typedef struct{ - __IO USB_EPDATA_TypeDef EP[STM32ENDPOINTS]; -} USB_BtableDef; - -void USB_setup(); diff --git a/F3:F303/Multistepper/version.inc b/F3:F303/Multistepper/version.inc index 5630367..1ccd19b 100644 --- a/F3:F303/Multistepper/version.inc +++ b/F3:F303/Multistepper/version.inc @@ -1,2 +1,2 @@ -#define BUILD_NUMBER "200" -#define BUILD_DATE "2025-02-06" +#define BUILD_NUMBER "202" +#define BUILD_DATE "2025-04-16"