Skip to content

Commit 5d94a94

Browse files
committed
Support esp32s2 for the first time
fix local_encoder, TMC4671, Motorpwm fix VescCAN update gpio definition for my board add esp-idf patch
1 parent 72d1425 commit 5d94a94

46 files changed

Lines changed: 1944 additions & 33 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Firmware/FFBoard/Inc/CommandInterface.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,13 @@
1414
#include "thread.hpp"
1515
#include "CommandHandler.h"
1616

17+
#ifdef HW_ESP32S2
18+
#define COMMANDINTERFACE_THREAD_MEM 2048
19+
#define COMMANDINTERFACE_THREAD_PRIO 9
20+
#else
21+
#define COMMANDINTERFACE_THREAD_MEM 256
22+
#define COMMANDINTERFACE_THREAD_PRIO 36
23+
#endif
1724

1825
class FFBoardMainCommandThread;
1926

Firmware/FFBoard/Inc/ErrorHandler.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,15 @@
1111
#include <string>
1212
#include "thread.hpp"
1313
#include "CommandHandler.h"
14+
#include "target_constants.h"
15+
16+
#ifdef HW_ESP32S2
17+
#define ERROR_PRINTER_MEM 4096
18+
#define ERROR_PRINTER_PRIO 10
19+
#else
20+
#define ERROR_PRINTER_MEM 512
21+
#define ERROR_PRINTER_PRIO 19
22+
#endif
1423

1524
/*
1625
* Error code definitions

Firmware/FFBoard/Inc/HidCommandInterface.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
#include "ffb_defs.h"
1414
#include "CommandHandler.h"
1515

16+
#ifdef HW_ESP32S2
17+
#define HID_COMMANDINTERFACE_MEM 2048
18+
#define HID_COMMANDINTERFACE_PRIO 10
19+
#else
20+
#define HID_COMMANDINTERFACE_MEM 256
21+
#define HID_COMMANDINTERFACE_PRIO 18
22+
#endif
23+
1624
enum class HidCmdType : uint8_t {write = 0, request = 1, info = 2, writeAddr = 3, requestAddr = 4,ACK = 10, notFound = 13, notification = 14, err = 15};
1725

1826

Firmware/FFBoard/Inc/USBdevice.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@
1515

1616
#define USB_STRING_DESC_BUF_SIZE 32
1717

18-
18+
#ifdef HW_ESP32S2
19+
#define USBDEVICE_MEM 4096
20+
#define USBDEVICE_PRIO 10
21+
#else
22+
#define USBDEVICE_MEM 256
23+
#define USBDEVICE_PRIO 40
24+
#endif
1925

2026
/**
2127
* This class defines a usb device and implements callbacks for getting the basic

Firmware/FFBoard/Inc/cppmain.h

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,23 @@ extern "C" {
2222

2323
#include "eeprom_addresses.h"
2424
#include "main.h"
25-
#include "cmsis_compiler.h"
2625

2726

2827
void cppmain();
28+
#ifndef HW_ESP32S2
29+
#include "cmsis_compiler.h"
2930
void usb_init();
3031
void tudThread(void *argument);
31-
32+
#endif
3233
#ifdef __cplusplus
3334
}
3435

3536
static inline bool inIsr(){
37+
#ifdef HW_ESP32S2
38+
return xPortInIsrContext();
39+
#else
3640
return (__get_PRIMASK() != 0U) || (__get_IPSR() != 0U);
41+
#endif
3742
}
3843

3944
template<class T,class C>
@@ -53,12 +58,14 @@ T clip(T v, C l, C h)
5358
{
5459
return { v > h ? h : v < l ? l : v };
5560
}
56-
61+
#ifdef HW_ESP32S2
62+
#define micros() esp_timer_get_time() // Returns microsecond scaled time
63+
#else
5764
uint32_t micros(); // Returns microsecond scaled time
5865
unsigned long getRunTimeCounterValue(void); // RTOS
5966

6067
void refreshWatchdog(); // Refreshes the watchdog
61-
68+
#endif
6269
#endif
6370

6471

Firmware/FFBoard/Inc/critical.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,19 @@ class CriticalSection {
6565
*/
6666
static inline void Enter()
6767
{
68+
#ifndef HW_ESP32S2
6869
taskENTER_CRITICAL();
70+
#endif
6971
}
7072

7173
/**
7274
* Re-enable context switches.
7375
*/
7476
static inline void Exit()
7577
{
78+
#ifndef HW_ESP32S2
7679
taskEXIT_CRITICAL();
80+
#endif
7781
}
7882

7983
/**

Firmware/FFBoard/Inc/tickhook.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
#include "task.h"
4545
#include <list>
4646

47-
#if ( configUSE_TICK_HOOK == 1 )
47+
#if ( configUSE_TICK_HOOK == 1) && !defined(HW_ESP32S2)
4848

4949
/**
5050
* FreeRTOS expects this function to exist and requires it to be

Firmware/FFBoard/Src/CAN.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,12 @@ void CANPort::setSpeedPreset(uint8_t preset){
111111
takeSemaphore();
112112
HAL_CAN_Stop(this->hcan);
113113
HAL_CAN_AbortTxRequest(hcan, txMailbox);
114+
#ifdef HW_ESP32S2
115+
const uint32_t rate[6]={50000, 100000, 125000, 250000, 500000, 1000000}; //bit/s
116+
glue_can_set_speed(rate[preset]);
117+
#else
114118
this->hcan->Instance->BTR = canSpeedBTR_preset[preset];
119+
#endif
115120
HAL_CAN_ResetError(hcan);
116121

117122
HAL_CAN_Start(this->hcan);

Firmware/FFBoard/Src/CmdParser.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ bool CmdParser::parse(std::vector<ParsedCommand>& commands){
120120
cmd.type = CMDtype::err;
121121

122122
}else{
123-
uint32_t peq = word.find('=', 0); // set
124-
uint32_t pqm = word.find('?', 0); // read with var
123+
int32_t peq = word.find('=', 0); // set
124+
int32_t pqm = word.find('?', 0); // read with var
125125

126126
// <cmd>\n
127127
if(pqm == std::string::npos && peq == std::string::npos){

Firmware/FFBoard/Src/CommandHandler.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ std::string CommandHandler::getCsvHelpstring(){
105105
for(CmdHandlerCommanddef& cmd : registeredCommands){
106106
if(cmd.helpstring != nullptr && cmd.cmd != nullptr){
107107
char cmdhex[11];
108-
std::snprintf(cmdhex,11,"0x%lX",cmd.cmdId);
108+
std::snprintf(cmdhex,11,"0x%X",cmd.cmdId);
109109
helpstring.append(cmd.cmd);
110110
helpstring += "," + std::string(cmdhex) + ",";
111111
helpstring.append(cmd.helpstring);

0 commit comments

Comments
 (0)