自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于本博客

About本博客仅用于作为博主Github博客的备份,更新时间未定。博客地址为:http://huangzzk.info博主Github地址:https://github.com/Ncerzzk爱好硬件、机器人、飞行器~...

2020-02-28 23:52:17 285

原创 用scala写一个基本五级流水线CPU(三)增加R型指令

用scala写一个基本五级流水线CPU(三)增加R型指令ctime:2020-06-28 13:01:45 +0900|1593316905标签(空格分隔): 技术 硬件本次更新的代码可参考:https://github.com/Ncerzzk/SimpleCPU/tree/deeb0217751f32bda5adf748b60cf528296466a6前面的文章中已经添加了一条最基本的ORI指令(I型指令),然而指令系统目前还很不完善,如果要增加指令的话,还需要改动大量代码。因此,本文开始着

2020-06-29 15:44:29 377

原创 用scala写一个基本五级流水线CPU(二)解决数据冒险

用scala写一个基本五级流水线CPU(二)解决数据冒险ctime:2020-06-27 10:17:34 +0900|1593220654标签(空格分隔): 技术 硬件所谓数据冒险,即后面的指令依赖于前面指令执行的结果。举例:初始状态 $0=0ORI $1 = $0 | 1100ORI $2 = $1 | 0011按照程序员的想法,显然最后$2应该等于1111才对,但如果按照之前实现的流水线,由于写回寄存器是在流水线的最后一级,而读流水线是在译码级,因此当第二条指令到译码阶段时,第

2020-06-29 15:41:10 437

原创 用scala写一个基本五级流水线CPU

用scala写一个基本五级流水线CPUctime:2020-06-26 20:09:48 +0900|1593169788标签(空格分隔): 技术 硬件最近学SpinaHDL,一直想写个什么东西练练手。刚好以前一直想写个CPU,之前也在重新学计算机组成原理,刚好就用来作为练习。其实想写CPU的想法已经很久了,基本上每一次重新学FPGA或者verilog的时候,都会有这么一个想法,但是每次都是因为各种原因不了了之。有一些是个人兴趣原因,比如又发现了其他更好玩的东西,也有时候是因为被verilog的

2020-06-26 21:12:16 853

原创 HDL在线综合查看RTL的工具

