Фикс полярности ШИМ для транзисторов

Фикс модели матлаб
This commit is contained in:
2026-02-09 17:24:12 +03:00
parent 3f81734212
commit 261c98d362
18 changed files with 303 additions and 65 deletions

View File

@@ -106,3 +106,30 @@
#define __WFE()
#define __DMB()
/**
\brief Reverse bit order of value
\details Reverses the bit order of the given value.
\param [in] value Value to reverse
\return Reversed value
*/
#if ((defined (__ARM_ARCH_7M__ ) && (__ARM_ARCH_7M__ == 1)) || \
(defined (__ARM_ARCH_7EM__) && (__ARM_ARCH_7EM__ == 1)) )
#define __RBIT __rbit
#else
__attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t value)
{
uint32_t result;
uint32_t s = (4U /*sizeof(v)*/ * 8U) - 1U; /* extra shift needed at end */
result = value; /* r will be reversed bits of v; first get LSB of v */
for (value >>= 1U; value != 0U; value >>= 1U)
{
result <<= 1U;
result |= value & 1U;
s--;
}
result <<= s; /* shift when v's highest bits are zero */
return result;
}
#endif

View File

@@ -84,6 +84,7 @@ set code_PERIPH=.\MCU_STM32_Matlab\stm32_matlab_conf.c^
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c^
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc.c^
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_adc_ex.c^
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_can.c^
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c^
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c^
.\MCU_STM32_Matlab\Drivers\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_exti.c^

View File

@@ -23,6 +23,7 @@ void app_init(void) {
MX_TIM1_Init();
MX_TIM2_Init();
MX_TIM3_Init();
MX_USART6_UART_Init();
MX_TIM8_Init();
MX_TIM5_Init();
MX_ADC3_Init();

View File

@@ -125,6 +125,8 @@ void Write_AngleControl(real_T* Buffer, int ind_port)
WriteOutputArray(upp.hangle.Iref, ind_port, nn++);
WriteOutputArray(upp.hangle.Imeas, ind_port, nn++);
WriteOutputArray(upp.hangle.alpha, ind_port, nn++);
WriteOutputArray(upp.hangle.f.CurrentLimited, ind_port, nn++);
WriteOutputArray(upp.hangle.f.RazgonDone, ind_port, nn++);
#define get_diff(ccrx) ((long long)(upp.hangle.htim->Instance->ccrx) - upp.hangle.htim->Instance->CNT)

View File

@@ -2,6 +2,7 @@ clear all
IadcMax = 53;%200;%53;
VadcMax = 1216;
Va = 3;
Ts = 5e-6;
Vnom = 690;

Binary file not shown.

View File

@@ -24,7 +24,7 @@
#define UPP_SET_DEFAULT ///< Установить настройки по умолчанию
#define UPP_DISABLE_ERROR_BLOCK ///< Отключить блокировку УПП при ошибках
//#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП
#define UPP_SIMULATE_I ///< Симулировт токи (Iref/2) а не брать с АЦП
//#define UPP_DISABLE_PROTECT_BOARDPOWER ///< Отключить проверки питания плат (+24, +5 В)
//#define UPP_DISABLE_PROTECT_LOSS_PHASE ///< Отключить проверки на потерянные фазы

View File

@@ -118,6 +118,11 @@ typedef struct
*/
typedef struct
{
uint16_t NoConnectionPCH:1;
uint16_t NoInputVoltage:1;
uint16_t CurrentLimited:1;
uint16_t OverVoltage:1;
uint16_t UnderVoltage:1;
}UPP_PUI_Warnings_t;
/**
@@ -145,17 +150,17 @@ typedef struct {
uint16_t Fbc; /** @brief Адрес 12: Частота напряжения фазы BC, Герцы */
uint16_t Fca; /** @brief Адрес 13: Частота напряжения фазы CA, Герцы */
uint16_t Temperature1; /** @brief Адрес 14: Температура радиатора тиристоров, Градусы Цельсия */
uint16_t Temperature2; /** @brief Адрес 15: Температура радиатора тиристоров, Градусы Цельсия */
uint16_t Trad; /** @brief Адрес 14: Температура радиатора тиристоров, Градусы Цельсия */
uint16_t Tshkaf; /** @brief Адрес 15: Температура внутри шкафа УПП, Градусы Цельсия */
uint16_t reserved[10]; /** @brief Адрес 16-49: Зарезервированны*/
uint16_t reserved[34]; /** @brief Адрес 16-49: Зарезервированны */
union
{
uint16_t all;
UPP_PUI_Warnings_t warn;
}Warnings; /** @brief Адрес 4: Частота напряжения на входе УПП */
}Warnings; /** @brief Адрес 50: Предупреждения УПП */
} UPP_PUI_Values_t;
/**
@@ -230,8 +235,8 @@ typedef struct {
#define I_A 1
#define I_B 2
/* Температуры */
#define TEMP_1 0
#define TEMP_2 1
#define TEMP_RAD 0
#define TEMP_SHKAF 1
/* Перерасчеты в тики */
#define PM_SLOW_PERIOD_CNT (PM_SLOW_PERIOD_US/PM_FAST_PERIOD_US) ///< Период обновления медленных расчетов тиках @ref PM_FAST_PERIOD_US

