5 sun_boy_boy_sun

尚未进行身份认证

暂无相关简介

等级
TA的排名 19w+

https://blog.csdn.net/Caoyang_He/article/details/80867543

https://blog.csdn.net/Caoyang_He/article/details/80867543

2019-03-01 16:51:49

Cache问题

什么是程序访问的局部性?Cache一般采用什么制作,优点是什么?什么是块长,怎么计算?Cache与主存之间是字块传送CPU访问Cache命中/不命中意思?缓存的块数C远小于主存的块数M由于上一条的原因,一个缓存块不能永久的对应一个主存块(一对多),所以每个缓存块都需要设置一个标记,用来表示当前存放的是哪一个主存块CPU读信息时,需要将主存地址的高m位(或m位的一部分)与缓存块的标记...

2019-02-26 15:27:59

模4补码(也称为变形补码)详解

模4补码又称为变形补码概念是:用两个二进制位来表示符号位,其余位与补码相同,【例如模2补码的-3为1101,模2用1位,这里是最高位表示符号位,剩下3位是3的补码,同样模4补码表示-3为11_101,模4用两位表示符号位,这里是最高两位11,其余3位为3的补码】总的说来就是符号位左边那一位表示正确的符号(这就说明了选择题里面存储模4补码只需要一个符号位是正确的,因为任意一个正确的数值,模4补码...

2019-02-25 15:05:09

模2运算

模2运算是一种二进制算法,CRC校验技术中的核心部分,因此,我们在分析CRC算法之前,必须掌握模2运算的规则。与四则运算相同,模2运算也包括模2加、模2减、模2乘、模2除四种二进制运算。而且,模2运算也使用与四则运算相同的运算符,即“+”表示模2加,“-”表示模2减,“×”或“·”表示模2乘,“÷”或“/”表示模2除。与四则运算不同的是模2运算不考虑进位和借位,即模2加法是不带进位的二进制加法运算...

2019-02-25 14:30:28

CTS时钟树综合一0225/2019

一.芯片设计中时钟分为两类:真实时钟/虚拟时钟,真实时钟分为两种模式:1.时钟树综合前没有延时的理想时钟(ideal clock)2.时钟树综合后的传播时钟(propagated clock);对于某个不含PLL的设计模块,其信号来自于顶层芯片,我们就定义为虚拟时钟。二.时钟树综合与标准设计约束文件时钟树综合需要对期望实现的参数做出定义,这些参数通过“时钟树约束文件”提供;时钟树约束文件中...

2019-02-25 11:02:35

数字和模拟混合供电20190221

一.数模混合供电设计中,需要特别注意电源信号之间的干扰和隔离,因而需要建立不同的电源区域(Power Domain):1)模拟模块的工作区域一般放置在芯片的某个角落,其间不应该混合放置数字模块;2)模拟区域需要单独供电,给模拟信号供电的I/O单元应该放在模拟模块的边上,尽量缩短供电线路的长度;3)在模拟模块周围放置保护隔离环(Guard Ring);如上图某芯片电源规划图:1)模拟信号...

2019-02-21 15:21:46

数字集成电路设计__数字后端__电源网络设计__概念解析示例

1.Power RingPower ring是指为了均匀供电,包围在标准单元周围的环形供电金属。如果供电的IO单元正好分布在芯片四周,那我们可以采用power ring的形式来供电。如下图所示:可以把它想象成一座桥梁,供电IO单元通过金属连接到ring,标准单元和macro分别通过followpin和stripes连接到ring,ring可以平均分布电流,缩短电流回路,更有效的减小电压降与电...

2019-02-20 15:22:31

STM32启动文件代码分析

2019-01-27 17:59:40

http://www.openedv.com/posts/list/47444.htm 【转发】写得非常好的IAR启动STM32到Main详细过程。 [复制链接]

最近要在Cortex-M3上写一个简单的操作系统,打算使用IAR,为了写好启动代码,花了一些时间了解了IAR在main()以前做了些什么事。首先系统复位时,Cortex-M3从代码区偏移0x0000’0000处获取栈顶地址,用来初始化MSP寄存器的值。接下来从代码区偏移0x0000’0004获取第一个指令的跳转地址。这些地址,是CM3要求放置中断向量表的地方。这里是一个程序的启动区的反汇编:...

