瀏覽代碼

Feat: 针对标准化DTU调整板槽配置并去除部分调试打印

juni 1 年之前
父節點
當前提交
a45ab76c4e

+ 0 - 1
.clangd

@@ -1,3 +1,2 @@
 CompileFlags:     
-  Add: [-I/home/app/workspace/fuxi-mux/dtu/dtu_main_t536/app]
   Remove: [-march=*, -mabi=*, -mcpu=*]

+ 10 - 10
README.md

@@ -1,13 +1,13 @@
-## 修改记录 ##
+## 淇�敼璁板綍 ##
 # 20250923 
-01. 修改:sc1161y加密初始化读写驱动修改。
-02. 增加:gpio export 增加esam电源和线损维护期换io。
-03. 修复: rt_err_set 加密芯片错误时程序崩溃问题。
-04. 修改: 波特率修改增加115200。
-05. 合并: DTUv4公共定值和逻辑合并。
-06. 修改: 通过GW_AREA_MAIN_2021宏关闭部分南网专用定值和逻辑。 
+01. 淇�敼锛歴c1161y鍔犲瘑鍒濆�鍖栬�鍐欓┍鍔ㄤ慨鏀广€�
+02. 澧炲姞锛歡pio export 澧炲姞esam鐢垫簮鍜岀嚎鎹熺淮鎶ゆ湡鎹�o銆�
+03. 淇��: rt_err_set 鍔犲瘑鑺�墖閿欒�鏃剁▼搴忓穿婧冮棶棰樸€�
+04. 淇�敼: 娉㈢壒鐜囦慨鏀瑰�鍔�115200銆�
+05. 鍚堝苟: DTUv4鍏�叡瀹氬€煎拰閫昏緫鍚堝苟銆�
+06. 淇�敼: 閫氳繃GW_AREA_MAIN_2021瀹忓叧闂�儴鍒嗗崡缃戜笓鐢ㄥ畾鍊煎拰閫昏緫銆� 
 
 # 20250930
-01. 修改: 通过GW_AREA_MAIN_2021宏关闭部分gpio的使用。
-02. 合并: 合并DTUv4开关定值和保护逻辑,小电流接地部分还待移植。
-03. 修改: 通过GW_AREA_MAIN_2021宏关闭部分原本应用于南网的逻辑功能。
+01. 淇�敼: 閫氳繃GW_AREA_MAIN_2021瀹忓叧闂�儴鍒唃pio鐨勪娇鐢ㄣ€�
+02. 鍚堝苟: 鍚堝苟DTUv4寮€鍏冲畾鍊煎拰淇濇姢閫昏緫锛屽皬鐢垫祦鎺ュ湴閮ㄥ垎杩樺緟绉绘�銆�
+03. 淇�敼: 閫氳繃GW_AREA_MAIN_2021瀹忓叧闂�儴鍒嗗師鏈�簲鐢ㄤ簬鍗楃綉鐨勯€昏緫鍔熻兘銆�

+ 4 - 4
app_public/fuxi_public/fuxi_bsp/include/bspconfig.h

@@ -36,14 +36,14 @@
 
 #define PROTECT_AC_ADJUST		 //保护电流校准
 
-#define EQUIP_NAME_STRING		"FS-DFTU"           	// 装置名称
-#define EQUIP_TYPE_STRING		"FS-DFTU"           	// 装置类型
+#define EQUIP_NAME_STRING		"OLE-DFTU"           	// 装置名称
+#define EQUIP_TYPE_STRING		"OLE-DFTU"           	// 装置类型
 #define KO_FILE_NAME			"/app/dtu_t536"
 #define KO_FILE_NAME_1			"dtu_t536"
 
 
 //----------------------------- 设备架构  ---------------------------
-#define EQU_SLOT_NUM_MAX		3
+#define EQU_SLOT_NUM_MAX		16
 #define EQU_SLOT_MAIN			0	// 主板
 #define EQU_SLOT_KZ				1	// 控制板
 #define EQU_SLOT_HMI			2	// 面板
