现在位置: 首页

乱序执行的原理

2016年08月25日 基础知识  ⁄ 共 3326字 暂无评论 ⁄ 阅读 38 次
处理器基本上会按照程序中书写的机器指令的顺序执行。按照书写顺序执行称为按序执行(In-Order )。按照书写顺序执行时,如果从内存读取数据的加载指令、除法运算指令等延迟(等待结果的时间)较长的指令后面紧跟着使用该指令结果的指令,就会陷入长时间的等待。尽管这种情况无可奈何,但有时,再下一条指令并不依赖于前面那条延迟较长的指令,只要有了操作数就能执行。 此时可以打乱机器指令的顺序,就算指令位于后边,只要可...
阅读全文

Connected system ID hash not found on target at expected base address

2016年07月27日 FPGA开发  ⁄ 共 707字 评论 1 条 ⁄ 阅读 294 次
最近有个小项目使用到FPGA,前几天突然程序下载不进去了,一直报错“”Connected system ID hash not found on target at expected base address“”,很是郁闷,之前用着好好的。 Connected system ID 如果在“Run Configurations”中忽略ID检测继续RUN,基本上会弹出如下对话框: problem 在网上搜索解决方法,一般有如下可能:  1) unused pin没有设置,可能会收到外部信号的干扰;设置未用引脚为As input tri-stated with weak ...
阅读全文

对话框添加控件后到ClassWizard中间的Member Variables中不能显示的问题

2016年07月13日 常见问题  ⁄ 共 323字 暂无评论 ⁄ 阅读 382 次
问题:基于对话框程序,在对话框上添加EDIT、comber等控件后,进入ClassWizard中间的Member Variables想为控件关联变量,发现控件在control IDs中间根本就没有,新添加一个控件Member Variables中也不更新。 解决方法:首先看看resource.h那个文件里面有不有你的那个控件对应的ID  没有的话 重新加上; 然后在工程目录里面把后缀名为clw的文件删了 在打开class Wizard  它会自动给你弹出提示,根据提示操作即可,问题解决。 Cla...
阅读全文

如何在NIOS II中读写EPCS剩余空间(转)

2016年03月16日 FPGA开发  ⁄ 共 1891字 暂无评论 ⁄ 阅读 357 次
由于测试需要,网上收到的,直接贴代码,以备不时之需: #include <stdio.h> #include <unistd.h> #include "system.h" #include "alt_types.h" #include "sys/alt_flash.h" #include "sys/alt_flash_dev.h" alt_u8 epcsbuf[32]; int ret_code; alt_flash_fd* my_epcs;//定义句柄 main() { my_epcs = alt_flash_open_dev("/dev...
阅读全文

C语言中的柔性数组,char data[0]用法总结

2016年03月01日 基础知识  ⁄ 共 1782字 暂无评论 ⁄ 阅读 422 次
柔性数组 在日常的编程中,有时候需要在结构体中存放一个长度动态的字符串,一般的做法,是在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间,例如: typedef struct test { int a; double b; char *p; }; p指向字符串。这种方法造成字符串与结构体是分离的,不利于操作。如果把字符串跟结构体直接连在一起,不是更好吗?于是,可以把代码修改为这样: char a[] = "hello world&...
阅读全文

TCP连接探测中的Keepalive 和心跳包(转)

2016年02月25日 基础知识  ⁄ 共 1730字 暂无评论 ⁄ 阅读 288 次
采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃、当机、网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回。很多时候,这不是我们需要的。我们希望服务器端和客户端都能及时有效地检测到连接失效,然后优雅地完成一些清理工作并把错误报告给用户。 如何及时有效地检测到一方的非正常断开,一直有两种技术可以运用。一种是由TCP协议层实现的Keepaliv...
阅读全文

arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别(转)

2016年01月22日 基础知识  ⁄ 共 2460字 暂无评论 ⁄ 阅读 306 次
命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os - 目标操作系统 eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface) 根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如 arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于...
阅读全文

Tiny4412驱动之使用平台总线操作LED(platform)

2016年01月15日 驱动开发  ⁄ 共 655字 暂无评论 ⁄ 阅读 327 次
温习完linux设备模型,今天打算使用平台总线来操作一下LED,下面说一下实验步骤及现象: 包含的文件总共有四个,驱动相关的有3个: 1.led_dev.c 2.led_drv.c Makefile 测试用的应用程序有一个: led_test.c 下面开始编译代码: 平台总线测试 如上图所示,编译出驱动程序及测试程序,然后拷贝到开发板上去。 下面开始做实验: 1加载驱动程序: 加载驱动 上图可以看到,刚加载完设备之后什么也没有打印出来,加载完驱动程序之后打...
阅读全文

Linux驱动之bus_register分析

2016年01月13日 驱动开发  ⁄ 共 6169字 暂无评论 ⁄ 阅读 279 次
最近在温故Linux的总线设备驱动模型,下面分析一下bus_register的详细调用过程及行为目的: kobject,kset,ktype。这三个结构联合起来一起构成了整个设备模型的基石,请看下面两篇文章: 《设备模型之kobject,kset及其关系》 《设备模型之总线,驱动,设备》 devices_ket和driver_kset 上图说明了总线通过两个数据结构:devices_ket和driver_kset来管理注册在此总线上的所有的设备和驱动,为了方便遍历,linux增加了klist_devi...
阅读全文

×