Latest Posts

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

git无法添加一个空的文件夹的解决方法


git空目录无法add。如果想add一个空目录,则需要在它下面创建一个文件,比如(.gitignore)。

举例,有一个目录lib,里面主要是生成临时文件,临时文件不需要上传git库,但需要有这个目录。

在这个目录内容为空的情况下,执行git add lib没有反应。

通过添加一个文件后,解决。

/home/project/test# cd lib

/home/project/test/lib# touch .gitignore

/home/project/test/lib# cd ..

/home/project/test# git add lib

/home/project/test# git status

On branch master

Your branch is up-to-date with 'origin/master'

Changes to be committed:

   (use "git reset HEAD <file>..." to unstage)

      new file:   lib/.gitignore


Read More

Staggered Spin-Up


Definition - What does Staggered Spin-Up mean?
Staggered spin-up is a physical performance strategy for serial ATA hard disk drives or RAID DISK drive systems. With staggered spin-up, engineers handle the electrical load and system capacity during startup by staggering the times when disk drives begin input/output (I/O) operations.

With the traditional strategy, all drives spin up when device or system power is turned on, but staggered spin-up delays the spin up of some drives to provide a more stable demand to the power supply.

 

定义-交错旋转上电是什么意思?

交错启动是串行ATA硬盘驱动器或RAID磁盘驱动器系统的物理性能策略。通过交错启动,工程师在启动期间通过错开磁盘驱动器开始输入/输出(I/O)操作的时间来处理电力负载和系统容量。

在传统策略中,当设备或系统电源打开时,所有驱动器都会启动,但交错启动延迟了一些驱动器的启动,以提供更稳定的电源需求。

 

Techopedia explains Staggered Spin-Up
Staggered spin-up issues include the following:
Developing system firmware that recognizes the staggered spin-up strategy, rather than demanding that hard disk drives spin up prior to user commands
Operating system (OS) compatibility with the staggered spin-up strategy, preventing situations where an unaware OS reads delayed devices as inaccessible or otherwise does not understand the process.
Staggered spin-up is typically accommodated by a power-on self-test (POST) method, where the basic input/output system (BIOS) controls the boot process.

 

交错启动问题包括:

开发能够识别交错启动策略的系统固件,而不是要求硬盘驱动器在用户命令之前启动。
操作系统(OS)与交错启动策略的兼容性,防止不知情的操作系统将延迟的设备读作不可访问或不理解进程的情况。
交错启动通常通过开机自检(POST)方法实现,其中基本输入/输出系统(BIOS)控制引导过程。

原文引用自:

https://www.techopedia.com/definition/27699/staggered-spin-up


Read More

硬盘错峰上电以避免PSU过载宕机


同时为20个(SATA)驱动器通电可能会使PSU过载,因为驱动器在启动时会瞬间消耗更多的电源。

要避免这个,可以使用硬盘错峰上电。

错峰上电要考虑到AC上电时的错峰上电,系统reboot时的错峰上电。

错峰上电,主要途径是让硬盘分批延时陆续上电。比如一次上电4块,延时1秒后再给其它的硬盘上电。


Read More

shell脚本根据当前系统时间生成目录


用以下命令生成年月日_时分秒字符串。

$ date "+%Y%m%d_%H%M%S"
20200819_140714

$ datestr=`date "+%Y%m%d_%H%M%S"`
$ echo $datestr
20200819_140848

mkdir -p "./tmpdir/$datestr"

 

datestr=`date "+%Y%m%d_%H%M%S"`

echo $datestr


Read More

用shell命令tr dd生成内容为FF指定大小的命令。


创建一个1000K(不是1M=1024K)的文件的命令如下:

$ date; tr '\000' '\377' < /dev/zero | dd of=out1024.bin bs=1 count=1024000 ; date
2020年08月18日 17:02:51
记录了1024000+0 的读入
记录了1024000+0 的写出
1024000 bytes (1.0 MB, 1000 KiB) copied, 9.55439 s, 107 kB/s
2020年08月18日 17:03:01


$ date; tr '\000' '\377' < /dev/zero | dd of=out1024.bin bs=2 count=512000 ; date
2020年08月18日 17:04:59
记录了512000+0 的读入
记录了512000+0 的写出
1024000 bytes (1.0 MB, 1000 KiB) copied, 5.1412 s, 199 kB/s
2020年08月18日 17:05:05


$ date; tr '\000' '\377' < /dev/zero | dd of=out1024.bin bs=4 count=256000 ; date
2020年08月18日 17:05:22
记录了256000+0 的读入
记录了256000+0 的写出
1024000 bytes (1.0 MB, 1000 KiB) copied, 2.30067 s, 445 kB/s
2020年08月18日 17:05:25
 

 

$ date; tr '\000' '\377' < /dev/zero | dd of=out1024.bin bs=8 count=128000 ; date
2020年08月18日 17:09:54
记录了128000+0 的读入
记录了128000+0 的写出
1024000 bytes (1.0 MB, 1000 KiB) copied, 1.81386 s, 565 kB/s
2020年08月18日 17:09:56
 

对于TR命令的377意思是十进制的255,16进制的0xFF,八进制的377。

 

功能:将标准输入输入的字符串转换为指定字符串,然后输出到标准输出,将SET1替换为SET2
用法:Usage: tr [OPTION]… SET1 [SET2]

# echo abc |tr ab AB
ABc

字符集合的范围:

  • \NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
  • \\ 反斜杠
  • \a Ctrl-G 铃声
  • \b Ctrl-H 退格符
  • \f Ctrl-L 走行换页
  • \n Ctrl-J 新行
  • \r Ctrl-M 回车
  • \t Ctrl-I tab键
  • \v Ctrl-X 水平制表符

Read More


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