@@ -235,7 +235,7 @@
 #define CFG_ADC_OS_BASE				0						// 过采样基数
 #define CFG_ADC_OS_NUM				(1<<CFG_ADC_OS_BASE)	// 过采样倍数
 
-#define CFG_ADC_CHANNEL				16					// ADC采样的通道数
+#define CFG_ADC_CHANNEL				32					// ADC采样的通道数
 #define CFG_ADC_CHANNEL_DC			1					// 直流ADC通道数量
 #define CFG_ADC_CHANNEL_ALL			(CFG_ADC_CHANNEL + CFG_ADC_CHANNEL_DC) // 所有通道数
 #define CFG_ADC_CHANNEL_ZERO		(CFG_ADC_CHANNEL_ALL)	// 全0通道索引

+ 5 - 1
app_public/fuxi_public/fuxi_bsp/include/equ.h

@@ -44,7 +44,7 @@
 #define BOARD_TYPE_ZT				7	//状态板
 #define BOARD_TYPE_ZH				8	//综合板
 #define BOARD_TYPE_KZ				9	//控制板
-#define BOARD_TYPE_DI60				10
+
 #define BOARD_TYPE_FTUMAIN			11	//GH_F308 主板,DI、DO、AI
 #define BOARD_TYPE_FTUKZ1			12	//GH_F308 控制板,仅占板卡位置,10DO, 3DI, 8AC
 #define BOARD_TYPE_DFTU_KC00		13	//DFTU 二遥DFTU控制板,,00DO, 12DI, 16AC
@@ -55,6 +55,10 @@
 #define BOARD_TYPE_FBDTU_KZ2		17	//后拔插分布式DTU控制板
 #define BOARD_TYPE_FBDTU_MAIN1		18	//分布式DTU主板
 #define BOARD_TYPE_FBDTU_MAIN		19	//分布式DTU主板
+
+#define BOARD_TYPE_DI60				10	//标准化DTU开入拓展板
+#define BOARD_TYPE_DO_2				20	//标准化DTU开出拓展板
+
 #define BOARD_TYPE_RS_STATUS		64	//状态板
 #define BOARD_TYPE_LCD_16LED		65	// 液晶面板
 #define BOARD_TYPE_LCD				65	// 液晶面板

+ 3 - 1
app_public/fuxi_public/fuxi_bsp/source/ad7616.c

@@ -15,6 +15,7 @@
 #include "rt.h"
 #include "head.h"
 #include <malloc.h>
+#include "rt_printf.h"
 #include "shm_comm_packet.h"
 #include <mb.h>
 
@@ -680,6 +681,7 @@ int adc_stat_printf(void)
 	rt_printf("\r\n[ADC¶¶¶¯Í³¼Æ]\r\n");
 	rt_printf("name\t\t\tmin\tmax\tdif\tavg\tsum\t\tcnt\n");
 
+	rt_printf("\r\n");
 	for(i=0; i<CFG_ADC_CHANNEL_ALL; i++)
 	{
 		stat = &g_stat_adc[i];
@@ -688,7 +690,7 @@ int adc_stat_printf(void)
 			avg = stat->sum/stat->cnt;
 		}
 
-		rt_printf("%-24s%lu\t%lu\t%lu\t%lu\t%-16lu%lu\r\n",stat->name,stat->min,stat->max,stat->max - stat->min,avg,stat->sum,stat->cnt);
+		rt_printf("%-24s%ld\t%ld\t%ld\t%ld\t%-16ld%ld\r\n",stat->name,stat->min,stat->max,stat->max - stat->min,avg,stat->sum,stat->cnt);
 
 	}
 

+ 30 - 82
app_public/fuxi_public/fuxi_bsp/source/equ_ftu.c

