Доработка. Добавлена команда загрузки ЭМС-Г.

This commit is contained in:
MaD_CaT
2024-12-23 09:17:14 +03:00
parent e279f7630e
commit de6d381e75
11 changed files with 1512 additions and 1433 deletions

24
.gitignore vendored
View File

@@ -72,3 +72,27 @@ JLinkLog.txt
*.mk
*list
*.cyclo
/yau-07b-cppcheck-build-dir/files.txt
/yau-07b-cppcheck-build-dir/system_stm32f4xx.c.snalyzerinfo
/yau-07b-cppcheck-build-dir/FLASH_SECTOR_F4.a1
/yau-07b-cppcheck-build-dir/FLASH_SECTOR_F4.c.snalyzerinfo
/yau-07b-cppcheck-build-dir/FLASH_SECTOR_F4.s1
/yau-07b-cppcheck-build-dir/FLASH_SECTOR_F4.s2
/yau-07b-cppcheck-build-dir/lastResults.xml
/yau-07b-cppcheck-build-dir/main.a1
/yau-07b-cppcheck-build-dir/main.s1
/yau-07b-cppcheck-build-dir/pribors.a1
/yau-07b-cppcheck-build-dir/pribors.s1
/yau-07b-cppcheck-build-dir/statistics.txt
/yau-07b-cppcheck-build-dir/stm32f4xx_hal_msp.a1
/yau-07b-cppcheck-build-dir/stm32f4xx_hal_msp.c.snalyzerinfo
/yau-07b-cppcheck-build-dir/stm32f4xx_hal_msp.s1
/yau-07b-cppcheck-build-dir/stm32f4xx_hal_msp.s2
/yau-07b-cppcheck-build-dir/stm32f4xx_it.a1
/yau-07b-cppcheck-build-dir/stm32f4xx_it.c.snalyzerinfo
/yau-07b-cppcheck-build-dir/stm32f4xx_it.s1
/yau-07b-cppcheck-build-dir/stm32f4xx_it.s2
/yau-07b-cppcheck-build-dir/system_stm32f4xx.a1
/yau-07b-cppcheck-build-dir/system_stm32f4xx.s1
/yau-07b-cppcheck-build-dir/system_stm32f4xx.s2
/yau-07b.cppcheck

View File

@@ -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="1023272946027205591" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1030508669417260961" 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 &quot;${INPUTS}&quot;" 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="1017302817559438481" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1024542668413065307" 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 &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

View File

