- 博客(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 4808
原创 解决 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 5401
原创 pyqt5 弹窗,弹出自定义窗口。在线程中打开弹窗,不会卡死的方法。
pyqt5 弹窗,弹出自定义窗口1.需求分析2.简单的单击显示窗体3.在线程中显示弹出窗体,不会卡死1.需求分析在用pyqt5做UI项目时,有需要用到弹出自定义窗口的需求,这里就研究了一下。效果如图:这个本身是比较简单的一个操作,点击按钮然后让自定义的窗口显示。如果只是点击弹出自定义窗体是很简单的,但是如果需要在一个线程里面弹出一个窗体,就不是简单的调用显示就行可以了的。下面我是2种方法的实现2.简单的单击显示窗体这里的思路是,先实例化一个主窗体A,然后再实例化一个窗体B,然后再主窗体A中sho
2020-07-27 14:34:43 9342 5
原创 解决 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 3150 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 450
原创 pyqt5 tableWidget入门,和treewidget联动功能
1.成品最近在做项目的过程中需要用到QTreeWidget和QTableWidget联动,上一篇文章介绍了 QTreeWidget的基本用法,这里介绍一下QTableWidget的基本用法,及我在项目中的使用。先看看最终成品。要实现以上图片中的功能,需要在上一篇文中加上QTableWidget。所以先介绍下QTableWidget。2. QTableWidget类QTableWidget类中的常用方法如下表:方 法描 述setRowCount(int row)设置Q
2020-07-15 14:22:53 3232 3
原创 pyqt5 treeWidget入门,多级子项,选中父项,子项也全部选中
目录1. 成品2. 树形结构1. 成品 最近在做项目过程中用到了QTreeWidget,就这里记录下,主要是实现了QTreeWidget树形展开,并且选择父项,子项也可以全部选中。 大概就是下面图片展示的这样:2. QTreeWidget类和QTreeWidgetItem类 树形结构是通过QTreeWidget 和QTreeWidgetItem 类实现的,QTreeWidgetItem 负责添加节点。1.QTreeWidget类中的常...
2020-07-14 18:59:15 6646 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 1667 2
原创 图解crc校验,crc8, crc16, crc32, crc24 用 c语言和python实现
crc24校验背景原理说明实现二级目录三级目录背景在做通信项目的时候,经常会有遇到校验,比如crc32校验,crc24校验,网上很多可以直接计算的链接,有crc16/crc32的,就是没有crc24的!这就让我很费解,之前好不容易找到一个网站可以计算crc24,今年用的时候发现居然已经关闭了!咱 活人不能让尿憋死,有条件要上,没条件,创造条件也要上。咱自己搞一个crc24的校验的工具,每次可以直接用。原理说明实现二级目录三级目录......
2020-06-23 13:39:19 13342 3
原创 linux下,程序各个部分对应的段位置,图说 bss段 text段 data段 rodata段 栈 堆
图说 bss段 text段 data段 rodata段 栈 堆理论上程序编译出来后,各个段的分布二级目录三级目录理论上程序编译出来后,各个段的分布程序在执行后,虚拟内存分布,如下图:二级目录三级目录...
2020-05-23 15:39:03 5639 10
原创 linux下利用fork创建进程,进程运行内存说明,与同时创建多个进程的方法及分析
fork的应用及同时创建多个进程的分析1 进程及进程的创建1 进程2 利用fork创建进程2 利用fork同时创建多个进程3 创建多个进程的代码分析2级标题3级标题四级标题五级标题六级标题1 进程及进程的创建在linux编程中,用来创建用户进程的函数时fork。首先来说明什么是进程。1 进程什么是进程,引用百度百科的说明:进程(Process)是计算机中的程序关于某数据集合上的一次运行...
2020-05-08 15:35:45 3622
原创 linux下静态库与动态库的生成与应用,详解
动态库静态库生成与应用,详细讲解与制作1.静态库与动态库概念静态库概念动态库概念2.程序运行时的内存分布3.库的制作与应用1.静态库的制作与应用2.动态库的制作与应用4.动态库与静态库的优缺点新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创...
2020-04-27 09:22:07 1176
原创 解决虚拟机与宿主机不在同一个网段中,不能相互ping通的问题
背景:在工作中,我在windows中用虚拟机来编译代码。用到的模型是,windows(source insight) + linux(编译)。为了方便操作,在虚拟机中搭建了一个samba,供windows方便访问。一般来说,要想wondows通过samba访问linux,必须要相互ping通才行。所以我们设置虚拟机的时候,会设置虚拟机的网络模式为桥接模式,然后将虚拟机和宿主机设置为通一网段...
2020-04-15 17:07:52 16388 15
原创 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 4620 23
原创 vbox ubuntu虚拟机扩容方案 虚拟分配空间转换为实际分配空间
在使用vbox的过程中,如果在最开始创建vdi的时候创建的vdi分配的空间过小,在使用的过程中,会由于分配的空间不足而导致无法使用的情况。遇到这样的情况对虚拟机的扩容就显得很有必要。 一般在创建vdi的时候都是选的动态分配存储,如果选择的是动态分配存储,那么查看虚拟分配空间和实际分配空间就会不一致。那么第一步就是扩大虚拟分配空间。(以下都是基于Ubuntu的操作)1. 扩...
2018-04-27 10:41:17 14531 12
原创 多通道主控并发的多CE NAND Flash页模型
支持多通道主控并发的多CE NAND Flash页模型的建设,旨在依据NAND Flash的特性更高效的处理多通道并发,从而提高存储设备的吞吐速率,为SSD等的更高效的性能做保障。 多通道并发,我们知道NAND Flash的擦除、编程、读操作都不是瞬间就完成了,都需要一定的时间,而在正常的流程中我们是浪费掉了这段时间,该设计利用多通道的主控就能利用这段时间。具体的流程是在通...
2018-04-11 10:11:29 3453
原创 多通道主控的多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 2269
转载 编译型语言和解释型语言的区别
大体上,可以将程序设计语言可以分为两类:编译型语言和解释型语言。 编译型语言 很多传统的程序设计语言,例如Fortran、Ada、Pascal、C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。 运行程序时,直接读取目标代码(object code)。由于编译后的目标代码(o...
2018-04-10 19:33:06 1211
转载 堆(heap)和栈(stack)
简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。 stack:是自动分配变量,以及函数调用的时候所使用的一些空间。地址是由高向低减少的。 预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap...
2018-03-26 18:13:10 233
原创 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 <版本库的网址> <本地目录名>...
2018-03-26 18:10:19 266
转载 绝对地址的访问方法
C51提供了3种访问绝对地址的方法,分别问:绝对宏、关键字“_at_”、连接定位控制。 1.绝对宏 使用绝对宏时,需要添加投文件“absacc.h”,在该文件中定义的绝对宏有CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD。 CBYTE:对程序存储区(code)的字节地址进行访问。 例如:i=CB
2014-10-08 10:30:11 4671
转载 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 885
转载 内存对齐
编译器为什么要替我们内存对齐?学了计算机组成原理,了解了内存的基本单元是一个字节,内存可以随机寻址,于是乎我天真的认为内存就是一个字节型的容器,基本单位是单个字节。Figure 1. 我眼中的内存空间布局悲剧的是,内存读写的真正访问者cpu不是这么想的。cpu是根据内存访问粒度(memory access granularit
2014-09-23 09:56:41 295
转载 NAND芯片的读写及ECC检验软硬件实现
第一节概论nandflash在对大容量的数据存储中发挥着重要的作用。相对于norflash,它具有一些优势,但它的一个劣势是很容易产生坏块,因此在使用nandflash时,往往要利用校验算法发现坏块并标注出来,以便以后不再使用该坏块。nandflash没有地址或数据总线,如果是8位nandflash,那么它只有8个IO口,这8个IO口用于传输命令、地址和数据。nandflash主要以pag
2014-09-17 17:45:58 3925
转载 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 1320 1
转载 nandflash坏块管理机制
一.操作注意点:坏块一旦确定,就不允许在对其进行擦除或写操作 坏块一般由系统文件或软件管理程序在spare去进行标记二.坏块管理的基本作用:标记nandflash中的所有坏块并建立坏块表,避免对坏块进行操作,在对nandflash进行操作时如遇到坏块则将其标记,跳过并找一好块替代该坏块,同时更新逻辑地址与物理地址的映射关系和坏块表,使得nandflash对上层文件(系统)仍是连续的。三....
2014-09-17 15:58:01 7691
编译系统透视-图解编译原理
2018-05-05
计算机的心智操作系统之哲学原理
2018-05-04
编译原理中文
2018-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人