您尚未登录。

#1 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 如何通过apt安装arm架构的package到本机的交叉编译器路径? » 2019-03-02 22:31:21

晕哥 说:
zhen8838 说:
山无棱 说:

你是想把树莓派的gcc工具链和库头文件提供 apt 命令安装到你的电脑?

交叉编译链我自己已经安装.但是我想要开发蓝牙语音相关的内容,必须要有对应的头文件以及动态链接库.现在我就是想要通过apt把对应的预编译的库安装到我的交叉编译器中

用 buildroot, 本站搜一下, 可以指定外部交叉编译器.

当时我在君正X1000(MIPS架构)玩蓝牙也是这么做的。

buildroot + 君正提供的gcc工具链

赞一个

#2 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 如何通过apt安装arm架构的package到本机的交叉编译器路径? » 2019-03-02 16:43:14

山无棱 说:
zhen8838 说:
山无棱 说:

没有玩过树莓派,但是我看到网上的固件都是用apt安装应用的

不是那个意思呢,我的意思是想把对应的package的头文件以及预编译好的头文件安装到我电脑上对应的交叉编译器中。

你是想把树莓派的gcc工具链和库头文件提供 apt 命令安装到你的电脑?

交叉编译链我自己已经安装.但是我想要开发蓝牙语音相关的内容,必须要有对应的头文件以及动态链接库.现在我就是想要通过apt把对应的预编译的库安装到我的交叉编译器中

#3 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 如何通过apt安装arm架构的package到本机的交叉编译器路径? » 2019-03-01 23:30:08

山无棱 说:

没有玩过树莓派,但是我看到网上的固件都是用apt安装应用的

不是那个意思呢,我的意思是想把对应的package的头文件以及预编译好的头文件安装到我电脑上对应的交叉编译器中。

#4 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 如何通过apt安装arm架构的package到本机的交叉编译器路径? » 2019-03-01 20:38:54

zhen8838
回复: 7

我最近需要在树莓派里面开发蓝牙相关的程序,我准备使用pulseaudio的api,本来打算交叉编译一个进去,但是无奈中间过程太多.

我注意到在树莓派中可以通过使用

sudo apt-get install libpulse-dev

安装相关的lib和头文件.现在我可以通过在本机上使用

sudo apt-get install libpulse-dev

安装arm架构的lib到我指定的交叉编译器路径吗?

请大佬指点~

#7 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 单片机程序移植到Linux下,串口接收什么方式比较好? » 2018-11-15 18:19:40

zhen8838
回复: 9

我现在移植一个单片机程序到Linux下,主要是操作一个串口模块进行操作,需要在发送AT命令数据后读取串口接收,并且也要一直监听串口去读取透传过来的数据。
在单片机中,是通过串口接收中断实现的,每一位数据都存放在一个buf中。只要每次发送AT后等待一段时间即可。
现在在Linux下,我本来是想每次串口发送结束后,去read串口。但是这样的话感觉要实现一个长时间的监听透传的数据不太好。或者有好的,但我不知道。。。
现在我是准备开一个线程,去模拟串口接收中断,我在想是写无限阻塞读取1位,还是每次读取的位数多一些比较好?
或者有没有更好的实现方式,大佬们提点一下;-)

#8 Re: 硬件设计 KiCAD/Protel/DXP/PADS/ORCAD/EAGLE » 如何设计一个电路使用串口的一个小信号达到开关的效果?求助大家 » 2018-11-06 20:27:47

v3s 说:
达克罗德 说:

淘宝有几十元的山寨saelee逻辑分析仪

达神说的对,山上的逻辑分析仪省心省力,也很便宜。

好的

#9 Re: 硬件设计 KiCAD/Protel/DXP/PADS/ORCAD/EAGLE » 如何设计一个电路使用串口的一个小信号达到开关的效果?求助大家 » 2018-11-06 19:40:07

lilo 说:
zhen8838 说:

有没有大佬给个想法。说实话我觉得远程通过串口唤醒很不靠谱,今天我试了1200波特率,但是还是没用。

