当前位置: 首页 > news >正文

从 Hi3861 平台到 WS63 星闪平台的程序移植全解析

引言

随着WS63星闪平台的推出,海思逐步在放弃hi3861平台的支持,为此我们的课程也要从hi3861平台转到WS63平台。相比较而言,WS63平台的硬件能力更强,移植工作总体并不困难,但是也有一些需要注意的细节。

硬件接口代码

检查原程序中对 Hi3861 硬件接口的操作代码,根据 WS63 平台硬件接口的差异进行修改。比如,Hi3861 的某个 GPIO 引脚用于控制外部设备,在 WS63 上该引脚功能或编号可能不同,需相应调整代码中的引脚定义及操作函数。有关内容可以参考:星闪WS63开发板IO管脚查找指南-CSDN博客。

GPIO

GPIO的初始化函数IoTGpioInit不在需要,原有GPIO函数和新平台的对应关系:

hi3861WS63

hi_io_set_func

uapi_pin_set_mode

IoTGpioSetDir

uapi_gpio_set_dir

hi_io_set_pull

uapi_pin_set_pull

IoTGpioSetOutputVal

uapi_gpio_set_val

I2C

原有I2C函数和新平台的对应关系:

hi3861WS63

IoTI2cWrite

uapi_i2c_master_write

IoTI2cRead

uapi_i2c_master_read

IoTI2cInit

uapi_i2c_master_init

I2C相关的函数有一个重要修改就是关于读写函数里面提供的地址问题。I2C协议中,设备地址是用于识别总线上不同从设备的关键标识,主设备通过设备地址与特定从设备进行通信。在hi3861中其提供的地址为8位地址,而WS63为7位地址。8位地址就是在7位地址的基础上增加了读写位(0表示写操作,1表示读操作)。

例如:若设备地址为0x48(二进制01001000),则:

  • 写操作时,发送的地址字节为0x4801001000,最后一位0);
  • 读操作时,发送的地址字节为0x4901001001,最后一位1)。

延时代码

在新平台,原有的hi_udelay延时函数都被osal_udelay函数代替。

代码规范性

海思WS63平台对于代码的规范性要求更高,许多在以前代码中可以忽略的警告信息,在新的平台中都被强制认为是错误。

未定义变量

新平台下,所有未定义变量都被视为错误,需要逐一修改。

参数匹配

hi3861平台中,对参数检查基本遵从C语言的基本要求,但是在WS63中要求严格匹配,这也是修改的重点之一。

结束语

将程序从 Hi3861 平台移植到 WS63 星闪平台需要开发者全面了解两个平台的差异,做好移植前的准备工作,按照正确的步骤进行代码适配、库文件更新、编译调试,并在移植后进行严格的测试和优化。通过这些工作,能够确保移植后的程序在 WS63 星闪平台上稳定、高效地运行,充分发挥星闪技术的优势,为物联网应用带来更卓越的性能和体验。

http://www.lryc.cn/news/595156.html

相关文章:

  • 部署zabbox企业级分布式监控
  • 后训练(Post-training)语言模型
  • 2025最新版IntelliJ IDEA Ultimate for Mac专业版安装使用指南
  • How does Misinformation Affect Large Language ModelBehaviors and Preferences?
  • Flink框架:keyBy实现按键逻辑分区
  • makefile-- 其他函数
  • 低代码平台买saas好还是私有化好
  • 【HTTP缓存机制深度解析:从ETag到实践策略】
  • Zabbix 企业级分布式监控部署
  • C++学习<2>--引用、函数、内存分区
  • 【2025】Vscode Python venv虚拟环境显示“激活终端”成功但是在终端中“并没有激活成功”,pip安装还是会安装到全局环境中的解决方法;
  • 第十八节:第七部分:java高级:注解的应用场景:模拟junit框架
  • nextjs+react接口会请求两次?
  • 元宇宙与DAO自治:去中心化治理的数字文明实践
  • 【设计模式C#】简单工厂模式(用于简化获取对象实例化的复杂性)
  • 实时数据可视化的“心跳”设计:毫秒级延迟下的动态图表抗闪烁优化方案
  • 时空数据可视化新范式:基于Three.js的生产全流程时间轴回溯技术解析
  • 基于爬虫技术的电影数据可视化系统 Python+Django+Vue.js
  • 基于VSCode的nRF52840开发环境搭建
  • 机器学习中核心评估指标(准确率、精确率、召回率、F1分数)
  • 动态数据源切换
  • Android Jetpack系列组件之:LiveData(保姆级教程)
  • 动静态库原理与实战详解
  • Ubuntu 22 安装 ZooKeeper 3.9.3 记录
  • 【HarmonyOS】ArkUI - 声明式开发范式
  • 信息整合注意力IIA,通过双方向的轻量级注意力机制强化目标关键特征并抑制噪声,提升特征融合的有效性和空间位置信息的保留能力。
  • I2S音频的时钟
  • C/C++ 详谈结构体大小计算(内存对齐)
  • 移动端轻量级神经网络推理框架
  • 蚂蚁数科AI数据产业基地正式投产,携手苏州推进AI产业落地