Merge pull request 'merge code' (#32) from prepare_for_master into mqtt

This commit is contained in:
wgzAIIT 2023-07-27 10:48:29 +08:00
commit 6559210341
268 changed files with 250 additions and 117 deletions

View File

@ -25,7 +25,7 @@
#ifdef BOARD_EDU_RISCV64_EVB
#define BSP_LED_PIN 29
#define BSP_KEY_PIN 31
#elif defined BOARD_HC32F4A0_EVB
#elif defined BOARD_EDU_ARM32_EVB
#define BSP_LED_PIN 134
#define BSP_KEY_PIN 176
#endif

View File

@ -1,4 +1,4 @@
# KEYENCE 通信测试
# keyence通信测试
[TOC]
@ -12,11 +12,55 @@
- 存储区ZF区。
## JSON配方设计
* 共测试INT16共1种类型数据,以下为JSON文件解释。
- ```json
{
"device_id": 1, //设备ID默认是1此参数无效
"device_name": "KV8000", //设备名称,自定义
"communication_type": 0, //通讯协议类型 0是以太网1是串口
"socket_config": { //以太网配置
"plc_ip": "192.168.250.40", //PLC的IP地址
"local_ip": "192.168.250.233", //矽达通IP地址设定
"gateway": "192.168.250.1", //矽达通的网关地址设定
"netmask": "255.255.255.0", //矽达通子网掩码设定
"port":502 //端口号设定
},
"protocol_type": 3, //通讯协议3代表modbus-tcp协议
"read_period": 100, //交互周期ms
"read_item_list": [
{
"value_name": "ZF0", //变量名称,自定义
"value_type": 3, //变量类型BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9
"function_code": 3, //功能码。3是读
"start_address": 0, //起始地址
"data_length": 1 //BOOL长度默认是1代表读取1个BOOL长度
},
{
"value_name": "ZF2", //变量名称,自定义
"value_type": 3, //变量类型BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9
"function_code": 3, //功能码。3/6是读
"start_address": 2, //起始地址偏移1位
"data_length": 1 //BOOL长度默认是1代表读取1个BOOL长度
}
]
}
```
## 通信测试
1共测试INT16类型数据。
(1) 新增1个通信demo命名为keyence_KV8000.c
2测试ZF区数据。
(2) 复制样例代码程序到keyence_KV8000.c文件中
3D区数据测试用功能码03和06以字为单位读写。如读写ZF1则配方文件中起始地址则直接写1即可。
(3) void **ControlKV8000Test**(void) 更改函数名;
(4) PRIV_SHELL_CMD_FUNCTION(**ControKV8000Test**, keyence plc KV8000 Demo**, PRIV_SHELL_CMD_MAIN_ATTR);更改测试指令;
(5) 剪裁配置完成后,用过烧写器下载至矽达通中,重启后完成测试。

View File

@ -1,12 +1,14 @@
# OMRON_CP1L通信测试
# OMRON_CP1L/H通信测试
[TOC]
## 通信接线及参数设置
* 本体无接口增加CP1W-CIF41网络板卡
* CP1L本体无接口,增加CP1W-CIF41网络板卡,CP1H自带网口,采用网线直连的方式
* FINS协议PLC IP192.168.250.31Port9600
* ![CP1H](./image/CP1H.jpg)
* ![CP1L](./image/CP1L.jpg)
* ![xidatong](./image/xidatong.jpg)
## 存储区

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

View File

@ -1,21 +1,65 @@
# SCHNEIDER M241通信测试
# SCHNEIDER M241L通信测试
[TOC]
## 通信接线及参数设置
* 串口
* M241支持2路485串口本次采用的是serial2。波特率9600数据位8位停止位1位校验偶校验
* M241支持2路485串口本次采用的是serial2。波特率9600数据位8位停止位1位校验偶校验
## 存储区
- 存储区MW区。
## JSON配方设计
* 共测试BOOLINT16共2种类型数据,以下为JSON文件解释。
- ```json
{
"device_id": 1, //设备ID默认是1此参数无效
"device_name": "m241", //设备名称,自定义
"communication_type": 1, //通讯协议类型 0是以太网1是串口
"serial_config": { //串口配置
"station": 1, //站号
"baud_rate": 9600, //波特率
"data_bits": 8, //数据位
"stop_bits": 1, //停止位
"check_mode": 3 //1无校验2校验3偶校验
},
"protocol_type": 3, //通讯协议3代表modbus-tcp协议
"read_period": 100, //交互周期ms
"read_item_list": [
{
"value_name": "MW0", //变量名称,自定义
"value_type": 3, //变量类型BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9
"function_code": 3, //功能码。3是读
"start_address": 0, //起始地址
"data_length": 1 //BOOL长度默认是1代表读取1个BOOL长度
},
{
"value_name": "MW1", //变量名称,自定义
"value_type": 3, //变量类型BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9
"function_code": 3, //功能码。3是读
"start_address": 1, //起始地址偏移1位
"data_length": 1 //BOOL长度默认是1代表读取1个BOOL长度
}
]
}
```
## 通信测试
1共测试INT16共1种类型数据。
(1) 新增1个通信demo命名为schneider_m241.c
2测试MW区数据。
(2) 复制样例代码程序到schneider_m241.c文件中
3MW区数据测试用功能码03以字为单位读取。如读MW100则配方文件中起始地址则直接写100即可。
(3) void **ControlSCHNEIDERM241Test**(void) 更改函数名;
(4) PRIV_SHELL_CMD_FUNCTION(**ControlM241Test**, **Schneider M241 Demo**, PRIV_SHELL_CMD_MAIN_ATTR);更改测试指令;
(5) 剪裁配置完成后,用过烧写器下载至矽达通中,重启后完成测试。

View File

@ -1,4 +1,4 @@
# XINJIE 通信测试
# XINJE通信测试
[TOC]
@ -12,12 +12,55 @@
- 存储区M、D区。
## JSON配方设计
* 共测试BOOLINT16共2种类型数据,以下为JSON文件解释。
- ```json
{
"device_id": 1, //设备ID默认是1此参数无效
"device_name": "XDH", //设备名称,自定义
"communication_type": 0, //通讯协议类型 0是以太网1是串口
"socket_config": { //以太网配置
"plc_ip": "192.168.250.32", //PLC的IP地址
"local_ip": "192.168.250.233", //矽达通IP地址设定
"gateway": "192.168.250.1", //矽达通的网关地址设定
"netmask": "255.255.255.0", //矽达通子网掩码设定
"port":502 //端口号设定
},
"protocol_type": 3, //通讯协议3代表modbus-tcp协议
"read_period": 100, //交互周期ms
"read_item_list": [
{
"value_name": "MW0", //变量名称,自定义
"value_type": 3, //变量类型BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9
"function_code": 3, //功能码。3是读
"start_address": 0, //起始地址
"data_length": 1 //BOOL长度默认是1代表读取1个BOOL长度
},
{
"value_name": "MW1", //变量名称,自定义
"value_type": 3, //变量类型BOOL = 1,INT8 = 2,INT16,INT32,UINT8,UINT16,UINT32,DOUBLE,FLOAT = 9
"function_code": 3, //功能码。3是读
"start_address": 1, //起始地址偏移1位
"data_length": 1 //BOOL长度默认是1代表读取1个BOOL长度
}
]
}
```
## 通信测试
1共测试BOOLINT16共2种类型数据。
(1) 新增1个通信demo命名为xinje_xdh.c
2测试M区及D区数据。
(2) 复制样例代码程序到xinje_xdh.c文件中
3D区数据测试用功能码03和06以字为单位读写。如读写D500则配方文件中起始地址则直接写500即可。
(3) void **ControlXINJEXDHTest**(void) 更改函数名;
4M区数据测试用功能码01和05以位为单位读写。如读写M19则配方文件中起始地址则直接写19即可。
(4) PRIV_SHELL_CMD_FUNCTION(**ControlXINJEXDHTest**, **Omron Plc Cp1l Demo**, PRIV_SHELL_CMD_MAIN_ATTR);更改测试指令;
(5) 剪裁配置完成后,用过烧写器下载至矽达通中,重启后完成测试。

View File

@ -6,7 +6,7 @@ MAKEFLAGS += --no-print-directory
riscv_support := kd233 maix-go hifive1-rev-B gapuino gd32vf103-rvstar rv32m1-vega aiit-riscv64-board xidatong-riscv64 edu-riscv64
arm_support += stm32f407-st-discovery stm32f407zgt6 stm32f103-nano nuvoton-m2354 ok1052-c imxrt1176-sbc aiit-arm32-board xidatong-arm32 xiwangtong-arm32 hc32f4a0
arm_support += stm32f407-st-discovery stm32f407zgt6 stm32f103-nano nuvoton-m2354 ok1052-c imxrt1176-sbc aiit-arm32-board xidatong-arm32 xiwangtong-arm32 edu-arm32
emulator_support += hifive1-emulator k210-emulator cortex-m0-emulator cortex-m3-emulator cortex-m4-emulator
support := $(riscv_support) $(arm_support) $(emulator_support)
SRC_DIR :=

View File

@ -23,13 +23,13 @@
ARM架构系列的开发板有
aiit-arm32-board nuvoton-m2354 ok1052-c stm32f103-nano stm32f407-st-discovery stm32f407zgt6 xidatong-arm32
aiit-arm32-board nuvoton-m2354 ok1052-c stm32f103-nano stm32f407-st-discovery stm32f407zgt6 xidatong-arm32 edu-arm32
### RISC-V
RISC-V架构系列的开发板有
aiit-riscv64-board gapuino gd32vf103-rvstar hifive1-rev-B kd233 maix-go rv32m1-vega
aiit-riscv64-board gapuino gd32vf103-rvstar hifive1-rev-B kd233 maix-go rv32m1-vega edu-riscv64
## 开发环境

View File

@ -25,7 +25,7 @@ SRC_DIR := shared
SRC_DIR += cortex-m4
endif
ifeq ($(CONFIG_BOARD_HC32F4A0_EVB),y)
ifeq ($(CONFIG_BOARD_EDU_ARM32_EVB),y)
SRC_DIR := shared
SRC_DIR += cortex-m4
endif

View File

@ -14,7 +14,7 @@ SRC_FILES += svc_handle.c mpu.c
endif
endif
ifeq ($(CONFIG_BOARD_HC32F4A0_EVB),y)
ifeq ($(CONFIG_BOARD_EDU_ARM32_EVB),y)
SRC_DIR += hc32f4a0
endif

View File

@ -2,7 +2,7 @@
# Automatically generated file; DO NOT EDIT.
# XiZi_IIoT Project Configuration
#
CONFIG_BOARD_HC32F4A0_EVB=y
CONFIG_BOARD_EDU_ARM32_EVB=y
CONFIG_ARCH_ARM=y
#
@ -25,7 +25,7 @@ CONFIG_SERIAL_6_DEVICE_NAME_0="usart6_dev6"
#
# config board app name
#
CONFIG_BOARD_APP_NAME="/XiUOS_hc32f4a0_app.bin"
CONFIG_BOARD_APP_NAME="/XiUOS_edu_arm32_app.bin"
#
# Hardware feature

View File

@ -10,21 +10,21 @@ config KERNEL_DIR
option env="KERNEL_ROOT"
default "../.."
config BOARD_HC32F4A0_EVB
config BOARD_EDU_ARM32_EVB
bool
select ARCH_ARM
default y
source "$KERNEL_DIR/arch/Kconfig"
menu "hc32f4a0 feature"
menu "edu-arm32 feature"
source "$BSP_DIR/third_party_driver/Kconfig"
menu "config default board resources"
menu "config board app name"
config BOARD_APP_NAME
string "config board app name"
default "/XiUOS_hc32f4a0_app.bin"
default "/XiUOS_edu_arm32_app.bin"
endmenu
endmenu

View File

@ -1,4 +1,4 @@
# 从零开始构建矽璓工业物联操作系统使用ARM架构的HC32F4A0开发板
# 从零开始构建矽璓工业物联操作系统使用ARM架构的edu-arm32开发板
[XiUOS](http://xuos.io/) (X Industrial Ubiquitous Operating System) 矽璓工业物联操作系统是一款面向工业物联场景的泛在操作系统,来自泛在操作系统研究计划。所谓泛在操作系统(UOS: Ubiquitous Operating Systems)是支持互联网时代人机物融合泛在计算应用模式的新型操作系统是传统操作系统概念的泛化与延伸。在泛在操作系统技术体系中不同的泛在计算设备和泛在应用场景需要符合各自特性的不同UOSXiUOS即是面向工业物联场景的一种UOS主要由一个极简的微型实时操作系统(RTOS)内核和其上的智能工业物联框架构成,支持工业物联网(IIoT: Industrial Internet of Things)应用。
@ -101,7 +101,7 @@ ARM arm-none-eabi(`gcc version 6.3.1`)默认安装到Ubuntu的/usr/bin/arm
$ sudo apt install gcc-arm-none-eabi
```
# 在HC32F4A0上创建第一个应用 --helloworld
# 在edu-arm32上创建第一个应用 --helloworld
## 1. 简介
@ -133,8 +133,8 @@ XiUOS板级驱动当前支持使用UART。
```c
cd ./Ubiquitous/XiZi
make BOARD=hc32f4a0 distclean
make BOARD=hc32f4a0 menuconfig
make BOARD=edu-arm32 distclean
make BOARD=edu-arm32 menuconfig
```
2.在menuconfig界面配置需要关闭和开启的功能按回车键进入下级菜单按Y键选中需要开启的功能按N键选中需要关闭的功能配置结束后保存并退出本例旨在演示简单的输出例程所以没有需要配置的选项双击快捷键ESC退出配置
@ -148,15 +148,15 @@ make BOARD=hc32f4a0 menuconfig
3.继续执行以下命令,进行编译
```c
make BOARD=hc32f4a0
make BOARD=edu-arm32
```
4.如果编译正确无误会产生XiZi_hc32f4a0.elf、XiZi_hc32f4a0.bin文件。其中XiZi_shc32f4a0.bin需要烧写到设备中进行运行。
4.如果编译正确无误会产生XiZi-edu-arm32.elf、XiZi-edu-arm32.bin文件。其中XiZi-edu-arm32.bin需要烧写到设备中进行运行。
## 3. 烧写及执行
### 3.1 烧写
将BOARD=hc32f4a0开发板通过TYPE-C接口转接到PC然后使用华大官方HDSC ISP工具进行烧写bin文件。
将BOARD=edu-arm32开发板通过TYPE-C接口转接到PC然后使用华大官方HDSC ISP工具进行烧写bin文件。
1、烧写工具HDSC ISP可参考[https://www.hdsc.com.cn/Category83-1496](https://www.hdsc.com.cn/Category83-1496)
@ -167,6 +167,6 @@ make BOARD=hc32f4a0
### 3.2 运行结果
如果编译 & 烧写无误,将会在串口终端上看到信息打印输出,(终端串口引脚为UART3)。
如果编译 & 烧写无误,将会在串口终端上看到信息打印输出,(终端TYPE-C串口引脚为UART3)。
![terminal](img/terminal.png)

View File

@ -12,7 +12,7 @@
/**
* @file board.c
* @brief support hc32f4a0-board init configure and start-up
* @brief support edu-arm32-board init configure and start-up
* @version 2.0
* @author AIIT XUOS Lab
* @date 2022-09-08
@ -20,13 +20,13 @@
/*************************************************
File name: board.c
Description: support hc32f4a0-board init configure and driver/task/... init
Description: support edu-arm32-board init configure and driver/task/... init
Others:
History:
1. Date: 2022-09-08
Author: AIIT XUOS Lab
Modification:
1. support hc32f4a0-board InitBoardHardware
1. support edu-arm32-board InitBoardHardware
*************************************************/
#include <xizi.h>

View File

@ -12,7 +12,7 @@
/**
* @file board.h
* @brief define hc32f4a0-board init configure and start-up function
* @brief define edu-arm32-board init configure and start-up function
* @version 2.0
* @author AIIT XUOS Lab
* @date 2022-09-08
@ -20,14 +20,14 @@
/*************************************************
File name: board.h
Description: define hc32f4a0-board board init function and struct
Description: define edu-arm32-board board init function and struct
Others:
History:
1. Date: 2021-04-25
Author: AIIT XUOS Lab
Modification:
1. define hc32f4a0-board InitBoardHardware
2. define hc32f4a0-board data and bss struct
1. define edu-arm32-board InitBoardHardware
2. define edu-arm32-board data and bss struct
*************************************************/
#ifndef BOARD_H

View File

@ -2,10 +2,10 @@ export CROSS_COMPILE ?=/usr/bin/arm-none-eabi-
export CFLAGS := -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -Dgcc -O0 -gdwarf-2 -g -fgnu89-inline -Wa,-mimplicit-it=thumb -Werror
export AFLAGS := -c -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -x assembler-with-cpp -Wa,-mimplicit-it=thumb -gdwarf-2
export LFLAGS := -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -Wl,--gc-sections,-Map=XiZi_hc32f4a0.map,-cref,-u,Reset_Handler -T $(BSP_ROOT)/link.lds
export LFLAGS := -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -Wl,--gc-sections,-Map=XiZi-edu-arm32.map,-cref,-u,Reset_Handler -T $(BSP_ROOT)/link.lds
export CXXFLAGS := -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -Dgcc -O0 -gdwarf-2 -g -Werror
export APPLFLAGS := -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -Wl,--gc-sections,-Map=XiZi_app.map,-cref,-u, -T $(BSP_ROOT)/link_userspace.lds
export APPLFLAGS := -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -ffunction-sections -fdata-sections -Wl,--gc-sections,-Map=XiZi-edu-arm32.map,-cref,-u, -T $(BSP_ROOT)/link_userspace.lds
export DEFINES := -DHAVE_CCONFIG_H -DHC32F4A0 -DUSE_DDL_DRIVER -DHAVE_SIGINFO

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

@ -11,7 +11,7 @@
/**
* @file hardware_irq.c
* @brief support hc32f4a0-board irq configure
* @brief support edu-arm32-board irq configure
* @version 2.0
* @author AIIT XUOS Lab
* @date 2022-09-13
@ -19,13 +19,13 @@
/*************************************************
File name: hardware_irq.c
Description: support hc32f4a0-board irq configure
Description: support edu-arm32-board irq configure
Others:
History:
1. Date: 2022-09-13
Author: AIIT XUOS Lab
Modification:
1. support hc32f4a0-board irq
1. support edu-arm32-board irq
*************************************************/
/*******************************************************************************

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