首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
armcc专题
ARMCC/GCC下的stack protector
Stack overflow攻击是一种很常见的代码攻击,armcc和gcc等编译器都实现了stack protector来避免stack overflow攻击。虽然armcc和gcc在汇编代码生成有些不同,但其原理是相同的。这篇文章以armcc为例,看一看编译器的stack protector。 armcc提供了三个编译选项来打开/关闭stack protector。 –no_protect_
阅读更多...
Window平台下ADS自带ARMCC编译工具链
ARM可执行文件常用格式有:gnu的elf,axd调试用的axf,以及烧录用的bin。 Linux下gnu的c编译器生成的是elf,Window下armcc编译器生成的是axf;两者都可以通过转换生成烧录的bin。 其中elf和axf格式基本相同;简单地说:elf和axf格式包含调试信息,bin格式不包含。 以下说明是在Window平台下对基于ARM11的S3C6410的编译过程。 一、A
阅读更多...
keil MDK安装armcc V5编译器
不知道从什么时候开始,Keil MDK默认不支持V5的编译器了,里面默认只有V6的编译器,设置界面跟V5有很大的差异不太熟悉。最可怕的是,之前使用V5编译的工程,换成V6编译器后居然报错...虽然修改一下应该也可以正常编译,但,人总是不愿意去做这样的事。所以,接下来将介绍如何安装armcc V5编译器。 首先,既然没有V5编译器,那么必须得安装,下载地址: ht
阅读更多...
armcc和gcc编译存储分布
一、armcc Code:即代码域,它指的是编译器生成的机器指令。 RO_data:ReadOnly data,即只读数据域,它指程序中用到的只读数据,全局变量,例如C语言中const关键字定义的全局变量就是典型的RO-data。 RW_data:ReadWrite data,即可读写数据域,它指初始化为“非0值”的可读写数据,程序刚运行时,这些数据具有非0的初始值,且运行的时候它们会常驻在RAM
阅读更多...
Keil 5 ARMCC编译错误和警告解释大全(2) 序列号1000-2000
1001:由 using 声明指定的类成员必须在直接基类中可见 1003:Sun 模式与 cfront 模式不兼容 1004:严格模式与 Sun 模式不兼容 1005:只有在编译 C++ 时才允许使用太阳模式 1006: 模板模板参数不能与其模板参数之一同名 1007:默认参数的递归实例化 1009:<entity> 不是可以定义的实体 1010:析构函数名称必须是限定的 101
阅读更多...
MDK AC5和AC6是什么?在KEIL5中添加和选择ARMCC版本
前言 看视频有UP主提到“AC5”“AC6”这样的词,一开始有些不理解,原来他说的是ARMCC版本。 keil自带的是ARMCC5,由于ARMCC5已经停止维护了,很多开发者会选择ARMCC6。 在维护公司“成年往事”项目可能就会遇到新KEIL+旧版本编译器的需求。 步骤 到ARM官网下载所需版本的编译器安装编译器到KEILv5\ARM\xxx。到KEIL -> Project ->
阅读更多...