Tool_Chain_GCC
文章平均质量分 83
Phenixyf
这个作者很懒,什么都没留下…
展开
-
ARMCC和GCC编译ARM代码的软浮点和硬浮点问题
本文介绍了ARM代码编译时的软浮点(soft-float)和硬浮点(hard-float)的编译以及链接实现时的不同。从VFP浮点单元的引入到软浮点(soft-float)和硬浮点(hard-float)的概念,然后是在GCC和ARMCC RVCT工具链下的具体编译参数。VFP (vector floating-point)从ARMv5开始,就有可选的Vector Floating Po...转载 2019-11-20 09:39:50 · 731 阅读 · 0 评论 -
程序的编译、链接和启动分析
本篇文章以STM32为硬件平台,使用GNU GCC作为开发工具,详细分析Compile 、Link 、Loader的过程以及Image(二进制程序)启动的详细分析。整个过程分析涉及到RW可读写段从Flash到Mem的Copy,BSS段的初始化,Stack和Heap的初始化,C库函数移植、利用Semihosting 实现基本的IO等内容。基本可以让你从更深刻的层面理解Source -> Com...转载 2019-04-08 12:48:52 · 1221 阅读 · 0 评论 -
嵌入式链接脚本(Link Script)介绍
1.概论每一个链接过程都由链接脚本(linkerscript, 一般以lds作为文件的后缀名)控制. 链接脚本主要用于规定如何把输入文件内的section放入输出文件内, 并控制输出文件内各部分在程序地址空间内的布局. 但你也可以用连接命令做一些其他事情.连接器有个默认的内置连接脚本, 可用ld--verbose查看. 连接选项-r和-N可以影响默认的连接脚本(如何影响).-T选项用以指...转载 2019-04-12 15:45:41 · 2793 阅读 · 0 评论 -
GCC link script
连接脚本将我整整蒙了1天零一个上午,做了很多实验,看了人家不少例子代码勉强能驾驭了,让linker按照我想要的来处理,做个笔记。1,什么叫输入段,什么叫输出段不知道怎么回事,我对GCC系列的输入和输出两个单词总是进入思维死角,很简单就是 input section 和 output section,这里不是说翻译的问题,我觉得是一种思考的方式的问题。我的问题就是:既然叫输入端,那输入什...转载 2019-04-12 15:52:24 · 821 阅读 · 0 评论 -
译:GCC内联汇编入门
原文: GCC-Inline-Assembly-HOWTO1. 简介(Introduction.)1.1 Copyright and License.Copyright (C)2017 桂糊涂Copyright (C)2003 Sandeep S.This document is free; you can redistribute and/or modify this unde...转载 2019-05-09 11:28:23 · 757 阅读 · 0 评论 -
Hex、bin、axf、elf格式文件小结
一、HEXHex文件,一般是指Intel标准的十六进制文件。Intelhex 文件常用来保存单片机或其他处理器的目标程序代码。它保存物理程序存储区中的目标代码映象。一般编程器均支持生成此种格式文件。如,KEIL下可通过配置相关选项来生成HEX目标文件。HEX文件由记录(RECORD)组成。在HEX文件里面,每一行代表一个记录。形如:BBAAAATTHHHH...HHHHCC...转载 2019-05-27 09:15:43 · 500 阅读 · 0 评论 -
Linux makefile 教程 非常详细,且易懂
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理解...转载 2019-09-18 14:56:51 · 334 阅读 · 0 评论 -
Linux makefile 教程 非常详细,且易懂
最近在学习Linux下的C编程,买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊,可能是我的理解能不行。于是google到了以下这篇文章。通俗易懂。然后把它贴出来,方便学习。后记,看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似,只是这篇文章从一个实例切入,在有些地方比较好理...转载 2019-10-09 08:35:11 · 236 阅读 · 0 评论 -
内联函数:static inline 和 extern inline 的含义
内联函数:static inline 和 extern inline 的含义前置简短概述引入内联函数的目的是为了解决程序中函数调用的效率问题。 函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能和使用方法,而不必关心函数功能的具体实现;函数的引入可以减少程序的目标代码,实现程序代码和数据的共享。但是,函数调用也会带来降低效率的问题,因为调用函数实际上将程序执行顺序转移到函数所...转载 2019-03-26 14:43:13 · 276 阅读 · 0 评论 -
armlink - Scatter file文件格式
Scatter file (分散加载描述文件)用于armlink的输入参数,他指定映像文件内部各区域的download与运行时位置。Armlink将会根据scatter file生成一些区域相关的符号,他们是全局的供用户建立运行时环境时使用。 (注意:当使用了scatter file 时将不会生成以下符号:ImageRWRWBase,ImageRWRWLimit,ImageR...转载 2019-02-23 18:11:02 · 863 阅读 · 0 评论 -
GCC 编译器原理
l 全称为GNU CC ,GNU项目 中符合中符合ANSI C标准的标准的编译系统l 编译如编译如CC、C++C++、ObjObject CC、JJ ava、FFortran、PPascall、Modula-3和Ada等多种语言l GCCGCC是可以为多种硬体平台上编译出可执行程序的超级编是可以为多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高...转载 2018-10-24 21:33:04 · 907 阅读 · 0 评论 -
迅速理解GCC的工作原理
在学习使用GCC之前,下面的这个例子能够帮助用户迅速理解GCC的工作原理,并将其立即运用到实际的项目开发中去. 首先用熟悉的编辑器输入清单1所示的代码: 清单1:hello.c #i nclude <stdio.h>int main(void){printf ("Hello world, Linux programming!\n" );ret...转载 2018-10-24 21:36:19 · 1264 阅读 · 0 评论 -
GNU C __attribute__ 机制简介
摘要:在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__相关语法及其使用。---------------------------------------------------------声明: 此文为原创,欢迎转载,转载请保留如下信息 作者:聂飞(afr...转载 2018-11-11 20:22:15 · 153 阅读 · 0 评论 -
关于__attribute__中section部分的一些了解
诸如我辈菜鸟,对编译器了解比较少,面对代码中出现的陌生字眼真是茫然不知所措。今天查阅了一些资料,总算是有了一点了解,现在将些许理解记录在案。__attribute__这个关键词是GNU编译器中的编译属性,ARM编译器也支持这个用法。__attribute__主要用于改变所声明或定义的函数或 数据的特性,它有很多子项,用于改变作用对象的特性。比如对函数,noline将禁止进行内联扩展、noret...转载 2018-11-11 20:29:46 · 1245 阅读 · 0 评论 -
AVR-GCC Makefile 中文翻译
这段时间一直弄AVR单片机,以前只用汇编编过程,但是没有用过C语言,最近用了C语言,学了一下Makefile ,GCC 。用AVR_studio4.12可以自己生成Makefile, 用了一下,其实所有的想要的功能都可以实现。但是我是个爱钻牛角尖人,呵呵。看了一下 WINAVR Makefile 的模板我觉得写得很好,学习了一下,翻译了一下,加上很多我的理解和注释。把它共享给大家,共同进步。这个M...转载 2018-12-04 13:30:24 · 854 阅读 · 0 评论 -
GCC安全保护机制
0x0 介绍本文记录软件安全课程一项实验内容,为”分析一款编译器的安全特性”,偷懒选了Linux下的gcc,网上有很多相关资料,这里做一实验总结,主要是测试该特性在当前版本Linux平台下是否工作,顺便比较和Windows平台的异同.另:有更多关于Windows平台下的安全保护机制,但由于windows平台编译器众多(特别是vs开头的),十分依赖编译器和操作系统的配合(虽然在linux平台...转载 2018-12-04 18:42:05 · 5585 阅读 · 0 评论 -
The Startup file
The startup file for Cortex-M0 cores can be written in either assembly language or C. Since the startup file "startup_stm32f0xx.s" that came with the STM32F0Discovery Firmware package was already writ...转载 2018-12-05 17:53:07 · 421 阅读 · 0 评论 -
A Sample Linker Script
A sample script file that will work with C based projects is provided below:/****************************************************************************** * This linker file was developed by H...转载 2018-12-05 17:54:14 · 323 阅读 · 0 评论 -
attribute 用法 section 部分
attribute 用法 section 部分http://blog.sina.com.cn/s/blog_5e11a56a0100c8h5.html###1. gcc的__attribute__编译属性要了解Linux Kernel代码的分段信息,需要了解一下gcc的__attribute__的编绎属性,__attribute__主要用于改变所声明或定义的函数或 数据的特性,它有很多...转载 2018-12-07 15:28:33 · 1128 阅读 · 0 评论 -
GCC 使用总结 ----- /* 自己编写 */
1. 使用宏定义时,名称可以用变量动态定义的方法#define __define_initcall(level,fn,id) \static initcall_t __initcall_##fn##id __attribute_used__ \__attribute__ ((__section__(".initcall" level ".init"))) = fn这条宏带有3个参数...原创 2018-12-31 10:19:18 · 217 阅读 · 0 评论 -
在 Windows 下用 GCC 编译器练习 C/C++ 的简单教程
2018年8月更新:这个暑假博主和小伙伴、老师一同为师弟师妹们折腾了一个关于计算机学习交流的小社区 0xFFFF ,经过一个暑假的积淀,留下了不少适合计算机入门阅读的内容,推荐给看到这篇文章的你。关于计算机新手入门的话题 - 0xFFFF--------------- 开始正文 ----------------最近有许多师弟师妹们问入门 C 语言和 C++ 的时候练习代码应该装什么软件。...转载 2018-10-24 18:43:04 · 6040 阅读 · 4 评论