现在位置: 首页 > techbulo发表的所有文章
  • 09月
  • 23日
技术文章 ⁄ 共 1618字 LVDS基础、原理、图文讲解已关闭评论 ⁄ 阅读 7,023 次
LVDS是一种低摆幅的差分信号技术,它使得信号能在差分PCB 线对或平衡电缆上以 几百Mbps的速率传输,其低压幅和低电流驱动输出实现了低噪声和低功耗。 IEEE 在两个标准中对LVDS 信号进行了定义。ANSI/TIA/E IA -644 中,推荐最大速率为 655Mbps ,理论极限速率为1.923Gbps 一、LVDS组成 lvds LVDS 信号传输一般由三部分组成:差分信号发送器,差分信号互联器,差分信号接收器。 差分信号发送器:将非平衡传输的TTL 信号转换成平衡传输的LVDS 信号。 差分信号接收器:将平衡传输的LVDS 信号转换成非平衡传输的TTL 信号。 差分信号互联......
阅读全文
  • 09月
  • 21日
常见问题 ⁄ 共 611字 `.bss’ is not within region `onchip_memory’已关闭评论 ⁄ 阅读 3,357 次
用Nios II 13.0创建工程,最后编译时出现类似”`bss' is not within region `onchip_memory“这种错误,如下图所示: bss-is-not-within-region-onchip_memory BSS等段超出了存储器容量,查找了一下工程设置,如下图所示: step1 发现现在工程的设置如下图所示: step2 默认选上了Support C++,去掉这个选项,按下图设置: step3 同时也可以把代码优化打开(上图箭头所示位置 一般选择level 02 就可以),然后点击OK,重新编译代码,一切恢复正常: success
阅读全文
  • 09月
  • 20日
常见问题 ⁄ 共 139字 Can’t place all RAM cells in design已关闭评论 ⁄ 阅读 3,434 次
刚接触QSys,今天新建了个工程,编译的时候出现如下错误: ‘’Error (170040): Can't place all RAM cells in design‘’ 解决方案: 在建nios cpu里面的onchip memory的时候大小太大了,超出了选用的FPGA的限制。 改小一点重新编译即可。
阅读全文
  • 09月
  • 13日
常见问题 ⁄ 共 564字 virtualbox中Cannot register the hard disk错误解决办法已关闭评论 ⁄ 阅读 3,760 次
今天想用之前的一个硬盘文件创建虚拟机,导入时发生如下错误: virtual_error 根据错误,原来UUID已存在,不能创建,网上搜索解决办法,很简单,如下: 1.打开cmd 2.输入如下命令(需要根据你的实际路径修改) VBoxManage.exe  internalcommands  sethduuid  "F:\VirtualBox VMs\PIR228\HardDisk\Ubuntu_10.04.4.vdi"  0160913f-6e83-4cd6-97b7-c9e24d9cd26d "F:\VirtualBox VMs\PIR228\HardDisk\Ubuntu_10.04.4.vdi"这是我的路径,需要根据实际修改,上述命令的作用就是将Ubuntu_10.04.4.vdi这个文件的UUID改为 ......
阅读全文
  • 08月
  • 25日
技术文章 ⁄ 共 3326字 乱序执行的原理已关闭评论 ⁄ 阅读 3,235 次
处理器基本上会按照程序中书写的机器指令的顺序执行。按照书写顺序执行称为按序执行(In-Order )。按照书写顺序执行时,如果从内存读取数据的加载指令、除法运算指令等延迟(等待结果的时间)较长的指令后面紧跟着使用该指令结果的指令,就会陷入长时间的等待。尽管这种情况无可奈何,但有时,再下一条指令并不依赖于前面那条延迟较长的指令,只要有了操作数就能执行。 此时可以打乱机器指令的顺序,就算指令位于后边,只要可以执行,就先执行,这就是乱序执行(Out-of-Order)。 乱序执行时,由于数据依赖性而无法立即执行的指令......
阅读全文
  • 07月
  • 27日
