自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (6)
  • 收藏
  • 关注

原创 python中ctype的应用,协议解析,C语言与python的完美映射,结构体与字符串的相互转换

python中ctype的应用,C语言与python的完美映射,结构体与字符串的相互转换1.简论--写在前面1.ctype介绍1.1 ctype数据类型1.2 ctype常用函数2.C语言的结构体在python中的应用1.简论–写在前面在做通信的过程中,经常要用到解析协议,平时用到python来写一些小的脚本,所以想用python来做一个协议解析的脚本。从功能上来说,python在处理字串是很方便的,你可以将字符串转换位16进制字符串后,对每一个BYTE进行操作,结合pack和unpack模块,只是比

2020-12-16 15:14:07 4500

原创 总结编译过程

今天总结了下编译过程,总的来说,编译过程如下图所示:

2020-08-11 16:45:01 236

原创 解决 No module named ‘numpy.random.common‘的解决方法,pip换源下载

解决 No module named 'numpy.random.common'的解决方法1. 发现问题2. 分析及解决问题1. 发现问题今天在用pyinstaller打包,运行exe的时候出现了错误[19220] Failed to execute script hplc_cert于是我用如下的打包方法来定位问题:1.先打包开放出后台打印pyinstaller -F hplc_cert.py2.在运行时用cmd来运行3.运行后可以看到错误原因这里可以看到错误的原因是:ModuleN

2020-08-10 17:04:09 5238

原创 pyqt5 弹窗,弹出自定义窗口。在线程中打开弹窗,不会卡死的方法。

pyqt5 弹窗,弹出自定义窗口1.需求分析2.简单的单击显示窗体3.在线程中显示弹出窗体,不会卡死1.需求分析在用pyqt5做UI项目时,有需要用到弹出自定义窗口的需求,这里就研究了一下。效果如图:这个本身是比较简单的一个操作,点击按钮然后让自定义的窗口显示。如果只是点击弹出自定义窗体是很简单的,但是如果需要在一个线程里面弹出一个窗体,就不是简单的调用显示就行可以了的。下面我是2种方法的实现2.简单的单击显示窗体这里的思路是,先实例化一个主窗体A,然后再实例化一个窗体B,然后再主窗体A中sho

2020-07-27 14:34:43 8535 4

原创 解决 AttributeError: module ‘plotly.offline‘ has no attribute ‘__PLOTLY_OFFLINE_INITIALIZED‘

在安装好cufflinks模块后,在pycharm中运行下面代码:import cufflinks as cfcf.set_config_file(offline=True)cf.datagen.lines(1,500).ta_plot(study='sma',periods=[13,21,55])会出现下面的错误:AttributeError: module 'plotly.offline' has no attribute '__PLOTLY_OFFLINE_INITIALIZED'

2020-07-17 16:50:24 3004 3

原创 浅说python的property用法

今天在做项目的时候,为了让代码简洁,用了下property。这里总结下property的用法。1.什么是propertyproperty是python的一种内置装饰器,它负责负责把一个方法变成属性调用的。官方文档上提供了2中方式来实现这种调用:1.用porperty类class C(object): def __init__(self): self._x = None def getx(self): return self._x d

2020-07-17 15:58:51 408

原创 pyqt5 tableWidget入门,和treewidget联动功能

1.成品最近在做项目的过程中需要用到QTreeWidget和QTableWidget联动,上一篇文章介绍了 QTreeWidget的基本用法,这里介绍一下QTableWidget的基本用法,及我在项目中的使用。先看看最终成品。要实现以上图片中的功能,需要在上一篇文中加上QTableWidget。所以先介绍下QTableWidget。2. QTableWidget类QTableWidget类中的常用方法如下表:方 法描 述setRowCount(int row)设置Q

2020-07-15 14:22:53 2889 3

原创 pyqt5 treeWidget入门,多级子项,选中父项,子项也全部选中

目录1. 成品2. 树形结构1. 成品 最近在做项目过程中用到了QTreeWidget,就这里记录下,主要是实现了QTreeWidget树形展开,并且选择父项,子项也可以全部选中。 大概就是下面图片展示的这样:2. QTreeWidget类和QTreeWidgetItem类 树形结构是通过QTreeWidget 和QTreeWidgetItem 类实现的,QTreeWidgetItem 负责添加节点。1.QTreeWidget类中的常...

