音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

一條自增語(yǔ)句需要108個(gè)處理器時(shí)鐘?

作者:kkkkdan 欄目:ARM技術(shù)
一條自增語(yǔ)句需要108個(gè)處理器時(shí)鐘?
T1TC = 0;
T1PR = 0;    //使用外設(shè)時(shí)鐘,不分頻
T1TCR = 0X01;//開(kāi)啟定時(shí)器
num_cycle ++;
T1TCR = 0X00;//關(guān)閉定時(shí)器
time = T1TC; //取出時(shí)間

結(jié)果time的結(jié)果為0x1B,十進(jìn)制就是27,也就是說(shuō)27個(gè)外設(shè)時(shí)鐘周期,好像是108個(gè)處理器時(shí)鐘周期吧

不太可能阿,ARM不是基本上一個(gè)機(jī)器周期執(zhí)行一條指令嗎?num_cycle ++;轉(zhuǎn)化為匯編也沒(méi)幾條語(yǔ)句阿,怎么可能需要108個(gè)呢

到底哪里出錯(cuò)了呢?還是我這種考慮方式不對(duì)啊?




2樓: >>參與討論
foyyof
VPB總線速度問(wèn)題,時(shí)間消耗在讀取寄存器中了。
你可以做如下的測(cè)試:

unsigned LONG varible;  //此處要考慮varible是否縊出哦。

while(1) varible++;

定時(shí)1s,然后查看varible的值。這樣才準(zhǔn)確。

3樓: >>參與討論
kkkkdan
用的smartarm開(kāi)發(fā)平臺(tái)
用的smartarm開(kāi)發(fā)平臺(tái)
在片外ram中調(diào)試
已經(jīng)把BCFG0配置為0x10001460    了
也就是所,訪問(wèn)外部ram的速度已經(jīng)是最快了

4樓: >>參與討論
foyyof
-_-!
 
5樓: >>參與討論
lpc2000
this will be a very GOOD interview question:-)
 
6樓: >>參與討論
yang_tch
是在調(diào)試方式,還是CPU自主方式?
是在調(diào)試方式,還是CPU自主方式?

7樓: >>參與討論
kkkkdan
在什么方式下很重要么?
現(xiàn)在是在JTAG仿真方式,片外ram
用的ADS開(kāi)發(fā)環(huán)境,AXD調(diào)試器

我現(xiàn)在的問(wèn)題,就是程序執(zhí)行的太慢
所以用這種方式看看整個(gè)程序執(zhí)行一邊到底需要多少時(shí)間
每次測(cè)出來(lái)的結(jié)果都比我想象中的要偏大

于是,干脆,就測(cè)一條簡(jiǎn)單的自增語(yǔ)句執(zhí)行的時(shí)間
想不到就花了108個(gè)處理器時(shí)周期


大家有什么提高程序執(zhí)行速度的好方法嗎?
我要在170us的時(shí)間里執(zhí)行一個(gè)程序,170us也就是7650個(gè)處理器周期(系統(tǒng)頻率是45M),單單一個(gè)自增語(yǔ)句就可以花費(fèi)108個(gè)周期,這怎么得了阿

8樓: >>參與討論
lpc2000
好奇:我有點(diǎn)不相信,自己試了試
停到37的時(shí)候,time的值是16(0x10),所以我看這好像沒(méi)什么錯(cuò)嘛?
反匯編程序看看用了多少指令。沒(méi)用什么中斷吧。看看你優(yōu)化怎么設(shè)的。
我的是最低或者說(shuō)沒(méi)優(yōu)化。

我的環(huán)境是,57.6Mhz CCLK, PPCK是1/2 CCLK,Keil MDK,
程序運(yùn)行在IRAM中。


    31:         T1TC = 0;
0x40000160  E3A00000  MOV       R0,#0x00000000
0x40000164  E59F1050  LDR       R1,[PC,#0x0050]
0x40000168  E5810008  STR       R0,[R1,#0x0008]
    32:         T1PR = 0;
0x4000016C  E581000C  STR       R0,[R1,#0x000C]
    33:         T1TCR = 0X01;
0x40000170  E3A00001  MOV       R0,#0x00000001
0x40000174  E5810004  STR       R0,[R1,#0x0004]
    34:         num_cycle++;
0x40000178  E59F0040  LDR       R0,[PC,#0x0040]
0x4000017C  E5900000  LDR       R0,[R0]
0x40000180  E2800001  ADD       R0,R0,#0x00000001
0x40000184  E59F1034  LDR       R1,[PC,#0x0034]
0x40000188  E5810000  STR       R0,[R1]
    35:         T1TCR = 0X00;
0x4000018C  E3A00000  MOV       R0,#0x00000000
0x40000190  E59F1024  LDR       R1,[PC,#0x0024]
0x40000194  E5810004  STR       R0,[R1,#0x0004]
    36:         time = T1TC;
0x40000198  E1C10000  BIC       R0,R1,R0
0x4000019C  E5900008  LDR       R0,[R0,#0x0008]
0x400001A0  E59F101C  LDR       R1,[PC,#0x001C]
0x400001A4  E5810000  STR       R0,[R1]
    37:         T1TC = 0;
0x400001A8  E3A00000  MOV       R0,#0x00000000
0x400001AC  E59F1008  LDR       R1,[PC,#0x0008]
0x400001B0  E5810008  STR       R0,[R1,#0x0008]


9樓: >>參與討論
winfeng
你用片內(nèi)ram試試!
 
10樓: >>參與討論
kkkkdan
用片內(nèi)ram試了一下
芯片是LPC2210
time的值是6
也就是說(shuō)用了6個(gè)外設(shè)時(shí)鐘
即:24個(gè)cclk
比使用片外ram快多了
但我還是覺(jué)得有些慢

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
LM3S101收到,關(guān)于IO口和頻率的幾個(gè)問(wèn)題
這個(gè)LPC2103的SPI接口讓我如何使用?
關(guān)于18b20的讀寫(xiě)
2148USB ucos下函數(shù)的擴(kuò)展
請(qǐng)ZLG的工程師回答有關(guān)ZLG/GUI的問(wèn)題!
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)