4412应用编程

发布者:SparkleMagic最新更新时间:2022-01-07 来源: eefocus关键字:应用编程 手机看文章 扫描二维码
随时随地手机看文章

一、编写helloworld


#inlcude

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

#include

#include

#include

#include

#include

#include


#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 ion");


    if(atoi(argv[1])>=led_c) {

        printf("argv[1] is 0 or 1n");

        exit(1);

    }


    if(atoi(argv[2])>=led_c) {

        printf("argv2 is 0 or 1n");

        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 successn", leds);

    }


    close(fd);

    return 0;

}


关键字:应用编程 引用地址:4412应用编程

上一篇:4412 串口编程
下一篇:4412 使用搭建好的环境编译系统

推荐阅读最新更新时间:2024-11-16 22:13

搭建Tiny4412的Qt交叉开发调试环境
前言 最近在学习Tiny4412下的Qt编程。第一步,首先得搭建好交叉开发调试环境。几经折腾之后,总算基本完成。兹整理一下期间的笔记,发到博客上,作为总结。也希望我入过的坑,其他人避免再入 。 另外提一点(也是事后查网才了解到的),目前业界流行Yocto/OpenEmbedded框架,很多厂商使用这个框架来构建分发开发板的BSP(包括kernel,rootfs,toolchain、gdb、库以及qt的库等),用户可以直接基于该BSP来搭建Qt交叉开发环境,从而免去自己搭建环境时所遇到的诸如依赖库缺失、toolchain版本不匹配等问题,节约了不必要的时间成本。相关案例非常多,“参考资料2~5”里列了几个例子(都未经验证,仅供参考)
[单片机]
搭建Tiny<font color='red'>4412</font>的Qt交叉开发调试环境
4412 搭建tftp服务器
搭建服务器 --安装xinetd,sudo apt-get install xinetd --安装tftp和tftpd,sudo apt-get install tftp tftpd --配置/etc/xinetd.d/tftp文件(一定要对齐,严格按照格式输入) tftp文件中的/var/tftpboot是服务器的目录 -- 新建tftp服务器目录mkdir /var/tftpboot -- 修改权限为777 -- 重启xinetd服务sudo /etc/init.d/xinetd restart 搭建完成后,在本机上测试 本机测试 -- 在/var/tftpboot下面建立一个文件test,输入任意内容 -- 启
[单片机]
<font color='red'>4412</font> 搭建tftp服务器
10. 从0学ARM-基于Exynos4412的pwm详解
一、什么是PWM PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%. 二、PWM信号输出输出和作用 1. 如果要实现PWM信号输出如何输出呢? 1)可以直接通过芯片内部模块输出PWM信号,前提是这个I/O口要有集成的pwm控制器,只需要通过对应的寄存器即可,这种自带有PWM输出的功能模块在程序设计更简便,同时数据更精确。 2)但是如果IC内部没有
[单片机]
10. 从0学ARM-基于Exynos<font color='red'>4412</font>的pwm详解
基于tiny4412的Linux内核移植(支持device tree)(一)
平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)) 概述 由于目前友善之臂提供的u-boot不支持uImage的引导方式,默认的配置也不支持
[单片机]
Qt5.7.0移植到4412
搞了几天,终于把Qt5.7移植到4412上,下面是一些自己移植过程中的记录,希望能帮到其他人。 一、需要下载的文件, 下载qt5.7源码qt-everywhere-opensource-src-5.7.0.tar.xz http://www.download3k.com/Install-Qt.html 下载ARM交叉编译工具arm-2014.05-29-arm-none-Linux-gnueabi-i686-pc-linux-gnu.tar.bz2 http://www.veryarm.com/arm-none-linux-gnueabi-gcc 下载tslib1.4 http://vdisk.weibo.com/s/AcUH
[单片机]
Qt5.7.0移植到<font color='red'>4412</font>
Tiny4412友善之臂ARM开发板静态IP设置(重启有效)
刚入手Tiny4412开发板,发现它的ip地址不是192.168.1.230,老是自动跳变,今天是192.168.1.7,明天开机就变成了192.168.1.8,所以就决定将其设为静态ip地址:192.168.1.240。 首先参考网上提供的一个常见的方案: 要修改arm开发板的IP,如果是yaffs2文件,可以 1、首先要修改/etc/init.d/rcS文件,在/sbin/ifconfig lo 127.0.0.0 下添加一行/sbin/ifconfig eth0 192.168.1.20 up 注:192.168.1.20 只是举例,可以改成你想要修改的IP地址 本来这样修改之后就可以的,但是我发现仍然不行,使用ifco
[单片机]
Tiny<font color='red'>4412</font>友善之臂ARM开发板静态IP设置(重启有效)
STM32编码器接口,以及应用编程
Ⅰ 关于编码器 编码器的种类有很多,什么增量式编码器、绝对值编码器,有轴或者无轴编码器,电压输出、推拉输出、集电极开路输出等等。但不管什么类型的编码器,其目的都类似,得到转动的角度,角速度、位移等。 本文讲述常见的增量式编码器,增量式编码器也可以叫正交编码器,也就是说可以通过其A、B的相位知道编码器是正转,还是反转,还可以根据编码器参数得出旋转了多少角度等。 常见的增量式编码器A、B、Z三根线代表什么意思呢?使用过编码器的人不难理解,这里简单给初学者讲述一下: A、B两线提供相位相差90度的脉冲信号,用其来计算旋转的角度;Z线为过零点线,也就是说每转一转,经过某一点都会输出一个脉冲信号,主要用于“过零校正”,三
[单片机]
STM32编码器接口,以及<font color='red'>应用</font><font color='red'>编程</font>
嵌入式领域中电机控制应用的可编程片上系统(PSoC)
无论是小到手持设备还是大到机械机床,在当今的嵌入式和工业应用中,控制系统的基本要素仍然占据着举足轻重的地位。大多数自动控制系统都采用负反馈机制来控制物理参数,如位置、速度、扭矩、电压、电流以及强度等。在此,需要控制的参数均由适当的变换器进行感测,之后再反馈回输入与参考值进行比较。将经采样的输出信号与参考输入相减,即是所谓的负反馈。差异信号(“误差”)放大后会驱动系统(激励),让输出接近参考值。换言之,系统可最小化误差信号,因而是一种闭环控制系统。电子机械系统在传统控制系统中占绝大多数,而电机控制则是一种常见的应用。 图1:控制电机速度的闭环系统 一般说来,可将电机控制系统分为各种不同的子系统,如速度、位置或方向控制系统等
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多开源项目推荐
换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved