日韩av色在线_av不卡在线观看_亚洲国产精品第一页_在线看日本不卡_色成人综合网_国产丝袜在线视频_国产精成人品localhost_国产91富婆露脸刺激对白_韩国视频一区_国产精品人成电影

當前位置: > 華清遠見教育科技集團 > 嵌入式學習 > 講師博文 > ARM 浮點運算一
ARM 浮點運算一
時間:2016-12-14作者:華清遠見

很多時候我們要處理的數據,不僅僅是整數和字符串,還有浮點數即小數。在多媒體數據處理方面表現的更多。是不是所有的CPU都支持,浮點運算呢?答案:不是。

我們常常聽到贏浮點和軟浮點,這些到底說的是什么呢?下面我們就來一探究竟吧。在這里我們說的是ARM核浮點運算。

(1)硬浮點(hard-float)

編譯器將代碼直接編譯成硬件浮點協處理器(浮點運算單元FPU)能識別的指令,這些指令在執行的時候ARM核直接把它轉給協處理器執行。FPU 通常有一套額外的寄存器來完成浮點參數傳遞和運算。使用實際的硬件浮點運算單元(FPU)會帶來性能的提升。

(2)軟浮點(soft-float)

編譯器把浮點運算轉成浮點運算的函數調用和庫函數調用,沒有FPU的指令調用,也沒有浮點寄存器的參數傳遞。浮點參數的傳遞也是通過ARM寄存器或者堆棧完成。現在的Linux系統默認編譯選擇使用hard-float,如果系統沒有任何浮點處理器單元,這就會產生非法指令和異常。因而一般的系統鏡像都采用軟浮點以兼容沒有VFP的處理器。

用一句話總結,軟浮點是通過浮點庫去實現浮點運算的,效率低;硬浮點是通過浮點運算單元(FPU)來完成的,效率高。

一、使用浮點庫實現浮點運算(soft-float)

例如:我想實現兩個浮點數相加,代碼如下:

使用GNU ARM編譯器翻譯成的部分匯編代碼如下:

從圖中我們可以知道,默認情況下,編譯器使用的是軟浮點,圖中__aeabi_fadd這個函數是在浮點庫中實現。如果想讓代碼能正常的運行,還需要在連接的時候靜態連接一下浮點庫。

在這里我們以一個完成的案例來說明一下,軟浮點庫的使用方法。

start.S:
        .global _start
        #define USER_MODE 0x10
        _start:
        @設置CPU為user模式
        mov r0,#USER_MODE
        msr cpsr_c,r0
        @跳到main函數
        ldr sp,=0x34000
        bl main
        stop:
        b stop
        main.c:
        int main()
        {
                float f1,f2,f3;
                f1 = 1.24;
                f2 = 1.22;
                f3 = f1 + f2;
                return 0;
        }
        Makefile:
        LD=arm-none-eabi-ld
        OBJDUMP=arm-none-eabi-objdump
        RM=rm -rf
        CFLAG= -g -c
        ASFLAG=-g -c
        OBJ=start.o main.o
        LDFLAGS= -static -L\
        #指定浮點庫所在的路徑
        "C:\Program Files\yagarto\lib\gcc\arm-none-eabi\4.6.2" -lgcc
        #設置編譯模式
        %.o:%.S
        $(CC) $(ASFLAG) $< -o $@

        %.o:%.c
        $(CC) $(CFLAG) $< -o $@
        all:$(OBJ)
        $(LD) -Ttext=0x20000 $^ -o arm.elf $(LDFLAGS)
        $(OBJDUMP) -D arm.elf > arm.dis
        clean:
        $(RM) *.o arm.dis arm.elf

使用硬件浮點實現浮點運算(hard-float)

使用硬件浮點的時候,我們需要給編譯器傳遞一些參數,讓編譯器編譯出硬件浮點單元處理器能識別的指令。

(1)-mfpu=name

參數-mfpu就是用來指定要產生那種硬件浮點運算指令,常用的右vfp和neon等。

