chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用doxygen分析MCAL源碼的層次架構

冬至子 ? 來源:安德魯?shù)脑O計筆記本 ? 作者:安德魯蘇 ? 2023-11-02 12:25 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

閱讀MCAL源碼包中的源碼,猜測MCAL可能只是MCU底層SDK向AutoSAR的一個適配接口。為了驗證這個猜測,比較直接的做法,就是通過源碼“逆向”出軟件包中函數(shù)的調用關系,試圖歸納出實際的源碼設計層次架構。

為此,我想到多年前在CI服務器上生成SDK API手冊時,偶然發(fā)現(xiàn)的可以使用doxygen工具生成函數(shù)調用關系圖的方法,打算摩拳擦掌,“搞”它一下子。

準備和安裝軟件

doxygen 是跨平臺的工具,支持Linux、Windows、Mac OS X系統(tǒng)(本文將以Windows版本為例)。支持C語言在內的多種語言的分析,生成的幫助文檔格式可以是CHM、RTF、PostScript、PDF、HTML和Unixman page等。

它是一款優(yōu)秀的文檔自動生成工具,可以將代碼中的注釋轉換成幫助文檔(注釋格式要符合 doxygen 要求才行,F(xiàn)Fmpeg API Documentation 就是用doxygen自動生成的)。

本文使用doxygen的主要目的是生成函數(shù)調用關系圖,也可以通過靜態(tài)分析代碼,生成「頭文件引用關系圖」、「函數(shù)調用關系圖」、「繼承圖」以及「協(xié)作圖」來可視化文檔之間的關系。

生成Call Graph

運行 doxywizard.exe。

配置Wizard > Project頁面

配置doxygen工程的目錄、即將掃描源碼的目錄、產生輸出文件的目錄等。

image.png

配置Wizard > Mode頁面

選定目標源碼的編程語言,為C語言。

image.png

配置Expert > Project頁面

可以選擇生成中文文檔。

image.png

配置Expert > Build頁面

配置引用的對象類型。

image.png

配置Expert > Dot頁面

啟用DOT,啟用生成CALL_GRAPH,配置生成DOT的工具路徑。

image.png

分析并生成源碼

image.png

查看生成內容

image.png

查看生成的調用流圖

以查看Mcu.c文件的包含關系為例:

image.png

以查看Mcu_ClockInit()函數(shù)的調用關系為例:

image.png

查看MCU驅動模塊與其他模塊的關聯(lián)關系:

image.png

總結

在doxygen生成的網站中大略過了一遍YTM32 MCAL的調用關系流圖,以MCU驅動模塊為例,做了簡要的架構分析。MCU驅動模塊的實現(xiàn)源碼主要位于Mcu目錄中(另有Mcu_Cfg.h文件位于board目錄中),MCU驅動模塊還引用了RteDet目錄中的組件,以及Platform中關于硬件硬件的訪問。

根據AutoSAR MCAL的規(guī)范,McuDet、Rte等組件位于同一層次,并存在相互調用的關系。MCU驅動模塊為了區(qū)分MCAL的同層調用關系和面向硬件的調用關系,專門在Mcu.c文件和Mcu_Lld.c文件中分兩層實現(xiàn)了MCU驅動模塊的功能:

Mcu.c文件中,可以調用MCAL同層次組件的服務,向AutoSAR的BSW提供底層服務。向下通過調用Mcu_Lld.c文件中函數(shù),實現(xiàn)對本組件專屬硬件的訪問。

Mcu_Lld.c文件中,不能調用MCAL層次上的服務,僅能訪問MCU硬件資源,并僅能又Mcu.c文件中的函數(shù)調用。

類似地,其他的MCAL層的驅動模塊也是如此分層地設計和實現(xiàn)。

