- 博客(78)
- 资源 (16)
- 收藏
- 关注
原创 树莓派搭建存储服务器
准备用树莓派4做一个存储服务器,原本是想用 OMV5 的,但是发现磁盘挂载不上去,最后挂上去之后,docker 的运行好像又有问题,就抛弃 OMV5 了,纯粹作为一个存储服务器用了因为我有个需求,就是同步我在平板上对电子书记录的笔记,现在用的是 wps offic 的同步,充了个会员,发现同步基本还是可以的,但是后面发现,对 pdf 的一点修改,wps office 会把整个 pdf 重新上传,当修改比较大的 pdf 时,就会花很多时间去同步。后面发现 verysync(微力同步) 具有增量同步的功能,
2020-11-08 11:10:27
1345
原创 警惕数组指针的类型转换
前言指针一直是 C语言 中一个比较复杂的部分,指针赋予了 C语言 高度的灵活性的同时,也带来了对程序员素质的高要求性这篇文章的目的在于介绍在对指针数组做类型转换时需要注意的问题正文类型转换是很常见的一种操作,编译器会在隐式类型转换时提出警告,但是在你强制类型转换后就不会警告了,不过不警告不代表没有问题,可能在编译时没有问题的程序在运行时才出现问题,甚至在运行多次才出现问题例如如下的一段简单的代码#include <stdio.h>int main(){ __int8
2020-06-11 08:41:41
770
原创 快速入门 FFT
快速入门 FFT本文适合不想完全了解 FFT 原理不过想实现 FFT 算法的人FFT 简介FFT 也就是常说的快速傅里叶变换,其实本质上和傅里叶变换没有什么不同,也就是通过算法减少了一些乘法和加法的运算;DFT 的时间复杂度是 N² 级别的,而 FFT 的却是对数级别的复杂度,从而在 FFT 在数据量大的时候运算时间并不会高太多,这就使得 FFT 具有了在工程上的使用价值FFT 算法简介上面这张图是来自维基的介绍,简单来说的话,FFT 将数据按照索引地址按奇数和偶数分为两半,这两半数据还可以继续
2020-06-03 09:16:36
986
原创 sd卡spi驱动(3)--FatFs移植
移植需要的操作移植最基础的 disk_status disk_initialize disk_read,现在先实现最简单的功能,disk_status 直接返回 0,disk_initialize 就 SD 卡的初始化,disk_read 就 SD 卡的读块f_open 返回 FR_NO_FILESYSTEM 问题一开始在移植完 SD 卡底层函数之后,发现 FatFs 在 f_open 的时...
2020-04-30 08:40:01
937
原创 sd卡spi驱动(2)--SD卡读写块
读写注意事项SD 卡的读写要分情况,虽然每次读写都是以块为单位,但是 SD 卡的指令寻址有区分,指令寻址就是命令的参数部分,如下图的 CMD17 命令的 data address 部分从数据手册可以看出,这个寻址方式在 SDSC(<=2GB)上是按字节寻址,在 SDHC(4GB-32GB) 和 SDXC(64GB-2TB) 上是按块寻址,具体是什么类型的卡,可以通过读取 OCR 寄存...
2020-04-29 08:43:05
1579
原创 sd卡spi驱动(1)--初始化
SD卡不同通信方式时的信号线模拟 SPI 通信这里需要注意的是 GPIO 是否有被复用,或被其他任务占用。SPI 通信模式有四种,分别是 CPOL(时钟极性) 和 CPHA(时钟相位) 为 0 和 1 的情况在维基百科有张图将这四种情况很好的表现出来了时钟是循环的,每个时钟可以分为上升沿和下降沿,数据在哪个边沿采样就是由 CPHA 决定;时钟在空闲时保持的电平状态就是由 CPOL ...
2020-04-25 12:28:10
951
原创 iot(3)--设备上报数据
设备上报数据在 rt-thread 提供的 aliot-kit 的软件包中,有提供例程,使能例程并且进行了正确的配置后,设备就可以成功上云如果有更加复杂的需求,比如获取设备端的数据,就需要进一步的开发了详谈首先将目光放到软件包提供的例程中,可以看到例程主要的工作都是在 mqtt_client 这个函数中完成的在 mqtt_client 中,首先是初始化 MQTT 链接相关的参数,比如超时...
2020-01-21 15:27:19
1330
原创 图示离散函数周期
最近在中国大学MOOC上重学数字信号处理,课程网址:http://www.icourse163.org/course/NJTU-359003。我会挑选我学习过程中觉得有意思的或者我之前学习漏掉了的知识点进行介绍。因为这里是本系列第一篇,先复习一遍基本函数如何使用 matlab 绘制% 指数信号 xt = A*exp(a*t)t=0:0.01:10;A=1;a= -0.4;xt=A*ex...
2019-12-06 23:19:12
3021
原创 Altium 设置覆铜与板框间距
PCB 打样的厂家有要求铜皮与板框之间的距离,刚开始学习 Altium 画板的时候,我是手动铜皮内缩的,现在想起来,感觉当时的自己贼傻...最近刚好又要画板,顺便整理一下相关技巧备用我们可以通过设置规则来内缩铜皮以机械层作为板框的情况进入 Design->Rules->Manufacturing->Board Outline Clearance点击 New R...
2019-12-03 15:41:55
9284
原创 单总线设备初始化失败问题
最近在使用 dht11 温湿度传感器的时候遇到了一个问题,就是 dht11 这个传感器在开发板上工作正常,但是使用杜邦线连接的时候就无法初始化本人使用的是 rt-thread 系统的 dht11 软件包进行 dht11 的控制为了排查问题,使用逻辑分析仪抓取通信波形我们知道,基于单总线上的所有传输过程都是以初始化开始的 初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成但是通过逻辑分析...
2019-11-28 15:01:28
1268
原创 Iot(2)--设备上云
配置 bspCubeMX 配置这里选择的是 stm32f767-fire-challenger 这个 bsp为了实现我们让设备上云这个目标,这个 bsp 还需要进行一些配置,比如增加一个串口下面我们就开始进行 bsp 的配置打开 bsp\stm32\stm32f767-fire-challenger\board\CubeMX_Config\CubeMX_Config.ioc ,打开串口2...
2019-11-20 15:05:42
436
3
原创 Iot(1)--准备工作
关于系统的选择学校需要做一个物联网相关的课程设计,之前看到 rt-thread(下面简称rtt) 有物联网相关的软件包,就初步选择 rtt 这个系统了因此,正确打开本系列文章的姿势是准备一个移植好 rtt 的开发板,点击查看支持的常见开发板列表准备一块 rtt 的 AT 框架支持的 WiFi 模组,点击查看支持的模组,这里使用 esp8266下载 rtt 源码准备好了最基础的软硬件...
2019-11-20 15:02:13
233
原创 多维数组的访问
这里谈论的是 C语言 的多维数组的访问前言多维数组是一维数组的一种特殊形式,例如 a[3][10] 这个数组,相当于是 a 这个数组,有三个元素,每个元素又有 10 个成员遍历访问每一个元素有的时候,我们或许会想要按顺序访问数组中的元素,这时候我们可以声明一个指针,指向多维数组的某个元素,通过移动指针就可以访问多维数组中的每一个元素int *p = &matrix[0][0];...
2019-11-14 17:01:41
1098
原创 字符数组与字符指针区别
这里介绍字符数组与字符指针的区别下面通过一个例子进行介绍char message1[] = "Hello";char *message2 = "Hello";上面两个 message 的变量看起来好像是一样的,但实际他们的意义是不一样的,前者代表的是字符数组的初始化,后者则是一个字符指针指向一个字符串常量为了验证上面的说法,下面我们执行一些对这两个变量的操作message1++; ...
2019-11-14 16:58:17
426
原创 VGA时序学习
VGA 接口相必是一个大家非常熟悉的接口,我们快接近 00 年代的人,小时候使用的电脑就使用这种接口的显示屏当然就算到了今日, VGA 接口依然还在大量使用,因为这个接口成本比较低,想省钱甚至可以直接使用电阻网络的方式转换 VGA 信号;相比而言, HDMI 就显得比较昂贵了。简单的介绍VGA的时序一行或一列的数据包含了显示前沿(back porch)、有效数据(active viedo)、...
2019-10-19 21:36:46
1139
原创 海思SDK编译填坑
最近开始学习海思的开发,使用的芯片型号是 hi3518e。首先需要面对的问题,就是如何使用海思 SDK真正的产品是一个很复杂的东西,涉及到的知识面很广,单独的一个开发商很难完成。因此嵌入式开发这个行业存在不同层级,大家各司其职。海思芯片的应用场景中,会普遍的使用到音视频编解码,而这些算法也很复杂,为了简化开发,海思提供了这个 SDK,里面提供已经实现好的音视频编解码的算法,提供用户调用。另外这个...
2019-10-11 19:35:14
2433
原创 制作usb转串口固件
定时器相关最近在用 ch552 芯片做 usb 转串口的调试板串口需要设置波特率,在 ch552 上需要给串口提供设定的波特率,这里使用定时器产生初值计算问题一般使用定时器的模式2,8位自动重装,使用 TL 计数,使用 TH 重装波特率初值的计算公式如下THn = TLn = 256 - fsys/12/16/波特率/2ch552 有 1T 的模式,所以可以不用除以 12,还可以设置...
2019-10-11 11:48:23
1476
原创 如何查看arm可执行文件的依赖
在 arm 设备上执行可执行程序时报错,缺少库文件,类似如下报错fswebcam: error while loading shared libraries: libgd.so.3: cannot open shared object file: No such file or directory担心复制 libgd.so.3 库文件到文件系统后还有其他的依赖缺失,决定先确定可执行文件的动态...
2019-08-07 15:01:01
1058
原创 uboot移植nor-flash
首先确认硬件是否正常,flash有无虚焊开发板使用一个已经可以正常启动的 uboot 镜像,直接进入 uboot 的命令行,输入 sf probe这时 uboot 会去读取 flash 的 id ,如果 uboot 中没有对应 flahs 的 id 号,就会报以下的错误SF: unrecognized JEDEC id bytes: 0b, 40, 18 // 0b, 40, 18 是 fl...
2019-08-01 16:46:55
3583
原创 编译根文件系统遇到的问题
这里使用 buildroot 编译根文件系统编译出现错误有时候 make 的时候会报一些奇怪的错误信息,这可能是由于之前的编译没有清理导致的执行 make clean ,再重新 make ,一般就能过编译了can’t open /dev/console: Permission denied解决这个问题很简单,进入 /you-path-to-rootfs/bin 下,执行 chown ro...
2019-07-30 16:40:47
899
原创 drm设备不工作
在设备升级新版内核后,发现没有 fb0 设备,开机没有打印 drm 相关的信息首先是检查设备树,确认加入 panel 节点panel: panel { compatible = "lg,lb070wv8”, “simple-panel"; #address-cells = <1>; #size-cells = <0>; enable-gpios = &l...
2019-07-26 15:57:04
1343
原创 升级内核遇到的问题汇总
卡在starting kernel注意一下设备树和自己的内核是不是匹配的Waiting for root device /dev/mmcblk0p2…[ 1.041445] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2[ 1.050235] cfg80211:...
2019-07-23 08:52:50
8262
原创 从三星uboot开始移植
移植前的准备下载 android_uboot_smdkv210.tar.bz2 这个文件,找不到可以去公众号回复下载|三星uboot开始移植本人使用的开发板是九鼎的 x210,在三星 uboot 的主 Makefile 中找到了类似的 smdkv210 的相关配置,因为这些配置都差不多,就随便选择了 smdkv210single_config在 make smdkv210single_c...
2019-06-22 23:57:57
476
原创 uboot启动内核
认识 uboot 和 内核 之间不可不说的关系uboot 镜像为 uboot.bin,Linux 镜像为 zImage嵌入式设备中的分区表是自己定义的,uboot 和内核中的分区表应一致内核运行前必须加载到 ddr 中指定的地址处uboot 需要提供内核必要的参数内核启动的方式uboot 启动内核有两种方式,一种是等待倒计时结束后直接启动内核,一种是在 uboot 命令行中使用 boo...
2019-06-11 17:10:57
1142
原创 uboot启动第二阶段分析
之前介绍了 uboot 启动第一阶段,现在介绍启动的第二阶段启动阶段的工作启动第一阶段的主要工作是对处理器的内部资源(如时钟、串口)、内存(ddr)初始化,并进行 uboot 的重定位,并跳转到启动第二阶段启动第二阶段的主要工作则是对处理器的外部资源(iNand、网卡芯片…)、uboot环境(uboot命令、环境变量…)等初始化,并等待命令输入工作流程正常情况下,在 uboot 的初始化...
2019-06-10 23:05:48
1065
原创 uboot启动阶段分析三
这里继续 lowlevel_init 中的内容这个函数是为了进行底层的一些初始化lowlevel_init预备环节检查复位状态lowlevel_init 中会对控制复位的寄存器中的值的16位和18位进行检测,判断当前处理器处于 DEEP-IDLE 还是 SLEEP 状态对于不同的复位状态,有不同的处理方式好比刚上电需要初始化 ddr,而从睡眠中唤醒可以直接使用 ddrIO 恢复...
2019-06-04 21:01:53
659
原创 栈和帧指针使用方法
这篇主要是围绕 SP FP PC LR 寄存器进行介绍,不理解的可以一起讨论下,我也是今天才开始学习这些汇编基础知识处理器寄存器被指定为R0、R1等。MOVE指令的源位于左侧,目标位于右侧。伪处理程序中的堆栈从高地址增长到低地址。因此,push会导致堆栈指针的递减。pop会导致堆栈指针的增量。寄存器 sp(stack pointer) 用于指向堆栈。寄存器 fp(frame poi...
2019-05-27 20:32:25
1901
原创 uboot启动阶段分析二
物理基址定义_TEXT_PHY_BASE: .word CFG_PHY_UBOOT_BASEstart.s 中使用 _TEXT_PHY_BASE 存放物理基址。这个变量很重要,因为我们在 u-boot 中使用 MMU ,在 MMU 没有开启之前,需要这个变量来保证程序能在正确的地址运行通过在 u-boot 源码中全局搜索可以发现, CFG_PHY_UBOOT_BASE 定义在 uboot...
2019-05-26 23:27:26
284
原创 uboot启动阶段分析一
从上一章的链接脚本分析中,我们知道了uboot的程序是从*ENTRY(_start)*开始的在整个uboot工程下搜索 _start ,可以找到一个 start.S 文件包含了这个label,因此uboot启动的分析从这个文件开始头文件分析#include <config.h>#include <version.h>#if defined(CONFIG_ENABL...
2019-05-25 21:08:17
252
原创 使用机智云平台远程控制esp8266
F&Q1. 为什么生成的代码编译出错电脑使用的x86编译器生成的机器码是无法在esp8266上运行的,需要交叉编译工具链编译,相关参考官方编译文档2.机智云APP搜索不到esp8266现在找到原因了,可能是在初始化函数 user_init 中做了初始化以外的事情,比如我就是在初始化函数中,使用 i2c 接口控制 led 导致 esp8266 一直重启此外可以使用L...
2019-05-13 21:01:16
4618
1
原创 移植MotionDriver到RTT
这个移植花费了我好多时间…本来是想使用mpu6xxx的软件包的,但是得到的数据抖动太厉害了在网上找到了两种得到稳定的数据的方法 DMP Kalman滤波 看到DMP的效果更好,就选择DMP的方案了解到 InvenSense 公司提供的 MotionDriver 可以用DMP的方式读取mpu,就开始移植 MotionDriver 这个库本项目的地址 https:/...
2019-05-05 13:20:34
867
原创 pid算法的基础应用
五一放假终于有空,先验证一下之前了解的pid算法。本次实验是应用pid算法,保持舵机与平面的角度保持在一定的数值。感觉表述有点不清楚,从视频中看看吧。说说我做了的尝试系统辨识建立模型本来之前以为可以通过matlab工具箱的系统辨识建立模型,然后通过工具箱自动调参但是!自动调参更新完pid参数后,阶跃响应为负值没办法,只能放弃这个操作了瞎调参数之后就随便...
2019-05-05 13:17:06
1240
原创 pid调节的方法
上一篇介绍了建立系统模型的三种方法,这一篇介绍如何调节pid,并用MATLAB仿真调节pid的目标就是使得从模型中得到的增益能够使物理系统正常工作调节pid的理论分析pid的一般形式如下图经过移动化简可以得到现在我们的问题就简化成了在哪里放置这两个极点,和设置多大的增益?在给微分器加上滤波器,相当于系统多了一个极点,滤波器的相关内容之后介绍M...
2019-04-13 15:34:16
10442
原创 pid建立模型
上一篇文章是一份pid的指南,目的是为pid建立一个整体的概念,这一篇简单介绍了pid建立模型的三种方法根据元件性质直接得到模型适用于简单的系统,需要关注整个系统的具体组成通过欧姆定律等电路定律,为元件建模,最终得到系统模型这种方式很麻烦,不在这里讨论系统识别的方法这种方法不需要关注系统的具体实现,将系统当做一个双端口的加工器,给定输入可以得到想要的输出就好像图中所...
2019-04-06 20:41:25
5710
1
原创 pid对微分器的优化
上一篇文章写了对积分器的优化,这一篇写对微分器的优化为什么要优化微分器微分器对于噪声很敏感,我们可以从微分器的laplace传递函数G(s)=s看出来通过简单的求导也可以看得出假设噪声n(t)是一个正弦函数Aω就是经过微分得到的幅度,可以看出,频率越高,对控制信号的影响就越大关于噪声现实中,一般情况下无法避免噪声的存在在pid系统中,一般通过传感器来将设备的...
2019-03-27 15:56:10
1678
1
原创 pid抗饱和积分
上文介绍了PID在理想情况下的工作原理,接下来是对实际中使用积分器的展开积分器的饱和情况(actuator:机器的一部分)我们知道常量的误差值在经过积分器的作用会成为一个递增的函数,也就是说,给设备的指令(command)的转速会不断增加。但是我们知道,现实中的电机转速是有限的,在设备指令增加到一定的转速时,电机的转速就不会上升了,这种情况叫做饱和还是以无人机为例还...
2019-03-25 09:27:02
6035
1
原创 pid是什么
本人想做做之前的电赛题--滚球平衡,但这涉及到了一些自动控制的东西,比如PID。对PID之前只是略有耳闻,为了复现滚球平衡,只能来现学PID了。本系列内容是看了MATLAB的教学视频后写的,视频链接在此PID的公式在此看着是不是觉得挺复杂,不过放心,让我们先抛弃公式,从PID是什么以及为什么要有PID开始讲起这里有这么一个我们需要控制的设备,我们需要使用驱动信号(act...
2019-03-24 19:38:34
31332
5
原创 uboot主编译脚本分析
这里是对uboot的Makefile做的一个比较详细的分析生成版本信息VERSION = 1...U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)VERSION_FILE = $(obj)include/version_autogenerated.h软件都是有不同版本的,uboot也不例外,在m...
2019-03-15 15:26:04
315
原创 体验deepin系统
之前体验了Ubuntu18.04,在使用了几个月后,还是放弃了主要是Ubuntu18.04有一些很难接受的问题如下: + 双屏体验很差。每次重启后会将笔记本的屏幕设置为主屏幕;从双屏转为单屏时,被关闭屏幕的图标不会自动移动到另一个屏幕。 + 会出现莫名奇妙的BUG偶然间了解到了deepin这个系统,看了看他的演示视频,觉得真心不错。很顺畅,界面也好看。先上一张启动器的图前...
2019-03-06 19:34:42
856
原创 如何移植RT-Thread的BSP
前言最近RT-Thread重构了stm32的BSP,看了一下,感觉很思路很清晰 目录 简介 bsp\stm32\docs 重构BSP的介绍文档 bsp\stm32\libraries 各系列的stm32的HAL库 bsp\stm32\libraries\HAL_Drivers 基于HAL库的设备驱动 bsp\stm32\libraries\HAL...
2018-12-12 23:26:37
3704
2
AUDIO COMPRESSION USING MODIFIED DISCRETE COSINE TRANSFORM.pdf
2020-08-26
An introduction to mpeg layer-3.pdf
2020-08-26
Low-Power Implementation of the Bluetooth Subband Audio Codec.pdf
2020-06-03
wsl_update_x64.msi
2020-03-20
App Note 1 - Motion Driver 6.12 Getting Started.pdf
2019-04-19
App Note 3- Motion Driver 6.12 Porting Guide.pdf
2019-04-19
App Note 2- Motion Driver 6.12 Features Guide.pdf
2019-04-19
Modified anti-windup scheme for PID controllers
2019-03-25
Analog and Digital Signals and Systems
2019-02-20
Xcell72杂志期刊
2019-02-15
Making Embedded Systems
2019-02-15
understanding digital signal processing third edition by richard g lyons
2019-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人