@@ -258,53 +258,15 @@ int equ_config_do_yd(void)
 
 int equ_init_later(void)
 {
-	u32 i;
-	int ui,index;
-
-	//TODO:need to check g_brd_type_kz how to work
-	g_brd_type_kz = g_board_info[EQU_SLOT_KZ].type - BOARD_TYPE_DFTU_KC00;
-	if(g_brd_type_kz >= BOARD_TYPE_KZ_NUM)
-	{
-		rt_printf("控制板类型错误(g_brd_type_kz=%lu).\r\n",g_brd_type_kz);
-		g_brd_type_kz = 0;
-		return -1;
-	}
+	int i,ui;
+	struct equ_config_di *ecd;
 
-	//通道取反,重新初始化一下,在equ.c中初始化过,但由于g_brd_type_kz未初始化,取反是错误的
-	memset(g_equ_adc_inv,0,sizeof(g_equ_adc_inv));
-	g_equ_adc_inv_num=0;
-	memset(g_equ_adc_config,0,sizeof(g_equ_adc_config));  //jack.liu20200917 g_equ_adc_config初始化
-	for(i=0; i<g_equ_config->ac_num; i++)
-	{
-		u32 adc;
-		adc = equ_get_ac_channel(g_equ_config_ac[i].slot,g_equ_config_ac[i].index);
-		if (adc<CFG_ADC_CHANNEL)
-		{
-			// 是否配置
-			if(g_equ_config_ac[i].type)
-			{
-				g_equ_adc_config[adc] = 1;
-			}
-			
-			// 是否取反
-			if (g_equ_config_ac[i].is_ct_inverse)
-			{
-				g_equ_adc_inv[g_equ_adc_inv_num++] = adc;		
+	// 采样板起始槽位
+	g_ac_slot_begin = EQU_SLOT_AC_BEGIN;
 
-			}
-		}
-	}
-	
-	// 获取频率所对应的UI通道
-	// 频率采样对应ADC通道为1.
-	for(index=0;index<EQU_SLOT_AC_CHN;index++)
-	{
-		if(g_ac_index[g_brd_type_kz][index] == 1)  // 频率0对应通道为 1
-		{
-			break;
-		}
-	}	
- 	g_ui_freq[0] = UI_NUM;
+	// 检查频率硬件通道对应的UI。
+	g_ui_freq[0] = UI_NUM;
+	g_ui_freq[1] = UI_NUM;
 	for(i=0; i< g_equ_config->ac_num; i++)
 	{
 		// 频率通道必须是配置了的公共电压类型
@@ -312,53 +274,39 @@ int equ_init_later(void)
 		{
 			continue;
 		}
-		ui = g_equ_config_ac[i].type -1;
-		if(ui >= PUB_AC_NUM)
-		{
-			continue;
-		}
-		
-		if(g_equ_config_ac[i].slot == EQU_SLOT_KZ && g_equ_config_ac[i].index == index)
-		{
-			g_ui_freq[0] = ui;
-		}			
-	}
 
-	// 获取频率所对应的UI通道
-	// 频率1采样对应ADC通道为12.
-	for(index=0;index<EQU_SLOT_AC_CHN;index++)
-	{
-		if(g_ac_index[g_brd_type_kz][index] == 7)  // 频率1对应通道为 7
-		{
-			break;
-		}
-	}	
- 	g_ui_freq[1] = UI_NUM;
-	for(i=0; i< g_equ_config->ac_num; i++)
-	{
-		// 频率通道必须是配置了的公共电压类型
-		if(g_equ_config_ac[i].type == 0 || g_equ_config_ac[i].owner != 0)
-		{
-			continue;
-		}
 		ui = g_equ_config_ac[i].type -1;
 		if(ui >= PUB_AC_NUM)
 		{
 			continue;
 		}
 		
-		if(g_equ_config_ac[i].slot == EQU_SLOT_KZ && g_equ_config_ac[i].index == index)
+		// 确定频率对应电压通道
+		if(ui < PUB_AC_NUM)
 		{
-			g_ui_freq[1] = ui;
-		}			
-	}	
+			if(g_equ_config_ac[i].slot == 9 && g_equ_config_ac[i].index == 0)
+			{
+				g_ui_freq[0] = ui;
+			}	
 
-	// 采样板起始槽位
-	g_ac_slot_begin = EQU_SLOT_AC_BEGIN;
+			if(g_equ_config_ac[i].slot == 10 && g_equ_config_ac[i].index == 0)
+			{
+				g_ui_freq[1] = ui;
+			}
+		}
+	}
 
