发 帖  
[玄铁开发板]

【平头哥Sipeed LicheeRV 86开发板试用】深度体验点亮LED 网络配置 音视功能 Debian镜像等功能

2022-3-9 21:53:32  4111
  •   Subdevices: 1/1
  •   Subdevice 0: subdevice 0
  • card 1: snddmic [snddmic], device 0: 2031000.dmic-dmic-hifi dmic-hifi-0 []
  •   Subdevices: 1/1
  •   Subdevice 0: subdevice 0
  • card 2: sndhdmi [sndhdmi], device 0: 2034000.daudio-audiohdmi-dai 20340a4.hdmiaudio-0 []
  • ....
  • 复制代码




    录音命令



    1. arecord -D hw:1,0 -f S16_LE -t wav -d 10 test_record.wav
    复制代码



    复制代码
    注:
    -D hw:1,0 录音设备
    -f S16_LE 16位数据格式
    -t wav 保存为wav 格式
    -d 10 录音时长10s
    test_record.wav 保存录音文件名



    播放录音:


    1. aplay -D hw:0,0 test_record.wav
    复制代码





    用alsamixer 进行音量调整

    输入alsamixer命令


    屏显触摸体验
    LicheeRV系列支持以下显示屏:
    SPI屏                1.14寸屏(TODO)RGB屏                4.3寸 480x272;5.0寸 800x480;RGB+SPI屏        4.0寸 480x480(st7701s); 4.0寸 720x720(nv3052c)MIPI屏                8.0寸 1280x720(ILI9881C)Tina下可以通过以下指令测试屏幕显示:fbviewer sun.jpg如果需要调试屏幕驱动,可以使用以下指令查看屏幕驱动信息:

    1. cat /sys/class/disp/disp/attr/sys
    2. screen 0:
    3. de_rate 300000000 hz, ref_fps:60
    4. mgr0: 480x480 fmt[rgb] cs[0x204] range[full] eotf[0x4] bits[8bits] err[0] force_sync[0] unblank direct_show[false] iommu[1]
    5. dmabuf: cache[0] cache max[0] umap skip[0] overflow[0]
    6.         lcd output        backlight( 50)        fps:59.5        esd level(0)        freq(60)        pos(0)        reset(0)         480x 480
    7.         err:0        skip:184        irq:230715        vsync:0        vsync_skip:0
    8.    BUF    enable ch[1] lyr[0] z[16] prem[N] a[globl 255] fmt[  0] fb[ 480, 480; 480, 480; 480, 480] crop[   0,   0, 480, 480] frame[   0,   0, 480, 480] addr[ffe00000,
    复制代码


    屏幕彩条测试:

    1. echo 1 > /sys/class/disp/disp/attr/colorbar
    复制代码




    使用 ts_test进行触摸测试

    1. root@MaixLinux:/tmp# ts_test
    2. 1646669267.385607:    479    375      0
    3. 1646669267.524434:    479    255      0
    4. 1646669267.559036:    479    255      0
    5. 1646669267.582170:    447    346      0
    6. 1646669267.593557:    447    346      0
    7. 1646669267.616763:    470    277      0
    8. 1646669267.628289:    468    283      0
    9. ...
    复制代码






    (注意触摸驱动有瑕疵,ts_test测试时松开后,光标会不动,但是终端仍会正常打印信息)


    视频播放体验
    最终我们可以尝试在LicheeRV上播放BadApple啦~Tina镜像中内置了ffmpeg软件包,ffmpeg是强大的多媒体库,可以用于录屏或者播放录屏指令:ffmpeg -f fbdev -framerate 10 -i /dev/fb0 record.avi
    播放录频:

    1. ffmpeg -i record.avi  -pix_fmt bgra -f fbdev /dev/fb0
    复制代码



    播放指令(分别是扬声器播放音频和hdmi播放音频):

    1. ffmpeg -i DreamItPossible.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:0,0  

    2. ffmpeg -i DreamItPossible.mp4 -pix_fmt bgra -f fbdev /dev/fb0 -f alsa hw:2,0
    复制代码

      
    这里由于是CPU软解,分辨率超400*400会变卡





    Debian镜像体验
    烧录LicheeRV_Debian_86_480p 为 480p的86盒板卡的debian镜像烧录完成后,插卡启动,稍等2分钟左右,屏幕上就会显示登录界面
    输入用户名 sipeed,密码 licheepi,即可进入桌面 (使用USB HOST口外接键鼠输入,此操作相当不爽,我还是喜欢ssh)进入桌面后可以进行一些基础操作
    连接Debian,默认是有线网络
    无线网络开不起来,不知道 为什么,有知道的大神告诉一声:

    1. sipeed@sipeed:~[        DISCUZ_CODE_2747        ]nbsp;ifconfig
    2. eth0: flags=-28605  mtu 1500
    3.         inet 192.168.0.74  netmask 255.255.255.0  broadcast 192.168.0.255
    4.         inet6 fe80::476:eeff:fe10:2e4e  prefixlen 64  scopeid 0x20
    5.         ether 06:76:ee:10:2e:4e  txqueuelen 1000  (Ethernet)
    6.         RX packets 1189  bytes 113529 (110.8 KiB)
    7.         RX errors 0  dropped 0  overruns 0  frame 0
    8.         TX packets 1159  bytes 120178 (117.3 KiB)
    9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    10.         device interrupt 62

    11. lo: flags=73  mtu 65536
    12.         inet 127.0.0.1  netmask 255.0.0.0
    13.         inet6 ::1  prefixlen 128  scopeid 0x10
    14.         loop  txqueuelen 1000  (Local Loopback)
    15.         RX packets 8  bytes 400 (400.0 B)
    16.         RX errors 0  dropped 0  overruns 0  frame 0
    17.         TX packets 8  bytes 400 (400.0 B)
    18.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

    19. sipeed@sipeed:~[        DISCUZ_CODE_2747        ]nbsp;sudo ifconfig wlan0 up
    20. SIOCSIFFLAGS: Operation not possible due to RF-kill
    复制代码




    可以使用apt安装程序,可惜没有RISV的源,愿以后会有吧


    1. sipeed@sipeed:~[        DISCUZ_CODE_2748        ]nbsp;sudo apt install wget

    2. Reading package lists... Done
    3. Building dependency tree... Done
    4. Reading state information... Done
    5. Package wget is not available, but is referred to by another package.
    6. This may mean that the package is missing, has been obsoleted, or
    7. is only available from another source

    8. E: Package 'wget' has no installation candidate
    复制代码




    接下来让我们尝试在Debian下跑一下Hello World:

    编译运行:


    1. sipeed@sipeed:~[        DISCUZ_CODE_2749        ]nbsp;gcc -o hello hello.c

    2. sipeed@sipeed:~[        DISCUZ_CODE_2749        ]nbsp;./hello
    3. Hello RISc-V Licheepi RV 86!!!!!!

    4. sipeed@sipeed:~$
    复制代码



    本来想就这样开发的,不用PC交叉编译的,但大项目多线程编译不过, 有知道 大神告诉一声谢谢

    1. sipeed@sipeed:~/c_code/tinyhttpd[        DISCUZ_CODE_2750        ]nbsp;make

    2. gcc -W -Wall  -lpthread -o httpd httpd.c
    3. httpd.c:
    4. In function ‘startup’:
    5. httpd.c:450:52: warning: pointer targets in passing argument 3 of ‘getsockname’ differ in signedness [-Wpointer-sign]
    6.   450 |   if (getsockname(httpd, (struct sockaddr *)&name, &namelen) == -1)
    7.       |                                                    ^~~~~~~~
    8.       |                                                    |
    9.       |                                                    int *
    10. In file included from httpd.c:16:
    11. /usr/include/riscv64-linux-gnu/sys/socket.h:117:26: note: expected ‘socklen_t * restrict’ {aka ‘unsigned int * restrict’} but argument is of type ‘int *’
    12.   117 |    socklen_t *__restrict __len) __THROW;
    13.       |    ~~~~~~~~~~~~~~~~~~~~~~^~~~~
    14. httpd.c: In function ‘main’:
    15. httpd.c:504:24: warning: pointer targets in passing argument 3 of ‘accept’ differ in signedness [-Wpointer-sign]
    16.   504 |                        &client_name_len);
    17.       |                        ^~~~~~~~~~~~~~~~
    18.       |                        |
    19.       |                        int *
    20. In file included from httpd.c:16:
    21. /usr/include/riscv64-linux-gnu/sys/socket.h:233:28: note: expected ‘socklen_t * restrict’ {aka ‘unsigned int * restrict’} but argument is of type ‘int *’
    22.   233 |      socklen_t *__restrict __addr_len);
    23.       |      ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
    24. httpd.c:508:41: warning: passing argument 3 of ‘pthread_create’ from incompatible pointer type [-Wincompatible-pointer-types]
    25.   508 |   if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)
    26.       |                                         ^~~~~~~~~~~~~~
    27.       |                                         |
    28.       |                                         void (*)(int)
    29. In file included from httpd.c:25:
    30. /usr/include/pthread.h:200:15: note: expected ‘void * (*)(void *)’ but argument is of type ‘void (*)(int)’
    31.   200 |       void *(*__start_routine) (void *),
    32.       |       ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
    33. httpd.c:508:57: warning: passing argument 4 of ‘pthread_create’ makes pointer from integer without a cast [-Wint-conversion]
    34.   508 |   if (pthread_create(&newthread , NULL, accept_request, client_sock) != 0)
    35.       |                                                         ^~~~~~~~~~~
    36.       |                                                         |
    37.       |                                                         int
    38. In file included from httpd.c:25:
    39. /usr/include/pthread.h:201:24: note: expected ‘void * restrict’ but argument is of type ‘int’
    40.   201 |       void *__restrict __arg) __THROWNL __nonnull ((1, 3));
    41.       |       ~~~~~~~~~~~~~~~~~^~~~~
    42. /usr/bin/ld: /tmp/cc2UBzan.o: in function `.L0 ':
    43. httpd.c:(.text+0x1294): undefined reference to `pthread_create'
    44. collect2: error: ld returned 1 exit status
    45. make: *** [Makefile:5: httpd] Error 1
    复制代码






    1
    2022-3-9 21:53:32   评论 分享淘帖 举报

    只有小组成员才能发言,加入小组>>

    667个成员聚集在这个小组

    加入小组

    创建小组步骤

    快速回复 返回顶部 返回列表
    关注微信公众号

    电子发烧友网

    电子发烧友论坛

    社区合作
    刘勇
    联系电话:15994832713
    邮箱地址:liuyong@huaqiu.com
    社区管理
    elecfans短短
    微信:elecfans_666
    邮箱:users@huaqiu.com
    关闭

    站长推荐 上一条 /6 下一条

    快速回复 返回顶部 返回列表