@@ -60,6 +60,7 @@ ip_addr_t rx_addr; // Адрес с которого принят пак
_Bool flag_load_ems_b0 = 0;
_Bool flag_load_ems_b1 = 0;
_Bool flag_load_kems_b = 0;
_Bool flag_load_ems_g = 0;
// Структуры принятого и отправленного сообщения
struct rcv_msg rx_msg;
struct tsm_msg tx_msg;
@@ -142,6 +143,7 @@ int main(void)
while (1)
{
MX_LWIP_Process();
printf("aaa\n");
if (need_send_private == 1)
{
need_send_private = 0;
@@ -410,6 +412,7 @@ void sock_init(struct udp_pcb * pcb)
void udp_echo_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p,
const ip_addr_t *addr, u16_t port)
{
//if (disable_rcv) return;
if (p != NULL) {
if (p->tot_len < sizeof rx_msg.rx_buf)
{
@@ -581,7 +584,9 @@ void rcv_command(void)
if (flash_sector == 2) sector = FLASH_BASE_EMS_B1;
uint16_t flash_addr = rx_msg.rx_buf[8] + (rx_msg.rx_buf[9] << 8);
uint16_t numofwords = (bytes_amount/4)+((bytes_amount%4)!=0);
MX_LWIP_SET_ETH_DOWN();
Flash_Write_Data(sector + flash_addr, (uint32_t *)&rx_msg.rx_buf[12], numofwords);
MX_LWIP_SET_ETH_UP();
// Установить размер буфера
tx_msg.cmd_len = 2;
}
@@ -618,9 +623,9 @@ void rcv_command(void)
// Колличество записаных байт
cmd_buf[2] = rx_msg.rx_buf[7];
cmd_buf[3] = rx_msg.rx_buf[8];
cmd_buf[4] = rx_msg.rx_buf[9] << 8;
cmd_buf[4] = rx_msg.rx_buf[9];
cmd_buf[5] = rx_msg.rx_buf[10];
cmd_buf[6] = rx_msg.rx_buf[11] << 8;
cmd_buf[6] = rx_msg.rx_buf[11];
uint16_t flash_addr = rx_msg.rx_buf[8] + (rx_msg.rx_buf[9] << 8);
uint16_t numofwords = (bytes_amount/4)+((bytes_amount%4)!=0);
Flash_Read_Data(sector + flash_addr, (uint32_t *)&cmd_buf[7], numofwords);
@@ -717,6 +722,35 @@ void rcv_command(void)
tx_msg.cmd_len = 6 + len_block * 2;
}
break;
case 70:
//-----------------------------------------------------------
// КОМАНДА №70
// КОМАНДА ЗАПИСИ ФЛАГА О ОКОНЧАНИИ ЗАГРУЗКИ ЭМС-Г
//-----------------------------------------------------------
cmd_buf[0] = rx_msg.cmd_code; // - код команды
// Проверка размера принятого буфера
if( rx_msg.length < (7))
{
// Размер принятого пакета меньше чем долно быть
// Установить ошибку
// КОД = 2
cmd_buf[1] = ERR_SIZE;
// Установить размер буфера = 2
tx_msg.cmd_len = 2;
}
else
{
// Установить ВЫПОЛНЕНО
cmd_buf[1] = NO_ERROR;
flag_load_ems_g = 1;
// Установить размер буфера
tx_msg.cmd_len = 2;
}
break;
default:
{
//-----------------------------------------------------------

View File

@@ -97,7 +97,9 @@ uint16_t set_status_prd(unsigned char *buf)
if( ports_data != 0xFFFF )
{
buf[8] = set_bit(buf[8], 0, 1);
buf[8] = set_bit(buf[8], 4, flag_load_ems_g);
}
else flag_load_ems_g = 0;
ports_data = read_isa(BASE_ADDR_UG);
if( ports_data != 0xFFFF ) buf[8] = set_bit(buf[8], 1, 1);
ports_data = read_isa(BASE_ADDR_UKP0);

View File

@@ -70,8 +70,8 @@ all: main-build
main-build: yau-07b.elf secondary-outputs
# Tool invocations
yau-07b.elf yau-07b.map: $(OBJS) $(USER_OBJS) C:\Maxim_Git\Yau-07B\STM32F429ZITX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-gcc -o "yau-07b.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Maxim_Git\Yau-07B\STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="yau-07b.map" -Wl,--gc-sections -static -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
yau-07b.elf yau-07b.map: $(OBJS) $(USER_OBJS) D:\Work\CubeMX\ Projects\yau-07b\STM32F429ZITX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-gcc -o "yau-07b.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\Work\CubeMX Projects\yau-07b\STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="yau-07b.map" -Wl,--gc-sections -static -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
@echo 'Finished building target: $@'
@echo ' '

View File

@@ -97,6 +97,16 @@ void MX_LWIP_Init(void)
/* USER CODE END 3 */
}
void MX_LWIP_SET_ETH_DOWN (void)
{
netif_set_down(&gnetif);
}
void MX_LWIP_SET_ETH_UP (void)
{
netif_set_up(&gnetif);
}
#ifdef USE_OBSOLETE_USER_CODE_SECTION_4
/* Kept to help code migration. (See new 4_1, 4_2... sections) */
/* Avoid to use this user section which will become obsolete. */

View File

@@ -58,6 +58,8 @@ void MX_LWIP_Init(void);
* - Handle timeouts if NO_SYS_NO_TIMERS not set
*/
void MX_LWIP_Process(void);
void MX_LWIP_SET_ETH_UP(void);
void MX_LWIP_SET_ETH_DOWN(void);
/* USER CODE END 1 */
#endif /* WITH_RTOS */

View File

@@ -295,7 +295,6 @@ static struct pbuf * low_level_input(struct netif *netif)
{
HAL_ETH_ReadData(&heth, (void **)&p);
}
return p;
}
@@ -411,7 +410,14 @@ err_t ethernetif_init(struct netif *netif)
*/
void pbuf_free_custom(struct pbuf *p)
{
struct pbuf_custom* custom_pbuf = (struct pbuf_custom*)p;
static struct pbuf *spp;
if (p)
{
spp = p;
}
if (!spp) return;
struct pbuf_custom* custom_pbuf = (struct pbuf_custom*)spp;
LWIP_MEMPOOL_FREE(RX_POOL, custom_pbuf);
/* If the Rx Buffer Pool was exhausted, signal the ethernetif_input task to
@@ -690,6 +696,7 @@ void HAL_ETH_RxAllocateCallback(uint8_t **buff)
else
{
RxAllocStatus = RX_ALLOC_ERROR;
pbuf_free_custom(NULL);
*buff = NULL;
}
/* USER CODE END HAL ETH RxAllocateCallback */

View File

@@ -70,8 +70,8 @@ all: main-build
main-build: yau-07b.elf secondary-outputs
# Tool invocations
yau-07b.elf yau-07b.map: $(OBJS) $(USER_OBJS) C:\Maxim_Git\Yau-07B\STM32F429ZITX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-gcc -o "yau-07b.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"C:\Maxim_Git\Yau-07B\STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="yau-07b.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
yau-07b.elf yau-07b.map: $(OBJS) $(USER_OBJS) D:\Work\CubeMX\ Projects\yau-07b\STM32F429ZITX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
arm-none-eabi-gcc -o "yau-07b.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"D:\Work\CubeMX Projects\yau-07b\STM32F429ZITX_FLASH.ld" --specs=nosys.specs -Wl,-Map="yau-07b.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
@echo 'Finished building target: $@'
@echo ' '