逻辑分析仪能不能抓到数据?

学校里没有逻辑分析仪,好的示波器要过段时间回本部才有的用。。。

#10 Re: 硬件设计 KiCAD/Protel/DXP/PADS/ORCAD/EAGLE » 如何设计一个电路使用串口的一个小信号达到开关的效果?求助大家 » 2018-11-06 18:46:30

有没有大佬给个想法。说实话我觉得远程通过串口唤醒很不靠谱,今天我试了1200波特率,但是还是没用。

#11 Re: 硬件设计 KiCAD/Protel/DXP/PADS/ORCAD/EAGLE » 如何设计一个电路使用串口的一个小信号达到开关的效果?求助大家 » 2018-11-05 21:46:53

lilo 说:

用逻辑分析仪或者示波器抓一下 无线模块的 TX(也就是单片机的RX) 试一试

扎心了,我学校里面的。今天那个示波器放在那边我测了半天,因为我是远端发数据过来,估计速度太快,我测不到。明天试试设置触发模式看看能不能捕获到信号。

#12 Re: 硬件设计 KiCAD/Protel/DXP/PADS/ORCAD/EAGLE » 如何设计一个电路使用串口的一个小信号达到开关的效果?求助大家 » 2018-11-05 21:44:40

沉鱼 说:

接个轻触开关试一试, 确认单片机确实能被按键唤醒.

我试过用导线瞬间触碰唤醒引脚,反应还是相当灵敏的。明天我准备试试把波特率调到4800做测试。

#13 硬件设计 KiCAD/Protel/DXP/PADS/ORCAD/EAGLE » 如何设计一个电路使用串口的一个小信号达到开关的效果?求助大家 » 2018-11-05 19:17:21

zhen8838
回复: 12

现在需要做一个空中唤醒单片机的功能,但是通信模块与单片机只有tx与rx连接。
单片机是深度睡眠状态,需要一个3.3v的上升沿去唤醒。

我试过将tx同时与唤醒引脚连接,无法唤醒。
我也试过利用tx信号去控制mos管驱动唤醒引脚,无法唤醒。

我认为原因应该是由于 串口的信号较小,或者变化速度较快,导致唤醒引脚无法检测到。

有没有人可以教教我,设计一个怎么样的电路,在不影响串口本身的信号前提下,可以将串口的信号转换为一个开关量?

#15 Re: 全志 SOC » apt-get如何将对应的lib放入自己设置的位置? » 2018-06-19 11:48:40

这种是不是就要自己的主机上开个虚拟机,所有的东西和板子上一样就好了?

#16 全志 SOC » apt-get如何将对应的lib放入自己设置的位置? » 2018-06-19 11:43:43

zhen8838
回复: 3

最近买了个orangepi,他有armbian官方的源.但是还是有些东西没有,我想在我的板子上移植一个新版本的bluez.
因为编译bulez需要先编译5个依赖,所以我感觉非常麻烦,这时候我发现板子apt-get可以获取到对应的一些依赖(头文件以及lib),
比如Glib,他的lib文件就会存放在/usr/lib/aarch64-linux-gnu中.
但是我的主机如果apt-get对应的依赖库,默认是存放在/usr/lib/x86_64-linux-gnu/中的.

我的交叉编译器是解压安装的,编译的时候需要将库放到~/GccOrangPi/aarch64-linux-gnu/libc/lib/
我现在有什么办法可以直接get到板子上交叉编译器对应的lib,然后存放到我本机交叉编译器的库地址?

#17 Re: 全志 SOC » 请教两个Linux应用层操作i2c的问题 » 2018-04-12 09:17:32

kgp0213 说:

1,刚翻了一下1306的资料,看起来是支持400k的速度的,楼主先用示波器抓一下现有的iic波形,看系统输出有没有异常(sclk周期,波形),若波形不好添加上拉电阻试试。
2,通常芯片的linux驱动里面默认应该都是400k,具体能不能通过dts来改,还是建议源码里面具体的驱动实现(这里面经常有坑的)
3,另外楼主用的芯片是什么型号?最好翻一下其寄存器看能否支持速度调整