浮點協處理器指令:

ARM10 and ARM9:
        -mfpu=vfp(or vfpv1 or vfpv2)
        Cortex-A8:
        -mfpu=neon

(2) -mfloat-abi=value

-mfloat-abi=soft 使用這個參數時,其將調用軟浮點庫(softfloat lib)來支持對浮點的運算,GCC編譯器已經有這個庫了,一般在libgcc里面。這時根本不會使用任何浮點指令,而是采用常用的指令來模擬浮點運算。但使用的ARM芯片不支持硬浮點時,可以考慮使用這個參數。在使用這個參數時,連接時一般會出現下面的提示:

undefined reference to `__aeabi_fdiv'

或者類似的提示,主要因為一般情況下連接器沒有去主動尋找軟浮點庫,這時使用將libgcc庫加入即可。

-mfloat-abi=softfp

-mfloat-abi=hard

這兩個參數都用來產生硬浮點指令,至于產生哪里類型的硬浮點指令,需要由

-mfpu=xxx參數來指令。這兩個參數不同的地方是:

-mfloat-abi=softfp生成的代碼采用兼容軟浮點調用接口(即使用-mfloat-abi=soft時的調用接口),這樣帶來的好處是:兼容性和靈活性。庫可以采用-mfloat-abi=soft編譯,而關鍵的應用程序可以采用-mfloat-abi=softfp來編譯。特別是在庫由第三方發布的情況下。

-mfloat-abi=hard生成的代碼采用硬浮點(FPU)調用接口。這樣要求所有庫和應用程序必須采用這同一個參數來編譯,否則連接時會出現接口不兼容錯誤。

我們對main.c文件使用硬件浮點重新編譯:

翻譯成的匯編代碼如下:

start.s:
        .global _start
        #define USER_MODE 0x10
        _start:
        @ 設置為所有模式都可以訪問協處理器,cortex-A8手冊 3.2.27
        mov r0, #0xfffffff
        mcr p15, 0, r0, c1, c0, 2
        @ 使能NEON and VFP協處理器,NEON and VFP enable bit.
        @ 設置fpexc的30位為1去使能NEON and VFP,cortex-A8 手冊 13.4.3
        ldr r0, =1<<30
        fmxr fpexc, r0
        @設置CPU為user模式
        mov r0,#USER_MODE
        msr cpsr_c,r0
        @跳到main函數
        ldr sp,=0x34000
        bl main
        stop:
        b stop
        main.c:
        int main()
        {
  nbsp;              float f1,f2,f3;
                f1 = 1.24;
                f2 = 1.22;
                f3 = f1 + f2;
                return 0;
        }
        Makefile:
        CC=arm-none-eabi-gcc
        AS=arm-none-eabi-as
        LD=arm-none-eabi-ld
        OBJDUMP=arm-none-eabi-objdump
        RM=rm -rf
        CFLAG=-g -c -mfpu=neon -mfloat-abi=softfp
        ASFLAG=-g -c -mfpu=neon -mfloat-abi=softfp
        OBJ=start.o main.o
        #設置編譯模式
        %.o:%.S
        $(CC) $(ASFLAG) $< -o $@
        %.o:%.c
        $(CC) $(CFLAG) $< -o $@
        all:$(OBJ)
        $(LD) -Ttext=0x20000 $^ -o arm.elf
        $(OBJDUMP) -D arm.elf > arm.dis
        clean:
        $(RM) *.o arm.dis arm.elf

發表評論
評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
亚洲国产精品久久网午夜小说| 国产人与zoxxxx另类91| 天天操天天干天天爽| 最新在线黄色网址| 老司机av福利| 国产精品丝袜久久久久久高清| 日韩三区在线观看| 国产精品久久久久影视| 奶水喷射视频一区| 久久综合五月婷婷| av在线小说| 欧美高潮视频| 蜜桃91在线| av观看在线免费| 亚洲波多野结衣| 日本久久久久久久久久久久| 午夜久久资源| 国产伦精品一区二区三区精品视频| 日韩麻豆第一页| 91黄色在线观看| 中文字幕中文乱码欧美一区二区| 久久国产福利国产秒拍| 欧美69wwwcom| 国产精品乱战久久久| 啊啊啊久久久| 一级毛片视频在线| 男人本色网站| 国产精品合集一区二区| 国产高潮在线观看| jizz国产在线观看| 18精品爽国产三级网站| www亚洲成人| 国产精品一二三在线观看| 国产精品欧美久久| 国产精品专区一| 欧美成年人在线观看| 日韩精品在线第一页| 欧美色电影在线| 亚洲综合一区二区三区| 国产午夜亚洲精品理论片色戒| 精品一二三四区| 久久久精品日韩| 国产精品久久| 日韩av免费大片| 日韩大胆成人| 国产劲爆久久| www.成人网| 免费观看亚洲视频大全| 国产精品99| 中文在线免费视频| 国产美女福利在线观看| 欧美精品电影| 97视频精彩视频在线观看| 四虎在线视频| 日韩偷拍自拍| 青青青免费视频在线2| 中文字幕电影在线| 色琪琪免费视频网站| 成年免费网站| 成人免费xx| japan乱配videos老少配| 色姑娘资源站| 特大巨黑人吊性xxx视频| xxxxxx国产精品视频| 999久久久免费精品国产牛牛| 中文字幕欧美日韩久久| 亚洲va国产日韩欧美精品色婷婷| 亚洲欧洲综合在线| 九九热中文字幕| 8x8x拔插拔插影库永久免费| 成人综合社区| 在线视频观看亚洲| 蜜桃色永久入口| 精品一区二区三区免费站| 欧美老tube| 伊人久久久久久久久久久| 色xxx在线播放| 在线亚洲精品自拍| 先锋影音欧美四级| 欧美色婷婷天堂网站| 欧美精品另类| 国内精品不卡一区二区三区| 国产综合精品久久| 美女在线不卡| 电影天堂久久| 婷婷亚洲一区二区三区| 男人久久精品| 在线免费观看a视频| 日韩精品极品| 欧美一区=区三区| 91精品啪在线观看国产爱臀| 免费视频亚洲| 自由日本语亚洲人高潮| 亚洲三级色网| 激情文学综合丁香| 久久久久88色偷偷免费| 亚洲精品国产精华液| 日韩欧美国产一区二区| 777色狠狠一区二区三区| 亚洲国产精品久久| 欧美老少做受xxxx高潮| 国产精品午夜视频| 国产中文一区二区| 国产又黄又爽免费视频| 日韩精品一区二区三区不卡| 少妇熟女视频一区二区三区| 人人干在线观看| 亚洲国产成人精品女人久久| 欧美一区二区三区激情| 国产黄色小视频| 成人羞羞视频免费看看| 91在线视频免费看| 性欧美freehd18| 美女毛片一区二区三区四区最新中文字幕亚洲| 成人亚洲一区| 久久亚洲一区| 国产视频一区二区在线| 日本精品免费观看高清观看| 亚洲人线精品午夜| 国产精品九九久久久久久久| 鲁丝一区鲁丝二区鲁丝三区| 精品视频免费在线播放| 成年人网站免费看| 国产一级片免费在线观看| 亚洲视频网站在线| 成人av小说网| 51xtv成人影院| 精品久久ai电影| 裸体一区二区| 国产精品国产三级国产普通话蜜臀 | 亚洲色图 激情小说| 狠狠人妻久久久久久综合| 97一区二区三区| 蜜桃一级网站.| 91九色porn在线资源| 亚洲香蕉视频| 韩国三级在线一区| 一区二区三区国产精品| 亚洲精品国精品久久99热一| 国产suv精品一区二区| 尤物一区二区三区| 在线观看免费视频国产| 日韩欧美成人一区二区三区| 麻豆精品免费视频入口| 精品久久av| 伊人亚洲精品| 香蕉亚洲视频| 一区二区三区日韩| 中文字幕亚洲第一| 欧美日韩国产精品一卡| 台湾佬美性中文| 亚洲自拍偷拍另类| 超级碰碰视频| 国产精品久久亚洲不卡| 亚洲无线一线二线三线区别av| 国产视频一区不卡| 日韩av有码在线| 国产精品久久精品视| 91热视频在线观看| 中文字幕日日夜夜| 成人18网址在线观看| 欧洲av一区二区| 男女精品视频| 欧美午夜无遮挡| 久久久久久尹人网香蕉| 水蜜桃在线免费观看| 天天干天天操天天拍| 亚洲综合在线不卡| 99re在线视频| 日韩免费特黄一二三区| 久久久亚洲综合| 亚洲欧美精品伊人久久| 麻豆久久久9性大片| 欧美 日本 国产| 四虎永久网址| 色a资源在线| 国产一区久久| 婷婷亚洲久悠悠色悠在线播放| 欧美激情在线播放| 日韩亚洲欧美视频| 日本熟女毛茸茸| xxxx影院| 亚洲成在人线免费观看| 久久精品在这里| 色七七影院综合| 91大学生片黄在线观看| 日本少妇久久久| a视频免费看| 久久亚洲黄色| 国产免费成人在线视频| 丝袜亚洲另类欧美重口| 激情图片qvod| 制服.丝袜.亚洲.中文.综合懂色| av激情网站| 高潮按摩久久久久久av免费| 久久亚洲综合av| www.亚洲成人| 日韩av在线播放不卡| 区一区二在线观看| 一本大道香蕉久在线播放29 | 三级网站视频在在线播放| 伊人影院久久| 在线观看91视频| y111111国产精品久久婷婷| 日本三级日本三级日本三级极| 中文字幕av高清片| 在线观看欧美日韩电影| 麻豆成人久久精品二区三区红 | 黄色一级片av| 中文字幕xxxx| 免费理论片在线观看播放老| 欧美福利在线| 欧美偷拍一区二区| 精品999在线观看| www.av免费| 国产www在线观看| 国产精品嫩草影院在线看| 亚洲综合色区另类av| 国产精品久久久久免费a∨| 国产xxxx视频| 91九色蝌蚪视频| 国产精品2023| 自拍偷拍欧美精品| 国产美女高潮久久白浆| 69精品无码成人久久久久久| 青青草原av| 精品日韩毛片| 在线观看一区不卡| 日韩成人av网站| 国产精品乱码一区二区视频| 男女啪啪在线观看| 精品综合久久久久久8888| 一区二区三区精品99久久| 国产乱子夫妻xx黑人xyx真爽| 殴美一级特黄aaaaaa| 澳门av一区二区三区| 国产欧美va欧美不卡在线| 国产精品成人品| 少妇高潮惨叫久久久久| 高清视频在线www色| 激情综合电影网| 日韩大片免费观看视频播放| 欧美成人黑人猛交| 最好2018中文免费视频 | 一区二区三区欧美激情| 97自拍视频| 日本三级午夜理伦三级三| 嫩草香蕉在线91一二三区| 国产91丝袜在线播放| 97av在线视频免费播放| 亚洲第一视频区| 亚洲人成电影| 国产在线观看一区二区| 午夜精品久久久久久久99热 | 久久婷婷成人综合色| 欧美亚洲另类制服自拍| 日本污视频网站| 中文字幕在线观看| 日韩福利视频导航| 欧美成人午夜视频| 国产男男chinese网站| 佐山爱痴汉视频一区二区三区| 视频一区视频二区中文| 蜜月aⅴ免费一区二区三区| 免费a在线观看播放| 伊大人久久香线焦宗合一75大| 精品一区二区三区免费观看| 91精品国产精品| 粉嫩av性色av蜜臀av网站| 欧美成人性生活视频| 91免费观看视频| 99r国产精品视频| 亚洲熟女乱色一区二区三区久久久| 韩国成人漫画| 欧美日韩亚洲系列| 每日在线观看av| 色视频在线观看在线播放| 欧美视频导航| 久久综合久中文字幕青草| 好吊视频在线观看| 二区三区在线| 久久久不卡网国产精品一区| 国产美女99p| 亚洲AV无码国产精品午夜字幕| 精品国产不卡一区二区| 欧美日韩一区中文字幕| 九一精品在线观看| 国产911网站| 精品亚洲免费视频| 成人在线观看视频网站| 国产精品久久久国产盗摄| 欧美一级大片在线视频| 日韩一区二区三区av| 三级性生活视频| 97国产在线| 91在线一区二区三区| 久久涩涩网站| 性欧美video另类hd3| 欧美午夜一区| 久久久久久网址| 免费看一级视频| 精品一区二区三区免费看| 欧美精品久久久久久久多人混战 | 国产九九九九| 一区二区三区四区五区在线| 97精品久久久中文字幕免费| 久草国产在线观看| 国产一区二区三区四区五区3d| 日本高清成人免费播放| 午夜在线观看av| 在线亚洲电影| 中文字幕不卡在线| 99热这里只有精品免费| 黄色成人免费观看| 99久久久久免费精品国产 | 亚洲色成人www永久网站| 日韩中文字幕无砖| 亚洲欧洲午夜一线一品| 国精产品一区一区二区三区mba| 中文av在线全新| 欧美一级日韩不卡播放免费| 呦呦视频在线观看| 金瓶狂野欧美性猛交xxxx| 色婷婷综合久久| 国内av免费观看| 国产高清一区二区三区视频 | 成人黄页毛片网站| 日韩偷拍一区二区| 九色视频九色自拍| 不卡大黄网站免费看| 在线码字幕一区| 男人插女人欧美| 国产欧美中文在线| 韩国日本在线视频| 国产精品四虎| 色综合天天综合| 国产乱淫av片| 国产拍在线视频| 精品国产乱码久久久久久图片 | 欧美特级www| 国产91成人video| 国内精品福利视频| 任我爽精品视频在线播放| 欧美成人精品xxx| 亚洲天堂视频在线| 综合天天久久| 亚洲一区二区三区视频| 国产又爽又黄又舒服又刺激视频| 老司机精品视频在线| 亚洲国产欧美一区二区三区不卡| 极品色影院av| 中文字幕精品—区二区四季| 欧美日韩亚洲一二三| av毛片在线| 欧美videossexotv100| 久操视频免费在线观看| 久久综合色占| 国产精品久久久久高潮| 欧美性猛交xxxxbbbb| 国产ts人妖一区二区| 国产人妻777人伦精品hd| av大片在线看| 91精品国产免费久久综合| 欧美极品aaaaabbbbb| 日本欧美视频| av成人观看| 加勒比一区二区三区| 一区二区三区在线观看网站| 可以看的av网址| 奇米777日韩| 久久亚洲欧美日韩精品专区| www.四虎在线观看| 免费成人在线网站| 欧美 亚洲 视频| 91免费在线| 欧美r级在线观看| 国产又黄又猛又粗又爽| 激情综合中文娱乐网| 日韩一区不卡| 国际av在线| 欧美xxxx在线观看| 亚洲手机在线观看| 蜜桃视频免费观看一区| 精品少妇人欧美激情在线观看| 美女av在线播放| 亚洲美女免费精品视频在线观看| 91麻豆国产在线| 蜜臀国产一区二区三区在线播放| 成年人网站国产| bl视频在线免费观看| 这里只有精品丝袜| 污视频在线免费| 久久久www成人免费毛片麻豆| 在线观看日本www| 精品中文字幕一区二区三区| 国产精品久久久久久久久久久新郎 | 欧美国产极品| 亚洲www在线| 一级毛片免费看| 日韩一区二区免费视频|