4412应用编程

一、编写helloworld

#inlcude <stdio.h>
int main()
{
    printf("Hello World!\n");
    return 0;    
}

然后编译

arm-none-linux-gnueabi-gcc helloworld.c -o helloworld -static

然后复制到U盘中,插到开发板中后,插上会有信息是如sda1:

mount /dev/sda1 /mnt/udisk/

然后运行

./mnt/udisk/helloworld

 

二、TF卡方式运行helloworld

如果用读卡器插U盘,那过程和上面的一样。

如果直接插TF卡卡槽,先建个文件夹

cd /mnt
mkdir
udisk1

然后插入TF卡,有一些信息打印出来

mount /dev/mmcblklp1 /mnt/udisk1

然后就可以运行了

./helloworld

如果提示没有权限的话,chmod 777

 

三、helloworld编译进最小文件系统

先复制helloworld到最小文件中的bin目录

cp -r helloworld /home/minilinux/system/bin/

然后再次编译system.img

../system
make_ext4fs -s -l 314572800 -a root -L linux system.img system

然后重新烧写

fastboot
fastboot.exe flash system system.img
fastboot -w
fastboot reboot

 

二、字符设备控制LED灯

ioctl函数

int ioctl( int fd, int request, int cmd);
– 参数fd,函数open 返回的句柄
– 参数request 和参数cmd,由内核驱动决定具体操作,例如request 可以
代表那个IO 口
– 参数cmd:代表对IO 进行什么样的操作,也可以反过来。具体的含义由
驱动工程师在驱动中switch决定
– 返回值:返回0 成功;返回-1,出错

引脚拉高电平,电路就发光。拉低就断开

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

#define LED_NUM 2
#define LED_C   2

// cmd is 0, led off
// cmd is 1, led on
// io is 0, close to beep   led
// io is 1, close to button led
int main(int argc, char *argv[])
{
    int fd, led_num, led_c;
    char *leds = "/dev/leds";

    led_num = LED_NUM;
    led_c = LED_C;
    printf("argv1 is cmd; argv2 is io\n");

    if(atoi(argv[1])>=led_c) {
        printf("argv[1] is 0 or 1\n");
        exit(1);
    }

    if(atoi(argv[2])>=led_c) {
        printf("argv2 is 0 or 1\n");
        exit(1);
    }

    fd = open(leds, O_RDWR|O_NOCTTY|O_NDELAY);
    if(fd < 0) {
        printf("open %s failed.\n, leds");
    } else {
        ioctl(fd, atoi(argv[1]), atoi(argv[2]));
        printf("io %s success\n", leds);
    }

    close(fd);
    return 0;
}

 

转载于:https://www.cnblogs.com/ch122633/p/9275679.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在嵌入式基于fs4412的实验中,编译应用程序的步骤如下: 1. 在PC机上安装交叉编译工具链。工具链是用于在主机上编译可在目标设备上运行的应用程序的工具集。您可以从厂商提供的SDK中获取交叉编译工具链,或从开源社区下载并安装。 2. 开发应用程序代码。您可以使用C、C++或其他编程语言编写应用程序代码,并将其保存在PC机上。 3. 使用交叉编译工具链编译应用程序。使用以下命令编译应用程序: ``` arm-linux-gcc -o your_app your_app.c ``` 这里假设您的应用程序名为your_app,您可以将其替换为实际的应用程序名称。该命令将在当前目录下生成名为your_app的可执行文件。 4. 将可执行文件复制到目标设备。使用以下命令将可执行文件复制到目标设备: ``` scp your_app root@your_device:/home/ ``` 这里假设您的目标设备IP地址为your_device,您可以将其替换为实际的IP地址。该命令将将your_app文件复制到目标设备的/home目录下。 5. 在目标设备上运行可执行文件。使用以下命令在目标设备上运行可执行文件: ``` ./your_app ``` 这里假设您已经登录到目标设备,并且your_app可执行文件已经在目标设备上。该命令将在目标设备上运行your_app应用程序。 请注意,在编译应用程序之前,您需要确保您已经正确配置了交叉编译工具链,并且已经安装了所需的库和头文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值