91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Cortex A9架構(gòu)下為何使用結(jié)構(gòu)體效率會(huì)更高一些

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 12:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作為過(guò)來(lái)人,我發(fā)現(xiàn)很多程序猿新手,在編寫(xiě)代碼的時(shí)候,特別喜歡定義很多獨(dú)立的全局變量,而不是把這些變量封裝到一個(gè)結(jié)構(gòu)體中,主要原因是圖方便,但是要知道,這其實(shí)是一個(gè)不好的習(xí)慣,而且會(huì)降低整體代碼的性能。

另一方面,最近有幸與大神「公眾號(hào):裸機(jī)思維」的傻孩子交流的時(shí)候,他聊到:“其實(shí)Cortex在架構(gòu)層面就是更偏好面向?qū)ο蟮模呐履阒皇鞘褂昧私Y(jié)構(gòu)體),其表現(xiàn)形式就是:「Cortex所有的尋址模式都是間接尋址」——換句話說(shuō)「一定依賴一個(gè)寄存器作為基地址」。

舉例來(lái)說(shuō),同樣是訪問(wèn)外設(shè)寄存器,過(guò)去在8位和16位機(jī)時(shí)代,人們喜歡給每一個(gè)寄存器都單獨(dú)綁定地址——當(dāng)作全局變量來(lái)訪問(wèn),而現(xiàn)在Cortex在架構(gòu)上更鼓勵(lì)底層驅(qū)動(dòng)以寄存器頁(yè)(也就是結(jié)構(gòu)體)為單位來(lái)定義寄存器,這也就是說(shuō),同一個(gè)外設(shè)的寄存器是借助擁有同一個(gè)基地址的結(jié)構(gòu)體來(lái)訪問(wèn)的?!?/p>

以Cortex A9架構(gòu)為前提,下面一口君詳細(xì)給你解釋為什么使用結(jié)構(gòu)體效率會(huì)更高一些。

一、全局變量代碼反匯編

1. 源文件

「gcd.s」

text
.global _start
_start:
ldr sp,=0x70000000 get stack top pointer
b main

「main.c」


* main.c

* Created on: 2020-12-12
* Author: pengdan

int xx=0;
int yy=0;
int zz=0;
int main(void)

xx=0x11;
yy=0x22;
zz=0x33;
while(1);
return 0;

「map.lds」

OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
OUTPUT_FORMAT("elf32-arm", "elf32-arm", "elf32-arm")
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS

. = 0x40008000;
. = ALIGN(4);
.text :

gcd.o(.text)
*(.text)

. = ALIGN(4);
.rodata :
{ *(.rodata) }
. = ALIGN(4);
.data :
{ *(.data) }
. = ALIGN(4);
.bss :
{ *(.bss) }

「Makefile」

TARGET=gcd
TARGETC=main
all:
arm-none-linux-gnueabi-gcc -O1 -g -c -o $(TARGETC).o $(TARGETC).c
arm-none-linux-gnueabi-gcc -O1 -g -c -o $(TARGET).o $(TARGET).s
arm-none-linux-gnueabi-gcc -O1 -g -S -o $(TARGETC).s $(TARGETC).c
arm-none-linux-gnueabi-ld $(TARGETC).o $(TARGET).o -Tmap.lds -o $(TARGET).elf
arm-none-linux-gnueabi-objcopy -O binary -S $(TARGET).elf $(TARGET).bin
arm-none-linux-gnueabi-objdump -D $(TARGET).elf > $(TARGET).dis
clean:
rm -rf *.o *.elf *.dis *.bin

