This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
一、工程结构说明:
1、CORE: Cotex-M3内核相关
core_cm3.c Cotex-M3核心外设访问层
startup_stm32f10x_hd.s stm32f10x_hd启动文件
2、USER: 用户层
main 用户顶层应用代码
userapp 用户层应用代码
usercmd 用户数据帧处理驱动
user_key 用户按键关联菜单驱动
user_oled 用户菜单显示驱动
user_timer 应用层硬件定时器驱动
user_ftp 应用层FTP应用
user_tcp 应用层TCP/IP应用
user_http 应用层HTTP协议应用
user_flash 应用层操作内部flash驱动
iap.c 应用程程序跳转相关驱动函数
cjson 应用层C语言解析json数据驱动
3、HARDWARE文件夹: ABM-EC20主板外设层驱动
led 主板DATA_LED驱动
key 主板按键KEY外设驱动
beep 主板蜂鸣器驱动
usb 主板串口1转USB驱动
RS232 主板串口5转RS232驱动
RS485 主板串口4转RS485驱动
oled 主板1.3寸oled屏驱动
logflash 用户本地flash存储log驱动
ec20_module 用户EC20模块硬件相关驱动
ec20_net 用户EC20模块核心网驱动
ec20_tcp 用户EC20模块TCP/IP协议驱动
ec20_http 用户EC20模块http协议驱动
ec20_ftp 用户EC20模块FTP协议驱动
4、SYSTEM文件夹: STM32硬件相关驱动
sysport SYSTEM层对外接口( 对SYSTEM各驱动整合, 形成标准接口供上层调用)
syslib 系统库函数(存放一些常用的数据处理等通用函数)
malloc STM32系统RAM动态内存管理驱动
usart STM32硬件串口驱动
dma STM32DMA驱动
io STM32通用IO驱动
mac STM32硬件地址驱动( keil编译软件版本也在内)
rtc STM32硬件实时时钟驱动
systick STM32硬件系统滴答定时器驱动
timer STM32硬件定时器驱动。
watchdog STM32硬件看门狗驱动
flash STM32内部flash闪存驱动
stm32Temp STM32内部温度传感器驱动
pvd STM32PVD相关驱动
sys STM32汇编指令相关操作:执行WFI指令、关闭所有中断、开启所有中断、设置堆栈地址
5、FWLIB: st官方STM32固件库
6、README: 工程说明文件
二、命名规则:
1、函数: 首字母大写,各功能词首字母大写。功能词之间以“-”连接/不使用字符连接
2、变量: 首字母小写,各功能词首字母大写。功能词之间无连接符
3、指针: 首字母小写p开头, 各功能词首字母大写。功能词之间无连接符
3、枚举类型: 首字母大写, 各功能词首字母大写。功能词之间无连接符, 以“—m”结尾
4、枚举变量: 以“m”开头, 各功能词首字母大写。功能词之间无连接符
5、结构体类型: 首字母大写, 各功能词首字母大写。功能词之间无连接符, 以“—s”结尾
6、结构体变量: 以“—s”开头, 各功能词首字母大写。功能词之间无连接符
7、共用体类型: 首字母大写, 各功能词首字母大写。功能词之间无连接符, 以“—u”结尾
8、共用体变量: 以“—u”开头, 各功能词首字母大写。功能词之间无连接符
应用层硬件资源分配, 详见《ABM_EC20开发板用户手册》:
1、串口资源分配
串口1<-->USB
串口2-->空闲
串口3<-->EC20模块
串口4<-->RS485
串口5<-->RS232
注意事项:
1、为了配合boot使用, 在boot校验时会校验bin文件的第4~8字节, 即中断向量表中Reset_Handler中断处理函数地址, 所以需要在编译APP时将startup_stm32f10x_hd.s 文件放在最前面。前4个字节为__initial_sp栈顶地址, 第4~8个字节是
中断向量表中Reset_Handler中断处理函数地址。
如果不按照此规范操作, 在boot升级时即使固件正确也无法校验通过。
2、本例程是基于晏诚科技自主开发的轮询操作系统YcOS例程。其实很简单, 就是将FreeRTOS中的多任务采用定时轮询的方式执行, YcOS相对FreeRTOS的区别在于无法进行任务切换。
-------------------------------------------------------------------------------------------