View File

@@ -107,8 +107,8 @@ void PowerMonitor_SlowCalc(PowerMonitor_t *hpm)
ADC_UpdateTemperatures(&hpm->adc);
float t1 = hpm->adc.Data[ADC_CHANNEL_TEMP1];
float t2 = hpm->adc.Data[ADC_CHANNEL_TEMP2];
meas->final.T[TEMP_1] = Filter_Process(&hpm->avg[AVG_TEMP1], t1);
meas->final.T[TEMP_2] = Filter_Process(&hpm->avg[AVG_TEMP2], t2);
meas->final.T[TEMP_RAD] = Filter_Process(&hpm->avg[AVG_TEMP1], t1);
meas->final.T[TEMP_SHKAF] = Filter_Process(&hpm->avg[AVG_TEMP2], t2);
/* Расчет третьей фазы */
meas->slow.U[U_BC] = U_BC_calc(meas->slow.U[U_AB], meas->slow.U[U_CA]);
@@ -198,8 +198,8 @@ void PowerMonitor_FastCalc(PowerMonitor_t *hpm)
ADC_UpdateRegular(&hpm->adc);
/* Заполняем Напряжения/Токи в о.е. */
meas->fast.U[U_AB] = hpm->adc.Data[ADC_CHANNEL_UBA]/u_base;
meas->fast.U[U_CA] = hpm->adc.Data[ADC_CHANNEL_UAC]/u_base;
meas->fast.U[U_AB] = -hpm->adc.Data[ADC_CHANNEL_UBA]/u_base;
meas->fast.U[U_CA] = -hpm->adc.Data[ADC_CHANNEL_UAC]/u_base;
// meas->fast.U[U_AB] = Filter_Process(&hpm->ufltr[U_AB], uba_fast);
// meas->fast.U[U_CA] = Filter_Process(&hpm->ufltr[U_CA], uac_fast);
meas->fast.U[U_BC] = U_BC_calc(meas->fast.U[U_AB], meas->fast.U[U_CA]);

View File

