本栏目提供各类展览的相关信息和学习资料,帮助观众更好地理解和欣赏艺术作品,是艺术爱好者的理想参考平台。
### 展讯学习文档知识点详解
#### 一、编译
在展讯平台中,编译过程主要通过命令行在`code`文件夹下完成。根据不同的需求,可以编译整个工程或是特定模块。
- **编译工程**:
- `make p=xxxnew`:用于编译一个新的工程,其中`xxx`代表具体的工程名称。
- `make p=xxx m=app`:编译应用程序模块。
- `make p=xxx m=nv_parameter`:编译网络参数模块。
- `make p=xxx image`:生成可执行映像。
**注意**:如果重新编译了一个模块,最后一定要使用`make p=xxx m=simulator`命令来编译模拟器,并且使用`make p=xxx m=resourceupdate`来更新资源文件。
#### 二、烧机
烧机是指将编译好的固件烧录到硬件设备中的过程。在展讯平台中,这一过程主要通过`DLoaderR.exe`工具完成。
- **步骤**:
1. 在`codetoolsDEBUG_TOOLDLOADERRBin`目录下运行`DLoaderR.exe`。
2. 选择加载项:
- `NOR_FDL`:加载固件引导程序(`buildsc6600l_sp6604l_builddirimgnor_fdl.bin`)。
- `NV`:加载网络参数(`codebuildsc6600l_sp6604l_builddirimgnvitem.bin`)。
- `PS`:加载主程序(`codebuildsc6600l_sp6604l_builddirimgSC6600L_sc6600l_sp6604l.bin`)。
- `MMIRES`:加载用户界面资源(`codebuildsc6600l_sp6604l_builddirimgmmi_res_240x320.bin`)。
- `Flash`:格式化闪存(不常用)。
3. 连接手机:
- 拔下手机电池。
- 使用下载线连接电脑和手机。
- 按住OK键,装入电池。
- 当进度条出现后,松开OK键。
- 等待显示`Passed`提示。
#### 三、打库
打库指的是将编译后的`.o`文件打包成库文件的过程。
- **步骤**:
1. 创建一个新文件夹存放`.o`文件。
2. 使用文本编辑器创建一个批处理文件(扩展名为`.bat`)。
3. 编辑批处理文件内容:
```batch
armar -r 库名.a *.o
```
其中,“库名”指代最终生成的库文件名。
4. 保存并关闭批处理文件。
5. 双击批处理文件,即可生成对应的库文件。
#### 四、Trace
Trace功能用于跟踪系统运行过程中的日志信息,帮助开发者定位问题。
- **步骤**:
1. 启动`ChannelServer.exe`,设置Port端口号。
2. 打开`Logel.exe`。
3. 手机开机后选择USBlog模式。
#### 五、定时器的使用
展讯平台提供了窗口定时器接口,用于实现定时任务。
- **函数原型**:
```c
uint8 MMK_CreateWinTimer(
MMI_HANDLE_T owner_handle,
uint32 time_out,
BOOLEAN is_period
);
```
- `owner_handle`:拥有者句柄。
- `time_out`:超时时间(单位毫秒)。
- `is_period`:是否为周期性定时器。
- **处理定时器消息**:
```c
case MSG_TIMER:
LCD_draw_rollball(MMI_GREEN_COLOR);
break;
```
处理定时器消息时执行的具体任务。
- **停止定时器**:
```c
BOOLEAN MMK_StopTimer(
uint8 timer_id
);
```
停止定时器后需将定时器ID设为0。
#### 六、文件的操作
展讯平台支持基本的文件操作,如创建文件和文件夹等。
- **创建文件**:
```c
MMIFILE_HANDLE MMIFILE_CreateFile(
const wchar *file_name,
uint32 access_mode,
uint32 share_mode,
uint32 file_attri
);
```
示例:在T卡根目录上创建“hello.txt”文件。
```c
const wchar file_name[] = Lhello.txt;
MMIFILE_HANDLE file_handle = MMIFILE_CreateFile(file_name, SFS_MODE_READ | SFS_MODE_WRITE | SFS_MODE_CREATE_ALWAYS | SFS_MODE_OPEN_ALWAYS | SFS_MODE_OPEN_EXISTING, 0, 0