Latest Posts

SAS Expander解释 SAS硬盘交换机。


 SAS Expander可以认为硬盘交换机,通过这个装置,将很多硬盘连接在一起,并提供一个对外连接接口到服务器。

 

SAS扩展器是一种较新的存储技术,可使SAS控制器卡的存储容量最大化。许多SAS控制器支持多达128个或更多硬盘驱动器。这只能通过SAS扩展器解决方案实现。

SAS扩展器是一个模块,它允许SAS控制器卡使用比其自身所能使用的更多的SAS/SATA驱动器,因为卡上的SAS连接器数量有限。一个典型的SAS卡上可能只有一个或两个接口,而且它本身最多只能支持四个或八个驱动器。使用SAS扩展器机柜的设置可以允许控制器最多使用它可以支持的最大设备,通常是128或256个设备,具体取决于卡。

例如,如果使用带有两个连接器的常规8托架SAS机柜,则带有两个外部连接器的SAS控制器卡最多可支持8个驱动器。但是,您可以购买带有内置扩展器的机柜,只需使用一根minias电缆连接到机柜。机柜可以小到8个机架,也可以大到24个机架。您可以通过控制器卡上的第二个连接器,或者通过菊花链将额外的扩展器机箱连接到第一个连接器,为将来的扩展留出空间


Read More

三大可编程逻辑器件供应商 ALTERA XILINX Lattice


三大可编程逻辑器件供应商 ALTERA XILINX Lattice

 

厂家 中文名称 首发优势 开发工具集成环境
ALTERA 阿尔特拉 1983年发明世界上第一个可编程逻辑器件 QuartusII
XILINX 赛灵思 FPGA的发明者 ISE
Lattice 莱迪思 ISP技术的发明者 Diamond

 


Read More

Lattice 莱迪思 格子木架,格子金属架,格栅


莱迪思(Lattice)半导体公司提供业界最广范围的现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)及其相关软件,包括现场可编程系统芯片(FPSC)、复杂的可编程逻辑器件(CPLD),可编程混合信号产品(ispPAC®)和可编程数字互连器件(ispGDX®)。

该公司在中国设有研发中心,上海莱迪思半导体有限公司

 

莱迪思半导体公司是从事世界上最先进的超大规模可编程逻辑器件及相应的EDA软件系统的研究、设计、开发、生产的专业公司之一,是在系统可编程技术(In System Programmability,简称ISP)及器件的发明者和供应商,是世界上三大可编程逻辑器件供应商之一。

莱迪思半导体公司提供业界范围的可编程逻辑器件(PLD),包括:现场可编程门列阵(FPGA)、复杂的可编程逻辑器件(CPLD)、混合信号电源管理器、时钟发生器件。莱迪思还提供业界领先的SERDES产品。

莱迪思不断地以针对系统设计的全方位的解决方案来为其客户提供最多最棒的东西,包括无以伦比的高性能、非易失、低成本的FPGA产品线。

莱迪思通过一个分布广泛的独立销售代理和分销商网络,把产品销往全世界,其产品主要针对通讯、计算机、工业、消费品、汽车、医疗和军事领域终端市场的OEM客户。

上海莱迪思半导体有限公司是美国莱迪思半导体公司于1993年6月经中国政府批准在上海独资建立的设计开发中心,拥有世界一流的设备和工作环境。公司员工大多数具有硕士以上学位或高级职称。公司主要从事世界一流FPGA、CPLD器件及相应电子设计自动化软件(EDA Software)的设计开发,并向中国大陆以及亚洲其他国家与地区的莱迪思用户提供技术应用支持、培训和咨询服务。

官方网站。

https://www.latticesemi.com/en/About

 


Read More

Error: L6200E: Symbol __stdin multiply defined by stdio_streams.o 分析与解决


Error: L6200E: Symbol __stdin multiply defined (by stdio_streams.o and retarget.o).
Error: L6200E: Symbol __stdout multiply defined (by stdio_streams.o and retarget.o).
Not enough information to list image symbols.
Not enough information to list the image map.
 

