自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嵌入式

嵌入式爱好者!

  • 博客(830)
  • 资源 (7)
  • 收藏
  • 关注

原创 解决imx6ull开发板加载驱动disagrees about version of symbol module_layout失败问题

一、环境1、 硬件 100ask_imx6ull单板。2、软件环境,提供的开发环境。二、报错信息hello_drv: disagrees about version of symbol module_layoutinsmod: ERROR: could not insert module hello_drv.ko: Invalid module format三、解决1、查看板卡的内核信息cat /proc/version2、更新下内核使用Buildroot编译出的emmc.im

2022-02-12 11:23:26 811

原创 uboot编译报错 dtc: command not found解决办法

编译uboot 报错解决办法sudo apt-get install -y device-tree-compiler再次编译,编译成功

2021-01-12 22:54:59 1625

原创 AD导出PDF内容显示不全解决办法

DXP—>Preferneces—>Schematic—>General下取消Render Text with GDI+

2021-01-12 09:47:01 6353

原创 Linux内核定时器使用

内核定时器是内核用来控制在未来某个时间点(基于jiffies)调度执行某个函数的一种机制,其实现位于内核源码 linux/timer.h 和 kernel/timer.c 文件中。被调度的函数肯定是异步执行的,它类似于一种“软件中断”,而且是处于非进程的上下文中,所以调度函数必须遵守以下规则:没有 current 指针、不允许访问用户空间。因为没有进程上下文,相关代码和被中断的进程没有任何联系。不能执行休眠(或可能引起休眠的函数)和调度。任何被访问的数据结构都应该针对并发访问进行保护,以

2021-01-07 13:39:51 292

原创 Linux内核架构图

2021-01-05 15:06:20 224

原创 GNU C 与 ANSI C的区别

GNU C 与 ANSI C的区别零长度数组GNU C允许使用零长度数组,定义变长度对象时比较方便struct var_data { int len; char data[0];};var_data的大小仅为一个int型,data是常量地址,data[index]是访问其后的内存空间。可以使用如下方式遍历数据struct var_data data;for(i=0; i<data.len; i++){​ printf("%x ", data.data[i]);}cas

2021-01-05 14:09:43 226

原创 2021年自己需要完成的事情

2020年的即将过去,2020年是极其不平凡的一年,这个每个人都知道,到现在为止,我居住的地方还在被化为中风险地区,珍惜生命吧。看到自己的2020的计划,基本上是没有按照路线走,2020做的也太杂,经历了很多人生中的大事,但是自己的能力确实在不知不觉提高了一些。2021年,最重要的就是要换一个工作了,不为别的,只为薪水。下面罗列自己在将来的2021年计划要完成的事情。1、QT图形化编程的深入,在学习QT的同时,也学习了C++,否则单纯地学习C++是一个很枯燥的过程,在这一年内,至少做6-10个基于QT

2020-12-30 09:14:45 607

原创 vim配置文件之.vimrc

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 通用设置"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""let mapleader = "," " 定义<leader>键set nocompatible " 设置不兼容原始vi模式filetype on .

2020-12-29 22:22:51 239

原创 vim 高级操作总结

ctrl + z ===> 将vim放到后台fg ===> 将vim放到前台b/B ===>往回退一个字{ ===>移动到上一个段落 } ===>移动到下一个段落0 ====>移动到行首$ ====>移动到行尾:set hlsearch ====>设置搜索高亮效果* ====>搜索目前游标的这个字fx ==

2020-12-28 17:44:07 139

原创 WSL使用NFS

微软的WLS下挂NFS系统是失败的,因为内核不支持,此路是不通的,至少目前我是没有找到解决办法,可以使用hane winNFS替代。

2020-12-14 16:17:32 1808

原创 STM32介绍

我购买的开发板照片什么是STM32从字面意义来看:ST:意法半导体,是一个公司的名字。M:Microelectronics的缩写,表示微控制器32:32bit的意思,表示这是一个32bit的微控制器开发板使用的是STM32F103ZET6芯片,内部资源如下(1)内核:32位 高性能ARM Cortex-M3处理器。时钟:高达72M,实际还可以超频一点。单周期乘法和硬件除法。(2)IO口:STM32F103ZET6: 144引脚 112个IO,大部分IO口都耐5V(模拟通道除外)