我用的芯片是V3S,上拉电阻我使用的是10K。
我也觉得这个芯片应该是支持400Khz的速度,因为我找了些STM32硬件I2c的程序,他们设置的就是400Khz速率,可以正常通信。
但是我相同的接口去连接mpu6050可以直接读写,说明芯片I2c是正常工作的,这就让我摸不着头脑了。

#18 Re: 全志 SOC » 请教两个Linux应用层操作i2c的问题 » 2018-04-11 23:26:48

谢谢两位了。我接下来尝试在设备树中修改速度。

#19 全志 SOC » 请教两个Linux应用层操作i2c的问题 » 2018-04-11 21:42:20

zhen8838
回复: 11

一.问题1
    我想在linux应用层中操作/dev/i2c-0,来驱动4线IIC OLED,OLED驱动芯片为SSD1306。
    首先我想使用<linux/i2c-dev.h>中的i2c_smbus协议来对模块进行读写,我初始化完成后,使用

int setI2CSlave(int fd, int slave)
{
	if (ioctl(fd, I2C_SLAVE, slave) < 0)
	{
		errMsg("Fail ioctl I2C_SLAVE");
		return -1;
	}
	return 0;
}

设置从机地址没有报错。但是当我使用

 /**
  * @brief  WriteCmd,向OLED写入命令
  * @param  fd:文件句柄 I2C_Command:命令代码
  * @retval 无
  */
void WriteCmd(int fd,unsigned char I2C_Command)//写命令
{
  I2CWriteByteTo(fd,0x00,I2C_Command,0);
}

int I2CWriteByteTo(int fd, int pos, unsigned char byteData, int wait_ms)
{
	if (i2c_smbus_write_byte_data(fd, (unsigned char)pos, (unsigned char)byteData) < 0)
	{
		errMsg("Fail to I2CWriteByteTo");
		return -1;
	}
	usleep(1000 * wait_ms);
	return 0;
}

时,就会出现ERROR [ETIMEDOUT Connection timed out] Fail to I2CWriteByteTo的错误。
当我换了一个mpu6050,我设置好地址对其进行读写,可以正常操作mpu6050.
我怀疑是oled不支持现在这个i2c速率,那么我应该怎样才能在应用层修改i2c设备速率呢?或者是别的问题?


二.问题2
后来我移植了gpio模拟i2c来进行读写。是可以读写的。但是速度有限,问题在这里

struct timespec delay = {0, 1};

///**********************************************
//// 通过I2C总线写一个字节
//**********************************************/
void OLED_Write_Byte(uint8_t IIC_Byte)
{
	uint8_t i;
	IIC_SCL_LOW();
	for (i = 0; i < 8; i++)
	{
		if ((IIC_Byte & 0x80) >> 7)
			IIC_SDA_HIGH();
		else
			IIC_SDA_LOW();
		IIC_Byte <<= 1;
		IIC_SCL_HIGH();
		IIC_SCL_LOW();
		nanosleep(&delay,NULL);//本来没有的延时
	}
}

我每次拉低时钟之后都要延时一下,哪怕现在只有1nm。我用stm32刷屏都是秒刷,现在刷屏我还要等1秒左右,非常蛋疼。
请教各位这两个问题该如何解决?谢谢大家了。

#20 Re: 全志 SOC » 求助!同一程序,使用不同终端软件去执行结果不同。 » 2018-03-20 22:13:18

好的,谢谢晕哥的解答。我再去找找是否有其他可配置的选项。

#21 Re: 全志 SOC » 求助!同一程序,使用不同终端软件去执行结果不同。 » 2018-03-20 21:34:41

晕哥 说:

那应该界面上还有一个 Terminal 的参数可以设置才对

这个好像没看到。。
Deepin_Scrot_0544.png

#22 Re: 全志 SOC » 求助!同一程序,使用不同终端软件去执行结果不同。 » 2018-03-20 21:22:25

