-
一、基于standcell的ASIC设计流程 所谓standcelllibrary即为标准单元库,主要指数字电路,反相器,与非门,或非门,异或门,施密特触发器之类的基本元器件。设计流程为: 算法模型(C/C++/Matlab)--->RTLHDLVHDL/Verilog--->NetlistVerilog--->LayoutGDSII--->
-
一、二叉树的深层性质性质1在二叉树的第i层最多有2^(i-1)个结点。(i≥1) 第一层最多有2-1=1个结点 第二层最多有2^(2-1)=2个结点 第三层最多有2^(3-1)=4个结点性质2深度为k的二叉树最多有2^k-1个结点。(k≥0) 如果有一层,最多有1=2-1=1个结点 如果有两层,最多有1+2=2^2-1=3个结点 如果有三层,最多有1+2+4=2^3-1=7个结点性质3对任何一棵二
-
一、树的定义树的定义 树是一种非线性的数据结构 树是由n(n≥0)个结点组成的有限集合 如果n=0,称为空树; 如果n>0,则: 有一个特定的称之为根(root)的结点,它只有直接后继,但没有直接前驱 除根以外的其它结点划分为m(m≥0)个互不相交的有限集合T0
-
一、排序的概念与分类排序的一般定义 排序是计算机内经常进行的一种操作,其目的是将一组“无序”的数据元素调整为“有序”的数据元素。例如:将下列关键字序列52,49,80,36,14,58,61,23,97,75调整为14,23,36,49,52,58,61,75,80,97排序的数学定义 假设含有n个数据元素的序列为{R1,R2,…,Rn},其相应的关键字序列为{K1,K2,…,
-
34、同时变更了文件名和文件内容如何处理当远端仓库与本地的文件名不一致时,并且文件内容还发生变化,git可以很好的感知这一变化,并且进行处理。例如远端更新了文件内容此时,而本地更改了文件名。$gitmvsecond.txtsecond1.txt$gitcommit-am"mvsecond.txttosecond1.txt"#本地修改文件名[master6066083]mvsecond.txttos
-
29、公私钥的创建于配置github为了在本地更好的操作远程仓库,可以在本地与远程仓库之间配置公私钥连接,首先可以查看本地是否有公私钥,如果没有可以使用以下命令生成。$ls~/.ssh/#查看是否存在公私钥id_rsaid_rsa.pubknown_hostsssh-keygen-trsa-b4096-C"your_email@example.com"#如果不存在可使用该命令生成生成公私钥后,将公
-
16、把连续的多个commit整理成1个commitce587039661c88fd508035fd103a012e33c057ac(HEAD->temp)Author:Jone<764651475@qq.com>Date:ThuMar1417:03:072019+0800Updatefourthfile.txtcommitbfd373ab1dd5b2d578bac9cacd4d
-
11、分离头指针情况下的注意事项 所谓分离头指针,即在git切换到某一commit时,没有绑定在分支或者tag上,此时如果在该commit下进行了文件修改,并且提交commit时,git在日后清理该提交而不保存,因此在进行commit查看时,最好绑定在某一branch或者tag上操作,当然这种操作的好处也存在,即不会破坏原有的branch环境。$gitcheckout0bd98cb5d0
-
队列的定义及实现 队列的定义 队列是一种特殊的线性表 队列仅在线性表的两端进行操作 队头(Front):取出数据元素的一端 队尾(Rear):插入数据元素的一端 队列的性质 先进先出(FIFO,FirstInFirstOut) 队列的一
-
git
-
基于苏玲老师<玩转Git三剑客>视频学习的一点总结。——极客时间1、版本控制系统的演变 VCS出现前 用目录拷贝区别不同版本 公共文件容易被覆盖 成员沟通成本很高,代码集成效率低下 集中式VCS 有集中的版本管理服务器器 具备文件版本管理理和分支管理理能力 集成效率有明显地提高 客户端必须时刻和服务器相连 分布式VCS 服务端和客户端都有完整的版本库 脱离服务端,客
-
一、函数调用时的栈函数调用时的栈 程序中的“函数调用栈”是栈数据结构的一种应用 函数调用栈一般是从高地址向低地址增长的 栈底为内存的高地址处 栈顶为内存的低地址处 函数调用栈中存储的数据为活动记录程序中的栈 在不断的压栈过程中造成栈空间耗尽而产生栈溢出 栈溢出常由于函数递归过深或局部数组过大造成二、递归的应用 递归是一种数学上分而自治的思想 递归将大型复杂问题转化为与原问题相同但规模较小的问题
-
1、栈的定义与实现栈的定义 栈是一种特殊的线性表,仅能在线性表的一端进行操作 栈顶(Top):允许操作的一端 栈底(Bottom):不允许操作的一端栈的性质:后进先出(LIFO)栈的一些常用操作 创建栈 销毁栈 清空栈 进栈 出栈 获取栈顶元素 获取栈的大小栈的存储实现顺序存
-
1、静态链表单链表的劣势: 单链表的实现严重依赖指针! 数据元素中必须包含一个额外的指针域! 没有指针的程序设计语言无法实现!由于单链表存在以上的劣势,因此可以对顺序表加以改进,从而通过索引查找下一个元素,达到链表相同的效果,这就是静态链表。静态链表的定义: 顺序表数组中的元素由两个数据域组成:data和next data域用于存储数据
-
当我在学习C语言的链表实现时,遇到了一些问题,通常链表的表头是通过结构体创建的,而表头中包含所需要指向的第一个节点与整个链表长度等信息,对于在表头中所存储的地址信息感到一点疑惑。如一下创建的一个单向链表:typedefstruct_tag_LinkListNodeLinkListNode;//结点取别名struct_tag_LinkListNode{LinkListNode*next;
-
1.线性表的本质与相关操作线性表的定义 线性表(List)是零个或多个数据元素的集合 线性表中的数据元素之间是有顺序的 线性表中的数据元素个数是有限的 线性表中的数据元素的类型必须相同线性表的性质 a0为线性表的第一个元素,只有一个后继 an为线性表的最后一个元素,只有一个前驱 除a0和an外的其它元素ai,既有前驱,又有后继 线性表能够逐项访问和顺序存取线性表的一些常用操作 创建线性表 销毁线性
-
1、函数的真面目程序=数据+算法==》C程序=数据+函数模块化程序设计:C语言中的模块化:面向过程的程序设计面向过程是一种以过程为中心的编程思想首先将复杂的问题分解为一个个容易解决的问题分解过后的问题可以按照步骤一步步完成函数是面向过程在C语言中的体现解决问题的每个步骤可以用函数来实现声明和定义:程序中的声明可理解为预先告诉编译器实体的存在,如:变量,函数,等等程序中的定义明确指示编译器实体的意义
-
一、程序的本质程序是为了实际的问题而存在从本质上而言,程序是解决问题的步骤描述。数据结构起源 计算机从解决数值计算问题到解决生活中的问题 现实生活中的问题涉及不同个体间的复杂联系 需要在计算机程序中描述生活中个体间的联系 数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系数据结构中的概念: 数据–程序的操作对象,用于描述客观事物&em
-
指针: 指针在本质上是一个变量;指针需要占用一定的内存空间;指针用于保存内存地址的值*号的意义: 在指针声明时,*号表示所声明的变量为指针; 在指针使用时,*号表示取指针所指向的内存空间中的值; char*p<==>(char*)p//前面的数据类型是修饰指针指向的空间大小,在32位机器中,指针大小为4字节传值调用与传址调用: 指针是变
-
1.动态内存分配 C语言中的一切操作都是基于内存的 变量和数组都是内存的别名,如何分配这些内存由编译器在编译期间决定 定义数组的时候必须指定数组长度,而数组长度是在编译期就必须决定的内存的分配与释放: malloc和free:malloc和free用于执行动态内存分配和释放 malloc所分配的是一块连续的内存,以字节为单位
-
1、数据类型与变量的本质数据类型:数据类型可以理解为固定内存大小的别名,是创建变量的模子变量本质:变量是一段实际连续存储空间的别名,程序中通过变量来申请并命名存储空间,通过变量的名字可以使用存储空间 2、关键字分析2.1auto,static,register分析C语言中的变量可以有自己的属性,在定义变量的时候可以加上“属性”关键字,“属性”关键字指明变量的特有意义 auto:C语言中局部变量
-
1、C程序的过程处理流程:静态链接与动态链接:链接可以分为静态链接(静态库)与动态链接(共享库): 静态库是代码的归档,在使用静态库时是采用的复制代码的方式。共享库是可执行文件的组成部分,在使用共享库时是采用的提供代码在共享库的地址给可执行文件的方式。GCC编译器:区分大小写gcc-E:只做预处理,其它都不做,(.i)gcc-S:检查语法错误等,生成汇编文件(.s)gcc-c:完成汇编,
-
S3C2440的存储控制器提供了访问外设所需要的信号,它有如下特性:支持大/小端字节(通过软件选择);每个BANK的地址空间为128MB,总共1GB(8个BANK);可编程控制的总线宽度(8/16/32bit),BANK0只有两种位宽(16/32bit);总共8个BANK:BANK0-BANK5可以支持外接ROM、SRAM等;BANK6-BANK7除了支持ROM、SRAM外,还支持SDRAM等;
-
GPIO(GeneralPurposeI/OPorts)意思为通用输入/输出端口,通俗地说,就是一些引脚,可以通过它们输出高低电平、或者通过它们读入引脚的状态──是高电平还是低电平。 三星S3C2440,有130个I/O端口,分为A-J九组,可以通过设置寄存器来确定某个引脚用于输入、输出还是特殊功能。在这里通过四个实验介绍GPIO的简单使用。1、通过汇编语言点亮LED灯 首先需要看原理图,知道L
-
一、ARM体系结构 ARM(AdvancedRISCMachines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。ARM处理器是一种低功耗高性能的32位RISC处理器,基于ARM的处理器以其高速度、低功耗等诸多优异的性能而得到非常广泛的应用。 ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、R和M三类,其分别应用于不同的领域
-
一、开发板接口接线工具 开发板与PC机之间可以进行连接的接口通常有四个:串口、JTAG、USB、网络接口。而如今在PC端是没有JTAG或者接口的,因此可以使用转接板转换为并口或者USB口与PC段相连。 JTAG最初是用来对芯片进行测试的,JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。如今,JTAG接口还常用于实现ISP(In-SystemProg
-
一、交叉编译工具的使用 在进行嵌入式开发时,通常有宿主机与目标机的角色之分,宿主机是执行编译、链接嵌入式软件的计算机,而目标机是运行嵌入式软件的硬件平台。而这两者之间有时硬件/软件平台可能不同,在宿主机上直接使用编译器的程序在目标机上无法运行,因此就出现了交叉编译工具。在针对ARM架构上运行的Linux目标机来说,其专用的交叉编译工具为arm-linux-gcc、arm-linux-ld等。 一个
-
在刚开始学习嵌入式入岛的最大的问题就是开发板、PC机、虚拟机三者之间如何ping通的问题。首先需要了解在vmware中设置Linux连接网络的方法。网路连接属性意义bridged(桥接模式)连接vmnet0虚拟交换机,此时虚拟机相当于网络上的一台独立计算机。与主机一样,拥有一个IPNAT(网络地址转换模式)使用VMnet8虚拟交换机,此时虚拟机可以通过主机单向访问其他主机,而Vmnet
-
最近由于找到的工作是偏于嵌入式方向,因此有重新开始学习已经丢弃两年的知识。新手学习知识都感觉有一个通病:喜欢收集各种各样的视频、资料,网盘里收藏一大堆,但是却从没有打开看过,到头来还是个小白,只听说过几个概念,而实际却是不知所云,这就是所谓的"学习综合征"。而我也是其中的一员,最近痛定思痛,就准备根据一套资料沉下心学习下去,不再进入收集资料的大军。市场上关于嵌入式方面的视频或资料有很多,比如国嵌、
-
一、Garbage collection(GC垃圾回收) 现在的高级语言如java,c#等,都采用了垃圾收集机制,而不再是c,c++里用户自己管理维护内存的方式。自己管理内存极其自由,可以任意申请内存,但如同一把双刃剑,为大量内存泄露,悬空指针等bug埋下隐患。 对于一个字符串、列表、类甚至数值都是对象,且定位简单易用的语言,自然不会让用户去处理如何分配回收内存的问题。 python里
少年不在了
分享到朋友圈
- 关注技术:C/C++ python Red Hat
- 入住博客:2015-04-28 5.8年