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

引言

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

硬件接口代码

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

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 星闪平台上稳定、高效地运行,充分发挥星闪技术的优势,为物联网应用带来更卓越的性能和体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值