小编Ati*_*liz的帖子

如何找出哪个Linux驱动程序占用了我的GPIO?

我的电路板上有一个多用作GPIO的焊盘.当我尝试通过/ sys/class/gpio/export导出它时,我得到了

-sh: echo: write error: Device or resource busy
Run Code Online (Sandbox Code Playgroud)

我的猜测是其他一些司机在我得到这个机会之前要求这个垫子.我怎样才能找到保留它的内容?

linux-device-driver gpio

21
推荐指数
3
解决办法
1万
查看次数

pyserial的二进制数据(python串口)

pyserial中的serial.write()方法似乎只发送字符串数据.我有像[0xc0,0x04,0x00]这样的数组,并希望能够通过串口发送/接收它们吗?原始I/O有什么单独的方法吗?

我想我可能需要将数组更改为['\ xc0','\ x04','\ x00'],仍然,null字符可能会造成问题.

python binary serial-port pyserial

17
推荐指数
2
解决办法
2万
查看次数

QThread阻塞主应用程序

我有一个简单的表单UI,有一个按钮插槽,启动一个线程:

void MainWindow::LoadImage()
{
    aThread->run();
}
Run Code Online (Sandbox Code Playgroud)

run()方法如下所示:

void CameraThread::run()
{
    qDebug("Staring Thread");
    while(1)
    {
        qDebug("ping");
        QThread::sleep(1);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我单击调用LoadImage()的按钮时,UI变得无法响应.我定期看到"ping"消息作为调试输出,但UI挂起,不响应任何事情.为什么我的线程没有单独运行?CameraThread派生为公共QThread我使用gcc版本4.4.3(Ubuntu 4.4.3-4ubuntu5)与QT库和QT Creator来自Ubuntu 10.04(x86)存储库.

c++ qt multithreading qthread

9
推荐指数
2
解决办法
8318
查看次数

检测对打开文件的更改

假设我有一个打开的文件.如何在后台检测文件何时被另一个程序更改.如果某个文本编辑器被另一个进程更改,则它可以检测并更新该文件.

我特意在Linux下使用C(这似乎取决于操作系统).

c linux file

8
推荐指数
2
解决办法
1085
查看次数

在编译C代码期间,我可以看到已定义的宏吗?

我有一段代码可以在没有问题的情况下编译x86 gcc 4.4.1,但是在blackfin gcc 4.1.2中出现了很多"数字常量之前预期的非限定id"错误.我看到有一些变量名与一些预定义的宏冲突.是否可以在cpp文件的某一行看到已定义的宏?

c macros gcc c-preprocessor

8
推荐指数
1
解决办法
1211
查看次数

如何告诉Qt5应用程序使用哪个平台插件?

我的嵌入式目标是运行Linux并且有两个有效的平台插件:eglfs和linuxfb.默认情况下,我所有的qt应用程序都尝试加载eglfs(并且由于某种原因失败).我如何让他们尝试linuxfb?

plugins qt5

6
推荐指数
1
解决办法
8590
查看次数

如何在解压缩失败时找到ARM Linux入口点?

我试图通过U-boot在i.MX6的自定义板上启动Linux(CPU内核是ARM Cortex A9)

我们似乎成功移植了Das U-Boot(2009.08).但是在最后的U-Boot消息中启动Linux失败:"启动内核......"

这是我的相关环境:

bootargs=console=ttymxc1,115200 vmalloc=400M root=/dev/mmcblk0p1 rootwait consoleblank=0 earlyprintk video=mxcfb0:dev=lcd,LCD-ORTUS,if=RGB24 video=mxcfb1:dev=hdmi,1280x720M@60,if=RGB24 calibration tsdev=tsc2004 fbmem=10M,28M
bootcmd=ext2load mmc 0:1 10800000 /boot/uImage ; bootm 10800000
Run Code Online (Sandbox Code Playgroud)

启动输出是

Loading file "/boot/uImage" from mmc device 0:1 (xxa1)  
4043552 bytes read  
## Booting kernel from Legacy Image at 10800000 ...  
   Image Name:   Linux-3.0.35  
   Image Type:   ARM Linux Kernel Image (uncompressed)  
   Data Size:    4043488 Bytes =  3.9 MB  
   Load Address: 10008000  
   Entry Point:  10008000  
   Verifying Checksum ... OK  
   Loading Kernel Image ... OK  
OK  

Starting …
Run Code Online (Sandbox Code Playgroud)

boot arm linux-kernel embedded-linux u-boot

6
推荐指数
1
解决办法
1万
查看次数

在body其他函数中声明函数方法的用例是什么?

我在FreeRTOS源代码中遇到过这篇文章:

void vApplicationIdleHook( void )
{

    /* The simple blinky demo does not use the idle hook - the full demo does. */
    #if( mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0 )
    {
        extern void vFullDemoIdleHook( void );

        //* Implemented in main_full.c. */
        vFullDemoIdleHook();
    }
    #endif

}
Run Code Online (Sandbox Code Playgroud)

为什么要声明这样的函数/方法?有什么好处?我在Java中也看到了类似的代码.

c c++

6
推荐指数
1
解决办法
207
查看次数

在C++中将复数与常量相乘

以下代码无法编译

#include <iostream>
#include <cmath>
#include <complex>

using namespace std;

int main(void)
{
    const double b=3;
    complex <double> i(0, 1), comp;

    comp = b*i;

    comp = 3*i;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

有错误:'3*i'中的'operator*'不匹配这里有什么问题,为什么我不能乘以立即常数?b*我的作品.

c++ operators multiplying complex-numbers

5
推荐指数
2
解决办法
8877
查看次数

如何将C宏的某些参数定义为另一个宏?

考虑宏

#define IP4_ADDR(ipaddr, a,b,c,d)  (ipaddr)->addr = PP_HTONL(LWIP_MAKEU32(a,b,c,d))
Run Code Online (Sandbox Code Playgroud)

我想在另一个宏中定义参数a,b,c,d。所以我做到了:

#define DEBUG_HOST_IP4 192, 168, 0, 123

IP4_ADDR(&debug_host, 192, 168, 0, 123 );
IP4_ADDR(&debug_host, DEBUG_HOST_IP4 );
Run Code Online (Sandbox Code Playgroud)

对IP4_ADDR的第一次调用成功编译,而第二次调用失败

错误:宏“ IP4_ADDR”需要5个参数,但是给定
IP4_ADDR(&debug_host,DEBUG_HOST_IP4)仅2个参数;

有没有办法使DEBUG_HOST_IP4扩展正确,以便IP4_ADDR宏可以按预期工作?

编辑:IP4_ADDR宏来自第三方库,我宁愿不接触它,并冒着破坏别人代码的风险。当然,实现我自己的版本是一种选择。

c preprocessor c-preprocessor

5
推荐指数
1
解决办法
99
查看次数