晕哥 说:

这里写这些吗?我写了感觉好像没有用
Deepin_Scrot_0544.png
我发现我这个5.10版本好像没有run in terminal 这个选项,
Deepin_Scrot_0544.png
难道是要设置什么参数吗。我测试别的代码还是没啥问题。。

#23 全志 SOC » 求助!同一程序,使用不同终端软件去执行结果不同。 » 2018-03-20 18:52:45

zhen8838
回复: 10

1.问题描述
  我在qt中写了一个程序,在v3s中读取gps数据并对其进行处理。我在qt上已经搭建好了交叉编译环境以及目标板配置。并且之前测试了几个小程序,都可以点击运行并且在qt的输出栏中查看程序输出。
  但是这个程序有所区别,我在qt中执行会出现如下现象
Deepin_Scrot_0544.png
  然后我用普通ssh软件登录进去之后,执行该程序,是这个结果是
20180320184401.png

现在发现问题是检测打开的文件是否是串口时发生错误。
  接下来我找到了出错的代码段:

int UART_Open(int fd,char* port)
{

    fd = open( port, O_RDWR|O_NOCTTY|O_NDELAY);//非阻塞,读写,无流控
    if (FALSE == fd)
    {
        perror("Can't Open Serial Port");
        return(FALSE);
    }
    //恢复串口为阻塞状态
    if(fcntl(fd, F_SETFL, 0) < 0)
    {
        printf("fcntl failed!\n");
        return(FALSE);
    }
    else
    {
        printf("fcntl=%d\n",fcntl(fd, F_SETFL,0));
    }
    //测试是否为终端设备
    if(0 == isatty(STDIN_FILENO))//**********此处为出错代码段**************
    {
        printf("standard input is not a terminal device\n");
        return(FALSE);
    }
    else
    {
        printf("isatty success!\n");
    }
    printf("fd->open=%d\n",fd);
    return fd;
}

目前我的程序就是主程序进入后立即打开串口,我实在想不通为何用qt启动和别的ssh软件登录启动会导致isatty函数返回值出现不同?请大家不吝赐教。
以下是我的qt远程主机配置
Deepin_Scrot_0544.png

#24 Re: 全志 SOC » v3s串口接收,只能一次接收32个字节,这是什么问题? » 2018-02-08 10:41:43

晕哥 说:

你用一个环形缓冲区实现,一个生产者,一个消费者,
消费者只分析缓冲区就可以。

ok!谢谢指点!

#25 全志 SOC » v3s串口接收,只能一次接收32个字节,这是什么问题? » 2018-02-07 22:53:55

zhen8838
回复: 5

我想用v3s解析gps数据。本来想得是可以读取到换行符停止。但是目前的现象是一串数据过来,比如45个字节,我串口接收到就变成长度32和13的两个数据。
例如我发送$GPGSA,A,1,,,,,,,,,,,,,99.99,99.99,99.99*30
接受到的信息如下

# ./uartRec
fcntl=0
isatty success!
fd->open=3
Receive 32
Receice 11

我的串口接收线程如下

static void *threadRead(void *arg)//串口读取线程
{
    while(1)
    {

        bufflen=UART_Recv(uartfd,RecvBuff,150);
        if(bufflen>0)
        {
            SendBuff=(char *)malloc(bufflen);
            memcpy(SendBuff,RecvBuff,bufflen);
            printf("Receive %d\n",bufflen);
            free(SendBuff);
        }
        usleep(1000);
    }
    return NULL;
}

串口接受程序如下

int UART_Recv(int fd, char *rcv_buf,int data_len)
{
    int len,fs_sel;
    fd_set fs_read;

    struct timeval time;

    FD_ZERO(&fs_read);
    FD_SET(fd,&fs_read);

    time.tv_sec = 10;//等待时间 秒
    time.tv_usec = 0;//等待时间 微妙

    //使用select实现串口的多路通信
    fs_sel = select(fd+1,&fs_read,NULL,NULL,&time);
    //printf("fs_sel = %d\n",fs_sel);
    if(fs_sel)
    {
        len = read(fd,rcv_buf,data_len);
        //printf("len = %d fs_sel = %d\n",len,fs_sel);
        return len;
    }
    else
    {
        //printf("Sorry,I am wrong!");
        return FALSE;
    }
}

