当前位置:网站首页>Embedded development: Tools - optimizing firmware using DRT
Embedded development: Tools - optimizing firmware using DRT
2022-07-24 09:28:00 【Guangdong embedded Education】
Not only from a business perspective , And from the perspective of microcontroller , Embedded development is usually carried out under severe resource constraints . Upgrading to a higher end processor may make the project economically infeasible , Especially for mass applications where every penny can play a role . A group called DRT Of GCC Firmware optimizer , It produces some very interesting optimization results .
When optimizing embedded systems , Developers may want to optimize three main areas : Code size 、 Speed and energy use . When optimizing , Often a trade-off must be made , For example, larger code size for faster processing .DRT What's interesting about , The tool is optimized in all three areas at the same time , To provide the best overall results .

DRT Tools optimize the entire program , And perform an optimization called reordering optimization . Reordering optimization is performed after the program is compiled , And as a special linker . The reorder will be optimized by doing the following :
Load relative instructions for loading relative addresses
Branch target
Keep sharing
Data shuffling
Exit truncation
Function reordering
Instruction scale
Remove the extra nop
Remove unused code / Data sequence
Small constant load
The reorder optimizer will adjust the code size 、 Energy use and processing speed have a significant impact . For applications between two different microcontroller sizes or device choices , Using such an optimizer alone is enough to use a cheaper microcontroller .
DRT Tools do 30 Days of usage , You can experience , See how much extra performance an application can get .30 After the trial period of days , The cost of this tool is about the same as that of high-end debugger probes . Not terrible price restraint , But it may be beyond the price range of most individual or small team Embedded developers . However , If appropriate trade studies are carried out , The price savings of microcontroller costs may greatly exceed the cost of tools .
边栏推荐
- The detailed process of building discuz forum is easy to understand
- 【我的创作一周年纪念日】爱情是需要被纪念的,创作也是
- [don't bother to strengthen learning] video notes (IV) 1. What is dqn?
- [don't bother to strengthen learning] video notes (II) 2. Write a small example of Q learning
- Ansible 常用模块介绍
- Code random notes_ Linked list_ Turn over the linked list in groups of 25K
- [example of URDF exercise based on ROS] use of four wheeled robot and camera
- 排序入门—插入排序和希尔排序
- 来阿里一年后我迎来了第一次工作变动....
- 如何通过NFT GO,来简要判断、分析NFT市场?
猜你喜欢

Linked list - 24. Exchange nodes in the linked list in pairs

OPENCV学习DAY5

Re6: reading paper licin: a heterogeneous graph based approach for automatic legal stat identification fro
![[don't bother to strengthen learning] video notes (III) 2. SARS learning realizes maze walking](/img/a8/0d3bd3cc2b3e1d43e201e5dfe4b729.png)
[don't bother to strengthen learning] video notes (III) 2. SARS learning realizes maze walking
![[example of URDF exercise based on ROS] use of four wheeled robot and camera](/img/c5/babce5c6921b9cb54f018dc83a3b87.jpg)
[example of URDF exercise based on ROS] use of four wheeled robot and camera

Cess test online line! The first decentralized storage network to provide multiple application scenarios

How to judge and analyze NFT market briefly through NFT go?

gnuplot软件学习笔记

Lung CT segmentation challenge 2017 dataset download and description
![[don't bother to strengthen learning] video notes (II) 2. Write a small example of Q learning](/img/b1/d5c869bc68ba273be2030202f94a55.png)
[don't bother to strengthen learning] video notes (II) 2. Write a small example of Q learning
随机推荐
Linked list - 24. Exchange nodes in the linked list in pairs
Tiktok live broadcast with goods marketing play
The difference between & &, | and |
Little dolphin "transformed" into a new intelligent scheduling engine, which can be explained in simple terms in the practical development and application of DDS
Dorissql syntax Usage Summary
How to open the port number of the server, and the corresponding port of common network services
Definition and initialization of cv:: mat
Learning transformer: overall architecture and Implementation
来阿里一年后我迎来了第一次工作变动....
PHP Basics - session control - Session
JS locate Daquan to get the brother, parent and child elements of the node, including robot instances
PHP Basics - PHP super global variables
Why is TCP a triple handshake
IdentityServer4入门
Vim: extend the semantic analysis function of YCM for the third-party library of C language
[don't bother to strengthen learning] video notes (III) 3. SARS (lambda)
配置系统环境变量的时候误删了Path怎么办?
Cloud primordial (12) | introduction to kubernetes foundation of kubernetes chapter
One year after I came to Ali, I ushered in my first job change
分类与回归的区别