导航

    全志在线开发者论坛

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

    oiouou123LV 5

    @oiouou123

    1008
    积分
    5
    声望
    9
    资料浏览
    19
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    oiouou123 取消关注 关注

    oiouou123 发布的最佳帖子

    • 回复: XR806开发板烧录报错

      @oiouou123 已经解决,忘了勾选硬件复位烧写模式模式了

      发布在 Wireless & Analog Series
      O
      oiouou123
    • 【XR806开发板试用】 PWM播放《铃儿响叮当》

      PWM播放<<铃儿响叮当>>

      参考
      OpenHarmony LYEVK-3861开发板播放《蜜雪冰城》
      OpenHarmony Neptune开发板PWM驱动 播放《小星星》
      收到XR806开发板了,之前在公众号看到有人用开发板播放蜜雪冰城,快到圣诞节了,今天试下播放<<铃儿响叮当>>。

      环境搭建

      1. WSL2 Ubuntu 20.04 LTS开发环境搭建

      感觉和正常的Ubuntu环境配置(220119发现链接失效,我从提交记录里找到了当时参考的那一篇)没啥区别,区别有以下几个

      a.在 安装必要的库和工具的时候把libc6-dev-amd64替换为libc6-dev就成,这个方法参考github上边wsl给的遇到E: Unable to locate package libc6-dev-amd64的解决方案

      b.我没装LLVM也可以烧录

      1. XR806开发板、无源蜂鸣器

      开发

      曲谱

      微信截图_20211224153024.png

      流程

      流程图.png

      代码编写

      cd device/xradio/xr806/ohosdemo
      mkdir beeperMusic
      

      目录如下

      .
      ├── BUILD.gn
      ├── beeperMusic
      │   ├── BUILD.gn
      │   └── src
      │       └── main.c
      ├── hello_demo
      ├── iot_peripheral
      └── wlan_demo
      
      

      源代码

      //main.c
      #include <stdio.h>
      #include <string.h>
      #include <unistd.h>
      #include "kernel/os/os.h"
      #include "iot_pwm.h"
      #include "ohos_init.h"
      
      static OS_Thread_t g_main_thread;
      // 音符对应的频率
      static const uint16_t g_tuneFreqs[] = {523,587,659,698,784,880,988};
      
      // 曲谱音符
      static const uint8_t g_scoreNotes[] = {
        3,3,3, 3,3,3, 3,5,1,2, 3, 4,4,4, 4,4,3,3,
        3,2,2,1, 2,5,
        3,3,3, 3,3,3, 3,5,1,2, 3, 4,4,4, 4,4,3,3,
        5,5,4,2, 1,
      };
      
      // 曲谱时值
      static const uint8_t g_scoreDurations[] = {
        4,4,8, 4,4,8, 4,4,4,4, 16, 4,4,4, 4,4,4,8,
        4,4,4,4, 8,8,
        4,4,8, 4,4,8, 4,4,4,4, 16, 4,4,4, 4,4,4,8,
        4,4,4,4, 16,
      };
      
      
      static void BeeperMusicTask(const char *arg)
      {
          (void)arg;
          printf("BeeperMusicTask start!\r\n");
          IoTPwmInit(0);
          unsigned int pwm_duty_ratio = 30;
          for (size_t i = 0; i < sizeof(g_scoreNotes)/sizeof(g_scoreNotes[0]); i++) {
              unsigned int pwm_delay_cnt = 0;
              uint32_t tune = g_scoreNotes[i]; // 音符
              uint16_t freqDivisor = g_tuneFreqs[tune];
              uint32_t tuneInterval = g_scoreDurations[i] * 10; // 音符时间
              printf("%d %d %d %d\r\n", tune,freqDivisor, pwm_duty_ratio,tuneInterval);
              IoTPwmStart(0,30,freqDivisor);
              OS_MSleep(tuneInterval*5);
              IoTPwmStop(0);
          }
          IoTPwmDeinit(0);
      }
      
      void MusicTestMain(void)
      {
      	printf("Music Test Start\n");  
      	if (OS_ThreadCreate(&g_main_thread, "MainThread", BeeperMusicTask, NULL,
      			    OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK) {
      		printf("[ERR] Create MainThread Failed\n");
      	}
      }
      
      SYS_RUN(MusicTestMain);
      

      beeperMusic目录的BUILD.gn

      import("//device/xradio/xr806/liteos_m/config.gni")
      
      static_library("app_music") {
         configs = []
      
         sources = [
            "src/main.c",
         ]
      
         cflags = board_cflags
      
         include_dirs = board_include_dirs
         include_dirs += [
            "//kernel/liteos_m/kernel/arch/include",
            "include",
            "//base/iot_hardware/peripheral/interfaces/kits",
         ]
      }
      

      主目录BUILD.gn

      group("ohosdemo") {
          deps = [
              #"hello_demo:app_hello",
              #"iot_peripheral:app_peripheral",
              #"wlan_demo:app_WlanTest",
              "beeperMusic:app_music"
          ]
      }
      

      效果

      B站视频链接

      发布在 Wireless & Analog Series
      O
      oiouou123
    • 直接拷贝官网点灯代码出错error: unknown type name '\U0000200b' 及解决方案

      拷贝点灯 hb build -f 遇到了如下报错

      ../../../device/xradio/xr806/ohosdemo/LED/main.c:17:1: error: unknown type name '\U0000200b'
         17 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 1);                                      //(5)输出高电平
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:8:22: error: expected declaration specifiers or '...' before numeric constant
          8 | #define GPIO_ID_PA21 21
            |                      ^~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:17:28: note: in expansion of macro 'GPIO_ID_PA21'
         17 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 1);                                      //(5)输出高电平
            |                         ^~~~~~~~~~~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:17:42: error: expected declaration specifiers or '...' before numeric constant
         17 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 1);                                      //(5)输出高电平
            |                                       ^
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:18:1: error: unknown type name '\U0000200b'
         18 | ​    OS_MSleep(500);
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:18:18: error: expected declaration specifiers or '...' before numeric constant
         18 | ​    OS_MSleep(500);
            |               ^~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:19:1: error: unknown type name '\U0000200b'
         19 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 0);                                      //(6)输出高电平
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:8:22: error: expected declaration specifiers or '...' before numeric constant
          8 | #define GPIO_ID_PA21 21
            |                      ^~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:19:28: note: in expansion of macro 'GPIO_ID_PA21'
         19 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 0);                                      //(6)输出高电平
            |                         ^~~~~~~~~~~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:19:42: error: expected declaration specifiers or '...' before numeric constant
         19 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 0);                                      //(6)输出高电平
            |                                       ^
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:20:1: error: unknown type name '\U0000200b'
         20 | ​    OS_MSleep(500);
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:20:18: error: expected declaration specifiers or '...' before numeric constant
         20 | ​    OS_MSleep(500);
            |               ^~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c: In function 'LEDMain':
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:28:1: error: '\U0000200b' undeclared (first use in this function)
         28 | ​        OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK) {
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:28:1: note: each undeclared identifier is reported only once for each function it appears in
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:28:4: error: expected ')' before 'OS_PRIORITY_NORMAL'
         28 | ​        OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK) {
            | ^
            | )
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:27:7: error: too few arguments to function 'OS_ThreadCreate'
         27 |   if (OS_ThreadCreate(&g_main_thread, "MainThread", MainThread, NULL,
            |       ^~~~~~~~~~~~~~~
      In file included from ../../../device/xradio/xr806/xr_skylark/include/kernel/os/os.h:34,
                       from ../../../device/xradio/xr806/ohosdemo/LED/main.c:3:
      ../../../device/xradio/xr806/xr_skylark/include/kernel/os/os_thread.h:92:11: note: declared here
         92 | OS_Status OS_ThreadCreate(OS_Thread_t *thread, const char *name,
            |           ^~~~~~~~~~~~~~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:29:4: error: expected ';' before 'printf'
         29 | ​    printf("[ERR] Create MainThread Failed\n");
            | ^   ~~~~~~
            | ;
      [101/252] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.time.o
      

      尝试了下把17行前边的字符全删了,重新编译不报错了
      如法炮制把其他出错行搞了下,成功编译
      感觉是官网代码拷贝的时候混入了奇怪的字符,特发帖提醒下各位(吐槽下)

      发布在 Wireless & Analog Series
      O
      oiouou123
    • XR806helloworld使用问题

      参考XR806OpenHarmony的Hello world,烧录之后没有输出hello world,只有一些平台信息,能打开console,怎么正确输出hello world呢?屏幕截图 2023-08-20 205643.png

      发布在 Wireless & Analog Series
      O
      oiouou123

    oiouou123 发布的最新帖子

    • 回复: XR806开发板烧录报错

      @oiouou123 已经解决,忘了勾选硬件复位烧写模式模式了

      发布在 Wireless & Analog Series
      O
      oiouou123
    • XR806开发板烧录报错

      1.png
      synchron error 怎么解决呢?

      发布在 Wireless & Analog Series
      O
      oiouou123
    • 回复: XR806helloworld使用问题

      @wordiansom 还没有试过呢

      发布在 Wireless & Analog Series
      O
      oiouou123
    • XR806helloworld使用问题

      参考XR806OpenHarmony的Hello world,烧录之后没有输出hello world,只有一些平台信息,能打开console,怎么正确输出hello world呢?屏幕截图 2023-08-20 205643.png

      发布在 Wireless & Analog Series
      O
      oiouou123
    • 回复: XR806系统选择问题咨询(2023年8月)

      @xiaowenge 明白了,谢谢!

      发布在 Wireless & Analog Series
      O
      oiouou123
    • XR806系统选择问题咨询(2023年8月)

      很长时间没有用这块板子了,最近又需要用起来。想咨询下大家这么几个问题:

      1. FreeRTOS需要在全志客户服务平台下载,我属于学生开发者没发完成资质认证怎么办?
      2. 21年左右接触过XR806的鸿蒙开发,今天在查看开发者论坛的时候看到了XR806 SDK的相关内容,这个SDK和鸿蒙和FreeRTOS的关系是什么呢?
      发布在 Wireless & Analog Series
      O
      oiouou123
    • 回复: 直接拷贝官网点灯代码出错error: unknown type name '\U0000200b' 及解决方案

      @pwb555 我试试,谢谢!

      发布在 Wireless & Analog Series
      O
      oiouou123
    • 直接拷贝官网点灯代码出错error: unknown type name '\U0000200b' 及解决方案

      拷贝点灯 hb build -f 遇到了如下报错

      ../../../device/xradio/xr806/ohosdemo/LED/main.c:17:1: error: unknown type name '\U0000200b'
         17 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 1);                                      //(5)输出高电平
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:8:22: error: expected declaration specifiers or '...' before numeric constant
          8 | #define GPIO_ID_PA21 21
            |                      ^~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:17:28: note: in expansion of macro 'GPIO_ID_PA21'
         17 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 1);                                      //(5)输出高电平
            |                         ^~~~~~~~~~~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:17:42: error: expected declaration specifiers or '...' before numeric constant
         17 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 1);                                      //(5)输出高电平
            |                                       ^
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:18:1: error: unknown type name '\U0000200b'
         18 | ​    OS_MSleep(500);
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:18:18: error: expected declaration specifiers or '...' before numeric constant
         18 | ​    OS_MSleep(500);
            |               ^~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:19:1: error: unknown type name '\U0000200b'
         19 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 0);                                      //(6)输出高电平
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:8:22: error: expected declaration specifiers or '...' before numeric constant
          8 | #define GPIO_ID_PA21 21
            |                      ^~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:19:28: note: in expansion of macro 'GPIO_ID_PA21'
         19 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 0);                                      //(6)输出高电平
            |                         ^~~~~~~~~~~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:19:42: error: expected declaration specifiers or '...' before numeric constant
         19 | ​    IoTGpioSetOutputVal(GPIO_ID_PA21, 0);                                      //(6)输出高电平
            |                                       ^
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:20:1: error: unknown type name '\U0000200b'
         20 | ​    OS_MSleep(500);
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:20:18: error: expected declaration specifiers or '...' before numeric constant
         20 | ​    OS_MSleep(500);
            |               ^~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c: In function 'LEDMain':
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:28:1: error: '\U0000200b' undeclared (first use in this function)
         28 | ​        OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK) {
            |  
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:28:1: note: each undeclared identifier is reported only once for each function it appears in
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:28:4: error: expected ')' before 'OS_PRIORITY_NORMAL'
         28 | ​        OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK) {
            | ^
            | )
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:27:7: error: too few arguments to function 'OS_ThreadCreate'
         27 |   if (OS_ThreadCreate(&g_main_thread, "MainThread", MainThread, NULL,
            |       ^~~~~~~~~~~~~~~
      In file included from ../../../device/xradio/xr806/xr_skylark/include/kernel/os/os.h:34,
                       from ../../../device/xradio/xr806/ohosdemo/LED/main.c:3:
      ../../../device/xradio/xr806/xr_skylark/include/kernel/os/os_thread.h:92:11: note: declared here
         92 | OS_Status OS_ThreadCreate(OS_Thread_t *thread, const char *name,
            |           ^~~~~~~~~~~~~~~
      ../../../device/xradio/xr806/ohosdemo/LED/main.c:29:4: error: expected ';' before 'printf'
         29 | ​    printf("[ERR] Create MainThread Failed\n");
            | ^   ~~~~~~
            | ;
      [101/252] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.time.o
      

      尝试了下把17行前边的字符全删了,重新编译不报错了
      如法炮制把其他出错行搞了下,成功编译
      感觉是官网代码拷贝的时候混入了奇怪的字符,特发帖提醒下各位(吐槽下)

      发布在 Wireless & Analog Series
      O
      oiouou123
    • 回复: 运行hello_word遇到GLIBC_2.29 not defined in file libc.so.6改怎么办

      @yuzukitsuru 谢谢大佬,直接装D1源码,用/tina-d1-h/prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin底下的./riscv64-unknown-linux-gnu-gcc编译,可以看到结果😉

      root@TinaLinux:/# ./hello
      Hello NeZha
      
      发布在 MR Series
      O
      oiouou123
    • 回复: 运行hello_word遇到GLIBC_2.29 not defined in file libc.so.6改怎么办

      @yuzukitsuru 大佬,我看了一眼发现版本不一样,我找找源码里的,感谢!

      Using built-in specs.
      COLLECT_GCC=./riscv64-unknown-linux-gnu-gcc
      COLLECT_LTO_WRAPPER=/mnt/f/riscv/bin/../libexec/gcc/riscv64-unknown-linux-gnu/10.2.0/lto-wrapper
      Target: riscv64-unknown-linux-gnu
      Configured with: /ldhome/software/toolsbuild/slave2/workspace/Toolchain/release-riscv-0/build/../source/riscv/riscv-gcc/configure --target=riscv64-unknown-linux-gnu --with-gmp=/ldhome/software/toolsbuild/slave2/workspace/Toolchain/release-riscv-0/lib-for-gcc-x86_64-linux/ --with-mpfr=/ldhome/software/toolsbuild/slave2/workspace/Toolchain/release-riscv-0/lib-for-gcc-x86_64-linux/ --with-mpc=/ldhome/software/toolsbuild/slave2/workspace/Toolchain/release-riscv-0/lib-for-gcc-x86_64-linux/ --with-libexpat-prefix=/ldhome/software/toolsbuild/slave2/workspace/Toolchain/release-riscv-0/lib-for-gcc-x86_64-linux/ --with-pkgversion='T-HEAD RISCV Tools V2.0.0.10 B20210329' --prefix=/ldhome/software/toolsbuild/slave2/workspace/Toolchain/release-riscv-0/install --with-sysroot=/ldhome/software/toolsbuild/slave2/workspace/Toolchain/release-riscv-0/install/sysroot --with-system-zlib --enable-shared --enable-tls --enable-languages=c,c++,fortran --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libsanitizer --disable-nls --disable-bootstrap --src=../../source/riscv/riscv-gcc --enable-multilib --with-abi=lp64d --with-arch=rv64gcxthead 'CFLAGS_FOR_TARGET=-O2   -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-O2   -mcmodel=medany'
      Thread model: posix
      Supported LTO compression algorithms: zlib
      gcc version 10.2.0 (T-HEAD RISCV Tools V2.0.0.10 B20210329) 
      
      发布在 MR Series
      O
      oiouou123