请大家给些指点,或者给个思路怎样在一次只接收32字节的情况下解析gps。。。

#26 Re: 全志 SOC » 各位大神,V3S ts_calibrate可以校准,但qt5.9.1 程序触摸没有反应,是什么问题? » 2018-02-01 19:25:35

@zhuacai 我碰到过这个问题,我发现有个很蛋疼的地方,就是环境变量,我qt5.4.1,运行qt程序的时候触摸事件要写event0,,开始我是event1,,然后运行qt程序的时候就报错,运行tslib的测试没问题,后来我把他改成event0,运行qt程序的时候没有问题,就是tslib单独测试的时候有问题,但是我只用qt的程序,所以就没去管他了。

#28 Re: 全志 SOC » 想在荔枝派上使用spi、iic等外设,请大佬指条明路 » 2018-01-25 15:36:41

就是我现在就想类似于单片机的使用方法,可以写程序去调用函数去操作spi口,然后可以连接自己想连接的外设,这个该怎么实现

bugfix 说:

如果是V3s, 那么只有一组SPI, 如果你用了SPI Flash那就不能再用SPI外设了。

如果你用TF卡启动,可以参考这个: 荔枝派Zero V3s开发板驱动 ili9341 摆拍

#29 全志 SOC » 想在荔枝派上使用spi、iic等外设,请大佬指条明路 » 2018-01-25 14:51:48

zhen8838
回复: 11

目前我自己编译了系统上去,通过交叉编译一些程序也可以执行了,我试着写了个点灯的程序,是通过操作sys/class/gpio来完成的。目前我想使用iic以及spi,我发现在sys/class/i2c-dev 中有i2c-0 ,但是我的sys/class/spi-master 中没有任何文件,这是不是代表我没有spi外设可供使用? 刚开始学习linux,面对这些我有点摸不到头脑,希望有人可以帮我解惑

#30 Re: 全志 SOC » 交叉编译ssh到v3s上,configure openssh时出错,求助 » 2018-01-23 10:31:49

goodgoodstudy 说:

你是用dropbear,还是其他的sshd?

我现在就是直接在buildroot中选择openssh然后重新编译了,应该不是dropbear吧。。,我对这方面了解的还不够

#31 Re: 全志 SOC » 交叉编译ssh到v3s上,configure openssh时出错,求助 » 2018-01-22 23:10:39

谢谢……我重新编译了根文件,成功开起ssh了

#32 全志 SOC » 交叉编译ssh到v3s上,configure openssh时出错,求助 » 2018-01-22 19:02:54

zhen8838
回复: 5

我按照网上交叉编译的教程,到了

交叉编译openssh
/***以下为教程*****/
编译openssh会引用上面编译的zlib和openssl的安装目录,如下。

$ cd  ../openssh-6.6p1
$ ./configure --host=arm-none-linux-gnueabi --with-libs --with-zlib=/home/veryarm/ssh/zlib.install --with-ssl-dir=/home/veryarm/ssh/openssl.install --disable-etc-default-login CC=arm-none-linux-gnueabi-gcc AR=arm-none-linux-gnueabi-ar
$ make

/***以下我的命令****/

./configure --host=arm-linux-gnueabihf --with-libs --with-zlib=/home/zqh/ssh/zlib.install --with-ssl-dir=/home/zqh/ssh/openssl.install --disable-etc-default-login CC=arm-linux-gnueabihf-gcc AR=arm-linux-gnueabihf-ar

报错为

configure: warning: CC=arm-linux-gnueabihf-gcc: invalid host type
configure: warning: AR=arm-linux-gnueabihf-ar./configure: invalid host type
configure: error: can only configure for one host and one target at a time

这个错误该如何解决,本人刚接触linux,求助.....

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn