# rtt-sgm706
**Repository Path**: RT-Thread-Mirror/rtt-sgm706
## Basic Information
- **Project Name**: rtt-sgm706
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-01-08
- **Last Updated**: 2023-11-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SGM706独立看门狗驱动软件包
## 1 简介
sgm706软件包是基于RT-Thread watchdog框架实现的一个驱动包。基于该软件包,RT-Thread应用程序可以使用标准IO设备接口访问sgm706看门狗。
### 1.1 目录结构
| 名称 | 说明 |
| ---------- | --------------------- |
| docs | 文档目录 |
| examples | 例子目录 |
| inc | 头文件目录 |
| src | 源代码目录 |
| LICENSE | 许可证文件 |
| SConscript | RT-Thread默认构建脚本 |
### 1.2 许可证
sgm706软件包遵循 Apache license v2.0 许可,详见 `LICENSE` 文件。
## 2 芯片介绍
sgm706是圣邦微(SGMICRO)电子新推出的多功能微处理器监控电路芯片,除了看门狗功能外,还具有上电自动复位、手动复位及低电压报警(复位)等功能,使用起来非常方便可靠,可替代MAX706。sgm706可广泛应用于微处理器和微控制器系统、嵌入式控制器系统、电池供电系统、智能仪器仪表、通信系统等等。
## 3 支持情况
| 包含设备 | 看门狗 |
| ------------ | ------ |
| **通信接口** | |
| GPIO | √ |
| **功能** | |
| 喂狗 | √ |
| 获取喂狗时间 | √ |
| **控制模式** | |
| 不支持暂停 | √ |
| 支持暂停 | |
## 4 使用说明
### 4.1 依赖
- RT-Thread 3.0.0+
- watchdog框架组件
- pin驱动
### 4.2 获取软件包
使用 sgm706 package 需要在 RT-Thread 的包管理器中选择它,具体路径如下。然后让 RT-Thread 的包管理器自动更新,或者使用 `pkgs --update` 命令更新包到 BSP 中。如需使用示例程序,则使能Enable sgm706 sample。
```
RT-Thread online packages --->
peripheral libraries and drivers --->
sensors drivers --->
[*] SGM706 Independent watchdog..
[*] Enable sgm706 sample
Version (latest) --->
```
> **Version**:软件包版本选择,默认选择最新版本。
### 4.3 初始化
sgm706 软件包初始化函数如下所示:
```
int rt_hw_sgm706_init(const char*name, rt_base_t pin);
```
该函数需要由用户调用,函数主要完成的功能有:
- name,设备名称
- pin,通信gpio引脚序号
**参考示例:**
```
#include "sgm706.h"
static int rt_hw_sgm706_port(void)
{
rt_hw_sgm706_init("wdt", 35); /* PB0 */
return RT_EOK;
}
/* 注册看门狗设备 */
INIT_COMPONENT_EXPORT(rt_hw_sgm706_port);
```
### 4.4 启动看门狗
sgm706 软件包基于watchdog框架,watchdog框架继承于RT-Thread标准设备框架,可以使用RT-Thread标准设备接口"open/read/control"来访问sgm706。
**参考伪代码:**
```
wdg_dev = rt_device_find("wdt");/* 查找看门狗设备 */
rt_device_init(wdg_dev); /* 初始化并启动看门狗 */
rt_device_control(wdg_dev, RT_DEVICE_CTRL_WDT_KEEPALIVE, NULL);/* 喂狗 */
```
>通常设置空闲线程钩子函数,在空闲线程中进行喂狗,参考“sgm706_sample.c”例程。
### 4.5 msh/finsh测试
#### 查看设备注册
```
msh >list_device
device type ref count
-------- -------------------- ----------
wdt Miscellaneous Device 0
pin Miscellaneous Device 0
uart4 Character Device 2
uart2 Character Device 0
```
#### 通过msh启动看门狗
```
msh >wdt_sample
start watchdog device
```
## 5 注意事项
暂无
## 6 联系方式
- 维护:[Acuity](https://github.com/Prry)
- 主页: