FuShenxiao 发表于 2024-8-2 10:26

小熊派BearPi-Pico H2821星闪开发板测评(一)——开箱与环境搭建

本帖最后由 FuShenxiao 于 2024-8-2 10:22 编辑

<p><span style="font-size:18px;">前言</span></p>

<p>这是我第一次在EEWORLD做测评,倍感荣幸,希望能给大家带来许多有关开发板的干货。此次测评的开发板是小熊派BearPi-Pico H2821星闪开发板,这是一款基于高度集成 2.4GHz SoC BLE&amp;SLE为主控芯片的核心板,具有灵活的数字接口,IO口可复用为任意功能,集成高性能 32bit 微处理器(MCU),硬件安全引擎以及丰富的外设接口,外设接口包括 SPI、UART、I2C、PWM、GPIO、USB2.0、NFC Tag、PDM、I2S/PCM、QDEC、KEYSCAN 键盘扫描电路,支持 8 路 13bit 分辨率 ADC、ADC 支持对接音频 AMIC,内置 SRAM 和合封 Flash,并支持在 Flash 上运行程序。</p>

<p><span style="font-size:18px;">开箱</span></p>

<p>活动给了两块开发板用于测评,确保了一些主从传输任务的实现</p>

<p style="text-align: center;"></p>

<p style="text-align: justify;">上电之后如下图所示</p>

<p style="text-align: center;"></p>

<p><span style="font-size:18px;">开发环境搭建(以Ubuntu为例)</span></p>

<p>由于我最近正在学习嵌入式Linux,因此这块开发板我想在Linux环境下进行开发。</p>

<p><span style="font-size:16px;">1. 下载并安装以下软件</span></p>

<p>BearPi-H2821_Ubuntu镜像、Hiburn(代码烧录工具)、VMware Workstation、MobaXterm、RaiDrive(映射虚拟机文件到电脑上)、CH340驱动(开发板USB驱动)、VS Code</p>

<p align="left">具体软件安装包可在BearPi-Pico的官方网盘中获取:<a href="https://www.bearpi.cn/core_board/bearpi/pico/h2821/filebrowser/?path=6477544&amp;fileID=6674460" target="_blank">https://www.bearpi.cn/core_board/bearpi/pico/h2821/filebrowser/?path=6477544&amp;fileID=6674460</a></p>

<p align="left"><span style="font-size:16px;">2. 部署环境</span></p>

<p align="left">2.1.&nbsp;解压下载的BearPi-H2821 Ubuntu镜像.zip文件到某个目录</p>

<p align="center"> &nbsp;</p>

<p style="list-style-type:none">2.2. 在VMware中打开并导入BearPi-H2821.ovf文件,并启动虚拟机</p>

<p align="center"> &nbsp;</p>

<p align="center"> &nbsp;</p>

<p style="list-style-type:none">2.3. 点击用户名,输入密码bearpi,然后点击登录</p>

<p style="list-style-type:none">2.4. 进入桌面,打开终端,在终端中输入ifconfig,得到lo和网卡信息,记录IP地址</p>

<p align="center"> &nbsp;</p>

<p style="list-style-type:none">2.5. 挂起虚拟机,在VMware中选择&ldquo;虚拟机-设置&rdquo;,确保网络适配器在NAT模式</p>

<p align="center"> &nbsp;</p>

<p><span style="font-size:16px;">3. 在Windows上远程连接服务器</span></p>

<p>重新进入虚拟机,打开MobaXterm,在SSH中配置上文所获取的远程地址,输入账号bearpi和密码bearpi,并保存账号</p>

<p align="center"> &nbsp;</p>

<p style="text-align: justify;"><span style="font-size:16px;">4. 把Ubuntu文件远程映射到Windows上</span></p>

<p style="text-align: justify;">4.1.&nbsp;安装RaiDrive软件并将其切换为中文</p>

<p align="center"> &nbsp;</p>

<p style="list-style-type:none">4.2. 添加链接信息</p>

<p align="center"> &nbsp;</p>

<p>于是在本地就可以看到映射的Ubuntu文件路径</p>

<p align="center"> &nbsp;</p>

<p><span style="font-size:16px;">5. 在Ubuntu中获取源码</span></p>

<p>进入MobaXterm</p>

<p>进入文件夹</p>

<pre>
<code>cd /home/bearpi</code></pre>

<p>创建文件夹</p>

<pre>
<code>mkdir project &amp;&amp; cd project</code></pre>

<p>获取官方示例源码</p>

<pre>
<code>git clone https://gitee.com/bearpi/bearpi-h2821_pico.git</code></pre>

<p>&nbsp;</p>

<p align="center"> &nbsp;</p>

<p><span style="font-size:16px;">6. 编译代码</span></p>

<p>在MobaXterm中输入以下指令,进入源码根目录</p>

<pre>
<code>cd /home/bearpi/project/bearpi-h2821_pico/</code></pre>

<p>选择工程案例</p>

<pre>
<code>./build.py menuconfig</code></pre>

<p>选择Application</p>

<p align="center"> &nbsp;</p>

<p>选择所需测试的案例并按&ldquo;ESC&rdquo;退出</p>

