八、嵌入式程序设计与分析

更新时间:2023-07-19 07:21:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

嵌入系式设统计实例与开发—AR—与M CO/S-Ⅱ第八讲程 序计与分析设

北航空航天京大学嵌入式 电控制研机究室1

节本要提1 序编程技译术2 程序优 技术 化3Li nx初u步

2嵌入式软件的

求要 功能性要求:满足系所要求统的能功。时限要性:满求系足的实统时要性求。 存储要求器:适应统内存系总要求量 功耗要。求满:足统系耗能的要。求

入嵌式程语编言选择的

高级语言C:C、+、+JAVAAda、等汇。编言语:硬件系体结相构关。

4

程序的编译执行程过高级编程语言编译器

汇编言语

汇器编目代标码

接器链目标机下载可执行的 进制代码二

5

嵌入式C编译环境嵌入式C叉编译环交境般一都括汇包编器链、器和定接位。 器

编器的汇务是将符号级任汇编的言语译翻称为目标代成码指令 位的表示级 链。接是用器来将不的同块模编(或汇译过编的件)链接成文目 文标。 件定器位则许允将代码和据放数在目臵标理处的指定内器存空。间

6

汇程编序 汇编完汇编成言语二到进代码制的转换

标记理处法:方

第次一描扫码以代定每决标记个的址。地第二次第一次用中标的值记汇指令,编生产二进制码代。7

符号表ADD r,0r1,r2Lab l1eAD Dr,3r,4r

5aLbe1 lx0 8abLle2 0x01CMP r0r3,Lable2SU Br5 ,r,67rassemlby cdeosymolbt aleb8

过程译高级程编言

语语分法析生成、符表和号义语分析独立机于的优化

指器令级化和优代生码成

汇代码编9

AMR发开环包境含的CC+/编+译器10

编=翻译译优+化编结合了翻译译和优化两个环节

翻译是将级语言翻高为译低指级令形式或(汇语言编形)。式

优一化方产生更好面的指令顺,另一序方从面体整考虑上程 效序。

率译编过程中高级,语言拆分被语成句和表式达。11

译技编——语句翻术译a* b+ 5*(c-)da

*b

c 5

*

edxrepsison+

DFG12

术达式的代表码译翻

a1 *

b25 *

3 -c

dDR r4,Aa OM Vr,1[4] ArRDr 4b ,MV rO,[r4]2 MLU 3r,r1r,2AD Rr4c,MO rV,[14r]ADR 4,rd MOV r,5[r4] SBUr6 r4,,5r

4+MU rL7r,,65 #DD Ar,87rr3,DF

Gcoed13

控代码的制产

生fi a+(b> ) x 0 5;=e sle = 7x;ab>0+x=

5=x

147

制控码代的翻译

DA Rr,a LD5R r,[r5] 1AR r5,Db

1+b>0

a=5

2x

LR Dr2, bADDr3, 1,rr2BL Elbale33

LD Rr3,#5x=7

DARr ,x5STR r3,[r] 5 Bsmtetnt albe3 lDR Lr3,7 AD# Rr5,x STR r3[r5, st]tmne t..

15.

译技编术—A—MR程调用标准过A(CS)APCSPAR, 过M调用程准标A(R MPocrderu Cela ltSadanrd)提 ,供了凑紧的写编例程的一种机,定义制的程可例以其他与程例 织交一在起最。著显一的点对是些这例程来自哪里没明有的限确。 制们它以编可自译 、C Ps

aca,也l以是用可编汇言语成写的 A。CP S义定了:

0r-r pa3s parsaetemrs nio tropcedue.rE txa prrameatrsea er puton st ackf amr. re 0hold srtuenr vaul.e

r4-r 7ohldre gsitr eavues.l11r isf raemp ontire ,r3 is s1tcakpo nier.t

18

译技——术据数构结编译程必须序对相关数据构结引的翻译用成原对始存储器的引 ,用通需常在要运时进行地址计算行 。

维一数 组二维组数

结构体A[0,0] [A,1] 0A0[] A1[]A[1 0,]A[ ,1] Fie0l1dFi lde2]91编

技译—术表—达式简化.A*B1+*ACA *(B+)C.2orf(i=;0<8+1;ii++) or(if=0i;<;i+9)

+0

2

译技编——死术代码除清

死代是指码永远会不执行的代码被在,译编时能够识别要些代这码, 并将从其程序中清除掉。

死代码都是一大些试调息。信

21

编译技术—循环—换变

环循是重要的序程结,构经常用占量大CPU的的计时间,在编算 程需要时优化;循环展开:循环 合并: 环循折:fo叠 (r=0i; <4i ;+i+) [ai = b[i] ]* ci[; ] forð( =i0 i<;; 2i+)+ { [ai*] 2 =[b*2]i* [ci*]; 2ai*2[1]+= b[*i+2]1* [ci2*1+;]

orf i(0;=i N<; i+)+a [i] =[b]i* 5; fo r j(=;0j<N; j+) w+j] =[c[ ] * djj];[ ð fo (ir=0 ;iN<; ++i ){a[i ] =bi[ ] *;5w[i] =[c] i *d[]i ;}

2

2编

技术译—寄—存器配分寄存器分选择配寄器存量的分配变使以所的寄需存总数最器;少w a += b;x = + cw;

=1 t=2 tt=

y3= c + d ;a

r0bc d w x

y1rr2r r30 r0r 3a b cd w x y 1 32tmie23

本文来源:https://www.bwwdw.com/article/ttg1.html

Top