# 工程协助术语
# 目录
[TOC]
# 1.基线是什么?
基线”是一个很常见的术语,在配置管理和项目管理里面都能看到,而且还有很多衍生的术语
- 例如基线提升、基线化、基线审计等。 现在我觉得我们通常看到的“基线”这个术语有两个意思:
# 2.代码风格[格式修改为GNU风格]
- 比如需求:华为那边的要求
- [格式修改为GNU风格]
- 1.使用indent软件调整风格
- 2.人工检查
indent -gnu libgcc2.c -o 2021huwei.c
1
# 3.C函数库 (libc,glibc,uClibc,newlib)
- glibc和libc都是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伪指令,我们实际上「直接把他当做sub XXX」这样的来看待「代码体积就行」
# 5.如何理解指令压缩的寄存器约定?
- 压缩
- c.sub是(7-9)是3位,只能用x8-x15这8(2^3)个
- 仔细看rd=8+rd'「这些是上面的来源」
# 6.cost model
「代价模型」
- inline代价模型
精细化cost model能够获得很多优化