导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. EPT_electronic
    E
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 1245
    • 主题 3
    • 帖子 4
    • 最佳 1
    • 群组 0

    EPT_electronicLV 5

    @EPT_electronic

    1245
    积分
    2
    声望
    2
    资料浏览
    4
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    EPT_electronic 取消关注 关注

    EPT_electronic 发布的最佳帖子

    • 【XR806开发板试用】开发环境搭建、Hello工程以及开发事项

      XR806开发板试用

      很有幸能获得本次技术社区和全志组织的XR806开发板试用活动。之前开发的嵌入式应用都是在Windows平台上进行的,对于Linux下的开发并不熟悉,在社区里看到群友使用官方提供的docker环境进行开发,顺着群友的指导,找到了以下的帖子:
      https://aijishu.com/a/1060000000322138
      结合帖子中的内容,使用docker中配置好的开发环境入门XR806开发板的使用。

      1.1 开发环境搭建

      我使用的win10,在win10使用docker进行开发,入门的教程可以参考微软官方提供的docker开发教程;
      这里进行简要的说明,首先安装wsl2,具体的教程可以参考微软的官方文档。在“打开或关闭Windows功能”中确定勾选了“Hyper-V”功能。
      f2ef82d3-cf58-49f4-9040-67b629928a5b-image.png
      如过没有勾选,勾选后win10会自动更新该功能,重新启动系统后生效。在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。
      通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查每个发行版的 WSL 版本:wsl -l -v。官方推荐使用wsl2,不过使用wsl –install默认安装的便是wsl2。
      接下来参考微软的官方手册安装Docker Desktop for Windows,首先下载Docker Desktop,安装过程使用默认配置即可。安装后,启动Docker Desktop,然然后从任务栏的隐藏图标菜单中选择 Docker 图标。 右键单击该图标以显示 Docker 命令菜单,然后选择“设置”。
      d8ef19ff-c844-40f7-9871-a8107272e195-image.png
      05ef4aa1-a27d-42a5-befe-402c026cc21c-image.png
      确保在“设置”>“常规”中选中“使用基于 WSL 2 的引擎”。
      1f41ef88-86c4-416d-8557-f2958c7b537a-image.png
      完成上述步骤后,可以在Windows PowerShell中运行以下指令在本地创建一个集成了FreeRTOS的XR806开发环境的容器:

      docker run -it verdureorange/ubuntu_xr806:v2 /bin/bash
      

      fe4426eb-a724-439a-910b-90d777d07b0d-image.png
      该环境中没有集成vim,可以通过以下指令安装vim

      apt install vim
      

      当退出容器开发环境后,重新进入时,使用docker start和dcoker attach指令,指令的参数中需要指定容器的ID,查看容器的ID使用docker ps指令。具体的操作如下图所示
      f0cf17d7-a34b-4ee6-adea-79587dda8a3a-image.png

      到这一步,使用docker开发XR806的开发环境就搭建完毕了。

      1.2 hello_demo编译和烧写

      在xr806_sdk的project中有很多官方提供的demo程序,可供用户学习如何开发。在命令行中输入下列指令进入到SDK的顶层文件夹。

      cd /root/xr806_sdk
      

      执行下列指令,打卡工程配置界面,根据工程的需要开启相应的功能模块

      make menuconfig
      

      0e6cc01d-d304-45f7-bf8a-e413b3a11bb1-image.png
      修改完成后,保存并退出。
      5db1f2f4-064e-45ab-b97f-4f760ce1d43b-image.png

      在命令行中输入下列指令进入hello_demo的gcc文件夹,并执行make指令,完成工程的编译。编译完成后,使用make image指令生成镜像文件,用于固件的烧录。
      f2d97115-6224-4f24-be23-b3c1076f55a6-image.png

      生成的镜像文件可以在xr806_sdk/out中找到,名称为xr_system.img。使用Docker Desktop查看Container中的文件可以将其中的镜像文件存储到win10的文件夹中。
      6bd66abb-6fda-4f49-99ee-49077ebf6fb2-image.png
      9cdb99c7-7b16-4e10-9338-c06d274ba5b0-image.png
      fa3d6deb-422b-4774-a8fb-1a29ea875d56-image.png

      复制到win10的文件夹中后,使用xr806_sdk文件夹下的tool中的phoenixMC.exe将程序固件烧录到芯片当中。选择复制出来的xr_system.img。点击“升级固件”将固件烧录到芯片中。
      ca9daa92-179d-4268-a425-cededeaf3fc3-image.png
      使用串口调试助手连接到开发板,使用复位按键复位芯片后,可以在串口调试助手输出窗口中看到以下的输出信息。
      cea8eb0f-6445-4beb-8c35-b2e13ea62efc-image.png

      1.3 总结

      第一次使用docker环境开发嵌入式应用,在有社区大佬的帮助下,开发过程还是很顺利的,初步学会了如何使用docker编译和生成固件,以及将固件复制到win10中,使用全志提供的固件升级工具完成固件的烧写。

      发布在 Wireless & Analog Series
      E
      EPT_electronic

    EPT_electronic 发布的最新帖子

    • 【XR806开发板使用】ST7789LCD屏幕测试

      本次使用XR806实现ST7789的屏幕的驱动。

      硬件连接

      本文使用的LCD屏幕的原理图如下,可以确定LCD屏幕的控制引脚接线。

      582a54ab-e6f5-4a1e-846c-f75d88fb3579-LCD引脚图.png

      XR806与LCD屏幕的控制引脚分布如下

      LCD引脚 XR806引脚
      SDA PB4
      CS PB6
      RST PB5
      SCL PB7
      DC PB3

      实际的连接效果如图所示。

      e2898b9d-0b7d-40d3-8c04-7fd9db48347c-XR806与LCD的连接.jpg

      驱动编写

      ST7789的驱动使用中景园的LCD驱动库,驱动文件包括

      • lcd.c
      • lcd.h
      • lcd_init.c
      • lcd_init.h
      • lcd_font.h

      在XR806的示例程序中GPIO工程的基础上进行移植。在gpio示例文件夹中添加lcd的驱动代码。

      8741b127-cf98-4e60-8a03-8c6ce09cace9-lcd工程添加问价.png

      移植时要实现对LCD引脚的控制,在lcd_init.h中添加以下代码

      #include "driver/chip/hal_gpio.h"
      #include "kernel/os/os.h"
      
      #define LCD_SCLK_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_7, GPIO_PIN_LOW)
      #define LCD_SCLK_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_7, GPIO_PIN_HIGH)
      
      #define LCD_MOSI_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_4, GPIO_PIN_LOW)
      #define LCD_MOSI_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_4, GPIO_PIN_HIGH)
      
      #define LCD_RES_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_5, GPIO_PIN_LOW)
      #define LCD_RES_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_5, GPIO_PIN_HIGH)
      
      #define LCD_DC_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_3, GPIO_PIN_LOW)
      #define LCD_DC_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_3, GPIO_PIN_HIGH)
      
      #define LCD_CS_Clr() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_6, GPIO_PIN_LOW)
      #define LCD_CS_Set() HAL_GPIO_WritePin(GPIO_PORT_B, GPIO_PIN_6, GPIO_PIN_HIGH)
      //硬件上没有给出控制接口,这里不做定义
      #define LCD_BLK_Clr()
      #define LCD_BLK_Set()
      
      

      在lcd_init.c中添加引脚的初始化函数,并替换延时函数为OS_MSleep,相关的带啊吗如下

      #include "lcd_init.h"
      
      void LCD_GPIO_Init(void)
      {
      	GPIO_InitParam param;
      	param.driving = GPIO_DRIVING_LEVEL_1;
      	param.mode = GPIOx_Pn_F1_OUTPUT;
      	param.pull = GPIO_PULL_NONE;
      	HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_3, &param);
      	HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_4, &param);
      	HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_5, &param);
      	HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_6, &param);
      	HAL_GPIO_Init(GPIO_PORT_B, GPIO_PIN_7, &param);
      }
      
      void LCD_Init(void)
      {
      	LCD_GPIO_Init();
      
      	LCD_RES_Clr(); 
      	OS_MSleep(100);//替换延时函数
      	LCD_RES_Set();
      	OS_MSleep(100);
          
          //以下代码忽略
      }
      

      在main.c中添加以下代码

      #include <stdio.h>
      #include "kernel/os/os.h"
      #include "driver/chip/hal_gpio.h"
      #include "lcd.h"
      
      int main(void)
      {
      
      	LCD_Init();
      
      	OS_MSleep(100);
      
      	LCD_Fill(0, 0, LCD_W, LCD_H, RED);
      	// LCD_ShowString(4, 0, "XR806 LCD Test", RED, CYAN, 16, 0);
      	LCD_DrawRectangle(0, 0, LCD_W - 1, LCD_H - 1, MAGENTA);
      	LCD_DrawRectangle(1, 1, LCD_W - 2, LCD_H - 2, MAGENTA);
      	while (1)
      	{
      		OS_MSleep(1000);
      		LCD_Fill(0, 0, LCD_W, LCD_H, BLUE);
      		OS_MSleep(1000);
      		LCD_Fill(0, 0, LCD_W, LCD_H, GREEN);
      		OS_MSleep(1000);
      		LCD_Fill(0, 0, LCD_W, LCD_H, YELLOW);
      		OS_MSleep(1000);
      		LCD_Fill(0, 0, LCD_W, LCD_H, LIGHTGREEN);
      		printf("XR806 LCD Test\n");
      	}
      
      	return 0;
      }
      

      编译下载后,可以看到屏幕的颜色切换以及串口的数据输出
      3f5dfa91-047b-4e30-bf4b-7cc3916e1c13-lcd_test数据打印.png

      76ece751-4e81-486a-9aa9-a6c110e42eba-LCD颜色刷新.jpg

      总结

      十分感谢极术社区和全志提供的测评机会,接触到了docker环境开发嵌入式程序的方式。

      问题

      在使用串口下载时遇到了以下问题,目前没有找到解决方法。
      a2f848da-13db-438e-9fdb-522f1f938b96-串口下载错误.png

      发布在 Wireless & Analog Series
      E
      EPT_electronic
    • 【XR806开发板试用】开发环境搭建、Hello工程以及开发事项

      XR806开发板试用

      很有幸能获得本次技术社区和全志组织的XR806开发板试用活动。之前开发的嵌入式应用都是在Windows平台上进行的,对于Linux下的开发并不熟悉,在社区里看到群友使用官方提供的docker环境进行开发,顺着群友的指导,找到了以下的帖子:
      https://aijishu.com/a/1060000000322138
      结合帖子中的内容,使用docker中配置好的开发环境入门XR806开发板的使用。

      1.1 开发环境搭建

      我使用的win10,在win10使用docker进行开发,入门的教程可以参考微软官方提供的docker开发教程;
      这里进行简要的说明,首先安装wsl2,具体的教程可以参考微软的官方文档。在“打开或关闭Windows功能”中确定勾选了“Hyper-V”功能。
      f2ef82d3-cf58-49f4-9040-67b629928a5b-image.png
      如过没有勾选,勾选后win10会自动更新该功能,重新启动系统后生效。在管理员模式下打开 PowerShell 或 Windows 命令提示符,方法是右键单击并选择“以管理员身份运行”,输入 wsl --install 命令,然后重启计算机。
      通过在 PowerShell 或 Windows 命令提示符中输入以下命令来检查每个发行版的 WSL 版本:wsl -l -v。官方推荐使用wsl2,不过使用wsl –install默认安装的便是wsl2。
      接下来参考微软的官方手册安装Docker Desktop for Windows,首先下载Docker Desktop,安装过程使用默认配置即可。安装后,启动Docker Desktop,然然后从任务栏的隐藏图标菜单中选择 Docker 图标。 右键单击该图标以显示 Docker 命令菜单,然后选择“设置”。
      d8ef19ff-c844-40f7-9871-a8107272e195-image.png
      05ef4aa1-a27d-42a5-befe-402c026cc21c-image.png
      确保在“设置”>“常规”中选中“使用基于 WSL 2 的引擎”。
      1f41ef88-86c4-416d-8557-f2958c7b537a-image.png
      完成上述步骤后,可以在Windows PowerShell中运行以下指令在本地创建一个集成了FreeRTOS的XR806开发环境的容器:

      docker run -it verdureorange/ubuntu_xr806:v2 /bin/bash
      

      fe4426eb-a724-439a-910b-90d777d07b0d-image.png
      该环境中没有集成vim,可以通过以下指令安装vim

      apt install vim
      

      当退出容器开发环境后,重新进入时,使用docker start和dcoker attach指令,指令的参数中需要指定容器的ID,查看容器的ID使用docker ps指令。具体的操作如下图所示
      f0cf17d7-a34b-4ee6-adea-79587dda8a3a-image.png

      到这一步,使用docker开发XR806的开发环境就搭建完毕了。

      1.2 hello_demo编译和烧写

      在xr806_sdk的project中有很多官方提供的demo程序,可供用户学习如何开发。在命令行中输入下列指令进入到SDK的顶层文件夹。

      cd /root/xr806_sdk
      

      执行下列指令,打卡工程配置界面,根据工程的需要开启相应的功能模块

      make menuconfig
      

      0e6cc01d-d304-45f7-bf8a-e413b3a11bb1-image.png
      修改完成后,保存并退出。
      5db1f2f4-064e-45ab-b97f-4f760ce1d43b-image.png

      在命令行中输入下列指令进入hello_demo的gcc文件夹,并执行make指令,完成工程的编译。编译完成后,使用make image指令生成镜像文件,用于固件的烧录。
      f2d97115-6224-4f24-be23-b3c1076f55a6-image.png

      生成的镜像文件可以在xr806_sdk/out中找到,名称为xr_system.img。使用Docker Desktop查看Container中的文件可以将其中的镜像文件存储到win10的文件夹中。
      6bd66abb-6fda-4f49-99ee-49077ebf6fb2-image.png
      9cdb99c7-7b16-4e10-9338-c06d274ba5b0-image.png
      fa3d6deb-422b-4774-a8fb-1a29ea875d56-image.png

      复制到win10的文件夹中后,使用xr806_sdk文件夹下的tool中的phoenixMC.exe将程序固件烧录到芯片当中。选择复制出来的xr_system.img。点击“升级固件”将固件烧录到芯片中。
      ca9daa92-179d-4268-a425-cededeaf3fc3-image.png
      使用串口调试助手连接到开发板,使用复位按键复位芯片后,可以在串口调试助手输出窗口中看到以下的输出信息。
      cea8eb0f-6445-4beb-8c35-b2e13ea62efc-image.png

      1.3 总结

      第一次使用docker环境开发嵌入式应用,在有社区大佬的帮助下,开发过程还是很顺利的,初步学会了如何使用docker编译和生成固件,以及将固件复制到win10中,使用全志提供的固件升级工具完成固件的烧写。

      发布在 Wireless & Analog Series
      E
      EPT_electronic
    • 回复: 寻求RT-Thread和全志合作的纪念版开发板硬件资料

      @xiaowenge 谢谢

      发布在 MR Series
      E
      EPT_electronic
    • 寻求RT-Thread和全志合作的纪念版开发板硬件资料

      这是我拿到的RT-Thread和全志合作的纪念版开发板,图中的获取资料的链接不能用,全志官方能发个资料吗?
      e85ceaee-48a8-4912-bcde-89658c7acfa5-3e927630c95d7769bb287cbd7760a27.jpg

      发布在 MR Series
      E
      EPT_electronic