From cac11d26c2bb1fadd9c7954d7ca827030f2ea571 Mon Sep 17 00:00:00 2001 From: ywh <2227158009@qq.com> Date: Thu, 30 Jul 2026 11:05:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86ccram=E7=9A=84?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- EWARM/stm32f407xx_flash.icf | 4 ++ Modbus/Src/modbus_rtu_slave.c | 112 +++++++++++++++++++++++++++++++++- Touchwin/工程11.txp | Bin 22347776 -> 22347776 bytes 3 files changed, 114 insertions(+), 2 deletions(-) diff --git a/EWARM/stm32f407xx_flash.icf b/EWARM/stm32f407xx_flash.icf index 99477d1..472464c 100644 --- a/EWARM/stm32f407xx_flash.icf +++ b/EWARM/stm32f407xx_flash.icf @@ -32,3 +32,7 @@ place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; place in ROM_region { readonly }; place in RAM_region { readwrite, block CSTACK, block HEAP }; +place in CCMRAM_region +{ + section .ccmram +}; \ No newline at end of file diff --git a/Modbus/Src/modbus_rtu_slave.c b/Modbus/Src/modbus_rtu_slave.c index ed64eb2..e9cc5f6 100644 --- a/Modbus/Src/modbus_rtu_slave.c +++ b/Modbus/Src/modbus_rtu_slave.c @@ -44,7 +44,12 @@ static volatile uint8_t ModbusHasReceivedValidFrame; * 10000 个保持寄存器占用 20000 字节;10000 个线圈按位存储, * 占用 1250 字节 */ -static uint16_t ModbusHoldingRegisters[MODBUS_MAP_ITEM_COUNT]; +static uint16_t ModbusHoldingRegisters[40000]; + + +#pragma location = ".ccmram" +#pragma data_alignment = 4 +__root static uint16_t ModbusRegistersCcm[29999]; static uint8_t ModbusCoils[(MODBUS_MAP_ITEM_COUNT + 7U) / 8U]; @@ -92,6 +97,16 @@ static uint16_t ModbusGetU16Be(const uint8_t *data) return (uint16_t)(((uint16_t)data[0] << 8U) | data[1]); } +/** + * @brief 提取一个 24 位无符号整数 + * @param[in] data 两个字节的数据地址 + * @return 转换后的 24 位无符号整数 + */ +static uint32_t ModbusGetU24Be(const uint8_t *data) +{ + return (uint32_t)((uint32_t)data[0] << 16U|((uint16_t)data[1] << 8U) | data[2]); +} + /** * @brief 检查连续数据地址范围是否合法。 * @param[in] start 起始地址。 @@ -542,6 +557,96 @@ static uint16_t ModbusProcessWriteMultipleRegisters( return 8U; } + +/** + * @brief 处理读取扩展地址保持寄存器功能码0x48 + * @param[in] request RTU请求帧 + * @param[in] requestLength 请求帧长度 + * @return 待发送响应长度,异常请求返回异常响应长度 + */ +static uint16_t ModbusProcessReadBigHolding( + const uint8_t *request, + uint16_t requestLength) +{ + uint32_t start; + uint32_t currentAddress; + uint16_t quantity; + uint16_t index; + uint16_t value; + + /* 请求帧:站号1 + 功能码1 + 地址3 + 数量2 + CRC2。 */ + if (requestLength != 9U) + { + ModbusSlaveStatistics.illegalValueCount++; + + return ModbusBuildException( + request[1], + MODBUS_EX_ILLEGAL_VALUE); + } + + /* 提取24位起始地址和16位寄存器数量。 */ + start = ModbusGetU24Be(&request[2]); + quantity = ModbusGetU16Be(&request[5]); + + /* 一次最多读取125个寄存器。 */ + if ((quantity == 0U) || + (quantity > MODBUS_READ_REGS_MAX)) + { + ModbusSlaveStatistics.illegalValueCount++; + + return ModbusBuildException(request[1],MODBUS_EX_ILLEGAL_VALUE); + + + } + + /* + * 普通SRAM有40000个寄存器,CCMRAM有29999个寄存器, + * 总地址范围为0~69998。 + */ + if ((start >= 69999UL) || ((uint32_t)quantity > (69999UL - start))) + + { + ModbusSlaveStatistics.illegalAddressCount++; + + return ModbusBuildException(request[1],MODBUS_EX_ILLEGAL_ADDRESS); + + + } + + /* 组成正常响应帧头。 */ + ModbusTxFrame[0] = ModbusSlaveAddress; + ModbusTxFrame[1] = 0x48U; + ModbusTxFrame[2] = (uint8_t)(quantity * 2U); + + for (index = 0U; index < quantity; index++) + { + currentAddress = start + (uint32_t)index; + + /* + * 地址0~39999位于普通SRAM; + * 地址40000~69998位于CCMRAM。 + */ + if (currentAddress < 40000UL) + { + value = ModbusHoldingRegisters[currentAddress]; + } + else + { + value = ModbusRegistersCcm[currentAddress - 40000UL]; + + } + + /* 每个寄存器按照高字节、低字节装入响应帧。 */ + ModbusTxFrame[3U + index * 2U] = (uint8_t)(value >> 8U); + ModbusTxFrame[4U + index * 2U] = (uint8_t)(value & 0x00FFU); + + } + /* 添加CRC。 */ + ModbusAppendCrc( ModbusTxFrame, (uint16_t)(3U + quantity * 2U)); + + return (uint16_t)(5U + quantity * 2U); +} + /** * @brief 校验并分发一帧 Modbus RTU 请求。 * @param[in] request RTU 请求帧。 @@ -612,6 +717,9 @@ static uint16_t ModbusProcessRequest(const uint8_t *request,uint16_t requestLeng return ModbusProcessWriteMultipleRegisters(request, requestLength, isBroadcast); + + case 0x48U://读大地址保持寄存器 + return ModbusProcessReadBigHolding(request, requestLength); default://未知功能码 ModbusSlaveStatistics.illegalFunctionCount++; @@ -832,4 +940,4 @@ void ModbusRetainedRegistersPoll(void) -} \ No newline at end of file +} diff --git a/Touchwin/工程11.txp b/Touchwin/工程11.txp index 65cdfa798a61fded62d44b2a128094b499086287..ba65d7c8580e8357e930e28ba98157bae019af21 100644 GIT binary patch delta 16967 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 G+VnrxDRf8x delta 66789 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