@@ -214,11 +214,11 @@ void Protect_Misc(PowerMonitor_Measured_t *measure, UPP_PUI_Params_t *params, UP
/*=============== ЗАЩИТЫ ПО ТЕМПЕРАТУРЕ ==================*/
if(measure->final.T[TEMP_1] > lTerr)
if(measure->final.T[TEMP_RAD] > lTerr)
{
ERR_PRIVATE->temp_err = 1;
}
else if (measure->final.T[TEMP_1] > lTwarn)
else if (measure->final.T[TEMP_RAD] > lTwarn)
{
ERR_PRIVATE->temp_warn = 1;
}

View File

@@ -78,11 +78,14 @@ void Angle_PID(Angle_Handle_t *hangle, float setpoint, float measurement, float
hangle->Iref = Filter_Process(&hangle->refFilter, setpoint);
hangle->f.RazgonDone = (fabsf(hangle->Iref - u2f(PARAM_PUI->Iref, 100)) < 0.1);;
hangle->Imeas = measurement;
hangle->Imeas = measurement;
/* Ошибка регулирования = уставка - измеренное */
float err = hangle->Iref - hangle->Imeas;
/* Определяем ограничение тока */
// Если ошибка меньше порога, значит ток удерживается на заданном уровне Iref
float error_threshold = 0.1f*hangle->Iref; // Порог в 10%
hangle->f.CurrentLimited = (fabsf(err) > error_threshold) ? 0 : 1;
/* ПИД регулирование */
float open_level = arm_pid_f32(&hangle->pid, err); // 0 - открыть максимально поздно, 1 - открыть макситмально рано

View File

@@ -37,9 +37,10 @@ typedef struct
FilterExp_t refFilter; ///< Фильтр для плавного нарастания регулирования
struct {
unsigned Initialized : 1; ///< Структура инициализирована
unsigned Running : 3; ///< Сколько каналов запущено сейчас
unsigned RazgonDone : 1; ///< Флаг что идет разгон Iref
unsigned Initialized : 1; ///< Структура инициализирована
unsigned Running : 3; ///< Сколько каналов запущено сейчас
unsigned RazgonDone : 1; ///< Флаг что идет разгон Iref
unsigned CurrentLimited : 1; ///< Флаг что ток ограничивается в данный момент
} f; ///< Флаги
}Angle_Handle_t;

View File

@@ -19,7 +19,7 @@
UPP_t upp;
RS_HandleTypeDef hmodbus_pui;
HAL_StatusTypeDef res; // сюда сохраняется результат от выполения всяких функций
int dbg_polarity = 1;
int dbg_polarity = 0;
/**
* @brief Инициализация УПП.
@@ -136,8 +136,6 @@ int UPP_While(void)
#ifdef UPP_SIMULATE_I // симулируем токи
upp.pm.measured.final.Iamp = upp.hangle.Iref/2;
// При симуляции тока не включаем его проверку
razgon_done = 0;
#endif
// if(test_cen)

View File

@@ -470,8 +470,8 @@ void UPP_Params_SetDefault(int pui_default, int internal_default)
PARAM_INTERNAL->adc.ADC_Zero[ADC_CHANNEL_UAC] = ADC_U_ZERO_DEFAULT;
PARAM_INTERNAL->adc.ADC_Zero[ADC_CHANNEL_IC] = ADC_I_ZERO_DEFAULT;
PARAM_INTERNAL->adc.ADC_Zero[ADC_CHANNEL_IA] = ADC_I_ZERO_DEFAULT;
PARAM_INTERNAL->adc.Temp_Zero[TEMP_1] = ADC_T_ZERO_DEFAULT;
PARAM_INTERNAL->adc.Temp_Zero[TEMP_2] = ADC_T_ZERO_DEFAULT;
PARAM_INTERNAL->adc.Temp_Zero[TEMP_RAD] = ADC_T_ZERO_DEFAULT;
PARAM_INTERNAL->adc.Temp_Zero[TEMP_SHKAF] = ADC_T_ZERO_DEFAULT;
PARAM_INTERNAL->pwm.PhaseMask = 7; // (все три фазы)
PARAM_INTERNAL->pwm.Frequency = PWM_THYR_FREQUENCY_HZ_DEFAULT;

View File

@@ -15,16 +15,34 @@ void UPP_Status_Handler(void)
GPIO_LED_Dynamic_Handle(&UPP_LEDS.green2);
GPIO_LED_Dynamic_Handle(&UPP_LEDS.red);
MB_DATA.InRegs.pui.Error = upp.errors->common;
MB_DATA.InRegs.pui.WorkMode = upp.workmode;
MB_DATA.InRegs.pui.Uall = upp.pm.measured.final.Uamp * MB_INTERNAL.param.nominal.U;
MB_DATA.InRegs.pui.Uall = upp.pm.measured.final.Uamp * MB_INTERNAL.param.nominal.U;
MB_DATA.InRegs.pui.Uab = upp.pm.measured.final.U[U_AB] * MB_INTERNAL.param.nominal.U;
MB_DATA.InRegs.pui.Ubc = upp.pm.measured.final.U[U_BC] * MB_INTERNAL.param.nominal.U;
MB_DATA.InRegs.pui.Uca = upp.pm.measured.final.U[U_CA] * MB_INTERNAL.param.nominal.U;
MB_DATA.InRegs.pui.Iall = upp.pm.measured.final.Iamp * MB_INTERNAL.param.nominal.I;
MB_DATA.InRegs.pui.Ia = upp.pm.measured.final.U[I_A] * MB_INTERNAL.param.nominal.I;
MB_DATA.InRegs.pui.Ib = upp.pm.measured.final.U[I_B] * MB_INTERNAL.param.nominal.I;
MB_DATA.InRegs.pui.Ic = upp.pm.measured.final.U[I_C] * MB_INTERNAL.param.nominal.I;
MB_DATA.InRegs.pui.Ia = upp.pm.measured.final.I[I_A] * MB_INTERNAL.param.nominal.I;
MB_DATA.InRegs.pui.Ib = upp.pm.measured.final.I[I_B] * MB_INTERNAL.param.nominal.I;
MB_DATA.InRegs.pui.Ic = upp.pm.measured.final.I[I_C] * MB_INTERNAL.param.nominal.I;
MB_DATA.InRegs.pui.Fall = upp.pm.measured.final.Fmean * 10;
MB_DATA.InRegs.pui.Fab = upp.pm.measured.final.F[U_AB] * 10;
MB_DATA.InRegs.pui.Fbc = upp.pm.measured.final.F[U_BC] * 10;
MB_DATA.InRegs.pui.Fca = upp.pm.measured.final.F[U_CA] * 10;
MB_DATA.InRegs.pui.Trad = upp.pm.measured.final.T[TEMP_RAD] * 10;
MB_DATA.InRegs.pui.Tshkaf = upp.pm.measured.final.T[TEMP_SHKAF] * 10;
MB_DATA.InRegs.pui.Warnings.warn.NoConnectionPCH = 0; //todo
MB_DATA.InRegs.pui.Warnings.warn.NoInputVoltage = !upp.pm.f.isU;
MB_DATA.InRegs.pui.Warnings.warn.CurrentLimited = upp.hangle.f.CurrentLimited;
MB_DATA.InRegs.pui.Warnings.warn.OverVoltage = !upp.errors->pui.err.OverVoltage;
MB_DATA.InRegs.pui.Warnings.warn.UnderVoltage = !upp.errors->pui.err.UnderVoltage;
if(GPIO_Read_Switch(&UPP_DIN.Pusk))
{

View File

@@ -154,7 +154,7 @@
<Type>0</Type>
<LineNumber>351</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134232758</Address>
<Address>134232798</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@@ -242,6 +242,11 @@
<WinNumber>1</WinNumber>
<ItemText>hmodbus1</ItemText>
</Ww>
<Ww>
<count>15</count>
<WinNumber>1</WinNumber>
<ItemText>dbg_polarity</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
<Ww>
@@ -262,7 +267,7 @@
<Ww>
<count>3</count>
<WinNumber>2</WinNumber>
<ItemText>test_err</ItemText>
<ItemText>upp.pm.measured</ItemText>
</Ww>
<Ww>
<count>4</count>
@@ -314,6 +319,21 @@
<WinNumber>2</WinNumber>
<ItemText>MB_DATA,0x0A</ItemText>
</Ww>
<Ww>
<count>14</count>
<WinNumber>2</WinNumber>
<ItemText>upp.errors-&gt;pui.err</ItemText>
</Ww>
<Ww>
<count>15</count>
<WinNumber>2</WinNumber>
<ItemText>MB_INTERNAL.param.nominal.U,0x0A</ItemText>
</Ww>
<Ww>
<count>16</count>
<WinNumber>2</WinNumber>
<ItemText>MB_INTERNAL.param.nominal.U</ItemText>
</Ww>
</WatchWindow2>
<Tracepoint>
<THDelay>0</THDelay>
@@ -362,6 +382,10 @@
<Name>System Viewer\ADC3</Name>
<WinId>35905</WinId>
</Entry>
<Entry>
<Name>System Viewer\TIM1</Name>
<WinId>35904</WinId>
</Entry>
</SystemViewers>
<DebugDescription>
<Enable>1</Enable>
@@ -1044,7 +1068,7 @@
<Group>
<GroupName>Application/User/Core</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1220,7 +1244,7 @@
<Group>
<GroupName>MyLibs</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1324,7 +1348,7 @@
<Group>
<GroupName>Modbus</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1504,6 +1528,54 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>71</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\AllLibs\ExtMemory\Src\set_to_mem.c</PathWithFileName>
<FilenameWithoutPath>set_to_mem.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>72</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\AllLibs\ExtMemory\Inc\set_to_mem.h</PathWithFileName>
<FilenameWithoutPath>set_to_mem.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>73</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\AllLibs\ExtMemory\Src\params_flash.c</PathWithFileName>
<FilenameWithoutPath>params_flash.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>74</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\AllLibs\ExtMemory\Inc\params_flash.h</PathWithFileName>
<FilenameWithoutPath>params_flash.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
@@ -1514,7 +1586,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>71</FileNumber>
<FileNumber>75</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1526,7 +1598,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>72</FileNumber>
<FileNumber>76</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1538,7 +1610,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>73</FileNumber>
<FileNumber>77</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1550,7 +1622,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>74</FileNumber>
<FileNumber>78</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1562,7 +1634,7 @@
</File>
<File>
<GroupNumber>8</GroupNumber>
<FileNumber>75</FileNumber>
<FileNumber>79</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1582,7 +1654,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>76</FileNumber>
<FileNumber>80</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1594,7 +1666,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>77</FileNumber>
<FileNumber>81</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1606,7 +1678,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>78</FileNumber>
<FileNumber>82</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1618,7 +1690,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>79</FileNumber>
<FileNumber>83</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1630,7 +1702,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>80</FileNumber>
<FileNumber>84</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1642,7 +1714,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>81</FileNumber>
<FileNumber>85</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1654,7 +1726,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>82</FileNumber>
<FileNumber>86</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1666,7 +1738,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>83</FileNumber>
<FileNumber>87</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1678,7 +1750,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>84</FileNumber>
<FileNumber>88</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1690,7 +1762,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>85</FileNumber>
<FileNumber>89</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1702,7 +1774,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>86</FileNumber>
<FileNumber>90</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1714,7 +1786,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>87</FileNumber>
<FileNumber>91</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1726,7 +1798,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>88</FileNumber>
<FileNumber>92</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1738,7 +1810,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>89</FileNumber>
<FileNumber>93</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1750,7 +1822,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>90</FileNumber>
<FileNumber>94</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1762,7 +1834,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>91</FileNumber>
<FileNumber>95</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1774,7 +1846,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>92</FileNumber>
<FileNumber>96</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1786,7 +1858,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>93</FileNumber>
<FileNumber>97</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1798,7 +1870,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>94</FileNumber>
<FileNumber>98</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1810,7 +1882,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>95</FileNumber>
<FileNumber>99</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1822,7 +1894,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>96</FileNumber>
<FileNumber>100</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1834,7 +1906,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>97</FileNumber>
<FileNumber>101</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1846,7 +1918,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>98</FileNumber>
<FileNumber>102</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1858,7 +1930,7 @@
</File>
<File>
<GroupNumber>9</GroupNumber>
<FileNumber>99</FileNumber>
<FileNumber>103</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1878,7 +1950,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>10</GroupNumber>
<FileNumber>100</FileNumber>
<FileNumber>104</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1898,7 +1970,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>101</FileNumber>
<FileNumber>105</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@@ -1910,7 +1982,7 @@
</File>
<File>
<GroupNumber>11</GroupNumber>
<FileNumber>102</FileNumber>
<FileNumber>106</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

View File

@@ -1111,6 +1111,75 @@
</Group>
<Group>
<GroupName>ExtMemory</GroupName>
<GroupOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<GroupArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>2</interw>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<thumb>2</thumb>
<SplitLS>2</SplitLS>
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Aads>
</GroupArmAds>
</GroupOption>
<Files>
<File>
<FileName>memspi.c</FileName>
@@ -1122,6 +1191,26 @@
<FileType>1</FileType>
<FilePath>..\AllLibs\ExtMemory\Src\memspi_core.c</FilePath>
</File>
<File>
<FileName>set_to_mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\AllLibs\ExtMemory\Src\set_to_mem.c</FilePath>
</File>
<File>
<FileName>set_to_mem.h</FileName>
<FileType>5</FileType>
<FilePath>..\AllLibs\ExtMemory\Inc\set_to_mem.h</FilePath>
</File>
<File>
<FileName>params_flash.c</FileName>
<FileType>1</FileType>
<FilePath>..\AllLibs\ExtMemory\Src\params_flash.c</FilePath>
</File>
<File>
<FileName>params_flash.h</FileName>
<FileType>5</FileType>
<FilePath>..\AllLibs\ExtMemory\Inc\params_flash.h</FilePath>
</File>
</Files>
</Group>
<Group>
@@ -2415,6 +2504,26 @@
<FileType>1</FileType>
<FilePath>..\AllLibs\ExtMemory\Src\memspi_core.c</FilePath>
</File>
<File>
<FileName>set_to_mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\AllLibs\ExtMemory\Src\set_to_mem.c</FilePath>
</File>
<File>
<FileName>set_to_mem.h</FileName>
<FileType>5</FileType>
<FilePath>..\AllLibs\ExtMemory\Inc\set_to_mem.h</FilePath>
</File>
<File>
<FileName>params_flash.c</FileName>
<FileType>1</FileType>
<FilePath>..\AllLibs\ExtMemory\Src\params_flash.c</FilePath>
</File>
<File>
<FileName>params_flash.h</FileName>
<FileType>5</FileType>
<FilePath>..\AllLibs\ExtMemory\Inc\params_flash.h</FilePath>
</File>
</Files>
</Group>
<Group>