中文翻译

原因

retarget.c文件允许您使用简单的I/O函数,如printf或getline。当您的应用程序使用其他复杂函数(如fprintf、assert、fopen、fclose等)时,您将收到以下错误消息。

解决方案

删除这些函数调用(或用实时库(RL-ARM)中的组件替换它们。

 

refer:

https://www.keil.com/support/docs/3279.htm

https://developer.arm.com/documentation/100074/0611/linker-errors-and-warnings/list-of-the-armlink-error-and-warning-messages

 

 

PROBLEM

I use the RealView compiler to write my embedded application and added the retarget.c file to route the I/O routines to a physical UART interface.

But when I build the project, I get the following error:

Error: L6200E: Symbol __stdout multiply defined (by retarget.o and stdio.o).

What causes this error?

CAUSE

The retarget.c file allows you to use simple I/O functions such as printf or getline. When your application uses other complex functions such as fprintfassertfopenfclose, etc., you get this error message.

SOLUTION

Remove these function calls (or replace them with components from the Real-Time Library (RL-ARM).


Read More

beyond compare 替代工具meld


beyond compare是一个专业的文件对比工具。

但这个工具只有一个月的评估期,到期就不能使用了。

在搜索之后发现了一个能够替代这个软件的工具meld。

meld支持linux和windows系统,能够代替beyond compare进行。

最重要的是这个工具是免费的。

Meld is packaged for most Linux/Unix distributions, including Fedora, Ubuntu, and Suse. Unless you want the absolutely latest version, you should install Meld through your package manager.

http://meldmerge.org


Read More

VPD FRU EEPROM ASSET


VPD: vital product data 重要产品数据

FRU: Field Replace Unit

EEPROM: Electrically Erasable Programmable read only memory

ASSET: 资产信息

一般将重要信息写入EEPROM进行存放,对制造商方便修改,而最终使用只能查看。


Read More

关于one's Complement和two's Complement的区别(1的补码和2的补码)(1步补码和2步补码)


one's Complement表示按位取反;
two's Complement表示按位取反后再加1

1的补码可以认为只有一步操作的补码,按位取反

2的补码可以认为有两步操作的补码,,按位取反后,再在最低位加1。

To get 1’s complement of a binary number, simply invert the given number.

To get 2’s complement of a binary number, simply invert the given number and add 1 to the least significant bit (LSB) of given result.


Read More

#1295-D: Deprecated declaration xxxx- give arg types 解决方法


编译程序时出现“#1295-D: Deprecated declaration xxxx- give arg types”中文释义:给定函数的参数的类型过时,

解决办法: 在函数void xxxx()声明和定义的时候定义参数类型,无参函数定义为void,即可解决该问题。

示例:

void testfun()
{
  printf("this is a test function\r\n");
}

变为

void testfun(void)
{
  printf("this is a test function\r\n");
}

注意,无参函数定义为void,只需要在定义(h文件)和实现(c文件)中这样,实际函数调用时,不需要写参数。

void invoketest(int i)
{
  testfun();
  printf("this is a invoke test %d\r\n",i);
}

 

https://developer.arm.com/documentation/dui0067/d/c-and-c---compilers/command-syntax/controlling-warning-messages

这个是一个warning信息,使用arm编译器时会报这个错,这个信息可以使用编译开关-Wd忽略。

只所以报这个错,是ANSI C语言规定的,C++则不会。

-Wd
This option suppresses the warning message:

C2215W: Deprecated declaration foo() - give arg types

This warning is normally given when a declaration without argument types is encountered in ANSI C mode.

In ANSI C, declarations like this are deprecated. However, it is sometimes useful to suppress this warning when porting old code.

In C++, void foo(); means void foo(void); and no warning is generated.

 

 


Read More


© 2008-2022 CunYouLu存有录博客 村友录 存游录 鲁ICP备08005943号