自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(27)
  • 资源 (13)
  • 收藏
  • 关注

原创 gcc 源码分析:从IR-RTL 到汇编输出

该代码片段展示了GCC编译器后端在RTL优化和寄存器分配完成后生成汇编代码的过程。主要内容包括: 定义了pass_final类来执行最终汇编输出阶段,调用rest_of_handle_final函数处理汇编生成。 rest_of_handle_final函数负责: 处理调试标记 调用assemble_start_function开始函数汇编 通过final_1函数遍历RTL指令并生成汇编 处理函数结尾和异常表输出 final_1函数: 初始化指令识别器 遍历RTL指令链 处理基本块和调试信息 调用final

2025-07-18 13:57:09 436

原创 gcc 源码分析--从gimple 到IR-RTL

GCC编译器将GIMPLE中间表示转换为RTL中间表示的过程分为两部分:一部分是与目标架构无关的通用转换(如标签生成等),另一部分则依赖于目标架构描述文件。转换过程中会进行参数类型检查,并且一条GIMPLE语句可能对应多条RTL指令。该转换由pass_expand类实现,主要处理SSA形式转换、变量扩展、指令生成等工作,最终生成完整的RTL代码。

2025-07-18 13:12:56 398

原创 gcc 源码分析:机器描述文件

GCC后端机器描述文件位于gcc/config目录中,各硬件平台有独立子目录,如xtensa平台包含xtensa.md(机器描述)、xtensa.h和xtensa.c三个核心文件。其中.h/.c文件定义目标机器的存储布局、调用规范等结构体targetm;.md文件则通过指令模板、属性定义等将机器特性引入编译器,指导IR-RTL到汇编的转换。关键转换过程分为两个阶段:GIMPLE到SPN的机器无关映射,以及SPN到IR-RTL的机器相关转换(通过匹配.md文件中命名的define_insn模板)。optabs

2025-07-18 12:21:47 343

原创 gcc 源码阅读---编译器后端实现的关键数据结构

摘要: 本文介绍了RTL(Register Transfer Language)的核心数据结构及其在编译器中的关键作用。RTL是GCC编译器中间表示的重要组成部分,用于描述机器指令和操作。文章详细解析了rtx_def结构体,包括其类型分类(RTX_COMPARE、RTX_COMM_ARITH等)、标志位(jump、call、volatil等)以及联合体字段(如insn_uid、symbol_ref_flags)。此外,还说明了从GIMPLE到RTL的转换过程,以及最终生成汇编代码的关键数据结构insn_da

2025-07-18 11:26:13 406

原创 gcc 源码分析---gimple 程序流程

这段代码展示了GCC编译器前端中从AST到GIMPLE中间表示的转换过程。主要功能包括: 编译流程控制:通过do_compile()和compile_file()函数启动编译过程,调用finalize_compilation_unit()完成编译单元处理。 符号分析:analyze_functions()函数负责分析函数符号,处理函数属性、别名对、可达性分析等,构建调用图。 函数转换:cgraph_node::analyze()将函数转换为GIMPLE表示,包括处理thunk函数、多版本函数调度器等。 GI

2025-07-15 13:58:10 882

原创 gcc 源码分析--gimple 关键数据结构