HDL在线综合查看RTL的一个工具ctime:2020-06-08 10:29:24 +0900|1591579764标签(空格分隔): 技术最近在复习verilog,刷HDLBits的题,有时候想知道两种写法综合出来的电路是不是一样的,以前都是用ISE,综合完可以直接看RTL,但是ISE太大,网上找了一圈,发现了个yosys的开源综合器,还可以生成.dot的图,于是写了个在线综合的工具,提交HDL代码,可以直接生成RTL的图如代码:module top_module(clk, rst, en

2020-06-08 09:35:30 2200 3

原创 操作系统笔记(五)内存管理_临时页表建立

操作系统笔记(五)内存管理_临时页表建立ctime:2020-05-06 13:00:21 +0900|1588737621标签(空格分隔): 技术 操作系统执行流程BIOS入口,然后进入到bootloaderbootloader中探测物理内存大小,临时建立段映射、页映射,调用kern_init以页划分空间,设定每页的可用状态建立页表,将(部分)页表读入MMU的TLB(快表)中...

2020-05-07 23:18:10 289

原创 操作系统笔记(四)中断

操作系统笔记(四)中断ctime:2020-04-30 13:33:34 +0900|1588221214标签(空格分隔): 技术 操作系统练习6中断描述符表(也可简称为保护模式下的中断向量表)中一个表项占多少字节?其中哪几位代表中断处理代码的入口?8个字节16-31位表示段选择子,0-15位为偏移的低16位,高16位位于中断描述符的最高16位(48-64位)8086(8...

2020-05-07 23:17:31 245

原创 操作系统笔记(三)函数堆栈

操作系统笔记(三)函数堆栈ctime:2020-04-29 22:47:57 +0900|1588168077标签(空格分隔): 技术 操作系统练习5 完成函数调用堆栈记录的跟踪函数函数调用的入栈顺序主要有几种,__cdecl、__fastcall、__stdcall,都是函数的调用约定,主要决定函数的参数入栈顺序,以及入栈的参数到底是由调用者还是被调用者清除。其中,cdecl是C语...

2020-05-07 23:16:46 179

原创 操作系统笔记(二)Bootload加载ELF文件

操作系统笔记(二)Bootload加载ELF文件ctime:2020-04-29 15:34:46 +0900|1588142086标签(空格分隔): 技术 操作系统练习4 分析bootloader如何加载ELF文件上一步,进入保护模式之后,跳转到此处,开始引导启动系统首先从硬盘中,读入一定数量的数据(ELF文件,也就是系统镜像)(512字节*8,相当于读入8个扇区的内容),放在EL...

2020-05-07 23:16:06 833

原创 操作系统笔记(一)分段机制、特权级

操作系统笔记(一)分段机制、特权级ctime:2020-04-29 12:08:05 +0900|1588129685标签(空格分隔): 技术 操作系统课程实验手册地址:https://legacy.gitbook.com/book/chyyuu/ucore_os_docs练习3 分析bootload是如何从实模式进入保护模式的很多东西还不清楚,这里单纯翻译一下bootasm.s里干了...

2020-05-07 23:15:26 345

原创 直升机航模倾斜器研究总结

直升机倾斜器研究总结ctime:2020-03-09 13:50:26 +0900|1583729426标签(空格分隔): 技术目前已知有两种倾斜器。大型直升机上的倾斜器(倾斜盘),倾斜盘上连接连杆到桨叶上,用来控制桨距。如果倾斜器上下移动(collective input),则所有桨叶的桨距一起增大减小。如果倾斜器发生倾斜(cyclic input),则桨距的变化就不是一起的了。同时,...

2020-03-20 22:37:10 1126

原创 ROS学习笔记1

ROS学习笔记1ctime:2020-03-04 17:59:00 +0900|1583312340标签(空格分隔): 技术一直以来都想学ROS,不过苦于没有机缘。现在实验室的项目要用到,不得不学了。catkin一种package(ROS包)的构建工具ROS文件系统Package 包括Package的可执行文件、库等Manifests 用来描述当前package的一些信息...

2020-03-20 22:36:36 131

原创 Python元编程

Python元编程ctime:2020-03-19 23:47:37 +0900|1584629257标签(空格分隔): 技术元编程其实Ruby比较出名,因为Ruby的语法糖实在太多了,而且Ruby的对象模型比Python纯净,因此经常来说用Ruby来作为元编程的介绍。之前用Python写无人机的仿真,为了写得舒服一点,在里面也实现了一些元编程的东西,这里记录一下。调用父类的某函数...

2020-03-20 22:36:07 173

原创 基于Wifibroadcast的无人机数字图传2

基于Wifibroadcast的图传2ctime:2020-02-29 18:48:26 +0900|1582969706标签(空格分隔): 技术 兴趣今天又研究了一下,本来想从国内买两个树莓派寄过来的,在咸鱼上搜的时候突然发现已经有人做出来再买了,突然兴致不高。直接按照人家的教程做出来去卖有啥意思呢。把今天研究的总结一下吧。前面说的不支持monitor 模式和frame inject...

2020-03-07 12:16:37 1651 4

原创 基于wifibroadcast的无人机数字图传

基于Wifibroadcast的图传ctime:2020-02-28 14:46:17 +0900|1582868777标签(空格分隔): 技术 兴趣去年就关注的项目,一直没时间仔细看一下它的原理,这两天总算有空看了一下。这个图传的主要优点有:便宜,使用树莓派,最低支持树莓派Zero W,实际上也支持国产的很多嵌入式板子,只要能跑linux是个数字图传,但是能达到模拟图传的效果...

2020-03-07 12:16:13 4560

原创 STM32同步定时器并触发ADC_DMA多路采样

STM32同步定时器并触发ADC_DMA多路采样ctime:2019-05-05 16:53:06 +0800|1557046386标签(空格分隔): 技术 硬件需求是这样的:做电机驱动,需要采集电压和电流的时候,由于H桥驱动管以16K的频率再开关,如果随意进行ADC采样的话,会采到MOS关断时候的电压值和电流值,对整个电压和电流的估计造成影响。最好的情况就是在PWM为高电平,也就是MO...

2020-02-26 13:30:22 4023 2

原创 无感FOC滑膜观测器学习

无感FOC滑膜观测器学习ctime:2020-02-04 20:40:32 +0900|1580816432标签(空格分隔): 技术 硬件目标是要通过滑膜观测器来获取电机转子位置根据电机的数学模型,只要得到A B 相的反电动势即可算出位置而可以较为简单获取的参数只有相电压(UA UB UC)和相电流(IA IB IC)我一开始有一个疑问,既然要AB相的反电动势,那么我采出三相的反电动势...

2020-02-26 13:29:50 6646

原创 解决ardupilot中使用UWB每次上电的时候坐标不一样的问题

解决ardupilot中使用UWB每次上电的时候坐标不一样的问题ctime:2019-08-02 22:41:07 +0800|1564756867标签(空格分隔): 技术 飞控在GCS_Common.cpp中,找到send_local_position函数,这个函数用来发送local_position给树莓派将get_relative_position_NED_home修改为 get_...

2020-02-26 13:29:16 310

原创 Ardupilot中新增beacon设备

Ardupilot中新增beacon设备ctime:2019-04-02 16:15:52 +0800|1554192952标签(空格分隔): 技术ardupilot的串口与beacon大致情况在之前都写过了。这里不再赘述,直接写我新增的INF(无穷未来)的驱动手册吧。加入驱动文件在AP_Beacon文件夹中,加入AP_Beacon_Frompi.cpp 及相应的头文件。增加Beac...

2020-02-26 13:28:35 468

原创 ArduPilot中beacon

ArduPilot中beaconctime:2019-03-13 14:45:31 +0800|1552459531标签(空格分隔): 技术 飞控初始化过程:在主文件中的init_ardupilot函数中进行各种传感器、串口、外设的初始化。init_beacon初始化beacon设备,并在接下来ahrs.set_beacon(&g2.beacon);中将其绑定在ahrs对象...

2020-02-26 13:28:05 552 1

原创 ArduPilot中串口的复用

ArduPilot中串口的复用ctime:2019-03-13 14:45:17 +0800|1552459517标签(空格分隔): 技术 硬件 飞控ardupilot中因为项目太庞大,初看串口的复用很是疑惑。仔细一看的话,其实人家的实现挺有技巧性的。所有需要从串口中读取数据的设备,一般要实现一个Backend类(后端类)的子类,用于与底层打交道。如AP_Beacon_Pozyx继承自...

2020-02-26 13:27:33 410

原创 无刷电机foc笔记

ctime:2019-08-28 11:35:27 +0800|1566963327标签(空格分隔): 硬件 技术无刷电机与永磁同步电机的区别:反电动势不同,PMSM是正弦波反电动势,BLDC是梯形波反电动势为了产生恒定电磁转矩,PMSM需要正弦波定子电流,BLDC需要矩形波电流这就有个问题,既然产生恒定电磁转矩,无刷电机需要矩形波电流,那么为什么网上大家都追求使用SVPWM,千...

2020-01-31 19:57:14 1884

原创 使用STM32F407驱动鹰眼摄像头

ctime:2018-07-06 13:14:33 +0800|1530854073标签(空格分隔): 未分类鹰眼摄像头一般用在智能车比赛上,因此现在网上大部分都是用K60来驱动。但K60没有像STM32的HAL、STD库那样的官方库,都是爱好者或者商家(野火、逐飞)等写的民间库,水平也参差不齐。而STM32不仅有官方库,还有STM32QubeMX这种方便的GUI来直接配置底层。因此,在...

2020-01-31 19:55:49 1522 1

原创 STM32使用DMA来接收不定长的串口信息

ctime:2018-03-23 20:13:16 +0800|1521807196标签(空格分隔): 技术 硬件使用HAL库。首先是串口DMA初始化:(实际上,如果使用QubeMX来生成代码的话,串口DMA会自动帮你配置好的) DMA_HandleTypeDef hdma_usart6_rx; hdma_usart6_rx.Instance = DMA2_Stream1;...

2020-01-31 19:54:44 517 1

原创 STM32硬件I2C死锁原因及解决办法

ctime:2019-09-24 23:49:23 +0800|1569340163标签(空格分隔): 硬件 技术一些基础知识:I2C通信的两条信号线需要使用OD方式,连接上拉电阻I2C通信有主机、从机之分,主机即为发起通信的一方。主机未必是数据的发送方或者接收方I2C总线上可以有多个设备,每次仅能有一个设备控制总线如何界定当前总线是由哪个设备控制?看当前哪个设备能拉低SCL\SD...

2020-01-31 19:54:06 5373

原创 无刷电机foc笔记2(V/F控制实现)

ctime:2019-09-06 18:42:18 +0800|1567766538标签(空格分隔): 硬件 技术VF控制实际上是一种开环的驱动方式。在前一篇博文中已经讲了,实际上只要对无刷电机或者PMSM通入三相的正弦交流电,电机即可转动。VF控制就是这种方式,他无需知道电机当前的旋转角度,仅仅需要无脑输入三相交流电即可。那么通过改变电压与频率的比值,也就是V/F,就可以进行调速以及调...

2020-01-31 19:52:53 7749 2

原创 STM32 ADC DMA 多通道传输时通道顺序错误问题

ctime:2020-01-28 19:15:33 +0900|1580206533标签(空格分隔): 技术 硬件问题终于解决了,折磨了好几天。具体问题是什么呢,假设我有一个电压矢量U3(abc三相的导通情况为011,也就是a的下桥、bc的上桥导通),我将其导通3ms,我在3ms之中,要采样电流,那么理论上我要采样的是a相(因为电流采样电阻都连在下桥,只有下桥导通,才能测得电流。)但是呢...

2020-01-31 19:52:00 4143 3

原创 VSCode搭建STM32的调试环境

ctime:2019-12-07 18:38:13 +0900|1575711493标签(空格分隔): 技术 硬件大家都知道VScode是个好用的编辑器,通过配置也能成为IDE。之前在国内的时候其实和王智折腾过这事了,不过当时比较忙,也没把步骤好好记下来,以为应该是忘不了的,结果今天在这个电脑上要重新搭一下,还是费了一番功夫。主要是几个步骤:下载安装ARM的GCC工具链,主要是为了后...

2020-01-31 19:51:19 858

原创 解决AS5047读取中经常出现0的问题

ctime:2020-01-23 12:32:30 +0900|1579750350标签(空格分隔): 技术这个问题去年衣容颉调马的时候有发现,当时我也跟他看了半天,没发现哪里有问题,最后是在程序里处理了一下,一旦发现读到0,就不要那个值。最近在调无刷电机,这个问题又出现了,一开始以为是磁铁离得太远导致的,对着磁铁一顿敲,但情况似乎没有改变。于是将读取的寄存器从0x3FFFF(位置)改...

2020-01-31 19:50:16 2486 1

原创 不带__weak 标志的函数(Strong函数)无法代替weak函数的问题

ctime:2019-12-08 12:24:17 +0900|1575775457标签(空格分隔): 技术 编程在C编程中,有时候需要写一些weak函数,用来给用户进行覆盖。之前写NRF的函数的时候,写了一个__weak void NRF_Receive_Callback(uint8_t * data,int len);用来给用户重载接收回调函数。然后我在main中,重新写了一个NRF...

2020-01-31 19:49:13 1312

空空如也

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

TA关注的人

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