如此,可以推斷,本文分析的YTM32B1ME05的MCAL軟件包為代表,若在YTM32B1MD14芯片(或其他車規(guī)MCU)的MCAL軟件包中,在基于這個層次架構實現(xiàn)MCAL軟件包中,需要適配的,也僅僅是Mcu_Lld.c文件這個層級上的源碼。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7632

    瀏覽量

    141769
  • AUTOSAR
    +關注

    關注

    10

    文章

    380

    瀏覽量

    22671
  • 驅動模塊
    +關注

    關注

    0

    文章

    65

    瀏覽量

    14457
  • MCU控制
    +關注

    關注

    0

    文章

    48

    瀏覽量

    6965
  • BSW
    BSW
    +關注

    關注

    0

    文章

    15

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    層次分析法.pdf

    層次分析法.pdf
    發(fā)表于 09-15 12:54

    層次分析法的應用與實現(xiàn)

    數(shù)學建模算法:層次分析法之如何選擇旅游目的地
    發(fā)表于 06-03 17:31

    Linux內核源碼之我見——內核源碼分析方法

    達到如下效果:1.基本弄清了源碼中代碼元素存在的含義。2.找出了該模塊所涉及的基本上全部的關鍵源碼文件。結合之前搜集到的信息和資料對該待分析代碼的整體或者架構描述,我們可以將
    發(fā)表于 05-11 07:00

    EMC分析設計層次的講解

    來源:互聯(lián)網EMC,大家在熟悉不過了,就是常說的電磁兼容,此次只要是對EMC分析設計層次的講解,避免這些小細節(jié)可以少走彎路。電磁兼容包括兩個方面的要求:一方面是電磁干擾;另一方面是電磁敏感性。
    發(fā)表于 10-22 13:35

    層次分析法是什么

    1、層次分析法AHP2、單片機學習層次分析法AHP將半定性,半定量的問題轉化為定量計算的一種行之有效的方法。成對比較矩陣和正互反矩陣設要比較n個因素C1,C2,……Cn對目標O的影響,
    發(fā)表于 07-19 06:19

    一文幫助初學者理解RTT設備架構層次關系

    粗略地畫了一個圖,主要針對設備這塊,能幫助初學者理解設備架構層次關系。下圖所示為RTT設備層次關系。(1)STM32為例使用 cubemx 配置的外設,點擊生成代碼之后,外設的初始化代碼會更新
    發(fā)表于 05-31 15:08

    如何在RT-THREAD上生成doxygen

    這個插件一共有兩種操作在源碼文件中頭部輸入·/** ,然后直接按回車鍵,你可以看到自動生成的注釋了。在寫好的函數(shù)的上面輸入/** , 然后也是按回車鍵,你就看也看到效果了。doxygen文件生成只要
    發(fā)表于 08-09 10:50

    RT-studio使用doxygen生成代碼文檔經驗分享

    在RT-studio使用doxygen生成代碼文檔時,遇到了一些問題,解決完后作為經驗分享。Build Doxygenfile時,并沒有出現(xiàn)對應的文檔。最大的可能是在使用doxygen生成代碼文檔
    發(fā)表于 11-23 15:54

    層次分析

    層次分析法:層次分析法:椅子的問題,席位分配問題,行走步長問題,實物交換模型。
    發(fā)表于 09-15 12:43 ?9次下載

    層次分析法的改進及應用

    本文基于對層次分析法在處理多目標決策問題時計算量較大、易出現(xiàn)誤差的情況提出改進的目的,采用修改標度值和簡化判斷矩陣的方法,有效地解決了層次分析法在處理多目標決策問
    發(fā)表于 08-15 09:46 ?0次下載
    <b class='flag-5'>層次</b><b class='flag-5'>分析</b>法的改進及應用

    使用Doxygen工具時的七個關鍵提示

    Doxygen對于有紀律的嵌入式軟件開發(fā)人員來說是一個了不起的工具,他們希望快速生成與代碼保持同步的軟件手冊。它會掃描您的代碼,解析開發(fā)人員的注釋,并將注釋與軟件對象和功能相關聯(lián)。結果輸出可以是鏈接的HTML,rtf或LaTex文件,然后作為應用程序的知識體。
    的頭像 發(fā)表于 08-09 14:51 ?2918次閱讀

    Java反射的工作原理和源碼分析

    Java反射的工作原理和源碼分析
    發(fā)表于 07-08 15:11 ?14次下載
    Java反射的工作原理和<b class='flag-5'>源碼</b><b class='flag-5'>分析</b>

    分享一個超級實用的源碼閱讀小技巧

    工欲善其事必先利其器; 我發(fā)現(xiàn)函數(shù)調用圖可以讓我們更加直觀地了解到源碼函數(shù)直接的調用和層次關系,提高閱讀源碼的效率 。 1 前言 看源碼的時候,心血來潮想弄一下函數(shù)之前的調用關系,想起
    的頭像 發(fā)表于 05-29 11:50 ?2296次閱讀
    分享一個超級實用的<b class='flag-5'>源碼</b>閱讀小技巧

    AUTOSAR MCAL軟件的開發(fā)

      我們?yōu)槲覀兊腁UTOSAR MCAL軟件支持“實現(xiàn)汽車所需的行駛、轉向、停車和連接”和“實現(xiàn)安全便捷的社會”而感到自豪。我們將繼續(xù)為AUTOSAR MCAL軟件提供更好的質量和性能。
    的頭像 發(fā)表于 04-24 14:44 ?4955次閱讀

    AUTOSAR架構MCAL、服務層、ECU抽象層介紹

    1 微控制器抽象層(MCAL) AUTOSAR CP的微控制器抽象層(MCAL)是AUTOSAR軟件架構中的一個重要組成部分,它提供了對底層硬件的抽象和訪問接口,以實現(xiàn)軟件與硬件之間的解耦和可移植性
    的頭像 發(fā)表于 10-27 15:36 ?8490次閱讀