飞凌嵌入式全志A40i开发板试用体验之交叉编译

环境:Unbuntu20.4LTS 
交叉编译工具链:arm-linux-gnueabihf-gcc
软件:VsCode

1.helloworld交叉编译初体验

选择下载交叉编译工具链(我就按照其他教程下载配置的)  

飞凌嵌入式全志A40i开发板试用体验之交叉编译

安装工具链及相关的库,配置环境变量

飞凌嵌入式全志A40i开发板试用体验之交叉编译

开发板上配置sftp用于文件传输,将编译完成的可执行文件传到开发板上运行

飞凌嵌入式全志A40i开发板试用体验之交叉编译

在Unbuntu20下编写一个helloworld.c文件

飞凌嵌入式全志A40i开发板试用体验之交叉编译

通过其他教程学习了一下Makefile文件的构成及简单实现,make编译得到可执行文件main

 

飞凌嵌入式全志A40i开发板试用体验之交叉编译

飞凌嵌入式全志A40i开发板试用体验之交叉编译

将main文件通过sftp复制到开发板root目录下,修改运行权限并运行测试

飞凌嵌入式全志A40i开发板试用体验之交叉编译

2.利用上述方式控制LED闪烁

linux系统下一切皆文件

编写gpio_test.c文件,这里参考了文章https://www.jianshu.com/p/e5ecd92c0787

 

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <fcntl.h>
char *GPIO_PATH = "/sys/class/gpio/gpio43/value";
int main(int argc, char *argv[])
{
    int res = 0;
    int fd;
    char *path;
    
    printf("Gpio test demo\n");
    if(argc >= 2)
    {
        path = argv[1];
    }
    else
    {
        path = GPIO_PATH;
    }
    
    fd = open(path, O_WRONLY);
    if(fd<0)
    {
        printf("Failed to Open gpio %s/n", path);
        exit(1);
    }
    while(1)
    {
        write(fd, "1", 1);
        sleep(1);
        write(fd, "0", 1);
        sleep(1);
    }
    close(fd);
}

编写Makefile文件进行编译

飞凌嵌入式全志A40i开发板试用体验之交叉编译


将生成的可执行文件gpio_flash复制到开发板目录中,不加任何参数运行可以看到核心板上的LED闪烁

飞凌嵌入式全志A40i开发板试用体验之交叉编译

飞凌嵌入式全志A40i开发板试用体验之交叉编译


带参数可以换一个gpio进行控制

飞凌嵌入式全志A40i开发板试用体验之交叉编译

 

 

飞凌嵌入式全志A40i开发板试用体验之交叉编译

点此了解更多产品信息>>