感谢电子发烧友william hill官网 和芒果派,我本来是评估芒果派MQ Quad,不过因为偶然的关系,得到的是MQ Pro。不过这两者对我来说问题不大,两者的定位都是对标树莓派Zero,Quad是ARM处理器,而Pro是RISC-V处理器。
要使用芒果派MQ Pro,最好准备MiniHDMI转换线和USB键盘。MiniHDMI转换线用于连接显示器,而开机配置工作使用USB键盘比较方便。我本来手上有个MiniHDMI转HDMI的转换器,以为能用,等用上了之后(见下图)才发现悲催地无法使用USB接口,只好再去买一个转换器。
由于芒果派的供电问题,普通的USB Hub很难同时带动键盘和鼠标。
芒果派的使用方法和树莓派比较接近,先使用写镜像软件 Armbian(一个小众的Linux发行版)镜像写到SD卡中,然后利用芒果派上的SD卡槽进行系统启动的工作。
操作系统启动还算顺利,就是非常慢,主要还是MQ Pro的处理器能力有限。操作系统启动后尝试用浏览器访问百度,不过页面显示有问题,中文没有显示出来。
操作系统中带的软件非常齐全,不过考虑到速度原因,大多数应用并没有啥作用。
系统默认是打开了SSH的,所以很容易从笔记本电脑登录到芒果派上(下图)。
看了看系统自带的开发工具,GCC和Python都是包括的,所以做一些简单的开发工作是没有问题的。
接下来,我们尝试使用libcurl库进行C语言开发的测试。libcurl 是一个使用比较广泛,并且使用很方便的http请求库。
我们首先使用apt install
libcurl4-openssl-dev命令安装libcurl库所需要的头文件和库文件,一切都很顺利,看来RISC-V的生态基本算是建立起来了,和x86和ARM差不多了。
测试程序比较简单,代码如下:
#include <curl/curl.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[])
{
CURL *curl;
CURLcode res;
char train_code[256] = {0};
if(argc < 2)
{
printf("Enter train code:");
scanf("%s", train_code);
}
else
{
strcpy(train_code, argv[1]);
}
curl = curl_easy_init();
if(curl) {
char url[500];
sprintf(url, "http://www.webxml.com.cn/webservices/TrainTimeWebService.asmx/getDetailInfoByTrainCode?TrainCode=%s&UserID=", train_code);
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, stdout);
res = curl_easy_perform(curl);
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
return 0;
}
使用命令行进行编译:
gcc -o traintime traintime.c -lcurl
编译后运行就可以得到下图的效果,一切和在PC版的Ubuntu上差不多。
更多回帖