2020-12-02 15:25:04 3705

原创 STM32中USART串口通信实验

声明:所有资源均来自于普中STM32F103开发板相关资料,这是自己购买的一款开发板,如果原作者认为侵权,请联系我以便及时处理。STM32F1的USART介绍USART即通用同步异步收发器,它能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。UART即通用异步收发器,它是在USART基础上裁剪掉了同步通信功能,同步和异步主要看其时钟是否需要对外提供,这个前面也介绍了。我们开发板上使用的STM32F103ZET6芯片含有3个USART,2个UART外设

2020-12-02 14:37:18 5151

原创 STM32中printf重定向

声明:所有资源均来自于普中STM32F103开发板相关资料,这是自己购买的一款开发板,如果原作者认为侵权,请联系我以便及时处理。printf重定向简介C语言中printf函数默认输出设备是显示器,如果要实现在串口或者LCD上显示,必须重定义标准库函数里调用的与输出设备相关的函数。比如使用printf输出到串口,需要将fputc里面的输出指向串口,这一过程就叫重定向。那么如何让STM32使用printf函数呢?int fputc(int ch,FILE *p) //函数默认的,在使用print

2020-12-02 11:00:06 5115 3

原创 STM32独立看门狗实验

声明:所有资源均来自于普中STM32F103开发板相关资料,这是自己购买的一款开发板,如果原作者认为侵权,请联系我以便及时处理。IWDG介绍STM32F1芯片内部含有两个看门狗外设,一个是独立看门狗IWDG,另一个是窗口看门狗WWDG。两个看门狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障。独立看门狗简单理解其是就是一个12位递减计数器,当计数器从某一个值递减到0时(如果看门狗已激活),系统就会产生一次复位。如果在计数器递减到0之前刷新了计数器值,那么系统就不会产生复位。这个刷新计

2020-12-02 10:13:46 1354

原创 keil5中输入中文注释乱码解决

打开Edit------->Configuration在弹出的对话框中选择Editor—>Encoding-----> Chinese GB2312(Simplified)再次编辑,发现输入中文正常了。

2020-12-02 10:00:27 17681 1

原创 shell实现的俄罗斯方块游戏

该脚本测试可以运行起来,但是实际使用发现功能不太正常。主要可以学习一下里面的一些语法。#!/bin/bash# Tetris Game# 10.21.2003 xhchen<[email]xhchen@winbond.com.tw[/email]>#APP declarationAPP_NAME="${0##*[\\/]}" #print exec nameAPP_VERSION="1.0"#颜色定义cRed=1cGreen=2 cYellow=3 cBlue=4

2020-11-04 15:59:56 127

原创 海思交叉编译工具链安装脚本

该脚本在海思arm-hisiv500-linux.sh文件中,内容如下,可以作为以后自己的shell脚本的参考#!/bin/bashTOP_DIR=/opt/hisi-linux/x86-arm#TOP_DIR=/home/share/toolchains/installTOOL_DIR=$TOP_DIR/arm-hisiv500-linuxTAR_BIN_DIR=$TOOL_DIR/target/binBIN_FILES=$TOOL_DIR/bin/arm-hisiv500-linux-uc

2020-10-28 16:28:14 522

原创 C中计算某段代码运行时间框架

struct timeval start, end; gettimeofday(&start, NULL); /** to calculate code */gettimeofday(&end, NULL); long long total_time = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec); // get the run time by microsecondp

2020-10-28 15:55:21 124

原创 telnet下使用shell交互式登录

#!/bin/bashhi_login(){ /usr/bin/expect<<-EOF spawn telnet 192.168.0.160 24 expect { "(none) login:" { send "root\n" } } expect eof EOF}hi_login

2020-10-28 15:47:42 946

