請(qǐng)問(wèn)新的CH55X 匯編指令周期表是不是有錯(cuò)?

你好,

“CH55X 匯編指令周期表?”這份文件我在官網(wǎng)上沒(méi)有直接找到,但是google能搜到兩個(gè)版本

http://m.findthetime.net/uploads/file/20190413/1555130456189763.pdf

這個(gè)版本舊一些,沒(méi)有什么問(wèn)題

http://m.findthetime.net/uploads/file/20220728/1658941041195430.pdf

這個(gè)版本新一些,但多出來(lái)這兩行:

a.指令單周期型號(hào):CH557、CH558、CH559;??

b.指令4周期型號(hào):CH551、CH552、CH553、CH554

我手頭的CH552確實(shí)是單周期沒(méi)錯(cuò),請(qǐng)問(wèn)是手冊(cè)錯(cuò)了還是新款的CH552變?nèi)趿耍?/p>


==更正==

搜出來(lái)的地址似乎是這個(gè)論壇上上傳的,上傳時(shí)間不代表版本發(fā)布時(shí)間。

不過(guò)觀察PDF里的數(shù)據(jù),舊的文件編輯時(shí)間是?Dec 30, 2015 at 4:31 AM。新的文件編輯時(shí)間是Mar 6, 2017 at 2:16 AM。還是新一些。我手上的芯片有很多是2.5.0或者更新的引導(dǎo)程序,應(yīng)該是2017年以后出廠的。

您好,最新的周期表可以從ch554evt->pub文件夾中找到,另外方便問(wèn)下咨詢周期時(shí)間是有什么需求的應(yīng)用場(chǎng)景?可以展開說(shuō)說(shuō)


謝謝回復(fù),我檢查一下新的版本。

我這邊有不少代碼需要匯編優(yōu)化。大概分三種情況:


c語(yǔ)言運(yùn)算效率太低。比如計(jì)算crc,匯編可以用寄存器輾轉(zhuǎn)所有數(shù)據(jù),無(wú)需使用內(nèi)存,能比C快幾倍。


IO口操作輸出時(shí)序數(shù)據(jù),比如驅(qū)動(dòng)ws2812之類。不僅需要精確時(shí)鐘周期,還得考慮雙字節(jié)對(duì)齊。


再就是寫框架的時(shí)候,受限于51的架構(gòu),指針不能指向P1等寄存器。這時(shí)候就需要嵌入?yún)R編往查找表里面跳入等操作。需要根據(jù)匯編速度寫出優(yōu)化的代碼。


我下來(lái)了最新的CH554包,里面的說(shuō)明是2018年11月的版本,確實(shí)沒(méi)有了4倍這個(gè)問(wèn)題。


但是里面有這樣一句不是很好理解:





MOVC指令多4個(gè)周期起,如本指令地址為奇數(shù)再加1周期,如下條指令地址為奇數(shù)再加1周期





MOVC是單字節(jié)指令,那么無(wú)非是本指令或者下條指令為奇數(shù),不可能同時(shí)為奇數(shù)或者同時(shí)為偶數(shù)。那為什么不固定是1+4+1=6?而且下方表格里,MOVC的周期,是5/6/7。


四個(gè)周期起,是指最少四個(gè)周期的意思,實(shí)際周期數(shù)您可以測(cè)試下。


奇怪的優(yōu)化方式……

CRC用查表效率也不慢吧?

WS2812要么用DMA的PWM/串口/SPI都能湊出來(lái)還能節(jié)省大量時(shí)間來(lái)運(yùn)算特效?

至于框架?如果有過(guò)多的中斷只會(huì)更浪費(fèi)效率吧?



只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频