摘要:本文介绍了GIMPLE中间表示(IR)的操作码定义及其基础结构。GIMPLE作为GCC编译器的重要中间语言,包含了多种操作指令类型,如控制流(GIMPLE_COND、GIMPLE_GOTO)、赋值(GIMPLE_ASSIGN)、函数调用(GIMPLE_CALL)以及OpenMP并行化指令(GIMPLE_OMP系列)等。其基础结构struct gimple通过位字段标识语句类型、警告状态、修改标志等属性,并包含操作数数量、位置信息和基本块指针。此外,GIMPLE通过继承体系(如gimple_statem

2025-07-15 13:15:58 635

原创 gcc源码阅读--gimple 介绍

摘要:GENERIC是一种规范化的AST表示形式,旨在建立与前端语言无关的统一AST标准。在GCC编译器中,前端语言通常会将AST/GENERIC转换为GIMPLE中间表示。GIMPLE是一种三地址码形式的语言无关中间表示,相比树形结构的AST/GENERIC,它具有线性序列的特点,更利于后续编译优化。从AST到GIMPLE的转换包含高级GIMPLE和低级GIMPLE两个阶段,最终会消除作用域等相关语句,形成更简洁的中间表示形式。这一转换过程实现了从语言相关到语言无关的过渡,为编译器后端处理提供了统一基础。

2025-07-14 15:24:21 418

原创 gcc 源码阅读---语法树

GCC语法树节点类型定义摘要 GCC编译器在tree.def文件中定义了丰富的语法树节点类型,涵盖编译器前端到后端处理的各类语法结构。主要分类包括: 基础节点类:ERROR_MARK、IDENTIFIER_NODE等异常标记节点 类型节点:INTEGER_TYPE、POINTER_TYPE等30+种数据类型 常量节点:INTEGER_CST、REAL_CST等10+种常量类型 声明节点:FUNCTION_DECL、VAR_DECL等20+种声明类型 表达式节点:包含算术运算(PLUS_EXPR)、比较运算(

2025-07-14 14:46:31 588

原创 gcc 源码阅读--全局符号表管理

摘要: 本文分析了GCC编译器中的符号表管理机制,重点研究了symtab_node、cgraph_node和varpool_node三个核心类的定义及其作用。symtab_node是所有符号表条目的基类,cgraph_node用于管理函数调用图,varpool_node处理静态变量。文章详细描述了这些类的成员变量和方法,包括符号注册、引用管理、别名处理等功能,并梳理了全局符号和函数注册到全局符号表的过程。通过分析可以看出,GCC采用分层架构管理符号信息,symtab_node提供基础功能,而cgraph_n

2025-07-14 14:23:02 433

原创 gcc源码阅读--语法解析

这篇文章分析了GCC编译器前端语法解析的核心流程,主要包含以下内容: 语法解析入口函数c_common_parse_file,负责初始化预处理并循环处理每个输入文件 解析单个源文件的c_parse_file函数,处理PCH预编译头文件并初始化异常处理 解析翻译单元(translation unit)的c_parser_translation_unit函数,处理外部声明和GNU扩展语法 解析外部声明(declaration/definition)的c_parser_external_declaration函数

2025-07-14 14:00:01 574

原创 gcc 源码阅读--C语言预处理

此hash桶是自动扩展的,在ht搜索函数ht_lookup_with_hash中,若发现整个hash table超过3/4都满了,就会主动扩展此hash table(重新分配,复制,释放原有的)。alloc_node函数是用来分配节点内存的,分配后hashnode[]数组中的指针,也就指向这个内存中的元素,在ht搜索过程中(ht_lookup_with_hash),若发现需要新。/* 当前正在处理的语法符号c_token的地址,这里除了初始化时,应该指向 tokens_buf[0] */

2025-07-13 16:28:04 455

原创 gcc 源码阅读---程序入口

gcc 是个驱动型程序,完成c/c++转为汇编程,调用汇编程序转为.o文件,再调用link程序生成elf执行程序。在gcc 默认编译中,会编译出gcc/g++,cc1这几个程序,cc1程序是真正的将c编译为汇篇程序,这是整个编译的核 心。最后调用 toplev.cc。

2025-07-13 15:03:27 762

原创 MFC 中创建并显示二维码

/ 位图显示过程中重要的颜色数,0表示所有的颜色都重要。// 位图数据的起始位,位图文件头+位图信息头+调色板的大小。// 位图的高度,以像素为单位。// 位图压缩格式,必须是0,不压缩。// 位图的宽度,以像素为单位。// 位图的大小,以字节为单位。// 位图文件保留字,必须为0。// 位图文件保留字,必须为0。

2023-11-21 14:42:16 769 1

原创 GCC 学习

这是个不错资料网站,有兴趣的可以了解下。GCC

2023-11-20 14:25:07 175 1

原创 Flex & bison 学习好代码

但是要会用flex &bison的话,容易理解一些。可以生成make ,这样就可以做实验了。计算机的重要课程编译原理很难学吧,在cygwin 下面或者linux。有些好的项目可以帮助我们,比如。可以帮我们,下载 下来。

2023-11-09 16:57:40 191 1

原创 SVN 服务器建立

SVN 服务器建立

2023-11-08 10:55:54 573 1

原创 VS2019 编译Postgrsql 的windows平台代码和调试

另外说明,需要提前安装ACtivePertl 与Openssl 的windows 版本。这里可以下载openssl,将openssl 目录加进系统目录。3.打开目录中生成的 pgsql.sln。这里可以下载active perl。2.在postgrsql 的目录中执行。

2023-11-08 09:16:04 375 1

原创 C++ 实现Web REST 功能

HTTP Web 服务器REST PostgrSQL

2023-11-02 14:47:13 259 1

原创 嵌入式,系统开发,从bootload 到嵌入式OS

嵌入式开发关于软件 的部分,首先第一层是bootloader,可能大家会认为一开始是嵌入式OS.嵌入式bootloader相当于PC上的bios 程 序, 这个软件是用来初始化硬件,并加载OS的。但是嵌入式设备上的bootloader没有pc的那么复杂,同时功能上也有所不同。基本上,bootloader会做下面几个事情:(1)       初始化RAM(必需):bootloader必须能够初始

2008-03-11 16:12:00 1129

原创 SPDIF

SPDIF 是sony & philips确定的数字音频通信接口标准,一般也叫 IEC958.音频格式:一般是16位数据,也可以支持到24位支持的音频抽样:44.1KHZ48KHZ32KHZ单方式传输从发送方发给接受方包括控制信息V(validity )bitU(user) bitC(channel status)bitP(parity) bit编码格式biphase mark 带宽100KHZ

2007-11-19 17:33:00 482

原创 IIS (I2S)介绍

随着消费市场的发展,很多数字技术被引入进来,出现了,A/D 与D/A转换器数字信号处理数字纠错数字滤波数字输入输出因此出现了对数字音频传输的需求,交互音频通信(I2S)便出现了IIS上传输的音频信号的PCM数字,一般包括3根传输线Continuous serial clock(SCK) 时钟Word select (WS)声道选择serial data(SD) 数据分为主从式,主式需要提供时钟从式

2007-11-19 17:32:00 1043

原创 c/c++ struct 结构体

定义结构体时要注意对类型和大小进行排序.在c/c++编译器中,有一个特性很少被注意到就是编译器的字节对齐,例如:struct xa{char  a;char b;INT c;char xb;char de; }如果编译器使用四字节对齐,那么上面结构的大小就是12字节。正确写法应该是struct xa{char  a;char b

2006-03-01 11:50:00 864

原创 c/c++中的struct

定义结构体时要注意对类型和大小进行排序.在c/c++编译器中,有一个特性很少被注意到就是编译器的字节对齐,例如:struct xa{char  a;char b;INT c;char xb;char de; }如果编译器使用四字节对齐,那么上面结构的大小就是12字节。正确写法应该是struct xa{char  a;char b

2006-03-01 11:48:00 708

原创 C # 受控C++

这几天看了新的vc.net 和c#,觉得语言是不难,就是.net架构相对比较大。 搞不懂的是,为什么ms不将这么好的库给加到c++中去,这样不是很好。反正ms不做多平台。 ms的帮助是真全,基本上不用看书,看帮助就会了。这一点是比java要好。

2004-07-13 22:16:00 756

原创 ACM g7221

几天的努力,终天将G7221的ACM接口的编码驱动写了出来。事情都是这样子,会了其实很简单,不会想半天。台上10分钟,台下10年功啊。

2004-07-13 22:12:00 752

原创 ACM

开发ACM的编码器,发现ACM的资料真少。痛苦,只能看代码来理解了。

2004-07-06 21:18:00 812

原创 Blog开通

今天开始Blog.新的网络生活开始

2004-07-06 09:37:00 916

可变目标C编译器 设计与实现 源代码

可变目标C编译器 设计与实现 ,LCC的源代码移植到了visual stdio ,可以方便 在 windows 下面进行调试,从而可以更深入的了解代码的实现,更好学习编译原理的知识。

2025-06-21

MFi Accessory Firmware Specification R46.pdf

apple MFi Accessory Firmware Specification 这是已经解密过的文档,希望对你用。

2020-01-20

PCIE Gen4 spec

PCIE 规范文档,可以作为重要学习与参考

2023-12-02

QR 二维码生成程序,支持多种语言 c/c++/java/python/rust

QR 二维码生成程序,支持多种语言 c/c++/java/python/rust Introduction ------------ This project aims to be the best, clearest QR Code generator library in multiple languages. The primary goals are flexible options and absolute correctness. Secondary goals are compact implementation size and good documentation comments.

2023-11-22

条形码、二维码解码库 c++ 源代码

条形码、二维码解码库 c++ 源代码 100% written in modern C++11. 1D: Code39 ?Code128 2D: Datamatrix QR Code

2023-11-22

zxing c++ 代码,二维码、条形码解释

这个java zxing 二维码、一维码扫码代码的C++ 移植,现已经转成vs2019 工程,可以正确编码使用

2023-11-22

条形码生产程序库与执行程序,包括源代码

这个代码可以在vs2019下面正常编译,包括zlib ,libpng,zint. zlib,libpng 已经转换为vs2019 工程,在项目build 目录下,zint 的工程在win32目录中。目前已经可以正常编,没有问题。

2023-11-22

MFC VIsual 2019 二维码生成库 源代码

这个MFC 的二维码生成库,带源代码,已经测试过,可以使用。

2023-11-21

PostgrSQL 实现原理,可以了解数据库内部是怎么实现的

目 前比较唯 一的这方面的权威著作,相当可以看和了解。

2023-11-08

flex 使用手册,官网下载

flex 使用手册,官网下载

2023-11-08

bison manu 手册,英文版本,下载 用的

bison manu 手册,英文版本,下载 用的。

2023-11-08

CPE 网关终端设备标准协议Tr069 英文版本+Tr098

CPE终端开发的文档,TR069 +TR098

2023-08-21

apple MFI 附件, 详细规则与定义

apple MFI 各种附件设备开发规则

2022-08-23

USB AV Specification.zip

usb usb video 标准规范

2021-05-15

USB_audio-spec.zip

标准的USB audio spec ,可以用于驱动开发

2021-05-06

nRF52832 学习资料.zip

nRF52832 学习pdf 资料下载

2021-05-06

ARM System Developer's Guide

这是我看过的最好的嵌入式arm 设计的资料,这本书讲的方面一个是广,另一个是深。作者是有15年以上的arm 设计方面的资深技术专家。

2009-04-01

一个语音处理的声音库

可以用来处理各种语言效果,c语方代码。 非常的好用,有各种现成的声音处理。是做语言的好办手。

2010-10-15

声音降噪处理(效果非常好,支持8K语音输入)

这是个声音处理特别好的工具,能很好,降噪,比如电流音。如果有问题 ,请联系 email :chenhanting2002@hotmail.com

2013-06-06

android 培训资料

这是一个老外给大公司培训的文档,写得非常好。介绍全面深入。

2013-11-01

PCI局部总线结构 详细介绍了pci的规范,中文版本

详细介绍了pCI总线的规范 有助于你的学习,pci 总线是目前pc的主流总结构

2009-03-04

统计信号处理:非高斯信号处理及其应用

本书主要介绍非高斯信号处理(包括基于高阶统计量和分数低阶统计量的信号处理)的理论、方法及其应用。全书分为9章,内容包括:高斯过程与二阶统计量,高阶累积量和高阶谱,Alpha稳定分布与分数低阶统计量,基于以上信号的处理方法,基于分数低阶统计量数字信号处理的应用等。

2011-04-14

android 相机应用 源代码

在界面上,实现拍照,并实现用opengl 来做拍照不显示预览图像,去掉系统原来的东西。很有参考意义。

2013-10-21

高数公式(方便查询)

列出全部高数的公式,方便查询与应用。很简明的。

2008-08-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除