原创 海思平台freetype矢量字体库的交叉编译

下载源码,并将其解压tar vxf freetype-2.4.10.tar.bz2进入到解压目录,进行交叉编译和平台配置cd freetype-2.4.10/./configure --host=arm-linux CC=arm-hisiv500-linux-gcc --prefix=/home/ubuntu/temp/__INSTALL_freetype_ARM编译并安装make && make install将编译的库文件放置海思交叉编译环境下的库路径下 s

2020-10-28 09:33:34 484

原创 awk基础

文本处理工具 awk命令格式awk [options] -f awk-script-line filename options: -F:定义输入字段分隔符,默认的分隔符是空格或者制表符(tab) command: BEGIN{} {} END{} 行处理前 行处理 行处理后awk 'BEGIN{print 1+1} {print "demo"} END{print "end....."}' passwd

2020-10-15 16:32:00 73

原创 chattr 设置重要的文件不可以删除

sudo chattr +i a.c rm a.c # fail sudo rm -rf a.c # fail sudo chattr -i a.c rm a.c # ok

2020-10-15 11:15:53 251

原创 Linux下操作小技巧

vim打开文件,替换文件中的内容将IP地址114.114.114.114替换为114.114.114.200\1为一个占位,等价于前面小括号中的内容:%s/\(114.114.114.\)114/\1200/

2020-10-13 09:14:29 155 1

原创 Linux中C验证线程的几种退出方式

/* 验证线程的几种退出方式 */#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <string.h>#include <pthread.h>void* myfunc(void* arg){ printf("child pthre

2020-10-12 10:47:56 528

原创 shell中shift使用

#!/bin/shwhile [ $# -ne 0 ]do let num+=$1 shift 2doneecho "num : ${num}"测试结果

2020-10-12 10:09:23 152

原创 shell函数中数组传递参数

#!/bin/sharray=(1 2 3 4 5)echo "${array[@]}"func_demo(){ value=0# for i in "$@" for i in $* do let value+=$i done echo $value}func_demo ${array[@]} #数组所有元素的值echo "1111111111111"func_demo ${array[*]}测试结果...

2020-10-12 09:51:20 655

原创 shell实现并发检查某个网段IP

#!/bin/sh> ip.txtfor i in {1..255}do { ip=192.168.8.$i ping -c4 -W1 $ip >&/dev/null if [ $? -eq 0 ];then echo "$ip" | tee -a ip.txt fi }&donewaitecho "ok"

2020-10-09 14:34:55 110

原创 shell命令行传递参数

shell命令行传递参数及其校验#!/bin/shif [ $# -eq 0 ];then echo "usage: `basename $0` filename" exit 1fiif [ ! -d $1 ];then echo "error file type" exit 2fifor dir in `ls $1`do echo "$dir"doneshell重新定义分隔符#希望for处理文件按照回车分隔,而不是空格或者tab#重新定义分隔符#IFS内部字段分隔符

2020-10-09 14:33:23 937

原创 shell实现变量的替换

string/old/newunset urlurl=www.github.com.cnecho ${url/github/sina}变量的替代${变量名-新的变量值}如果变量没有被赋值,会使用新的变量值替换;如果变量有被赋值,包括空值,不会被替代。${变量名:-新的变量值}如果变量没有被赋值,包括空值,会使用新的变量值替换;如果变量有被赋值,不会被替代。...

2020-09-30 13:17:06 437

原创 shell的索引及切片

var:start:end

2020-09-30 13:02:20 619

原创 shell中变量内容的删除

# 从前向后匹配## 从前向后匹配,贪婪匹配% 从后向前匹配%% 从后向前匹配,贪婪匹配

2020-09-30 12:15:48 419

原创 shell中的算术运算使用

exprexpr 1 + 3num1=10num2=20expr $num1 + $num2C语言方式echo $((3 + 4))方括号[ ]echo $[5 + 3]let命令let sum=1+1echo $sum

2020-09-30 09:23:55 91

原创 shell中的死循环示例

#! /bin/bash for (( ; ; )) #死循环do echo "+++" sleep 1 echo "---"done测试结果

