根据小熊派社区搭建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:
SDK通常包括以下几个部分:
- 核心库kernel:包含了WS63系列芯片的基本功能实现,如GPIO控制、UART通信、I2C通信等。
- API接口application:提供了一套标准的API接口,供开发者调用以实现各种功能。
- 示例代码sample:提供了一些简单的示例代码,帮助开发者快速上手和理解SDK的使用方法。
- 开发文档docs:包含了SDK的详细说明、API接口的使用指南、硬件资源介绍等,是开发者进行开发的重要参考资料。
入门的点灯代码,需要有RTOS的思维,可以快速入门
- #include "pinctrl.h"
- #include "soc_osal.h"
- #include "gpio.h"
- #include "osal_debug.h"
- #include "cmsis_os2.h"
- #include "app_init.h"
- #define BLINKY_TASK_STACK_SIZE 0x1000
- #define BLINKY_TASK_PRIO (osPriority_t)(17)
- static void *blinky_task(const char *arg)
- {
- unused(arg);
- uapi_pin_set_mode(CONFIG_BLINKY_PIN, PIN_MODE_0);
- uapi_gpio_set_dir(CONFIG_BLINKY_PIN, GPIO_DIRECTION_OUTPUT);
- uapi_gpio_set_val(CONFIG_BLINKY_PIN, GPIO_LEVEL_LOW);
- while (1) {
- osal_msleep(CONFIG_BLINKY_DURATION_MS);
- uapi_gpio_toggle(CONFIG_BLINKY_PIN);
- }
- return NULL;
- }
- static void blinky_entry(void)
- {
- osThreadAttr_t attr;
- attr.name = "BlinkyTask";
- attr.attr_bits = 0U;
- attr.cb_mem = NULL;
- attr.cb_size = 0U;
- attr.stack_mem = NULL;
- attr.stack_size = BLINKY_TASK_STACK_SIZE;
- attr.priority = BLINKY_TASK_PRIO;
- if (osThreadNew((osThreadFunc_t)blinky_task, NULL, &attr) == NULL) {
- /* Create task fail. */
- }
- }
- /* Run the blinky_entry. */
- app_run(blinky_entry);
运行: