From 29d8387c743c4621754827efb91c8e98f0ad7226 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B7=E5=BA=8A=E5=B0=B1=E7=8A=AF=E5=9B=B0?=
<11730503+psx123456@user.noreply.gitee.com>
Date: Sat, 13 Jul 2024 13:59:56 +0800
Subject: [PATCH] no message
---
.cproject | 1 +
.settings/language.settings.xml | 2 +-
Software/inc/communication_protocol.h | 30 +-
Software/inc/uart_dev.h | 57 +
Software/src/Rs485.c | 1 -
Software/src/communication_protocol.c | 25 -
Software/src/uart_dev.c | 312 +
obj/CH32V303_V0.1.elf | Bin 417648 -> 412416 bytes
obj/CH32V303_V0.1.hex | 1643 +++--
obj/CH32V303_V0.1.lst | 5292 ++++++++---------
obj/CH32V303_V0.1.map | 1087 ++--
obj/Core/subdir.mk | 2 +-
obj/Debug/subdir.mk | 2 +-
obj/Hardware/src/subdir.mk | 2 +-
obj/Peripheral/src/subdir.mk | 2 +-
obj/Software/src/Rs485.o | Bin 19084 -> 17416 bytes
obj/Software/src/communication_protocol.o | Bin 15508 -> 11020 bytes
obj/Software/src/subdir.mk | 11 +-
obj/Software/src/uart_dev.d | 160 +
obj/Software/src/uart_dev.o | Bin 0 -> 26128 bytes
obj/User/start.o | Bin 15564 -> 15348 bytes
obj/User/subdir.mk | 2 +-
obj/drivers/RingQueue/subdir.mk | 2 +-
obj/drivers/subdir.mk | 2 +-
.../components/drivers/misc/subdir.mk | 2 +-
.../components/drivers/serial/subdir.mk | 2 +-
obj/rtthread/components/finsh/subdir.mk | 2 +-
obj/rtthread/libcpu/risc-v/common/subdir.mk | 2 +-
obj/rtthread/src/subdir.mk | 2 +-
obj/rtthread/subdir.mk | 2 +-
30 files changed, 4572 insertions(+), 4075 deletions(-)
create mode 100644 Software/inc/uart_dev.h
create mode 100644 Software/src/uart_dev.c
create mode 100644 obj/Software/src/uart_dev.d
create mode 100644 obj/Software/src/uart_dev.o
diff --git a/.cproject b/.cproject
index fbc397d..df5e259 100644
--- a/.cproject
+++ b/.cproject
@@ -92,6 +92,7 @@
+
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index ccf2063..d4ee944 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/Software/inc/communication_protocol.h b/Software/inc/communication_protocol.h
index 97c9c21..1b3e976 100644
--- a/Software/inc/communication_protocol.h
+++ b/Software/inc/communication_protocol.h
@@ -10,26 +10,20 @@
#include "inc/UART.h"
-/* 功能码类型 */
-#define read_Register 0x30
-#define write_Register 0x10
-#define broadcast_Scan 0xA0
-#define reg_Req 0xA1
-
-/* 起始标志 */
-#define StartFlag "SL"
-/* 结束标志 */
-#define EndFlag 0x16
-
-/* 广播ID */
-#define broadcast_ID 0xFFFFFFFFFFFF
-
-#define max_Len 32
-
-extern uint8_t protocol[max_Len];
+/* 功能码 */
+typedef enum
+{
+ SL_Function_Code_Read_Register = 0x30, /* 读寄存器数据 */
+ SL_Function_Code_Write_Register = 0x10, /* 写寄存器数据 */
+ SL_Function_Code_Broadcast_Scan = 0xA0, /* 广播扫描 */
+ SL_Function_Code_Registration_request = 0xA1, /* 注册请求 */
+}SL_MsgFunctionCode;
+
+
+
+
-void broadcast_Scan_Fun(USART_TypeDef* pUSARTx);
#endif /* SOFTWARE_PROTOCOL_COMMUNICATION_PROTOCOL_H_ */
diff --git a/Software/inc/uart_dev.h b/Software/inc/uart_dev.h
new file mode 100644
index 0000000..ff799f3
--- /dev/null
+++ b/Software/inc/uart_dev.h
@@ -0,0 +1,57 @@
+/*
+ * uart_dev.h
+ *
+ * Created on: 2024年6月22日
+ * Author: psx
+ */
+
+#ifndef APP_INC_UART_DEV_H_
+#define APP_INC_UART_DEV_H_
+
+#include "ch32v30x.h"
+#include
+#include
+#include "ring_queue.h"
+#include "rs485.h"
+
+#define ASCII_CHAR_BACKSPACE 0x08 /* '\b' */
+#define ASCII_CHAR_CHARACTER_TABULATION 0x09 /* '\t' */
+#define ASCII_CHAR_LINE_FEED 0x0A /* '\n' */
+#define ASCII_CHAR_LINE_TABULATION 0x0B /* '\v' */
+#define ASCII_CHAR_FORM_FEED 0x0C /* '\f' */
+#define ASCII_CHAR_CARRIAGE_RETURN 0x0D /* '\r' */
+
+#define RS485_MAX_PACK_DATA_LEN 30
+
+typedef uint32_t device_handle;
+
+
+typedef enum{
+ J1RS485_UART6 = 0,
+ J2RS485_UART7,
+ J3RS485_USART2,
+ J4RS485_UART8,
+ J50RS485_USART3,
+ LORA_UART5,
+}uartIndex_e;
+
+/* UART 驱动数据结构,对应一个uart设备 */
+typedef struct _uart_device_info{
+ uint8_t init;
+ uartIndex_e uart_index;
+ uint32_t uart_baudrate;
+ RingQueue uart_ring_queue;
+}uart_device_info;
+
+//device_handle uart_dev_init(uartIndex_e uart_index, uint8_t *buff, int buff_size);
+device_handle uart_dev_init(void);
+void uart_sendstr(device_handle device,char *str);
+void uart_dev_write(device_handle device, void *data, int len);
+int uart_dev_char_present(device_handle device);
+char uart_dev_in_char(device_handle device);
+int ring_queue_dev_char_present(RingQueue *ring_queue);
+char ring_queue_dev_in_char(RingQueue *ring_queue);
+int ring_queue_length(device_handle device);
+
+
+#endif /* APP_INC_UART_DEV_H_ */
diff --git a/Software/src/Rs485.c b/Software/src/Rs485.c
index 7443bea..3331bec 100644
--- a/Software/src/Rs485.c
+++ b/Software/src/Rs485.c
@@ -39,7 +39,6 @@ void Rs485_thread_entry(void* parameter)
{
while (1) {
- broadcast_Scan_Fun(J5_0_USART);
rt_thread_mdelay(3000);
}
diff --git a/Software/src/communication_protocol.c b/Software/src/communication_protocol.c
index 50b9a6d..3b7090e 100644
--- a/Software/src/communication_protocol.c
+++ b/Software/src/communication_protocol.c
@@ -6,32 +6,7 @@
*/
#include
-#include
-
-
-uint8_t protocol[max_Len];
-/*
- * Function Name : broadcast_Scan_Fun
- * Description : 对pUSARTx串口发送扫描广播帧(汇聚网关->接入节点)
- * Input : USART_TypeDef* pUSARTx 串口号
- * Return : None
- **/
-void broadcast_Scan_Fun(USART_TypeDef* pUSARTx)
-{
- memcpy(protocol, StartFlag, 2);
- protocol[2] = broadcast_ID & 0xFF;
- protocol[3] = (broadcast_ID >> 8) & 0xFF;
- protocol[4] = (broadcast_ID >> 16) & 0xFF;
- protocol[5] = (broadcast_ID >> 24) & 0xFF;
- protocol[6] = (broadcast_ID >> 32) & 0xFF;
- protocol[7] = (broadcast_ID >> 40) & 0xFF;
- protocol[8] = broadcast_Scan;
- protocol[9] = 0xCE;
- protocol[10] = EndFlag;
-
- USARTx_SendStr_Len(J5_0_USART, protocol, 11);
-}
diff --git a/Software/src/uart_dev.c b/Software/src/uart_dev.c
new file mode 100644
index 0000000..303572e
--- /dev/null
+++ b/Software/src/uart_dev.c
@@ -0,0 +1,312 @@
+/*
+ * uart_dev.c
+ *
+ * Created on: 2024年6月22日
+ * Author: psx
+ */
+
+#include "uart_dev.h"
+
+/* 使能485发送 */
+//#define rs485_send_enable 1
+
+static void uart_init(uartIndex_e uart_index, int baud);
+static uint8_t uart_putchar(device_handle device, char ch);
+
+//device_handle g_bat485_uart3_handle;
+//device_handle g_gw485_uart4_handle;
+//
+//static uint8_t bat485_in_buff[200];
+//static uint8_t gw485_in_buff[300];
+//
+//uint8_t rs485_out_buff[100];
+
+
+/**
+ * @brief 串口信息初始化,串口号及波特率.
+ * @param uart_index 对应的硬件串口号
+ * @param uart_baudrate 波特率
+ */
+uart_device_info uart_devices[]={
+// [0] = {
+// .init = 0,
+// .uart_index = BAT485_UART_INDEX,
+// .uart_baudrate = 9600,
+// },
+// [1] = {
+// .init = 0,
+// .uart_index = GW485_UART_INDEX,
+// .uart_baudrate = 9600,
+// },
+};
+
+/**
+ * @brief 初始化串口设备.
+ * @param uart_index 初始化串口号
+ * @param buff 串口循环buff地址
+ * @param buff_size 串口循环buff对应大小
+ * @retval 串口句柄
+ */
+//#define ELEMENT_OF(x) (sizeof(x) / sizeof((x)[0]))
+//device_handle uart_dev_init(uartIndex_e uart_index, uint8_t *buff, int buff_size)
+//{
+// int i = 0;
+// for(; i < ELEMENT_OF(uart_devices); i++){
+// if(uart_devices[i].uart_index == uart_index){
+// if(!uart_devices[i].init){
+// InitRingQueue(&uart_devices[i].uart_ring_queue, buff, buff_size);
+// uart_init(uart_index, uart_devices[i].uart_baudrate);
+//
+// uart_devices[i].init = 1;
+// }
+// return (device_handle)(&uart_devices[i]);
+// }
+// }
+// return 0;
+//}
+device_handle uart_dev_init(void)
+{
+// int i = 0;
+// for(; i < ELEMENT_OF(uart_devices); i++){
+// if(uart_devices[i].uart_index == uart_index){
+// if(!uart_devices[i].init){
+// InitRingQueue(&uart_devices[i].uart_ring_queue, buff, buff_size);
+// uart_init(uart_index, uart_devices[i].uart_baudrate);
+//
+// uart_devices[i].init = 1;
+// }
+// return (device_handle)(&uart_devices[i]);
+// }
+// }
+// InitRingQueue(&uart_devices[0].uart_ring_queue, bat485_in_buff, sizeof(bat485_in_buff));
+// uart_init(BAT485_UART_INDEX, g_slConfigInfo.bat485_Baud);
+// uart_devices[0].init = 1;
+// g_bat485_uart3_handle = (device_handle)(&uart_devices[0]);
+//
+// InitRingQueue(&uart_devices[1].uart_ring_queue, gw485_in_buff, sizeof(gw485_in_buff));
+// uart_init(GW485_UART_INDEX, g_slConfigInfo.gw485_Baud);
+// uart_devices[1].init = 1;
+// g_gw485_uart4_handle = (device_handle)(&uart_devices[1]);
+
+ return 0;
+}
+
+
+/**
+ * @brief 串口硬件初始化.
+ * @param uart_index 串口号
+ * @param baud 波特率
+ * @retval None
+ */
+void uart_init(uartIndex_e uart_index, int baud)
+{
+// if (uart_index == BAT485_UART_INDEX) {
+// BAT_485_Init(uart_devices[0].uart_baudrate);
+// } else if (uart_index == GW485_UART_INDEX) {
+// GW_485_Init(uart_devices[1].uart_baudrate);
+// }
+}
+
+/**
+ * @brief 发送一个字节.
+ * @param uart_index 串口号
+ * @param ch 待发送字符
+ * @retval 1 成功 0失败
+ */
+uint8_t uart_putchar(device_handle device, char ch)
+{
+ uart_device_info *device_info = (uart_device_info *)device;
+ if((!device) || (!device_info->init))
+ return 0;
+
+// if (device_info->uart_index == BAT485_UART_INDEX) {
+// USARTx_SendByte(BAT_485, ch);
+// } else if(device_info->uart_index == GW485_UART_INDEX) {
+// USARTx_SendByte(GW_485, ch);
+// }
+
+ return 1;
+}
+
+/**
+ * @brief bat485发送使能.
+ * @param
+ * @retval
+ */
+void bat485_tx_enabla(void)
+{
+// GPIO_WriteBit(GPIO_BAT_485_RDE, Pin_BAT_485_RDE, write);
+}
+
+/**
+ * @brief bat485发送关闭.
+ * @param
+ * @retval
+ */
+void bat485_tx_disenabla(void)
+{
+// GPIO_WriteBit(GPIO_BAT_485_RDE, Pin_BAT_485_RDE, read);
+}
+
+/**
+ * @brief gw485发送使能.
+ * @param
+ * @retval
+ */
+void gw485_tx_enabla(void)
+{
+// GPIO_WriteBit(GPIO_GW_485_RDE, Pin_GW_485_RDE, write);
+}
+
+/**
+ * @brief gw485发送关闭.
+ * @param
+ * @retval
+ */
+void gw485_tx_disenabla(void)
+{
+// GPIO_WriteBit(GPIO_GW_485_RDE, Pin_GW_485_RDE, read);
+}
+
+/**
+ * @brief 发送字符串.
+ * @param uart_index 串口号
+ * @param str 待发送字符串地址
+ * @retval None
+ */
+void uart_sendstr(device_handle device,char *str)
+{
+#if rs485_send_enable
+ if(device == g_bat485_uart3_handle){
+ bat485_tx_enabla();
+ }
+ else if (device == g_gw485_uart4_handle) {
+ gw485_tx_enabla();
+ }
+#endif
+
+ while ((*str) != (char )0u) {
+ if (*str == ASCII_CHAR_LINE_FEED){
+ uart_putchar(device, (ASCII_CHAR_CARRIAGE_RETURN));
+ uart_putchar(device, ASCII_CHAR_LINE_FEED);
+ str++;
+ }else{
+ uart_putchar(device, *str++);
+ }
+ }
+
+#if rs485_send_enable
+ if(device == g_bat485_uart3_handle){
+ bat485_tx_disenabla();
+ }
+ else if (device == g_gw485_uart4_handle) {
+ gw485_tx_disenabla();
+ }
+#endif
+}
+
+
+
+/**
+ * @brief 串口多字节发送.
+ * @param device 串口句柄
+ * @param data 待发送数据
+ * @param len 待发送数据长度
+ * @retval None
+ */
+void uart_dev_write(device_handle device, void *data, int len)
+{
+#if rs485_send_enable
+ if(device == g_bat485_uart3_handle){
+ bat485_tx_enabla();
+ }
+ else if (device == g_gw485_uart4_handle) {
+ gw485_tx_enabla();
+ }
+#endif
+
+ for (int i = 0; i < len; i++) {
+ uart_putchar(device, ((u_int8_t *)data)[i]);
+ }
+
+#if rs485_send_enable
+ if(device == g_bat485_uart3_handle){
+ bat485_tx_disenabla();
+ }
+ else if (device == g_gw485_uart4_handle) {
+ gw485_tx_disenabla();
+ }
+#endif
+}
+
+/**
+ * @brief 判断串口设备循环buff是否有数据.
+ * @param device 串口句柄
+ * @retval 0 空 1有数据
+ */
+int uart_dev_char_present(device_handle device)
+{
+ uart_device_info *device_info = (uart_device_info *)device;
+
+ if((!device) || (!device_info->init))
+ return 0;
+
+ return !RingQueueEmpty(&device_info->uart_ring_queue);
+}
+
+/**
+ * @brief 从串口设备循环buff读取一个数据.
+ * @param device 串口句柄
+ * @retval 读取到的字符
+ */
+char uart_dev_in_char(device_handle device)
+{
+ uart_device_info *device_info = (uart_device_info *)device;
+ char c = 0;
+
+ if (uart_dev_char_present(device))
+ OutRingQueue(&device_info->uart_ring_queue, (u_int8_t*)&c);
+ return c;
+}
+
+/**
+ * @brief 判断循环buff是否有数据.
+ * @param ring_queue 循环buff地址
+ * @retval 0 空 1有数据
+ */
+int ring_queue_dev_char_present(RingQueue *ring_queue)
+{
+ return !RingQueueEmpty(ring_queue);
+}
+
+/**
+ * @brief 从循环buff读取一个数据.
+ * @param ring_queue 循环buff地址
+ * @retval 读取到的字符
+ */
+char ring_queue_dev_in_char(RingQueue *ring_queue)
+{
+ char c = 0;
+ if (ring_queue_dev_char_present(ring_queue))
+ OutRingQueue(ring_queue, (u_int8_t*)&c);
+ return c;
+}
+
+/**
+ * @brief 查看循环buff中的数据个数.
+ * @param ring_queue 循环buff地址
+ * @retval 循环buff中的个数
+ */
+int ring_queue_length(device_handle device)
+{
+ uart_device_info *device_info = (uart_device_info *)device;
+ return RingQueueLength(&device_info->uart_ring_queue);
+}
+
+
+
+
+
+
+
+
diff --git a/obj/CH32V303_V0.1.elf b/obj/CH32V303_V0.1.elf
index d86f0d11eafac2aa3180e4fce2f3e8402c65d619..c224c88294a1285e37c6bad85fa5b2e1de22a6e3 100644
GIT binary patch
delta 36717
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
J`AL*S{|jAvD+K@m
delta 43183
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:
- 0: 2850306f j 3a84
+ 0: 27b0306f j 3a7a
Disassembly of section .vector:
00000004 <_vector_base>:
...
- c: 37ba lhu a4,42(a5)
+ c: 37b0 lbu a2,11(a5)
e: 0000 unimp
- 10: 37da lhu a4,44(a5)
+ 10: 37d0 lbu a2,13(a5)
12: 0000 unimp
14: 0000 unimp
16: 0000 unimp
- 18: 3a82 lhu s0,48(a3)
+ 18: 3a78 lbu a4,23(a2)
...
22: 0000 unimp
- 24: 3a82 lhu s0,48(a3)
+ 24: 3a78 lbu a4,23(a2)
26: 0000 unimp
- 28: 3a82 lhu s0,48(a3)
+ 28: 3a78 lbu a4,23(a2)
...
32: 0000 unimp
34: 2f8c lbu a1,24(a5)
@@ -657,17 +654,17 @@ Disassembly of section .vector:
3e: 0000 unimp
40: 0000 unimp
42: 0000 unimp
- 44: 3a82 lhu s0,48(a3)
+ 44: 3a78 lbu a4,23(a2)
46: 0000 unimp
- 48: 3a82 lhu s0,48(a3)
+ 48: 3a78 lbu a4,23(a2)
4a: 0000 unimp
- 4c: 3a82 lhu s0,48(a3)
+ 4c: 3a78 lbu a4,23(a2)
4e: 0000 unimp
- 50: 3a82 lhu s0,48(a3)
+ 50: 3a78 lbu a4,23(a2)
52: 0000 unimp
- 54: 3a82 lhu s0,48(a3)
+ 54: 3a78 lbu a4,23(a2)
56: 0000 unimp
- 58: 3a82 lhu s0,48(a3)
+ 58: 3a78 lbu a4,23(a2)
5a: 0000 unimp
5c: 3382 lhu s0,32(a5)
5e: 0000 unimp
@@ -679,159 +676,159 @@ Disassembly of section .vector:
6a: 0000 unimp
6c: 3422 lhu s0,42(s0)
6e: 0000 unimp
- 70: 3a82 lhu s0,48(a3)
+ 70: 3a78 lbu a4,23(a2)
72: 0000 unimp
- 74: 3a82 lhu s0,48(a3)
+ 74: 3a78 lbu a4,23(a2)
76: 0000 unimp
- 78: 3a82 lhu s0,48(a3)
+ 78: 3a78 lbu a4,23(a2)
7a: 0000 unimp
- 7c: 3a82 lhu s0,48(a3)
+ 7c: 3a78 lbu a4,23(a2)
7e: 0000 unimp
- 80: 3a82 lhu s0,48(a3)
+ 80: 3a78 lbu a4,23(a2)
82: 0000 unimp
- 84: 3a82 lhu s0,48(a3)
+ 84: 3a78 lbu a4,23(a2)
86: 0000 unimp
- 88: 3a82 lhu s0,48(a3)
+ 88: 3a78 lbu a4,23(a2)
8a: 0000 unimp
- 8c: 3a82 lhu s0,48(a3)
+ 8c: 3a78 lbu a4,23(a2)
8e: 0000 unimp
- 90: 3a82 lhu s0,48(a3)
+ 90: 3a78 lbu a4,23(a2)
92: 0000 unimp
- 94: 3a82 lhu s0,48(a3)
+ 94: 3a78 lbu a4,23(a2)
96: 0000 unimp
- 98: 3a82 lhu s0,48(a3)
+ 98: 3a78 lbu a4,23(a2)
9a: 0000 unimp
- 9c: 3a82 lhu s0,48(a3)
+ 9c: 3a78 lbu a4,23(a2)
9e: 0000 unimp
a0: 344a lhu a0,44(s0)
a2: 0000 unimp
- a4: 3a82 lhu s0,48(a3)
+ a4: 3a78 lbu a4,23(a2)
a6: 0000 unimp
- a8: 3a82 lhu s0,48(a3)
+ a8: 3a78 lbu a4,23(a2)
aa: 0000 unimp
- ac: 3a82 lhu s0,48(a3)
+ ac: 3a78 lbu a4,23(a2)
ae: 0000 unimp
- b0: 3a82 lhu s0,48(a3)
+ b0: 3a78 lbu a4,23(a2)
b2: 0000 unimp
- b4: 3a82 lhu s0,48(a3)
+ b4: 3a78 lbu a4,23(a2)
b6: 0000 unimp
- b8: 3a82 lhu s0,48(a3)
+ b8: 3a78 lbu a4,23(a2)
ba: 0000 unimp
- bc: 3a82 lhu s0,48(a3)
+ bc: 3a78 lbu a4,23(a2)
be: 0000 unimp
- c0: 3a82 lhu s0,48(a3)
+ c0: 3a78 lbu a4,23(a2)
c2: 0000 unimp
- c4: 3a82 lhu s0,48(a3)
+ c4: 3a78 lbu a4,23(a2)
c6: 0000 unimp
- c8: 3a82 lhu s0,48(a3)
+ c8: 3a78 lbu a4,23(a2)
ca: 0000 unimp
- cc: 3a82 lhu s0,48(a3)
+ cc: 3a78 lbu a4,23(a2)
ce: 0000 unimp
- d0: 3a82 lhu s0,48(a3)
+ d0: 3a78 lbu a4,23(a2)
d2: 0000 unimp
- d4: 3a82 lhu s0,48(a3)
+ d4: 3a78 lbu a4,23(a2)
d6: 0000 unimp
- d8: 3770 lbu a2,15(a4)
+ d8: 3766 lhu s1,46(a4)
da: 0000 unimp
- dc: 3a82 lhu s0,48(a3)
+ dc: 3a78 lbu a4,23(a2)
de: 0000 unimp
- e0: 40ac lw a1,64(s1)
+ e0: 4058 lw a4,4(s0)
e2: 0000 unimp
e4: 34c2 lhu s0,44(s1)
e6: 0000 unimp
- e8: 3a82 lhu s0,48(a3)
+ e8: 3a78 lbu a4,23(a2)
ea: 0000 unimp
- ec: 3a82 lhu s0,48(a3)
+ ec: 3a78 lbu a4,23(a2)
ee: 0000 unimp
- f0: 3a82 lhu s0,48(a3)
+ f0: 3a78 lbu a4,23(a2)
f2: 0000 unimp
- f4: 3a82 lhu s0,48(a3)
+ f4: 3a78 lbu a4,23(a2)
f6: 0000 unimp
- f8: 3a82 lhu s0,48(a3)
+ f8: 3a78 lbu a4,23(a2)
fa: 0000 unimp
- fc: 3a82 lhu s0,48(a3)
+ fc: 3a78 lbu a4,23(a2)
fe: 0000 unimp
- 100: 3a82 lhu s0,48(a3)
+ 100: 3a78 lbu a4,23(a2)
102: 0000 unimp
104: 0000 unimp
106: 0000 unimp
- 108: 3a82 lhu s0,48(a3)
+ 108: 3a78 lbu a4,23(a2)
10a: 0000 unimp
- 10c: 3a82 lhu s0,48(a3)
+ 10c: 3a78 lbu a4,23(a2)
10e: 0000 unimp
- 110: 3a82 lhu s0,48(a3)
+ 110: 3a78 lbu a4,23(a2)
112: 0000 unimp
- 114: 3a82 lhu s0,48(a3)
+ 114: 3a78 lbu a4,23(a2)
116: 0000 unimp
- 118: 3a82 lhu s0,48(a3)
+ 118: 3a78 lbu a4,23(a2)
11a: 0000 unimp
- 11c: 3a82 lhu s0,48(a3)
+ 11c: 3a78 lbu a4,23(a2)
11e: 0000 unimp
- 120: 3a82 lhu s0,48(a3)
+ 120: 3a78 lbu a4,23(a2)
122: 0000 unimp
- 124: 3a82 lhu s0,48(a3)
+ 124: 3a78 lbu a4,23(a2)
126: 0000 unimp
- 128: 3a82 lhu s0,48(a3)
+ 128: 3a78 lbu a4,23(a2)
12a: 0000 unimp
- 12c: 3a82 lhu s0,48(a3)
+ 12c: 3a78 lbu a4,23(a2)
12e: 0000 unimp
- 130: 3a82 lhu s0,48(a3)
+ 130: 3a78 lbu a4,23(a2)
132: 0000 unimp
- 134: 3a82 lhu s0,48(a3)
+ 134: 3a78 lbu a4,23(a2)
136: 0000 unimp
- 138: 3a82 lhu s0,48(a3)
+ 138: 3a78 lbu a4,23(a2)
13a: 0000 unimp
- 13c: 3a82 lhu s0,48(a3)
+ 13c: 3a78 lbu a4,23(a2)
13e: 0000 unimp
- 140: 3a82 lhu s0,48(a3)
+ 140: 3a78 lbu a4,23(a2)
142: 0000 unimp
- 144: 3a82 lhu s0,48(a3)
+ 144: 3a78 lbu a4,23(a2)
146: 0000 unimp
- 148: 3a82 lhu s0,48(a3)
+ 148: 3a78 lbu a4,23(a2)
14a: 0000 unimp
- 14c: 3a82 lhu s0,48(a3)
+ 14c: 3a78 lbu a4,23(a2)
14e: 0000 unimp
- 150: 3a82 lhu s0,48(a3)
+ 150: 3a78 lbu a4,23(a2)
152: 0000 unimp
- 154: 3a82 lhu s0,48(a3)
+ 154: 3a78 lbu a4,23(a2)
156: 0000 unimp
- 158: 3a82 lhu s0,48(a3)
+ 158: 3a78 lbu a4,23(a2)
15a: 0000 unimp
- 15c: 3a82 lhu s0,48(a3)
+ 15c: 3a78 lbu a4,23(a2)
15e: 0000 unimp
- 160: 3a82 lhu s0,48(a3)
+ 160: 3a78 lbu a4,23(a2)
162: 0000 unimp
- 164: 3a82 lhu s0,48(a3)
+ 164: 3a78 lbu a4,23(a2)
166: 0000 unimp
- 168: 3a82 lhu s0,48(a3)
+ 168: 3a78 lbu a4,23(a2)
16a: 0000 unimp
- 16c: 3a82 lhu s0,48(a3)
+ 16c: 3a78 lbu a4,23(a2)
16e: 0000 unimp
- 170: 3a82 lhu s0,48(a3)
+ 170: 3a78 lbu a4,23(a2)
172: 0000 unimp
- 174: 3a82 lhu s0,48(a3)
+ 174: 3a78 lbu a4,23(a2)
176: 0000 unimp
- 178: 3a82 lhu s0,48(a3)
+ 178: 3a78 lbu a4,23(a2)
17a: 0000 unimp
- 17c: 3a82 lhu s0,48(a3)
+ 17c: 3a78 lbu a4,23(a2)
17e: 0000 unimp
- 180: 3a82 lhu s0,48(a3)
+ 180: 3a78 lbu a4,23(a2)
182: 0000 unimp
- 184: 3a82 lhu s0,48(a3)
+ 184: 3a78 lbu a4,23(a2)
186: 0000 unimp
- 188: 3a82 lhu s0,48(a3)
+ 188: 3a78 lbu a4,23(a2)
18a: 0000 unimp
- 18c: 3a82 lhu s0,48(a3)
+ 18c: 3a78 lbu a4,23(a2)
18e: 0000 unimp
- 190: 3a82 lhu s0,48(a3)
+ 190: 3a78 lbu a4,23(a2)
192: 0000 unimp
- 194: 3a82 lhu s0,48(a3)
+ 194: 3a78 lbu a4,23(a2)
196: 0000 unimp
- 198: 3a82 lhu s0,48(a3)
+ 198: 3a78 lbu a4,23(a2)
19a: 0000 unimp
- 19c: 3a82 lhu s0,48(a3)
+ 19c: 3a78 lbu a4,23(a2)
19e: 0000 unimp
- 1a0: 3a82 lhu s0,48(a3)
+ 1a0: 3a78 lbu a4,23(a2)
...
Disassembly of section .text:
@@ -892,7 +889,7 @@ Disassembly of section .text:
238: 34151073 csrw mepc,a0
23c: 4092 lw ra,4(sp)
23e: 00008537 lui a0,0x8
- 242: 80050513 addi a0,a0,-2048 # 7800 <__rt_init_end+0x1c34>
+ 242: 80050513 addi a0,a0,-2048 # 7800 <__rt_init_end+0x1c88>
246: 30052073 csrs mstatus,a0
24a: 4522 lw a0,8(sp)
24c: 30052073 csrs mstatus,a0
@@ -984,7 +981,7 @@ Disassembly of section .text:
31a: 34151073 csrw mepc,a0
31e: 4092 lw ra,4(sp)
320: 000082b7 lui t0,0x8
- 324: 80028293 addi t0,t0,-2048 # 7800 <__rt_init_end+0x1c34>
+ 324: 80028293 addi t0,t0,-2048 # 7800 <__rt_init_end+0x1c88>
328: 3002a073 csrs mstatus,t0
32c: 42a2 lw t0,8(sp)
32e: 3002a073 csrs mstatus,t0
@@ -1195,8 +1192,8 @@ Disassembly of section .text:
4e0: ec3ff2ef jal t0,3a2 <__riscv_save_0>
4e4: 6419 lui s0,0x6
4e6: 6499 lui s1,0x6
- 4e8: bb440413 addi s0,s0,-1100 # 5bb4 <__rt_init_rti_board_start>
- 4ec: bc048493 addi s1,s1,-1088 # 5bc0 <__rt_init_rti_board_end>
+ 4e8: b6040413 addi s0,s0,-1184 # 5b60 <__rt_init_rti_board_start>
+ 4ec: b6c48493 addi s1,s1,-1172 # 5b6c <__rt_init_rti_board_end>
4f0: 00946363 bltu s0,s1,4f6
4f4: bdc9 j 3c6 <__riscv_restore_0>
4f6: 401c lw a5,0(s0)
@@ -1208,8 +1205,8 @@ Disassembly of section .text:
4fe: ea5ff2ef jal t0,3a2 <__riscv_save_0>
502: 6419 lui s0,0x6
504: 6499 lui s1,0x6
- 506: bc040413 addi s0,s0,-1088 # 5bc0 <__rt_init_rti_board_end>
- 50a: bc848493 addi s1,s1,-1080 # 5bc8 <__rt_init_rti_end>
+ 506: b6c40413 addi s0,s0,-1172 # 5b6c <__rt_init_rti_board_end>
+ 50a: b7448493 addi s1,s1,-1164 # 5b74 <__rt_init_rti_end>
50e: 00946363 bltu s0,s1,514
512: bd55 j 3c6 <__riscv_restore_0>
514: 401c lw a5,0(s0)
@@ -1220,7 +1217,7 @@ Disassembly of section .text:
0000051c :
51c: e87ff2ef jal t0,3a2 <__riscv_save_0>
520: 3ff9 jal 4fe
- 522: 2d8030ef jal ra,37fa
+ 522: 2ce030ef jal ra,37f0
526: b545 j 3c6 <__riscv_restore_0>
00000528 :
@@ -1232,7 +1229,7 @@ Disassembly of section .text:
538: 20000693 li a3,512
53c: 4601 li a2,0
53e: 51c58593 addi a1,a1,1308 # 51c
- 542: 57c50513 addi a0,a0,1404 # 457c
+ 542: 52850513 addi a0,a0,1320 # 4528
546: 26a010ef jal ra,17b0
54a: 3e2010ef jal ra,192c