# 工程协助术语

# 目录

[TOC]

# 1.基线是什么?

基线”是一个很常见的术语,在配置管理和项目管理里面都能看到,而且还有很多衍生的术语

  • 例如基线提升、基线化、基线审计等。 现在我觉得我们通常看到的“基线”这个术语有两个意思:

# 2.代码风格[格式修改为GNU风格]

  • 比如需求:华为那边的要求
  • [格式修改为GNU风格]
    • 1.使用indent软件调整风格
    • 2.人工检查
indent -gnu libgcc2.c -o 2021huwei.c
1

# 3.C函数库 (libc,glibc,uClibc,newlib)

  • glibclibc都是Linux下的C函数库
  • libc是Linux下的ANSI C的函数库
    • ANSI C是基本的C语言函数库,包含了C语言最基本的库函数
  • glibc是Linux下的GUN C的函数库
    • GNU C是一种ANSI C的扩展实现

uClibc 是一个面向嵌入式Linux系统的小型的C标准库。最初uClibc是为了支持uClinux而开发,这是一个不需要内存管理单元(MMU)的Linux版本。uClibc比一般用于Linux发行版的C库GNU C Library (glibc)要小得多, uClibc专注于嵌入式Linux。很多功能可以根据空间需求进行取舍

Newlib是一个面向嵌入式系统的C运行库。最初是由Cygnus Solutions收集组装的一个源代码集合,取名为newlib,现在由Red Hat维护,目前的最新的版本是2.1.0。对于与GNU兼容的嵌入式C运行库,Newlib并不是唯一的选择,但是从成熟度来讲,newlib是最优秀的。newlib可移植性强,具有可重入特性、功能完备等特点,已广泛应用于各种嵌入式系统中。Cygwin目前使用Newlib来作为它的C标准库

# 4.什么是伪指令?

  • 汇编器的作用不仅仅是从处理器能够理解的指令产生目标代码,还能翻译一 些扩展指令,这些指令对汇编程序员或者编译器的编写者来说通常很有用。这类指令在巧妙 配置常规指令的基础上实现,称为伪指令

neg

  • 比如这样的neg伪指令,我们实际上「直接把他当做sub XXX」这样的来看待「代码体积就行」

# 5.如何理解指令压缩的寄存器约定?

sub

  • 压缩

csub

  • c.sub是(7-9)是3位,只能用x8-x15这8(2^3)个
    • 仔细看rd=8+rd'「这些是上面的来源」

# 6.cost model「代价模型」

  • inline代价模型

精细化cost model能够获得很多优化