Просмотр исходного кода

增加flash存储

Signed-off-by: hanyongwei <2043702190@qq.com>
master
hanyongwei 1 месяц назад
Родитель
Сommit
80aae3eee1
6 измененных файлов: 1422 добавлений и 1387 удалений
  1. +1401
    -1382
      iar/plsr.dep
  2. +11
    -1
      iar/plsr.ewp
  3. +1
    -1
      iar/stm32f407xx_flash.icf
  4. +3
    -0
      plsr/param/plsr_param.c
  5. +5
    -2
      plsr/plsr.c
  6. +1
    -1
      plsr/plsr.h

+ 1401
- 1382
iar/plsr.dep
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


+ 11
- 1
iar/plsr.ewp Просмотреть файл

@@ -357,6 +357,7 @@
<state>$PROJ_DIR$\..\modbus</state>
<state>$PROJ_DIR$\..\plsr</state>
<state>$PROJ_DIR$\..\plsr\param</state>
<state>$PROJ_DIR$\..\plsr\persist</state>
<state>$PROJ_DIR$\..\plsr\pulse_driver</state>
<state>$PROJ_DIR$\..\plsr\path_plan</state>
<state>$PROJ_DIR$\..\plsr\accel_curve</state>
@@ -791,7 +792,7 @@
</option>
<option>
<name>IlinkIcfFile</name>
<state>$TOOLKIT_DIR$\config\linker\Geehy\APM32f407xG.icf</state>
<state>$PROJ_DIR$\apm32f407xg_flash.icf</state>
</option>
<option>
<name>IlinkIcfFileSlave</name>
@@ -2885,6 +2886,15 @@
<name>$PROJ_DIR$\..\plsr\param\plsr_param.h</name>
</file>
</group>
<group>
<name>persist</name>
<file>
<name>$PROJ_DIR$\..\plsr\persist\plsr_persist.c</name>
</file>
<file>
<name>$PROJ_DIR$\..\plsr\persist\plsr_persist.h</name>
</file>
</group>
<group>
<name>pulse_driver</name>
<file>


+ 1
- 1
iar/stm32f407xx_flash.icf Просмотреть файл

@@ -5,7 +5,7 @@
define symbol __ICFEDIT_intvec_start__ = 0x08000000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_end__ = 0x080FFFFF;
define symbol __ICFEDIT_region_ROM_end__ = 0x080DFFFF; /* sector 11 reserved for persist */
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF;
define symbol __ICFEDIT_region_CCMRAM_start__ = 0x10000000;


+ 3
- 0
plsr/param/plsr_param.c Просмотреть файл

@@ -3,6 +3,7 @@
* @brief 参数块管理模块实现(运行映像 + 分帧导入/导出)
*/
#include "plsr_param.h"
#include "plsr_persist.h"
#include "modbus_rtu.h"
#include "ucos_ii.h"
#include <string.h>
@@ -230,6 +231,7 @@ uint8_t PlsrParamBlockApplyFromHold(void)
seg->jump_seg = ReadHoldReg((uint16_t)(base + PLSR_SEG_OFF_JUMP));
}

PlsrPersistNotifyCommonChanged();
return 1U;
}

@@ -350,6 +352,7 @@ void PlsrParamBlockTask(void *pArg)
if (PlsrParamBlockApplyFromHold() != 0U)
{
PlsrParamSetXferStatus(PLSR_PARAM_XFER_OK, 0U);
PlsrPersistPoll(); /* 分帧收齐后尽快落盘,不等 PlsrTask */
}
else
{


+ 5
- 2
plsr/plsr.c Просмотреть файл

@@ -6,6 +6,7 @@
#include "plsr_pulse_driver.h"
#include "plsr_run_control.h"
#include "plsr_param.h"
#include "plsr_persist.h"
#include "plsr_command.h"
#include "plsr_signal_io.h"
#include "ucos_ii.h"
@@ -13,10 +14,11 @@
void PlsrInit(void)
{
PlsrParamInitDefault();
PlsrPersistLoad(); /* 有 Flash 记录则覆盖公共参数;段表仍用默认 */
PlsrPulseDriverInit();
PlsrSignalIoInit();
PlsrRunControlInit();
PlsrParamBlockExportToHold(); /* 上电把默认映像摊到保持寄存器 */
PlsrParamBlockExportToHold(); /* 上电把运行映像摊到保持寄存器 */
PlsrCommandInit();
}

@@ -71,7 +73,7 @@ void PlsrTask(void *pArg)

for (;;)
{
/* 首次进入:等 Modbus 清寄存器后再导出默认,避免被冲掉 */
/* 首次进入:等 Modbus 清寄存器后再导出运行映像,避免被冲掉 */
if (s_booted == 0U)
{
OSTimeDly(30U); /* ~300ms @ 100Hz tick */
@@ -85,6 +87,7 @@ void PlsrTask(void *pArg)
}

PlsrCommandPoll(); /* 收 START/STOP 等,回写忙闲状态 */
PlsrPersistPoll(); /* 公共参数有改且空闲则追加写入 Flash */
PlsrRunControlTickMs(); /* 方向延时、段间等待到期处理 */

#if (PLSR_LOOP_TEST_EN != 0)


+ 1
- 1
plsr/plsr.h Просмотреть файл

@@ -2,7 +2,7 @@
* @file plsr.h
* @brief PLSR 对外门面:初始化、周期任务、启停与状态查询
*
* 内部模块:参数块 / 指令接口 / 路径规划 / 加减速曲线 / 运行控制 / 脉冲驱动
* 内部模块:参数块 / 公共参数持久化 / 指令接口 / 路径规划 / 加减速曲线 / 运行控制 / 脉冲驱动
*/
#ifndef PLSR_H
#define PLSR_H


Загрузка…
Отмена
Сохранить