<p>在MobaXterm中输入</p>

<pre>
<code>./build.py -c</code></pre>

<p>显示packet success!则表明编译成功</p>

<p align="center"> &nbsp;</p>

<p>于是,我们便可在下图所示的路径下看到最终编译的固件</p>

<p align="center"> &nbsp;</p>

<p><span style="font-size:16px;">7. 连接开发板</span></p>

<p>保证CH340驱动已经安装</p>

<p align="center"> &nbsp;</p>

<p><span style="font-size:16px;">8. 烧录镜像</span></p>

<p>打开BurnTool.exe(这个应用程序不知道为什么,每次运行都有概率直接消失,因此这个.exe应用程序最好做个备份,消失的时候重新复制进去,多试几次就打开了)</p>

<p align="center"> &nbsp;</p>

<p>设置波特率为750000</p>

<p align="center"> &nbsp;</p>

<p>选择烧录的文件</p>

<p align="center"> &nbsp;</p>

<p>勾选&ldquo;Auto burn&rdquo;和&ldquo;Auto disconnect&rdquo;,点击Connect,按击开发板复位按键,即可烧录程序</p>

<p align="center"> &nbsp;</p>

<p>下载完成后,再次按动开发板复位按键,使用串口工具,并设置波特率为115200,便能看到开发板输出的串口信息</p>

<p align="center"> &nbsp;</p>

<p><span style="font-size:18px;">创建一个Hello World工程</span></p>

<p>在application/samples下新建一个demo文件夹,并添加用户自定义代码demo.c、demo.h和空白CMakeLists.txt文件</p>

<p align="center"> &nbsp;</p>

<p align="center"> &nbsp;</p>

<p>在 CMkakeLists.txt 中为组件模板添加源码文件以及源码头文件路径</p>

<pre>
<code>    set(SOURCES_LIST
        ${CMAKE_CURRENT_SOURCE_DIR}/demo.c
    )
    set(PUBLIC_HEADER_LIST
        ${CMAKE_CURRENT_SOURCE_DIR}
    )
    set(SOURCES "${SOURCES_LIST}" PARENT_SCOPE)
    set(PUBLIC_HEADER "${PUBLIC_HEADER_LIST}" PARENT_SCOPE)</code></pre>

<p>其中</p>

<p>SOURCES_LIST用于添加.c文件,多个.c文件换行添加即可</p>

<p>PUBLIC_HEADER_LIST用于添加.h路径,多个路径换行添加即可</p>

<p>CMAKE_CURRENT_SOURCE_DIR表示当前CMakeLists.txt的路径</p>

<p>在demo.c中添加一个创建任务,并在任务中打印消息,app_run函数为应用程序的入口函数</p>

<pre>
<code>#include "common_def.h"
#include "osal_debug.h"
#include "cmsis_os2.h"
#include "app_init.h"

#define TASKS_TEST_TASK_STACK_SIZE    0x1000
#define TASKS_TEST_TASK_PRIO          (osPriority_t)(17)
#define TASKS_TEST_DURATION_MS      1000

static void *tasks_test_task(const char *arg)
{
    unused(arg);

    while (1) {
      osal_printk("Hello WorldBearPi\r\n");
      osDelay(TASKS_TEST_DURATION_MS);
    }

    return NULL;
}

static void tasks_test_entry(void)
{
    osThreadAttr_t attr;

    attr.name = "TasksTask";
    attr.attr_bits = 0U;
    attr.cb_mem = NULL;
    attr.cb_size = 0U;
    attr.stack_mem = NULL;
    attr.stack_size = TASKS_TEST_TASK_STACK_SIZE;
    attr.priority = TASKS_TEST_TASK_PRIO;

    if (osThreadNew((osThreadFunc_t)tasks_test_task, NULL, &amp;attr) == NULL) {
      /* Create task fail. */
    }
}

/* Run the tasks_test_entry. */
app_run(tasks_test_entry);
</code></pre>

<p>&nbsp;</p>

<p>将demo组件的内的顶层 CMakeLists 添加到其上一层 CMakeLists 下,使构建系统能够执行到 demo 组件的 CMake</p>

<p align="center"> &nbsp;</p>

<p>也可以通过CONFIG_ENABLE_MY_SAMPLE宏控制是否编译demo代码</p>

<p align="center"> &nbsp;</p>

<p>为了实现此功能,需要在samples/Kconfig中添加以下代码</p>

<pre>
<code>config ENABLE_MY_SAMPLE
    bool
    prompt "Enable the Sample of demo."
    default n
    depends on SAMPLE_ENABLE
    help
      This option means enable the sample of products.</code></pre>

<p>&nbsp;</p>

<p>在MobaXterm中输入./build.py menuconfig,进入Application,并选中Enable the Sample of demo并保存即可编译demo工程</p>

<p align="center"> &nbsp;</p>

<p style="text-align: justify;">烧录程序到开发板中,即可在串口调试助手中看到输出结果</p>

<p align="center"> &nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>
页: [1]
查看完整版本: 小熊派BearPi-Pico H2821星闪开发板测评(一)——开箱与环境搭建