2020-09-28 16:47:20 564

原创 shell中的特殊符号使用() ``

显示当前系统/的剩余空间df -h | grep '/$' | awk '{ printf $4 }'()等价于 ``

2020-09-28 09:29:34 2299

原创 C实现itoa函数的的一种方式

#include <stdio.h>#include <string.h>#include <stdlib.h>void my_toupper(char * str){ while(*str != '\0') { if((*str >= 'a') && (*str <= 'z')) *str += 'A' - 'a'; str++; } retur

2020-09-27 16:19:50 154

原创 C实现DNS到IP地址的实现

#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <netdb.h>#include <arpa/inet.h>#include <sys/socket.h>int dns2ip(const char *domain, char * ip, int len){ char **pptr

2020-09-27 13:16:06 196

原创 virtual box 报错VT-x is not available (VERR_VMX_NO_VMX)解决办法

前提是以前用着虚拟机没有问题,突然出现这个问题的解决办法。首先BIOS需要打开VT-x的支持。保存信息VT-x is not available (VERR_VMX_NO_VMX). 返回 代码: E_FAIL (0x80004005) 组件: ConsoleWrap 界面: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}解决1、管理员身份打开cmd2、bcdedit 并回车,找到hypervisorlaunchtype选项发现为auto3、b

2020-09-25 10:22:47 3386 4

原创 sqlite数据库操作

数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合。sqlite数据库:是一种小型的关系型轻量级的嵌入式数据库。支持数据库大小至2TB;足够小,全部源码大致3万行c代码,250KB,比目前流行的大多数数据库对数据的操作要快。1-- 安装数据库: sudo dpkg -i *.deb2-- 创建数据库 sqlite3 stu.db //不存在则创建并打开 存在打开3-- sqlite命令 系统命令 以 "."开头 普通命令 ,

2020-09-25 09:08:17 132

原创 UDP模型流程及其函数

服务器创建套接字 socket( )填充服务器网络信息结构体 sockaddr_in将套接字与服务器网络信息结构体绑定 bind( )进行通信 recvfrom( )/sendto( )客户端创建套接字 socket( )填充服务器网络信息结构体 sockaddr_in进行通信 sendto( )/recvfrom( )函数sendto( )#include <sys/socket.h>ssize_t sendto(int socket, const void *mes

2020-09-24 13:26:58 114

原创 socket网络编程TCP中C/S架构函数框架

服务器端创建套接字 socket( )填充服务器网络信息结构体 sockaddr_in将套接字与服务器网络信息结构体绑定 bind( )将套接字设置为被动监听状态 listen( )阻塞等待客户端的连接请求 accept( )进行通信 recv( )/send( )客户端创建套接字 socket( )填充服务器网络信息结构体 sockaddr_in发送客户端的连接请求 connect( )进行通信 send( )/recv( )socket( ) #include <s

2020-09-24 13:22:20 257

source_list.zip

树莓派镜像源文件,是清华的镜像源,实测可以使用,将文件覆盖到对应的位置即可。

2019-10-30

linux驱动书籍

该压缩包内为一本linux驱动书籍,一共23章,貌似和宋宝华的linux驱动书籍相似,可以参考下载!!

2019-04-11

宋宝华LINUX驱动书籍前言部分

宋宝华LINUX驱动书籍前言部分,为宋宝华linux驱动书籍的介绍,摘取的前言目录部分。

2019-04-08

ximnd操作基础

该文件为.xmind格式文件,介绍了xmind软件的基本使用技巧,和我的博客的内容一致,博客内容是从该文件导出成图片格式的。欢迎下载学习!!!!

2019-03-31

qt_c++源码

这是一个入门级别的QT测试代码,在别人的基础上做了简单的修改,供参考学习

2019-02-27

google插件

使用的是一些常用的google浏览器插件,还是比较全的插件!

2018-10-26

pyqt5第一章

最新版本的pyqt的第一章资料,内有如何搭建pyqt5环境的说明!

2018-10-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除