-	// 初始化开入开出
-	equ_config_do();
-	equ_config_di();
+	// 初始化开入g_di_st结构
+	memset((unsigned char*)g_di_st,0,sizeof(g_di_st));
+	
+	ecd = g_equ_config_di;
+	for(i=0;i<g_equ_config->di_num;i++)
+	{
+		g_di_st[ecd->slot][ecd->index].tm_filter = ecd->filter_time;
+		g_di_st[ecd->slot][ecd->index].owner = ecd->owner;
+		g_di_st[ecd->slot][ecd->index].type = ecd->type;
+		ecd++;
+	}
 
 	return 0;
 }

+ 0 - 4
app_public/fuxi_public/fuxi_bsp/source/uart.c

@@ -411,10 +411,6 @@ int uart_init(void)
 		{
 			printf("%s: outside uart %d open failed!\n", __FUNCTION__, i);
 		}
-		else
-		{
-			printf("%s: outside uart %d open success!\n", __FUNCTION__, i);
-		}
 	}
 
 	return 0;

+ 1 - 1
app_public/fuxi_public/rt_lite/source/rt_console.c

@@ -915,7 +915,7 @@ int dt_cmd_rt(void)
 int dt_cmd_adc(void)
 {
 	dt_cmd_rt_printf_head();
-	// sunxi 20200805 adc_stat_printf();
+	adc_stat_printf();
 
 	return 0;
 }

+ 1 - 4
app_public/gps/gps_uart.c

@@ -827,10 +827,7 @@ void GpsModuleFunInit(GPS_COMM* data)
                 {
                     printf("%s: outside uart %d open failed!\n", __FUNCTION__, UART_CHANNEL[chnl]);
                 }
-                else
-                {
-                    printf("%s: outside uart %d open success!\n", __FUNCTION__, UART_CHANNEL[chnl]);
-                }
+                
                 RS_Ena_Init(chnl);
                 RS_Recv_Enable(chnl);
 			#endif

+ 1 - 4
dtu/dtu_main_t536/app/IECComm.c

@@ -505,10 +505,7 @@ void IEC_CommInit(void)                     // 
 			{
 				printf("%s: outside uart %d open failed!\n", __FUNCTION__, UART_CHANNEL[i]);
 			}
-			else
-			{
-				printf("%s: outside uart %d open success!\n", __FUNCTION__, UART_CHANNEL[i]);
-			}
+			
 
 			RS_Ena_Init(i);
 			RS_Recv_Enable(i);

+ 1 - 2
dtu/dtu_main_t536/app/LcdComm.c

