linux嵌入式
瑟寒凌风
这个作者很懒,什么都没留下…
展开
-
正点原子STM32MP157开发板的一些错误和解决方法
执行make menuconfig遇到错误错误1scripts/kconfig/Makefile:208: recipe for target 'scripts/kconfig/mconf-cfg' failedmake[1]: *** [scripts/kconfig/mconf-cfg] Error 1Makefile:567: recipe for target 'menuconfig' failedmake: *** [menuconfig] Error 2解决方法sudo原创 2020-12-28 14:07:33 · 2712 阅读 · 1 评论 -
ubuntu下一些报错和解决方法
ubuntu20.04下安装了python3后执行python --version提示python找不到默认情况下,Ubuntu 20.04随附Python 3作为默认python版本。它可以作为“ python3”命令而不是“ python”使用。sudo ln -s /usr/bin/python3 /usr/bin/python然后提示ln: 无法创建符号链接’/usr/bin/python’: 文件已存在这时发现使用命令python --version依然找不到python,原创 2020-12-24 15:41:54 · 7293 阅读 · 2 评论 -
linux下的常用操作(备忘)
1.设置TAB键为4字节VI编辑器默认TAB键为8空格,我们改成4空格,用 vi打开文件 /etc/vim/vimrc,在此文件最后面输入如下代码set ts=42.vim显示行号用 vi打开文件 /etc/vim/vimrc,在此文件最后面输入如下代码set nu3.设置软件更新服务器为中国点击ubuntu左上角的活动,搜索软件和更新4.更新本地数据sudo apt-get update5.软件安装更新和卸载(以串口工具为例)sudo apt原创 2020-12-08 12:53:01 · 315 阅读 · 0 评论 -
Orange Pi4在PC机上QT5开发环境的搭建
1.下载交叉编译工具下载地址:https://www.linaro.org/downloads/进去之后选择选择下的工具。将交叉编译工具 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz复制到你想要安装的目录,并解压,命令:hasee@ubuntu:/home/user$ sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz 我们.原创 2020-09-19 13:51:46 · 3245 阅读 · 2 评论 -
搜狗输入法在ubuntu18.04中乱码和在QT5中无法输入中文解决方法
乱码效果如下再切换一次输入法,又变正常。一直处于正常和乱码交替变化。目前按照网上的其它方法,删除搜狗目录文件,重启fcitx都无效。后来找到一个简单的方法:打开将搜狗设置到输入法的第二个位置,第一个位置我用英语来占位这样搜狗切换就没有乱码了。...原创 2020-09-17 09:59:22 · 708 阅读 · 0 评论 -
驱动开发:实现字符设备
本文通过操作寄存器实现led灯的亮灭#include <linux/init.h>#include <linux/module.h>#include <linux/platform_device.h>#include <linux/miscdevice.h>#include <linux/fs.h>#include <linux/moduleparam.h>#include <linux/stat.h>原创 2020-07-10 00:01:05 · 272 阅读 · 0 评论 -
令牌桶和漏桶的算法思想
在早期的计算机领域,限流技术(time limiting)被用作控制网络接口收发通信数据的速率。 可以用来优化性能,减少延迟和提高带宽等。 现在在互联网领域,也借鉴了这个概念, 用来为服务控制请求的速率, 如果双十一的限流, 12306的抢票等。 即使在细粒度的软件架构中,也有类似的概念。两种常用算法令牌桶(Token Bucket)和漏桶(leaky bucket)是 最转载 2018-01-03 19:16:19 · 866 阅读 · 0 评论 -
IO多路复用机制详解
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(BlockingIO):即传统的IO模型。(2)同步非阻塞IO(Non-blockingIO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(NewIO)库。(3)IO多路复用(IO...转载 2017-12-28 11:42:29 · 46665 阅读 · 15 评论 -
ARM七种异常源和异常处理流程
ARM七种异常源及其工作模式 异常源 含义 ...原创 2018-02-24 16:07:18 · 4684 阅读 · 0 评论 -
STM32中使用标准库重定义printf()函数
//重定义函数1PUTCHAR_PROTOTYPE{ /* Place your implementation of fputc here */ /* e.g. write a character to the USART */ USART_SendData(USART1, (uint8_t) ch); /* 循环等待直到发送结束*/ while (USART_GetFla...原创 2018-07-19 09:39:30 · 3777 阅读 · 0 评论 -
关于使用clock_gettime函数报错的问题
在linux下写C程序的时候,出现了这个错误error: ‘CLOCK_REALTIME’ undeclared (first use in this function) # define CLOCK_MONOTONIC CLOCK_REALTIME ^note: in expansion of macro ‘CLOCK_MONOT...原创 2018-09-13 14:26:17 · 10020 阅读 · 0 评论 -
字符设备驱动--- 数据结构 设备注册struct cdev , 注销
三种重要的数据结构 struct file - struct inode - struct file_operations: 在Linux 字符设备驱动程序中,有 3 种重要的 数据结构 . 1,struct file. 2,struct inode. 3,struct f转载 2017-12-09 16:46:28 · 164 阅读 · 0 评论 -
linux中class_create和class_register说明
本文介绍linux中class_create和class_register的相关使用方法1 class结构体介绍 内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_create(…)函数,可以用它来创建一个类,这个类存放于sysfs下面,一旦创建好了这个类,再调用device_create(…转载 2017-12-09 17:07:57 · 847 阅读 · 0 评论 -
c语言文件定位:fseek()函数和ftell()函数的使用
fseek函数是用来设定文件的当前读写位置:函数原型:int fseek(FILE *fp,long offset,int origin);函数功能:把fp的文件读写位置指针移到指定的位置. fseek(fp,20,SEEK_SET);//意思是把fp文件读写位置指针从文件开始后移20个字节.ftell函数是用来获取文件的当前读写位置;函数原型: l转载 2017-11-22 00:30:25 · 1584 阅读 · 0 评论 -
I2C协议
1.Abstract 前些天借用他人的一块MCS-51开发板来做实验,不想这块板子与我刚开始接触MCS-51的板子一样,实在是太亲切了!现在回过来看这块板子,功能算不上是太强大,麻雀虽小五脏俱全,该有的功能都有。于是又忍不住捣腾这块板子,倒不是写小程序一块,看着电路图,到处连线测试一下功能,从中体会下最初的学习兴奋感觉。 最初板子里边最难学会的有两处,一处是由I2C上挂上的一些器件,另...转载 2017-11-21 09:27:07 · 465 阅读 · 0 评论 -
关于ARM子程序跳转和中断跳转的流水线问题
因为ARM指令是三级流水线就是说取指,译指,执行时同时执行的 ,这样说吧,现在PC指向的是正在取指的地址,那么cpu正在译指的指令地址是PC-4(假设在ARM状态下,一个指令占4个字节),cpu正在执行的指令地址是PC-8.也就是说PC所指向的地址和现在所执行的指令地址相差8,尽管以后版本的指令流水线扩展为5级和8级,但是这一特性一直被兼容处理,也即pc(excute)=pc(fetch) -转载 2017-11-13 20:01:26 · 1017 阅读 · 1 评论 -
fcntl即F_SETFL,F_GETFL的使用,设置文件的flags,阻塞设置成非阻塞,非阻塞设置成阻塞(这连个在server开发中可以封装为基本函数)
1、获取文件的flags,即open函数的第二个参数: flags = fcntl(fd,F_GETFL,0);2、设置文件的flags: fcntl(fd,F_SETFL,flags);3、增加文件的某个flags,比如文件是阻塞的,想设置成非阻塞: flags = fcntl(fd,F_GETFL,0);转载 2017-11-09 22:54:47 · 2739 阅读 · 0 评论 -
linux管道pipe详解
管道管道的概念:管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:1. 其本质是一个伪文件(实为内核缓冲区)2. 由两个文件描述符引用,一个表示读端,一个表示写端。3. 规定数据从管道的写端流入管道,从读端流出。管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实转载 2017-11-08 17:48:08 · 504 阅读 · 0 评论 -
linux网络编程常用函数详解与实例
常用的网络命令:netstat命令netstat是用来显示网络的连接,路由表和接口统计等网络的信息.netstat有许多的选项我们常用的选项是 -an 用来显示详细的网络状态.至于其它的选项我们可以使用帮助telnettelnet是一个用来远程控制的程序,但是我们完全可以用这个程序来调试我们的服务端程序的. 比如我们的服务器程序在监听8888端口,我们可以用telnet loc转载 2017-11-07 15:23:19 · 492 阅读 · 0 评论 -
C语言SOCKET编程
这个文档是一个指南,而不是参考书。如果你刚开始 socket 编程并想找一本入门书,那么你是我的读者。但这不是一本完全的 socket 编程书。 --------------------------------------------------------------------------------平台和编译器 这篇文档中的大多数代码都在 Linux 平台PC 上用 GNU转载 2017-11-07 15:12:30 · 357 阅读 · 0 评论 -
bind函数详解
用socket创建网络编程接口------文件描述符。 “地方”定义了,下面就需要将socket放置在这个“地方”(TCP),将他们紧紧地捆绑在一起,用bind函数吧, 我们来看看函数原型:int PASCAL FAR bind (SOCKET s, const struct sockaddr FAR *addr, int namelen); 第一个参数当然是待绑定的套接字转载 2017-11-07 15:07:29 · 12259 阅读 · 0 评论 -
ARM中断VIC/GIC
1. CPSR定义31 30 29 28 27 7 6 5 4 3 2 1 0N Z C V Q I F T M4 M3 M2 M1转载 2017-11-21 11:37:07 · 2413 阅读 · 0 评论 -
linux中readl()和writel()函数
writel()往内存映射的I/O空间上写数据,wirtel()I/O上写入32位数据(4字节)。原型:#include void writel (unsigned char data , unsigned short addr )readl()从内存映射的I/O空间读取数据,readl从I/O读取32位数据(4字原创 2017-11-29 23:23:30 · 882 阅读 · 0 评论