2020-07-14 18:59:15 5848 1

原创 python3 +qt5,用pyqt5写一个crc校验工具,crc8 crc16 crc32 crc32

python3 +qt5,用pyqt5写一个crc校验工具,crc8 crc16 crc32 crc321. 概述二级目录三级目录1. 概述在上一篇博客中分析了crc的原理链接: 图解crc校验,crc8, crc16, crc32, crc24 用 c语言和python实现.在最后实现部分,只是简单的讲CRC24的源码放在了后面,距离我们做一个工具的目标还有距离,这篇文章就是将我们想法实现了,做一个工具,随时都可以用的。闲话不多说,先上一张效果图(PS:这只是第一版,只有基础的计算,还有很多功能

2020-06-28 20:17:49 1541 2

原创 图解crc校验,crc8, crc16, crc32, crc24 用 c语言和python实现

crc24校验背景原理说明实现二级目录三级目录背景在做通信项目的时候,经常会有遇到校验,比如crc32校验,crc24校验,网上很多可以直接计算的链接,有crc16/crc32的,就是没有crc24的!这就让我很费解,之前好不容易找到一个网站可以计算crc24,今年用的时候发现居然已经关闭了!咱 活人不能让尿憋死,有条件要上,没条件,创造条件也要上。咱自己搞一个crc24的校验的工具,每次可以直接用。原理说明实现二级目录三级目录......

2020-06-23 13:39:19 11540 3

原创 linux下,程序各个部分对应的段位置,图说 bss段 text段 data段 rodata段 栈 堆

图说 bss段 text段 data段 rodata段 栈 堆理论上程序编译出来后,各个段的分布二级目录三级目录理论上程序编译出来后,各个段的分布程序在执行后,虚拟内存分布,如下图:二级目录三级目录...

2020-05-23 15:39:03 4397 8

原创 linux下利用fork创建进程,进程运行内存说明,与同时创建多个进程的方法及分析

fork的应用及同时创建多个进程的分析1 进程及进程的创建1 进程2 利用fork创建进程2 利用fork同时创建多个进程3 创建多个进程的代码分析2级标题3级标题四级标题五级标题六级标题1 进程及进程的创建在linux编程中,用来创建用户进程的函数时fork。首先来说明什么是进程。1 进程什么是进程,引用百度百科的说明:进程(Process)是计算机中的程序关于某数据集合上的一次运行...

2020-05-08 15:35:45 3384

原创 linux下静态库与动态库的生成与应用,详解

动态库静态库生成与应用,详细讲解与制作1.静态库与动态库概念静态库概念动态库概念2.程序运行时的内存分布3.库的制作与应用1.静态库的制作与应用2.动态库的制作与应用4.动态库与静态库的优缺点新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创...

2020-04-27 09:22:07 1073

原创 解决虚拟机与宿主机不在同一个网段中,不能相互ping通的问题

背景:在工作中,我在windows中用虚拟机来编译代码。用到的模型是,windows(source insight) + linux(编译)。为了方便操作,在虚拟机中搭建了一个samba,供windows方便访问。一般来说,要想wondows通过samba访问linux,必须要相互ping通才行。所以我们设置虚拟机的时候,会设置虚拟机的网络模式为桥接模式,然后将虚拟机和宿主机设置为通一网段...

2020-04-15 17:07:52 15204 14

原创 su: Authentication failure 以及xxx is not in the sudoers file 问题的解决办法

这里其实是两个问题: 1. su: Authentication failure; 2. xxx is not in the sudoers file,This incident will be reported.第一个问题是无法进入root用户,第二个问题是没有sudo权限。这里会有一个很有意思的事情,当我们发现自己没有root用户权限的时候,会想到用用sudo pa...

2020-04-10 22:59:04 4389 23

原创 vbox ubuntu虚拟机扩容方案 虚拟分配空间转换为实际分配空间

在使用vbox的过程中,如果在最开始创建vdi的时候创建的vdi分配的空间过小,在使用的过程中,会由于分配的空间不足而导致无法使用的情况。遇到这样的情况对虚拟机的扩容就显得很有必要。 一般在创建vdi的时候都是选的动态分配存储,如果选择的是动态分配存储,那么查看虚拟分配空间和实际分配空间就会不一致。那么第一步就是扩大虚拟分配空间。(以下都是基于Ubuntu的操作)1. 扩...

2018-04-27 10:41:17 13688 12

原创 多通道主控并发的多CE NAND Flash页模型

       支持多通道主控并发的多CE NAND Flash页模型的建设,旨在依据NAND Flash的特性更高效的处理多通道并发,从而提高存储设备的吞吐速率,为SSD等的更高效的性能做保障。      多通道并发,我们知道NAND Flash的擦除、编程、读操作都不是瞬间就完成了,都需要一定的时间,而在正常的流程中我们是浪费掉了这段时间,该设计利用多通道的主控就能利用这段时间。具体的流程是在通...

2018-04-11 10:11:29 3146

原创 多通道主控的多CE NAND Flash 动态块模型

     基于多通道主控的多CE NAND Flash动态块模型建设,旨在更高效的进行坏块管理,从而提高坏块管理性能,为SSD的更高效的性能做保障。图1:没有坏块的模型     如图1所示,在没有坏块的情况下,多通道下的多CE的PB0(physical Block)共同组成LBT0, 多通道下的多CE的PB1共同组成LBT1,以此类推,多通道下的多CE的PBn共同组成LBTn。而这里的块模型我们称...

2018-04-11 10:01:38 2145

转载 编译型语言和解释型语言的区别

  大体上,可以将程序设计语言可以分为两类:编译型语言和解释型语言。  编译型语言  很多传统的程序设计语言,例如Fortran、Ada、Pascal、C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。  运行程序时,直接读取目标代码(object code)。由于编译后的目标代码(o...

2018-04-10 19:33:06 1178

转载 堆(heap)和栈(stack)

简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap...

2018-03-26 18:13:10 212

原创 git clone git status git log git add/commit git diff git push git cherry-pick git stash等总结

2017年开始使用git,这里总结下用到的cmd,会持续跟新。 GIT可以在windows和linux两种操作系统中运行,这里记录的是linux下的操作方式。autor --表示提交者编号 功能说明 command 1 clone $ git clone <版本库的网址> <本地目录名&gt...

2018-03-26 18:10:19 243

转载 绝对地址的访问方法

C51提供了3种访问绝对地址的方法,分别问:绝对宏、关键字“_at_”、连接定位控制。   1.绝对宏     使用绝对宏时,需要添加投文件“absacc.h”,在该文件中定义的绝对宏有CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD。    CBYTE:对程序存储区(code)的字节地址进行访问。    例如:i=CB

2014-10-08 10:30:11 4316

转载 KELL *** ERROR L104: MULTIPLE PUBLIC DEFINITIONS

c/c++语言中有很多地方要用到extern,但是如果没有真正的了解它的意义,会给编程带来很大的麻烦,为了使大家少走弯路,特祥细的说明一下。       对于比较小的程序,一般只有一个c文件和一个头文件,全局变量我们通常会直接定义在c文件中,在程序之前加int i定义。如果要在头文件中定义有以下两种方法:用extern来声明:extern int i;这一句只是对变量i进行声明,在c文件的

2014-09-26 10:00:06 855

转载 内存对齐

编译器为什么要替我们内存对齐?学了计算机组成原理,了解了内存的基本单元是一个字节,内存可以随机寻址,于是乎我天真的认为内存就是一个字节型的容器,基本单位是单个字节。Figure 1. 我眼中的内存空间布局悲剧的是,内存读写的真正访问者cpu不是这么想的。cpu是根据内存访问粒度(memory access granularit

2014-09-23 09:56:41 275

转载 NAND芯片的读写及ECC检验软硬件实现

第一节概论nandflash在对大容量的数据存储中发挥着重要的作用。相对于norflash,它具有一些优势,但它的一个劣势是很容易产生坏块,因此在使用nandflash时,往往要利用校验算法发现坏块并标注出来,以便以后不再使用该坏块。nandflash没有地址或数据总线,如果是8位nandflash,那么它只有8个IO口,这8个IO口用于传输命令、地址和数据。nandflash主要以pag

2014-09-17 17:45:58 3623

转载 NandFlash ECC 校验算法原理与实现

ECC的全称是Error Checking and Correction,是一种用于Nand的差错检测和修正算法。如果操作时序和电路稳定性不存在问题的话,NAND Flash出错的时候一般不会造成整个Block或是Page不能读取或是全部出错,而是整个Page(例如512Bytes)中只有一个或几个bit出错。ECC能纠正1个比特错误和检测2个比特错误,而且计算速度很快,但对1比特以上的错误无法纠

2014-09-17 16:43:45 1270 1

转载 nandflash坏块管理机制

 一.操作注意点:坏块一旦确定,就不允许在对其进行擦除或写操作     坏块一般由系统文件或软件管理程序在spare去进行标记二.坏块管理的基本作用:标记nandflash中的所有坏块并建立坏块表,避免对坏块进行操作,在对nandflash进行操作时如遇到坏块则将其标记,跳过并找一好块替代该坏块,同时更新逻辑地址与物理地址的映射关系和坏块表,使得nandflash对上层文件(系统)仍是连续的。三....

2014-09-17 15:58:01 7038

编译系统透视-图解编译原理

本书内容安排:第1章的前半部分先讲解程序的运行时结构。后半部分对整体的编译过程做了一个综述;第2章用一个简单案例讲解词法分析;第3章继续用词法分析时的简单案例讲解语法分析;第4章仍用前面的简单案例生成中间结构及目标代码。第5章和第6章用几个更为复杂的案例来分析语法和生成中间结构及目标代码的过程;第7章详细讲解如何将目标代码转变为可执行程序,包括文件格式、汇编器和链接器的内容。第8章讲预处理。

2018-05-05

计算机的心智操作系统之哲学原理

【内容简介】 本书集中精力对操作系统的核心内容进行分析,包括操作系统发展的历史背景、进程与线程、内存管理、文件系统、输入与输出、多核环境下的进程调度和操作系统设计。本书用大量生活实例,生动解释了操作系统中的主要难点和模糊点:锁的实现、同步机制的发展轴线、纯粹分段到段页式的演变、多核环境下的进程同步与调度和操作系统设计等内容,而放弃了对操作系统核心以外内容,如安全、多媒体系统、虚拟机技术、光盘技术等的论述。本书重点突出、逻辑清晰、内容连贯,便于学生顺利掌握操作系统的核心内容。. 本书层次丰富、涵盖操作系统的所有核心内容,适合作为国内高校计算机及相关专业本科生操作系统课程的教材,也是了解计算机操作系统原理不可多得的参考书。 这是一个瞬息万变的时代。.. 分布式计算的脚步渐行渐远,网格计算的热潮逐步退却,云计算和云存储正慢慢揭开面纱……在所有的变化中,不变的是这些计算的支柱:操作系统!能否深刻理解它也许会决定云时代的“浮沉”。 本书从生活哲学的视角对操作系统的原理进行阐述,通过逻辑推理演绎操作系统核心技术的奥秘,讨论范围包括操作系统的所有基础内容:背景与历史。进程与线程、通信与同步、调度与死锁,分页与分段。磁盘与文件。输入与输出等。此外,作者以新颖的组织方式讲解了锁的实现、同步机制的发展逻辑。从分段到段页式的演变、多核环境下的同步与调度、操作系统设计的原则。 本书对操作系统原理的讨论充满趣味性:每一章都力求细致地阐明一个主题,将通俗的哲学原理和逻辑推理贯穿于每一个主题,构成全书的有机整体,并适当地引入计算机组成和编译器知识,揭示操作系统在程序运行中发挥的作用,把读者对操作系统的理解带到一个崭新的境界。

2018-05-04

编译原理中文

本书系统介绍了经典的编译理论和技术,同时也包含了面向对象语言等当前较新语言的编译技术。本书更可贵之处在于提供了较完整的适用于教学实践的样例语言,是一本理论和实践内容相结合的、不可多得的好书。 本书可用作大专院校教材、教师参考书以及编译器研究人员的参考资料。

2018-05-04

802.15.4source code

基于802.15.4 的开源代码,希望基于802.15.4协议栈开发的同学下载。

2018-04-17

基于51的sd卡读写程序

基于51的sd卡代码,支持fat32文件系统

2012-02-29

空空如也

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

TA关注的人

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