@@ -396,9 +396,8 @@ void HMI_Comm_App(void)  /*10
 						ret = uart_open(UART_CHANNEL[i],tRunPara.tUartPara[i].dBaud,tRunPara.tUartPara[i].wParity);
 						if (ret < 0) {
 							printf("%s: outside uart %d open failed!\n", __FUNCTION__, UART_CHANNEL[i]);
-						} else {
-							printf("%s: outside uart %d open success!\n", __FUNCTION__, UART_CHANNEL[i]);
 						}
+						
 						RS_Ena_Init(i);
 						RS_Recv_Enable(i);
 						g_h_boj[0].fd = UART_CHANNEL[i];

+ 43 - 4
dtu/dtu_main_t536/app/equ.c

@@ -402,7 +402,41 @@ int equ_led_init(void)
 	return 0;
 }
 
+int equ_config_check(void)
+{
+	int i;
+	bool b_err=false;
+	
+	const int bank_cfg[EQU_SLOT_NUM_MAX]=
+	{
+		BOARD_TYPE_NULL,
+		BOARD_TYPE_AC,
+		BOARD_TYPE_DI60,
+		BOARD_TYPE_DO_2,
+		BOARD_TYPE_RS_STATUS,
+		BOARD_TYPE_MAIN,
+		-1,
+		-1,
+		-1,
+		-1,
+		-1,					
+	};
+
+	for(i=0;i<EQU_SLOT_NUM_MAX;i++)
+	{
+		if(bank_cfg[i] != -1 && bank_cfg[i]!=g_board_info[i].type)
+		{
+			char *name;
+			
+			b_err=true;
+			name = equ_info_brd_type(g_board_info[i].type);
+			rt_printf("通道配置错误:slot=%d,当前类型=%s,应该配成%s\r\n",i,(name==NULL)?"无":name,equ_info_brd_type(bank_cfg[i]));
+		}
+	}
+
+	return (b_err?-1:0);
 
+}
 
 /******************************************************************************
 函数名称:	equ_init
@@ -424,8 +458,7 @@ int equ_init(void)
 	// 得到装置地址和硬件版本
 	g_slot_addr = gpio_get_addr();
 	g_hw_version = gpio_get_version();
-//	rt_printf("g_hw_version=0x%02x,g_slot_addr=0x%02x.\r\n",g_hw_version,g_slot_addr);
-// sunxi 20191018 	rt_printf("VER_TIME:%s,VER_AUTHOR:%s.\r\n",VER_TIME,VER_AUTHOR);
+	rt_printf("g_hw_version=0x%02x,g_slot_addr=0x%02x.\r\n",g_hw_version,g_slot_addr);
 
 	// 装置板卡资源
 	ret = equ_init_file_brd_res();
@@ -481,7 +514,6 @@ int equ_init(void)
 	}
 
 	// 模拟通道配置
-#ifndef BSP_DFTU
 	memset(g_equ_adc_inv,0,sizeof(g_equ_adc_inv));
 	for(i=0; i<g_equ_config->ac_num; i++)
 	{
@@ -503,10 +535,17 @@ int equ_init(void)
 
 		}
 	}
-#endif
+
 	// 初始化灯
 	equ_led_init();
 
+	ret = equ_config_check();
+	if(ret)
+	{
+		rt_printf("%s:ret=%d\r\n",__func__,ret);
+		return -4;
+	}
+
 	return 0;
 }
 

+ 9 - 0
dtu/dtu_main_t536/app/net_debug.c

@@ -367,6 +367,7 @@ Q:
 R:生成icd文件\r\n \
 r:查看实时线程状态\r\n \
 s:复位实时线程状态\r\n \
+S:ADC采样状态\r\n \
 其它:关闭所有监视信息\r\n \
 \r\n>:";
 #endif
@@ -392,6 +393,7 @@ int _net_debug_get_chn(void)
 }
 
 extern int dt_cmd_rt(void);
+extern int dt_cmd_adc(void);
 extern int dt_cmd_rt_reset(void);
 void net_debug_app(void)
 {
@@ -650,6 +652,13 @@ void net_debug_app(void)
 		}
 		break;
 
+		case 'S':         
+		{
+			g_print_to_net = 1;
+			dt_cmd_adc();
+		}
+		break;
+
 		case 's':         
 		{
 			g_print_to_net = 1;

File diff suppressed because it is too large
+ 44 - 148
dtu/dtu_main_t536/compile_commands.json


二進制
dtu/dtu_main_t536/dtu_t536


二進制
dtu/dtu_main_t536/ko/GuoWang/dtu_t536


二進制
dtu/dtu_main_t536/out/dtu_t536


+ 2 - 2
dtu/dtu_main_t536/sh/t536/mybuild_for_gw_public_t536

@@ -131,7 +131,7 @@ UPTIME1=`cat /proc/uptime`
 #CPU="fuxi"
 
 # /tmp/bear/bin/bear -- make -j6 v=1
-make -j6
+bear -- make -j6
 
 COMPILE_STATUS=$?
 
@@ -168,7 +168,7 @@ if [ $? -ne 0 ]; then
   #
   cp "$app_name" ko/"$app_dir"/
   cp "$app_name" out/
-  cp "$app_name" /mnt/hgfs/embedsky_share
+#   cp "$app_name" /mnt/hgfs/embedsky_share
 fi
 
 

Some files were not shown because too many files changed in this diff