FPGA开发 ⁄ 共 707字 Connected system ID hash not found on target at expected base address已关闭评论 ⁄ 阅读 4,138 次
最近有个小项目使用到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 pull-up.   2) 系统时钟信号没有约束,或者SDRAM等存储设备的时钟没有配置正确;   3) 系统复位......
阅读全文
  • 07月
  • 13日
常见问题 ⁄ 共 323字 对话框添加控件后到ClassWizard中间的Member Variables中不能显示的问题已关闭评论 ⁄ 阅读 2,567 次
问题:基于对话框程序,在对话框上添加EDIT、comber等控件后,进入ClassWizard中间的Member Variables想为控件关联变量,发现控件在control IDs中间根本就没有,新添加一个控件Member Variables中也不更新。 解决方法:首先看看resource.h那个文件里面有不有你的那个控件对应的ID  没有的话 重新加上; 然后在工程目录里面把后缀名为clw的文件删了 在打开class Wizard  它会自动给你弹出提示,根据提示操作即可,问题解决。 ClassWizard
阅读全文
  • 03月
  • 16日
FPGA开发 ⁄ 共 1891字 如何在NIOS II中读写EPCS剩余空间(转)已关闭评论 ⁄ 阅读 1,779 次
由于测试需要,网上收到的,直接贴代码,以备不时之需: #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/epcs_controller");//打开FLASH器件,获取句柄 ret_code = alt_epcs_flash_get_info (my_epcs,......
阅读全文
  • 03月
  • 01日
技术文章 ⁄ 共 1782字 C语言中的柔性数组,char data[0]用法总结已关闭评论 ⁄ 阅读 2,735 次
柔性数组 在日常的编程中,有时候需要在结构体中存放一个长度动态的字符串,一般的做法,是在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间,例如: typedef struct test { int a; double b; char *p; }; p指向字符串。这种方法造成字符串与结构体是分离的,不利于操作。如果把字符串跟结构体直接连在一起,不是更好吗?于是,可以把代码修改为这样: char a[] = "hello world"; test *stpTest = (test *)malloc(sizeof(test) + strlen( a ) + 1 ); strcpy(stpTest + 1, a )......
阅读全文
  • 02月
  • 25日
技术文章 ⁄ 共 1730字 TCP连接探测中的Keepalive 和心跳包(转)已关闭评论 ⁄ 阅读 2,453 次
采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃、当机、网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回。很多时候,这不是我们需要的。我们希望服务器端和客户端都能及时有效地检测到连接失效,然后优雅地完成一些清理工作并把错误报告给用户。 如何及时有效地检测到一方的非正常断开,一直有两种技术可以运用。一种是由TCP协议层实现的Keepalive,另一种是由应用层自己实现的心跳包。 TCP默认并不开启Keepalive功能,因为开启Keepalive功能需要消耗......
阅读全文
  • 01月
  • 22日
技术文章 ⁄ 共 2460字 arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别(转)已关闭评论 ⁄ 阅读 1,448 次
命名规则 交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi] arch - 体系架构,如ARM,MIPS vendor - 工具链提供商 os - 目标操作系统 eabi - 嵌入式应用二进制接口(Embedded Application Binary Interface) 根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如 arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。 arm-none-linux-eabi:用于Linux的,使用Glibc 实例 1、arm-none-eabi-gcc (ARM arc......
阅读全文
  • 01月
  • 15日
驱动开发 ⁄ 共 655字 Tiny4412驱动之使用平台总线操作LED(platform)已关闭评论 ⁄ 阅读 2,472 次
温习完linux设备模型,今天打算使用平台总线来操作一下LED,下面说一下实验步骤及现象: 包含的文件总共有四个,驱动相关的有3个: 1.led_dev.c 2.led_drv.c Makefile 测试用的应用程序有一个: led_test.c 下面开始编译代码: 平台总线测试 如上图所示,编译出驱动程序及测试程序,然后拷贝到开发板上去。 下面开始做实验: 1加载驱动程序: 加载驱动 上图可以看到,刚加载完设备之后什么也没有打印出来,加载完驱动程序之后打印出来probe函数里的信息,说明probe函数被调用了,设备和驱动程序已经关联了起来,下面可以开始测试了......
阅读全文
×