2019-01-24 14:37:25

STM32 Bootloader与启动分析

一、STM32 程序下载与Bootloader 三种启动模式如下表:(截图与stm32中文参考资料)1、从主闪存存储器启动,即从STM32内置的Flash启动,BOOT0=0,BOOT1=X, 一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,复位(软件复位、手动复位、硬件自动复位)后也直接从这启动程序。不需要使用到系统存储区的Bootloader程序。2、从系统...

2019-01-24 11:57:11

stm32启动过程

说明:本文是杰杰以前保存下来的,出处已经不知道在哪了,应该是各大论坛中,当然转这种文章,到处都有。今天我就把它重写一遍。基于原作者的内容添加一些内容(源码)讲解。杰杰水平有限,出错在所难免,还望各位大神指点一二。startup_stm32f10x_cl.s互联型的STM32F105xx,STM32F107xxstartup_stm32f10x_hd.s 大容量的STM32F101xx,STM...

2019-01-24 11:54:51

UART寄存器

https://blog.csdn.net/zengaliang/article/details/78313279

2019-01-21 10:51:02

SysTick时钟节拍的作用及间隔多少是合适的?

2019-01-20 18:34:02

Cortex M3核学习

实验室的MCU项目中主要核心CPU使用的是Cortex M3 ,就此学习嵌入式工作组的头文件以及一些函数学习,作为自己嵌入式学习的入门,持之以恒,目标明年7月找工作之前能够比较熟悉的掌握了解嵌入式开发。首先main.c一个简单的函数:int main(void){// BSP_LED_Init();// delay_init();// u8 flag = true;// t...

2019-01-20 15:15:05

串口波特率等概念(转https://blog.csdn.net/dagefeijiqumeiguo/article/details/68921820)

篇一 : 串口波特率等概念1:比特率:9600bps就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份。如此,那么每1bit的时间就是1/9600秒=104.16666666666666666666666666667us。约0.1ms。既然是9600等份,即每1bit紧接着下一个比特,不存在额外的间隔。也不管是啥起始bit,数据bit,奇偶bit,停止bit。2:帧格式...

2019-01-18 19:24:29

SysTick以及抢占优先级Stm32

2019-01-18 13:56:37

转载https://www.cnblogs.com/yangguang-it/p/6719261.html/C语言Volatile编译器不要优化

volatile译为:易变的。这不是和题目的让我保持原样矛盾了吗?其实不然,在变量前加上该关键字修饰,确实是告诉编译器,这个变量是一个容易改变的变量,不要对它进行优化,每次都要到变量的地址中去读取变量的数据,但正因为这样,才是保持了变量的原样,因为变量已经发生改变了,你却操作的是没有变化时的数据,这样才让变量失去了本应该保持的属性。eg:int a=1;a=2;a=3;…编译器看到这样...

2019-01-17 09:57:41

利用动态内存分配创建堆栈.h头文件并调用例程

1.首先,创建stack.h头文件,头文件中只用来声明函数及定义/*一个堆栈模块的接口*/#define STACK_TYPE int/*push把一个新值压入堆栈,它的参数是需要压入的值*/void push(STACK_TYPE value);/*pop从堆栈中弹出一个值,并丢弃*/void pop(void);/*top返回堆栈顶元素,但不对堆栈进行修改*/STAC...

2019-01-11 21:35:27

C语言之联合与变体记录(转载https://blog.csdn.net/qq_31504597/article/details/79940765)

结构体是将一个对象(内存空间)解释为C语言中多种类型的综合.联合 是将一个对象(内存空间)在不同时候解释为C语言中不同的类型.// 联合union {float f;int i;} fi;12345当使用 fi.f 时, fi所占内存中的内容将被解释为一个float数; 当使用 fi.i 时, fi所占内存中的内容将被解释为一个int类型.注意: 如果联合的各个成员具有不...

2019-01-07 15:33:44

动态内存分配小结(转载)

转载https://www.cnblogs.com/3me-linux/p/3962152.htmlmalloc/calloc/realloc/alloca内存分配函数calloc(), malloc(), realloc(), free(),alloca()内存区域可以分为栈、堆、静态存储区和常量存储区,局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取的方式都是由编译器自动执行的...

2019-01-07 14:32:31

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!