【交叉編譯工具,自行搜索安裝】

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式設(shè)計(jì)

    關(guān)注

    0

    文章

    396

    瀏覽量

    22507
  • Cortex
    +關(guān)注

    關(guān)注

    2

    文章

    220

    瀏覽量

    48912
  • ARM架構(gòu)
    +關(guān)注

    關(guān)注

    15

    文章

    185

    瀏覽量

    39267
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鴻蒙智能上/下、升級(jí)流程介紹

    執(zhí)行上操作,并且已經(jīng)審核通過(guò)的智能,才能被其他用戶搜索并使用。 升級(jí)審核未通過(guò)的智能,線上依舊保留上次通過(guò)審核的智能版本提供給其他
    發(fā)表于 02-10 10:38

    Cortex-M0 處理器介紹

    功耗的32位處理器。 Cortex-M0是Cortex-M家族中的M0系列。最大特點(diǎn)是低功耗的設(shè)計(jì)。Cortex-M0為32位、3級(jí)流水線RISC處理器,其核心仍為馮.諾依曼結(jié)構(gòu),是指
    發(fā)表于 01-16 08:04

    C語(yǔ)言中一些令人震驚的結(jié)構(gòu)介紹

    C語(yǔ)言同意一些令人震驚的結(jié)構(gòu),下面的結(jié)構(gòu)是合法的嗎,如果是它做些什么? int a = 5, b = 7, c; c = a+++b;
    發(fā)表于 12-23 08:15

    為什么不建議用匿名結(jié)構(gòu)

    說(shuō)起匿名結(jié)構(gòu),想必大家第感覺(jué)就是看著好高大上的名字,但實(shí)際上也就那樣。 typedef struct { union { struct { uint8_t bit_0:1
    發(fā)表于 12-04 07:39

    C語(yǔ)言結(jié)構(gòu)使用

    有時(shí)候需要將不同類型的數(shù)據(jù)組合為個(gè)整體,以便于引用。例如,名學(xué)生有學(xué)號(hào)、姓名、性別、年齡等屬性,如果針對(duì)每個(gè)屬性都單獨(dú)定義個(gè)變量,那么當(dāng)有多名學(xué)生時(shí)變量就難以分清。結(jié)構(gòu)
    發(fā)表于 11-12 08:30

    基于蜂鳥(niǎo)E203架構(gòu)的指令集K擴(kuò)展

    蜂鳥(niǎo)E203是款基于RISC-V架構(gòu)的微處理器,其指令集包含RV32I的基本指令集,RV32M的乘法擴(kuò)展指令集,以及一些常用的定點(diǎn)指令和控制指令。如果需要擴(kuò)展其指令集,可以考慮使用RISC-V的可
    發(fā)表于 10-21 09:38

    迅為Hi3403V610開(kāi)發(fā)板海思Cortex-A55架構(gòu)核心板卡

    迅為電子重磅推出基于海思Hi3403處理器的高性能核心板,采用先進(jìn)的四核Cortex-A55架構(gòu),主頻高達(dá)1.4GHz,以強(qiáng)勁算力、超凡能效比與卓越的圖像處理能力,為千行百業(yè)的智能化升級(jí)注入核心動(dòng)力。無(wú)論是智能視覺(jué)、工業(yè)互聯(lián),還是AIoT邊緣計(jì)算,它都能輕松駕馭,助您暢快
    的頭像 發(fā)表于 09-30 14:18 ?763次閱讀
    迅為Hi3403V610開(kāi)發(fā)板海思<b class='flag-5'>Cortex-A</b>55<b class='flag-5'>架構(gòu)</b>核心板卡

    線上研討會(huì) | @9/23 Tinyswitch5不Tiny,擁有更高效、更高瓦更精簡(jiǎn)的變頻反馳式架構(gòu)

    9月23日,大聯(lián)大詮鼎集團(tuán)攜手PI將做客大大通直播間帶來(lái)“Tinyswitch5不Tiny,擁有更高效、更高瓦、更精簡(jiǎn)的變頻反馳式架構(gòu)”主題研討會(huì)
    的頭像 發(fā)表于 09-18 08:18 ?335次閱讀
    線上研討<b class='flag-5'>會(huì)</b> | @<b class='flag-5'>9</b>/23 Tinyswitch5不Tiny,擁有<b class='flag-5'>更高</b>效、<b class='flag-5'>更高</b>瓦更精簡(jiǎn)的變頻反馳式<b class='flag-5'>架構(gòu)</b>

    瑞芯微RK3562一體機(jī)產(chǎn)品概述

    在工業(yè)控制、邊緣計(jì)算和智能顯示等場(chǎng)景中,設(shè)備需同時(shí)滿足高算力、低延遲、長(zhǎng)續(xù)航三大核心需求。然而,性能與功耗往往是對(duì)矛盾:追求極致性能可能導(dǎo)致發(fā)熱量激增、續(xù)航縮短;過(guò)度壓低功耗又可能犧牲計(jì)算效率。瑞芯微RK3562
    的頭像 發(fā)表于 09-04 14:46 ?1854次閱讀
    瑞芯微RK3562<b class='flag-5'>一體</b>機(jī)產(chǎn)品概述

    迅為iTOP-3588S開(kāi)發(fā)板核心板引腳240PIN全部引出8GB內(nèi)存32GBEMMC存儲(chǔ)

    性能強(qiáng) iTOP-3588S開(kāi)發(fā)板采用瑞芯微RK3588S處理器,是全新代AloT高端應(yīng)用芯片,搭載八核64位CPU,四核Cortex-A76和四核Cortex-A55架構(gòu)主頻高達(dá)2
    發(fā)表于 06-23 11:19

    瑞迅科技RK3568主板賦能健康檢測(cè)一體機(jī)創(chuàng)新應(yīng)用

    硬件平臺(tái),RK3568主板的創(chuàng)新應(yīng)用正在重新定義健康服務(wù)的效率與體驗(yàn)。 、RK3568主板:健康檢測(cè)一體機(jī)的“智慧心臟” 瑞迅科技自主研發(fā)的RK3568主板,搭載四核ARM Cortex-A
    的頭像 發(fā)表于 05-22 15:45 ?865次閱讀
    瑞迅科技RK3568主板賦能健康檢測(cè)<b class='flag-5'>一體</b>機(jī)創(chuàng)新應(yīng)用

    iTOP-3588S開(kāi)發(fā)板四核心架構(gòu)GPU內(nèi)置GPU可以完全兼容0penGLES1.1、2.0和3.2。

    性能強(qiáng) iTOP-3588S開(kāi)發(fā)板采用瑞芯微RK3588S處理器,是全新代AloT高端應(yīng)用芯片,搭載八核64位CPU,四核Cortex-A76和四核Cortex-A55架構(gòu)主頻高達(dá)2
    發(fā)表于 05-15 10:36

    《FDTD Solutions仿真全面教程:超構(gòu)表面與光束操控的前沿探索》

    FDTD仿真實(shí)例及論文復(fù)現(xiàn) Q 實(shí)例內(nèi)容: ()設(shè)置Pancharatnam–Berry型超構(gòu)表面結(jié)構(gòu),單元旋向及位置 (二)傳輸型超構(gòu)表面單元的
    發(fā)表于 04-22 11:59

    迅為iTOP-RK3588S開(kāi)發(fā)板/核心板瑞芯微RK3588S處理器6TOPS算力內(nèi)置NPU

    性能強(qiáng) iTOP-3588S開(kāi)發(fā)板采用瑞芯微RK3588S處理器,是全新代AloT高端應(yīng)用芯片,搭載八核64位CPU,四核Cortex-A76和四核Cortex-A55架構(gòu)主頻高達(dá)2
    發(fā)表于 04-10 11:13

    iTOP-3588開(kāi)發(fā)板采用瑞芯微RK3588處理器四核心架構(gòu)GPU內(nèi)置獨(dú)立NPU強(qiáng)大的視頻編解碼

    55架構(gòu),主頻高達(dá)2.4GHz。 四核心架構(gòu)GPU 集成Mali G610 MP4四核GPU、支持OpenGLES 1.1.2.0、 3.2, OpenCL 2.2和Vulkan1.2。帶有MMU的特殊2D
    發(fā)表于 04-09 16:09