完美体育·(中国)手机网页版科技提醒您:您的浏览器版本过低或者使用了兼容模式,为了获得更好的浏览体验,建议使用IE10以上的浏览器或使用极速模式。 请升级浏览器以获得更好的体验!

完美体育·(中国)手机网页版 > 评测报告 > 开发环境篇:Linux C按键控制LED--完美体育·(中国)手机网页版MYD-YT507H开发板

开发环境篇:Linux C按键控制LED--完美体育·(中国)手机网页版MYD-YT507H开发板

文章来源: 发布日期:2022.8.25 浏览次数:4820 次
本篇测评由电子工程世界的优秀测评者“qinyunti”提供。

此次板卡的测试,是Linux C开发环境下按键控制LED的操作实录。


前言

对于核心板或者开发板的选型我们一样会考虑二次开发的便捷性,开发环境,手册等的易用性和完整性。下面我们就从开发者的角度体验,从Linux C开发,Qt开发,python开发等常见开发入手进行体验。
现在开始第一部分Linux C开发环境的简单体验。

这里使用WIN11+WSL2+Ubuntu 20.04进行开发。Ubuntu单独安装在E盘,而不是直接从应用商店下载安装(具体安装方法可以网络搜索,这里不再赘述),因为开发环境需要的空间较大,直接应用商店安装默认位于C盘会导致C盘空间不够,所以独立安装在空间较大的盘。


准备
串口登录
丝印Debug对应的Type-C USB口为调试串口,接到电脑。
设置串口终端,我这里使用crt。参数为115200-8-N-1。如果找不到COM则先网上搜索下载FTD21XX的驱动安装。登录到开发板。
 
用户名为root无需密码
[root@myir:/]#
 
SSH登录
网口接到丝印ENET2的网口
串口终端中ifconfig查看IP
 
开发板IP地址为169.254.127.228
我们将电脑的IP设置为同一网段169.254.127.227
 
开发板中ping电脑
 
电脑中ping开发板
 
如果ping不通可以关闭电脑的防火墙 
修改root用户密码
串口终端中输入passwd回车
输入123回车
继续输入123回车
将密码设置为了123

使用CRT SSH登录



密码为刚才设置的123

安装必备包

进入WSL打开终端
sudo apt-get update
sudo apt-get install build-essential gcc libncurses5-dev bison flex texinfo
sudo apt-get install zlib1g-dev gettext libssl-dev autoconf
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install linux-libc-dev:i386
sudo apt-get install git
sudo apt-get install gnupg
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install gperf
sudo apt-get install build-essential
sudo apt-get install zip
sudo apt-get install curl
sudo apt-get install libc6-dev
sudo apt-get install libncurses5-dev:i386
sudo apt-get install x11proto-core-dev
sudo apt-get install libx11-dev:i386
sudo apt-get install libreadline6-dev:i386
sudo apt-get install libgl1-mesa-glx:i386
sudo apt-get install libgl1-mesa-dev
sudo apt-get install g++-multilib
sudo apt-get install mingw32
sudo apt-get install tofrodos
sudo apt-get install python-markdown
sudo apt-get install libxml2-utils
sudo apt-get install xsltproc
sudo apt-get install zlib1g-dev:i386
sudo apt-get install gawk
sudo apt-get install texinfo
sudo apt-get install gettext
 
sudo dpkg-reconfigure dash #选择 no
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
sudo apt-get install zlib1g-dev # 缺失 libz.so 时安装
sudo apt-get install uboot-mkimage # 缺失 mkimge 时安装或者安装 u-boot-tools
 

交叉编译环境安装

windows下从http://down.myir-tech.com/MYD-YT507H/下载资料,其中03_Tools.zip解压;
我这里解压后为E:\BOARD\MYC-YT507\03_Tools
将文件夹Complie Toolchain名字改为Complie_Toolchain,因为Linux中命令行文件名不能有空格。
 
wsl中
cd ~
mkdir MYD-YT507H
cd MYD-YT507H/
 
直接将windows下的文件解压到WSL中:
tar -xvf /mnt/e/BOARD/MYC-YT507/03_Tools/Complie_Toolchain/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz -C .
 
export PATH=$PATH:~/MYD-YT507H/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin
 
aarch64-linux-gnu-gcc -v
能看到打印信息说明安装成功。

测试

编写代码
以下代码实现按键控制LED的亮灭。
 
led.c
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
/* ./key_led /dev/input/event0 noblock */ 
int main(int argc, char **argv)
{
    int fd,bg_fd; int err, len, i;
    unsigned char flag;
    unsigned int data[1];
    char *bg = "/sys/class/leds/blue/brightness";
    struct input_event event;
    if (argc < 2)
    {
        printf("Usage: %s  [noblock]\n", argv[0]);
        return -1;
    }
    if (argc == 3 && !strcmp(argv[2], "noblock"))
    {
        fd = open(argv[1], O_RDWR | O_NONBLOCK);
    }
    else 
    {
        fd = open(argv[1], O_RDWR);
    }
    if (fd < 0)
    {
        printf("open %s err\n", argv[1]);
        return -1;
    }
    while (1)
    {
        len = read(fd, &event, sizeof(event));
        if (event.type == EV_KEY)
        {
            if (event.value == 1)//key down and up
            {
                printf("key test \n");
                bg_fd = open(bg, O_RDWR);
                if (bg_fd < 0)
                {
                    printf("open %d err\n", bg_fd);
                    return -1;
                }
                read(bg_fd,&flag,1);
                if(flag == '0')
                    system("echo 1 > /sys/class/leds/blue/brightness"); //l ed off - 62 -
                else system("echo 0 > /sys/class/leds/blue/brightness ");//led on
            }
        }
    }
    return 0;
}
 
编译
aarch64-linux-gnu-gcc led.c -o led

导入到开发板
将编译后的程序led拷贝到windows下,再拷贝到开发板中
cp led /mnt/e
 
SSH登陆后
输入rz回车
选择程序文件led
点击Add
点击确定
 
运行
chmod +x led
./led /dev/input/event1 noblock
 
按下开发板上丝印ON/OFF的按键
则对应的蓝色的LED亮和灭。
 

总结

完美体育·(中国)手机网页版的资料是比较友好和全面的,手册,开发环境等都比较详尽,能方便用户快速熟悉开发环境进行二次开发。

另外参考文档中《MYD-YT507H_Linux软件开发指南V1.1.pdf》中相关信息有误,比如:

 /dev/input/event0应该为 /dev/input/event1;
代码中/sys/class/leds/blue/brightness应该为
/sys/class/leds/heartbeat/brightness等,也没明确按键对应关系。
文档中也没有用户名密码等描述,所以需要手动修改root的密码等等。文档整体比较详细,但是一些细节还是需要尽可能描述清楚,并且保持更新。

参考
http://down.myir-tech.com/MYD-YT507H/

MYD-YT507H_Linux软件开发指南V1.1.pdf



想要了解优秀测评者“qinyunti”关于MYD-YT507H开发板测评原文的可以复制下方链接查看:
http://bbs.eeworld.com.cn/thread-1211835-1-1.html


需要购买完美体育·(中国)手机网页版MYD-YT507H开发板的可以复制下方链接购买:
https://detail.tmall.com/item.htm?id=673629085661