RDA NB-IoT
## 1.调试工具
[Coolwatcher](http://101.200.35.208:8034/AM21EV4/OPENCPU/cooltools.zip)
Coolwatcher 除了可以进行固件的烧写外,也提供了一系列强大的调试工具。
## 2.调试方法
### 2.1 Event Detected 打印
####2.1.1 在代码中增加 trace 打印语句的方法
通过在代码中增加 trace 打印语句,可以在 coolwatcher 中调试观察 trace 的打印情况,以此获取一些数据信息以及了解代码的运行情况。
有一种更简单的调试手段,可以使用如下接口:`hal_HstSendEvent()`

#### 2.1.2 编译sdk,生成lod文件,并通过coolwatcher烧录到模块中。
#### 2.1.3 在 coolwatcher 观察窗口 Ruby Script
此函数会输出一个 32bit 的数据,这个输出是实时的,也不会被冲掉,输出的数据显示在 Ruby Script 栏里,以 event detected 形式出现。

### 2.2 Trace 打印
通过在代码中增加 trace 打印语句,可以在 coolwatcher 中调试观察 trace 的打印情况,以此获取一些数据信息以及了解代码的运行情况。
#### 2.2.1 在代码中增加 trace 打印语句的方法
以下提供常用模块的 trace 打印接口供使用:
`AT_TC(nIndex, fmt, ...)`

#### 2.2.2 编译sdk,生成lod文件,并通过coolwatcher烧录到模块中。
#### 2.2.3 在 coolwatcher 中打开 trace 观察窗并设置 trace 观察规则
点击菜单 Plugins->Activate Tracer

点击后会出现 Trace 插件界面

工具栏各按钮分别对应:开始Trace、停止、清空、设置TraceLevels、Reapply trace levels、
保存、启动/关闭Received列。
各列分别对应:PC 接收 Trace 时间、手机/模块发出 Trace 的时间、Level、描述等
应用步骤如下:
1. 点击 按钮,设置TraceLevels

需在左侧表格中选择关注的levels;
- **AutoSave**: check 是否自动保存trace,状态为checked,则自动保存。
- **bin、trc**:为trace文件类型,前者为二进制文件,后者为文本文件;
- **Split Size**: trace文件大小。当文件size超过该值时,自动切分文件;
- **DB file name**:DB文件。
- **RowLimit** :上图的Trace表格的最大行数;
- **Auto reapply trace levels on reset** :重启前的
- **aceLevels**配置信息是否用于重启后。
- **Save TimeStamp in Trc**:是否保存时间戳。
- **Save ReceivedTime in Trc**:是否保存工具解析trace的时间。
- **Tick in flow ID 0x80** :该配置项需与lod保持一致,如果lod中有时间戳,则选中本项,否则不选。
- **Save**:保存Levels 配置;
- **Load**:加载 Levels 配置;
2. 点击最左边第一个绿色三角按钮,开始Trace功能,Trace信息会显示到表格中,如下图:

3. 点击最左边第二个红色圆形按钮,结束Trace功能;
注意:Tracer 的配置信息,默认为 rbbase\common\plugins\tracer\ 文件夹中的文件。
4. 点击最右边第三个蓝白色方形按钮,保存Trace文件功能;
文件保存类型为“.trc”,通过notepad++打开,搜索关键字,找到trace的相应位置
