QNX-----IMX6UL最简单的LED点灯程序

                           QNX-----IMX6UL最简单的LED点灯程序

        QNX的应用开发程序比较简单,因为QNX 提供专门的集成开发工具QNX Momentics IDE ,通过该工具可以快速的进行应用程序设计,在QNX程序里,每一个应用都是从main开始的。

         首先看硬件连接,在硬件原理图上,提供两个LED接口,分别接到了SNVS_TAMPER1和SNVS_TAMPER2。因此程序需要对这两个进行设置。

     IMX6UL处理器需要把SNVS_TAMPER1和SNVS_TAMPER2配置成IO口,代码如下:

 

 主函数如下:

int main(int argc, char *argv[])
{
    _Uintptrt prt;
    uint32_t reg;

    iomux_ctl =  mmap_device_io(0x1000, MX6X_IOMUXC_BASE);
    gpiopinmuxsetswmux(IMX6UL_SWMUX_SNVS_TAMPER1, MUX_CTL_MUX_MODE_ALT5 | MUX_CTL_SION);
    gpiopinmuxsetpadcfg(IMX6UL_SWPAD_SNVS_TAMPER1, MX6X_PAD_SETTINGS_GPIO);
    gpiopinmuxsetswmux(IMX6UL_SWMUX_SNVS_TAMPER2, MUX_CTL_MUX_MODE_ALT5 | MUX_CTL_SION);
    gpiopinmuxsetpadcfg(IMX6UL_SWPAD_SNVS_TAMPER2, MX6X_PAD_SETTINGS_GPIO);
    prt=(_Uintptrt) mmap_device_memory( 0,
                     sizeof(gpioDefinest),
                     PROT_READ|PROT_WRITE|PROT_NOCACHE,
                     0,
                     (0x20AC000) );
    gpioarray[5] = (gpioDefinest*)(prt);
    reg=gpioarray[5]->gpiodata;
    reg |= (1<<1);
    reg |= (1<<2);
    printf("reg %x\r\n",reg);
    gpioarray[5]->gpiodir=reg;
    reg=gpioarray[5]->gpiodir;
    reg |= (1<<1);
    reg |= (1<<2);
    gpioarray[5]->gpiodir=reg;
    printf("reg %x\r\n",reg);
while(1)
{

printf("LED1 0N LED2  OFF\r\n");
     reg=gpioarray[5]->gpiodata;
        reg |= (1<<1);
        reg &= ~(1<<2);
    gpioarray[5]->gpiodata=reg;
    usleep(100000);
    printf("LED1 0FF LED2  ON\r\n");
     reg=gpioarray[5]->gpiodata;
     reg &= ~ (1<<1);

     reg |= (1<<2);
     gpioarray[5]->gpiodata=reg;
     usleep(100000);

}
}

编译生成Led文件,然后拷贝QNX系统上,

在串口超级终端执行./Led 命令,就可以看到两个LED在闪烁,同时LED显示灯状态。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值