小熊派鸿蒙社区
直播中

yun_sun

2年用户 25经验值
擅长:可编程逻辑 模拟技术
私信 关注
[经验]

【BearPi-Pico H3863星闪开发板体验连载】SDK架构分析,项目开发

   根据小熊派社区搭建windows和Ubuntu环境下开发环境搭建,windows下用HiSparkStudio开发,这个软件还在迭代升级,根据华为专家推荐还是Ubuntu环境下开发环境。都需要耐心细致搭建。
   HiSpark Studio 是华为针对AI开发者推出的一款集成开发环境(IDE),它主要用于帮助开发者更方便、高效地开发和管理基于HiSpark平台的AI应用。HiSpark Studio 提供了丰富的功能和工具,使得从项目创建、代码编写、模型训练到部署测试的全过程变得更加简单直观。HiSpark Studio 是一款功能强大、易于使用的海思IC,AI开发IDE,它极大地简化了应用的开发流程,降低了开发门槛,使得更多的开发者能够参与到应用的开发中来。
   以下是一些HiSpark Studio的主要功能和特点:

  • 项目管理和模板支持:HiSpark Studio 支持多种项目模板,开发者可以根据需要选择适合的项目模板快速开始新的项目。同时,它也提供了强大的项目管理功能,方便开发者对多个项目进行组织和管理。

  • 代码编辑和调试:作为一款IDE,HiSpark Studio 提供了强大的代码编辑功能,包括语法高亮、代码补全、代码折叠等。此外,它还支持调试功能,可以帮助开发者在开发过程中及时发现和解决问题。

  • 模型训练和部署:HiSpark Studio 集成了模型训练和部署的相关工具,使得开发者可以在IDE内部完成从数据准备、模型训练到模型部署的全过程。这大大提高了开发效率,减少了开发过程中的繁琐操作。

  • 设备连接和测试:HiSpark Studio 支持与多种AI硬件设备的连接和通信,开发者可以通过IDE将训练好的模型部署到硬件设备上,并进行实时测试和验证。

  • 社区支持和资源获取:HiSpark Studio 提供了丰富的文档和教程资源,帮助开发者快速上手。同时,它还连接了华为的AI开发者社区,开发者可以在这里获取更多的技术支持和分享经验。

下面搭建一个点灯入门demo:
a2.png

666.png

SDK通常包括以下几个部分:

  • 核心库kernel:包含了WS63系列芯片的基本功能实现,如GPIO控制、UART通信、I2C通信等。
  • API接口application:提供了一套标准的API接口,供开发者调用以实现各种功能。
  • 示例代码sample:提供了一些简单的示例代码,帮助开发者快速上手和理解SDK的使用方法。
  • 开发文档docs:包含了SDK的详细说明、API接口的使用指南、硬件资源介绍等,是开发者进行开发的重要参考资料。
777.png


a1.png

  入门的点灯代码,需要有RTOS的思维,可以快速入门
  1. #include "pinctrl.h"
  2. #include "soc_osal.h"
  3. #include "gpio.h"
  4. #include "osal_debug.h"
  5. #include "cmsis_os2.h"
  6. #include "app_init.h"
  7. #define BLINKY_TASK_STACK_SIZE    0x1000
  8. #define BLINKY_TASK_PRIO          (osPriority_t)(17)
  9. static void *blinky_task(const char *arg)
  10. {
  11.     unused(arg);
  12.     uapi_pin_set_mode(CONFIG_BLINKY_PIN, PIN_MODE_0);
  13.     uapi_gpio_set_dir(CONFIG_BLINKY_PIN, GPIO_DIRECTION_OUTPUT);
  14.     uapi_gpio_set_val(CONFIG_BLINKY_PIN, GPIO_LEVEL_LOW);
  15.     while (1) {
  16.         osal_msleep(CONFIG_BLINKY_DURATION_MS);
  17.         uapi_gpio_toggle(CONFIG_BLINKY_PIN);
  18.     }
  19.     return NULL;
  20. }
  21. static void blinky_entry(void)
  22. {
  23.     osThreadAttr_t attr;
  24.     attr.name = "BlinkyTask";
  25.     attr.attr_bits = 0U;
  26.     attr.cb_mem = NULL;
  27.     attr.cb_size = 0U;
  28.     attr.stack_mem = NULL;
  29.     attr.stack_size = BLINKY_TASK_STACK_SIZE;
  30.     attr.priority = BLINKY_TASK_PRIO;
  31.     if (osThreadNew((osThreadFunc_t)blinky_task, NULL, &attr) == NULL) {
  32.         /* Create task fail. */
  33.     }
  34. }
  35. /* Run the blinky_entry. */
  36. app_run(blinky_entry);

运行:
A3.png

微信图片_20241025210607.jpg


1

更多回帖

发帖
×
20
完善资料,
赚取积分