- 博客(39)
- 资源 (8)
- 收藏
- 关注
原创 s3c2440移植Linux内核之引导
最近想尝试把新的Linux内核移植到tq2440的开发板上,看看还能不能顺利的跑起来。我的基础版本是买板子的时候提供的2.6.30版本,编译器版本是4.3.3.。
2024-08-25 23:30:53
1025
1
原创 虚拟机Ubuntu误操作导致无法自动联网的解决办法
直接上解决办法:安装netplan.io。sudo apt install netplan.iosudo netplan apply
2024-08-25 23:26:46
565
1
原创 Linux控制I2C/SMBus设备
平台:树莓派 bcm2835 Raspberry Pi 3 Model B Rev 1.2I2C是Philips开发的一种两线通信协议,常用于一些对速度要求不高的小型器件上。SMBus是系统管理总线,基于I2C协议,大部分情况下二者兼容。这次使用mpu6050作为I2C外设,学习Linux下I2C的应用开发。树莓派默认I2C可能没有打开,需要配置重启,具体方法这里不赘述。最终会在/dev下生成i2c-1设备。1、需要的头文件2、打开I2C设备打开设备文件与打开普通...
2020-11-14 23:54:48
994
原创 GD32VF103之GPIO最小配置
longan nano是Sipeed(矽速科技)推出的开发板,使用兆易创新的gd32vf103cbt6芯片,该芯片是基于芯来科技的Nuclei Bumblebee处理器的32位通用微控制器,Bumblebee处理器是基于RISC-V架构指令集开发,由芯来科技(Nuclei System Technology)和台湾晶心科技(Andes Technology)联合开发。gd32vf103cbt6跟stm32的使用非常相似,如果使用C开发,基本上与指令集架构没啥关系。本文介绍GPIO的最小配置,不...
2020-11-14 23:51:54
1276
原创 GD32VF103之CRC
在GD32VF103内部有一个CRC(循环冗余校验计算单元),使用它可以对数据的完整性和正确性进行校验,比如固件的完整性和正确性校验、通信数据的校验等。它使用固定的32位多项式:0x4C11DB7: X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1 。该 32 位 CRC 多项式与以太网 CRC 计算多项式相同。CRC的寄存器只有三个:数据寄存器、独立数据寄存器、控制寄存器。数据寄存器接收输入数据并保存计算结果。独立数据寄存器是一个独立的数
2020-11-14 23:46:32
793
原创 Linux usb live修复Linux grub启动
参考:先装了Linux,之后安装win10导致linux启动不了,想用usb live拯救,通过下面的方法可以。1、挂在分区 先将你的linux所有分区挂载, 挂载根分区:sudo mount /dev/sdxN/mnt 如果给boot和home独立分区,也挂载上来(很重要)。 挂载home:sudo mount /dev/s...
2019-10-10 13:56:49
808
原创 python学习小总结
所有的方法都可以通过官方的文档找到详细的使用说明,方法属性,示例。一般都是通过baidu先查一下,再查看官方文档进一步学习。字符串处理:str.split('a',n),a代表分割字符串,n代表分割几次str.replace('a','b') ,a代表需要替换的字符串,b代表替换后的字符串,可以为空。如果为空相当于去掉指定的字符串。str[n1:n2],截取字符串n1到n2之间的子...
2019-06-26 14:05:50
743
原创 python之股票小工具开发学习
一个简单粗糙的python写的显示股票k线和买卖点的小工具。用了新浪的源,主要是学习python的编程。本软件仅供学习交流,任何问题与本人无关,特此声明。侵删。用到的知识点:1、requests模块获取http网页信息2、matplotlib画图,包括mpl_finance画k线,pyplot画界面,widgets添加小工具代码:1、import reque...
2019-06-25 18:27:16
933
原创 学python之微信跳一跳手动工具版
此工具只用于学习交流使用,侵权删。利用python写一个脚本,精确控制跳的距离。用到的模块:import osimport timeimport randomimport numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animationfrom PIL import Ima...
2019-06-24 12:25:31
323
原创 数莓派Simple Bootloader设计相关知识点
目的:学习数莓派裸机编程需要不断的插拔sd卡,即不方便也加快了磨损,所以设计这个简单的bootloader方便调试。简介:bootloader包括置于sd卡中的镜像和电脑端的下载软件,通过串口可以将新的测试kernel镜像下载到内存中。(minicom功能暂时没有)有下载hex格式和binary方式。设计细节:思路是将bootloader部分放到2M地址处,重启数莓派后进入bo...
2019-06-05 16:08:34
212
原创 vim实用配置
将自己的vim配置写在~/.vimrc文件中。1、set nu :设置显示行号;2、set ts=4:设置tab宽度为四个空格3、set expandtab:将tab用空格替换4、set autoindent:换行自动缩进对齐5、set mouse=n/a/v/h/i/c: 设置鼠标生效模式...
2019-05-20 12:33:49
248
翻译 Ubuntu数据恢复软件testdisk
TestDisk是OpenSource软件,根据GNU通用公共许可证(GPL v2 +)的条款获得许可。TestDisk是功能强大的免费数据恢复软件!它主要用于帮助恢复丢失的分区和/或使这些症状由故障软件引起的非启动磁盘再次启动:某些类型的病毒或人为错误(例如意外删除分区表)。使用TestDisk进行分区表恢复非常简单。TestDisk可以修复分区表,恢复已删除的分区从其备份中恢复F...
2019-05-07 11:46:54
3425
原创 Mingw、Cygwin和msys2
Mingwmingw是最简Windows系统GNU开发环境工具集合。没有在Windows部署POSIX运行时环境,网站:http://www.mingw.org/CygwinCygwin是一个在Windows系统上提供类似Linux功能的大型的GNU和开源工具的集合,通过cygwin1.dll提供大量的POSIX API功能,使人们可以在Windows上按照Linux的方式使用。W...
2019-04-04 18:27:14
735
原创 Ubuntu使用记录
一、关于/boot分区大小的说明网上很多教程都说分区大小为200M即可,的确,正常情况下该目录下的文件大小总共也就90M不到,但是系统会更新,这样/boot下会存在多个不同版本的内核和启动相关文件,这是大部分系统提示/boot空间不够用的原因。遇到这种情况可以将旧的内核及相关文件删除。这里也建议以后给/boot分区可以适当分的大一些,比如500M,可以省去不少麻烦。下面说一下移除旧内核的方...
2019-01-07 17:05:51
617
原创 c语言宏的使用
1、用局部代替整体#define ABC(_1,_2,_3,N,...) N 预处理后用N代替整个宏2、使用__VA_ARGS__代替可变参数#define ABC(a,b,...) DEF(a,__VA_ARGS__) 预处理后b参数将被丢弃,__VA_ARGS__代表可变参数(...)的宏3、gcc编译带宏使用gcc编译时使用-D选项可以指定一个全局宏,...
2018-11-21 19:21:37
355
原创 初学linux的fork笔记
fork函数用来创建linux进程,使用前需要头文件 #include <unistd.h>,函数原型如下: pid_t fork(void);执行命令后会创建一个与调用进程相同的进程,调用进程称为父进程,新建的进程称为子进程。两个进程有如下一些特点:1、在父进程中该函数返回子进程的ID号,在子进程中函数返回0;2、子进程与父进程的全局变量名称和地址相同...
2018-11-09 16:23:29
231
原创 peterson算法
peterson算法是通过软件实现互斥的算法,它的实现简单巧妙。算法说明:使用一个bool数组和一个整型变量,前者用来表示是否需要使用共享资源,后者表示谁可以使用共享资源。//使用一个布尔数组和整形变量volatile bool lock[] = {false, false};volatile int turn; 进入lock函数首先将lock[0]变量置为true,tu...
2018-11-08 13:46:17
3063
翻译 UFS之Power Mode
UFS支持7种Power Mode,其中4种基本模式和3种过渡模式。通过START STOP UNIT命令和其他一些属性控制。电源模式独立于上下行链路的状态。1、模式下表列出了7种模式的一些基本信息: Mode Describe M-PHY status Mode transition Acti...
2018-10-29 19:55:13
3025
翻译 UFS之上电和下电
UFS有三组供电电压VCC、VCCQ和VCCQ2,VCC负责闪存颗粒的供电,VCCQ负责闪存输入输出和UFS控制器的供电,VCCQ2则负责M-PHY等低电压模块供电。UFS对三组电源的时序和电压有一定的要求,需要在设计电路和实际操作中注意。1、上电要求定义: Ta:VCCQ或VCCQ2最先到达300mV的点。要求:在到达Ta以后,VCCQ2应该大于VCCQ-200...
2018-10-29 17:06:26
4383
翻译 UFS之复位
UFS设备有5种复位方式,不同的复位方式实现的方式、产生的效果和作用不尽相同。1、上电复位(Power-on Reset)VCCQ, VCCQ2 and VCC掉电再上电可以触发上电复位,需要上电检测电路来保证系统上电后进入确定的状态。2、硬件复位(Hardware Reset)UFS设备有专用的硬件复位信号,复位信号为低电平有效,电平持续时间应该大于等于1us,小于100ns的信...
2018-10-29 16:18:47
3303
原创 stm32的HAL库i2c从机实现
stm32的i2c默认就是slave模式,本文基于HAL库实现中断方式的接收和发送,首先是初始化gpio和i2c,代码如下:I2C_HandleTypeDef I2cHandle;void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle){ GPIO_InitTypeDef GPIO_InitStruct; __HAL_RCC...
2018-08-30 21:34:30
19669
5
原创 c语言常见小错误记录
使用C编程经常会碰到各种各样的问题,很多问题都是小错误引起的,却不太容易发现,在此记录一下。1、调用空指针 这是一个比较常见的错误,申明了某个类型的指针变量却没有给其赋值,之后直接调用就会发生这种问题,如果在单片机中一般会发生死机的情况。 对于指针的使用,通常都会先判断非空再使用,这样可以极大的避免这类错误。2、类型申明错误 ...
2018-08-02 16:07:11
1221
原创 stm32串口HAL库的DMA发送问题
本文使用stm32f411ret的串口1的DMA方式发送数据,刚开始调试的时候发现串口只能发送一次数据,之后就把系统hang住了。通过网上搜资料和不断尝试,发现问题是中断回调函数没有写的原因。使用HAL库的DMA,需要同时实现DMA中断回调函数和串口中断回调函数。void DMA2_Stream7_IRQHandler(void){ HAL_DMA_IRQHandler(Uar...
2018-08-01 00:09:57
8447
原创 Beaglebone相关操作
1、ubuntu通过终端登陆beaglebone2、通过scp复制文件或目录3、创建链接4、WiFi配置 5、加载uio_pruss模块sudo modprobe uio_pruss
2018-07-29 19:27:16
315
原创 stm32的gpio模拟iic小记
在用stm32的模拟iic读取mpu6050时发现读whoami寄存器为0xd1,而正确的值应该为0x68,导致这个问题基本上有以下几个原因: 1、如果是杜邦线连接,线太长且线质量不好会导致这个问题; 2、上拉电阻不合适,上拉电阻不合适的话会导致iic两根线上的波形不好; 3、gpio的输出模式不对,推挽输出可以改为浮空输出。 4、波形不好 解决办...
2018-06-24 10:29:15
2216
原创 Ubuntu重装系统后重新挂载独立的分区的home目录
Ubuntu系统不明原因不能正常启动,所以想重装系统,最开始装系统时给/home分了独立的分区,所以安装时只格式化了boot和/,想着转好后直接利用原来的home目录,但是装好后发现系统重新建了home,而原来home的分区被独立挂载了。 为了让原来的/home在系统启动时挂载,需要下面一些操作: 1、查看home分区的UUID 2、修改/etc/...
2018-06-07 23:37:50
4382
原创 让Arduino IDE成为非官方板子的开发环境
有时候我们会自己画基于atmega328的板子,也许这个板子与原来的arduino板子有一些差别,比如晶振不同,此时我们可以对Arduino的开发环境做一点小修改,来适配我们自定义的开发板。 在\hardware\arduino\avr路径下有一个boards.txt文件,这个文件中定义了所有arduino官方适配的板子。我们要做的很简单,就是按照它的格式添加一天记录即可,比如:
2016-10-07 11:39:19
6010
原创 ardupilot的libraries之PID
在源码的libraries中,有两个关于PID的源文件文件夹,一个叫AC_PID,另一个是PID。AC_PID中又细分为AC_HELI_PID、AC_P和AC_PID, 这里我们只讨论AC_PID。PID文件夹中只有一个PID类,下面分别列出这两个类中的属性和方法,并大致描述其功能和实现细节,源码请自己下载阅读。 AC_PID 构造函数(略) float
2016-03-26 23:40:44
1784
1
原创 Arduino通过串口发送结构体
Arduino的串口有两类发送的函数Serial.print()类和Serial.write()类,前者以Ascii码的形式将要发送的内容编码发送,所以我们最后接收并看到的是一个一个的ASCII码组合而成的数据,本质上成了字符串;后者则以字节形式直接发送原始数据,所以我们在串口接收工具看到的数据是乱码,它们在计算机中就是这样存储的。 有些时候,我们可能会自己定义数据结构,比如结构...
2016-03-18 18:39:16
9015
4
原创 Debian安装Arduino IDE
Arduino是近几年非常流行的一款开源硬件,学习使用后发现,Arduino在Linux下编译要比在Windows下快很多,具体原因我不懂,不过哪个快就用哪个,这时我一惯的作风。Linux系统安装Arduino比较简单,安装包和安装方法在Arduino的官网都有提供,网址:https://www.arduino.cc/en/Guide/Linux安装包下载好以后,解压可以双击操作,也可以用
2016-03-12 14:22:33
1970
原创 C语言中易被忽略或者混淆的东西
大学一年级开始学C 语言,但许多知识还不是很清楚,有些则停留在概念阶段,实际操作时常常搞的乱七八糟。为了更深入理解C语言,把一些概念和知识记录下来,以方便查阅。C 语言中最常出现的就是变量和函数,而且有不同的类型,变量有auto,static,register,extern,函数有static和extern。对于变量:auto:一般我们在函数内部申明的没有特殊关键词的变量都是a
2016-03-11 17:15:25
874
原创 Debian8初始配置
安装sudodebian默认没有sudo用户,这对于安装软件及一些需特权的操作很不方便,安装sudo指定普通用户有系统管理的权限。首先,切换到root用户下root# su root确定后输入root密码输入以下指令root#aptitude install sudo //安装sudoroot# chmod +w /etc/sudo
2015-11-02 12:29:23
2432
原创 Debian8安装
系统下载和安装1、下载Debian的下载是很方便的,在浏览器输入Debian,第一个或第一页能够直接看到他的官网链接https://www.debian.org/,点击进入官网,点击Getting Debian,进入选择下载项的页面,这个页面提供了多种下载方式——网络、liveCD、BT下载等等,根据自己的喜好选择一个,个人比较喜欢BitTorrent下载。DVD一般下载前两张
2015-11-01 14:14:19
1702
原创 GRUB2引导修复
本来是想把GRUB2装到U盘,却不小心把电脑的GRUB搞坏了。原因可能是我执行命令grub-install时没有加任何参数,由于不知道没有参数怎么执行,我赶紧ctrl+c终止了安装,最后重启后发现系统无法启动,进入了grub rescue模式。庆幸的是,重启之前我成功给u盘装了grub2,这可帮了我大忙了。其实恢复GRUB有多种方式,比如用系统盘或U盘启动盘,我这种方式主要是为了熟悉GRUB,
2015-11-01 12:33:10
10850
1
原创 ArduPilot/APM源码学习笔记(一)
最近开始学习ArduPilot/APM飞控的源码, 源码托管在github上。源码链接:https://github.com/diydrones/ardupilot。飞控主页:http://ardupilot.com/;飞控的开发者官网网址为:http://dev.ardupilot.com/。学习源码主要在开发者(developer)网页,官方提供了较为详细的代码编译和源码学
2015-10-11 10:33:43
6648
原创 GitHub的Markdown语法笔记
文本处理加粗:用**或__将想要加粗的对象括起来,例:**BOLD**斜体:用*或_将要斜体显示的对象括起来,例*Italic*代码输入(注意:` 不是 ',前者为键盘左上角与波浪线同一按键的符号,不是后者单引号)1、可以在想要以代码显示的字段前输入4个空格2、用```将要显示为代码的字段表示出来,例: ```(代码类型:Python、JavaScript .et
2015-10-01 22:30:11
765
翻译 Ubuntu下useradd使用笔记
1.作用useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是root用户或第一个有root权限的用户。2.格式useradd [options] name3.options(选项) -b:新账户的家目录的基目录;-c:加上备注文字,备注文字保存在passwd的备注栏中;-d:新账户的家目录;-D:打印或改变默认的useradd配置;-e:指定账
2015-10-01 20:26:45
797
Linux系统i2c设备工具
2018-07-28
eagle 原理图转ad原理图脚本
2016-11-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人