色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何將函數封裝成庫使用的方法介紹

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-01-12 16:32 ? 次閱讀

Other Parts Discussed in Post:C2000WARE

作者:Aki Li

在項目開發過程中,開發者出于保護核心算法的目的,希望將部分核心代碼封裝起來,使得其他使用者無法查看具體的代碼實現細節,而不影響正常的調用。常見的思路是將核心的函數封裝成庫,下面將結合例程說明具體實現方法。

1.庫的建立

1).新建庫工程

在CCS中,選擇Project -> New CCS Project,在工程配置窗口中,選擇相應的“Target” device,以及輸入自定義的工程名字;然后需要注意在“Project type and tool-chain -> output type”中選擇“Static Library”,而不是“Executable”,“Executable”對應的是我們一般用到的可生成.out 可執行文件的工程。

poYBAGGKR3qAM72lAAFC0LPIhVY692.png

圖 1 在CCS中新建庫工程

2).定義相關的庫函數

新建完工程后,即可將所需封裝的函數放入工程文件中,在此以簡單的一個功能函數為例進行說明。

poYBAGGKR32AZtgMAACadZE-Mgg276.png

圖 2 .C文件中添加目標庫函數

3).添加頭文件.h

先在工程目錄新建一個“include”文件夾,然后在該文件夾新建

pYYBAGGKR3-Aep8HAABd7ZWffVY671.png

pYYBAGGKR4CAVvAWAABbY7V_t4M115.png

圖 3 新建.h文件

在.h文件中進行庫函數的函數聲明。

poYBAGGKR4KAYeNmAADyvAC61k4983.png

圖 4 函數名聲明

至此,編譯該工程,即可生成所需的.lib文件,在默認的Debug文件路徑中。

pYYBAGGKR4OAXH_bAADJIDOqYGM655.png

圖 5 編譯生成對應的.lib文件

2.在工程項目中使用該庫文件

以C2000WARE中的“led_ex1_blink”例程為例,說明下如何在實際工程中使用定義的庫文件。

1)建立文件鏈接

首先將第一步生成的.lib文件以及.h文件所在文件夾一并拷貝至目標工程,由于具體的庫函數代碼實現體現在.c文件,因此最終的工程無法索引至原始的.c文件。

poYBAGGKR4SAKUCqAAEmvmhS95w509.png

圖 6 復制相應的.h和.lib文件

下一步需要在該工程中建立對庫文件的鏈接關系。首先在工程屬性 C2000 Compiler->Include Option中添加.h文件所在的文件路徑,注意此處使用的是相對路徑,以確保工程路徑發生變更時的一致性。

poYBAGGKR4aAbvxAAAFBgtoPfms580.png

圖 7 添加.h所在的文件路徑

然后,在C2000 Linker->File Search Path中分別添加對應的.lib文件名以及所在文件路徑。

pYYBAGGKR4eAabEzAAEkPe0xnx4071.png

圖 8 添加.lib 文件名及路徑

2)添加函數頭文件及調用

在目標工程中添加.h文件的聲明,以及測試變量,并在主函數中進行調用。

pYYBAGGKR4mAWbM7AAC2iXNo4x4160.png

poYBAGGKR4uAfj1eAAA2Rvdn-so780.png

圖 9 .h文件聲明以及調用示例

燒錄該工程到芯片,運行后驗證“test”結果符合預期。

此外,除了上述方法,可以采用以下方式把工程的調試功能禁止,這樣在debug模式下就無法進行任何的調試操作以及查看代碼,具體步驟:

選擇“option --symdebug:none”,即在工程屬性Build->C2000 Complier->Advanced Options->Advanced Debug Options中選擇--symdebug:none作為Debugging model。

poYBAGGKR4yAGCfKAADnJ33tSNA900.png

圖 10 使能option --symdebug:none

選擇一個例程,進行以上配置后,在調試模式下的效果如圖 11所示。在該模式下,所有symbols和工程的鏈接將被移除,因此無法進行任何的調試操作以及查看源代碼。建議在工程開發的最后階段再使用該模式。

審核編輯:金巧

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

    關注

    127

    文章

    7949

    瀏覽量

    143127
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

    10029
  • 函數
    +關注

    關注

    3

    文章

    4338

    瀏覽量

    62777
收藏 人收藏

    評論

    相關推薦

    芯片極限能力、封裝成品及系統級測試

    本文介紹了芯片極限能力、封裝成品及系統級測試。 本文介紹芯片極限能力、封裝成品及系統級測試,分述如下: 極限能力測試
    的頭像 發表于 12-24 11:25 ?310次閱讀

    HAL函數調用示例

    HAL(Hardware Abstraction Layer,硬件抽象層)是STM32等微控制器中常用的,它為開發者提供了訪問和控制硬件設備的接口。以下是一些常用的HAL庫函數及其調用示例: 一
    的頭像 發表于 12-02 14:01 ?525次閱讀

    在KiCad中使用AD的封裝(Pcblib)

    “?經常有小伙伴在群里問,有沒有辦法可以批量把Altium Designer的封裝轉成KiCad的形式。目前階段暫時只能單個的導出,或者封裝全部放到AD的PCB上,然后通過導入PC
    的頭像 發表于 11-12 12:21 ?1056次閱讀
    在KiCad中使用AD的<b class='flag-5'>封裝</b><b class='flag-5'>庫</b>(Pcblib)

    labview調用bartender .NET封裝成EXE后加載報錯

    labview調用bartender .NET在源代碼運行沒有問題,但封裝成EXE后加載.net就報錯這事什么問題。 (注:用ActiveX封裝成EXE也沒問題,可以運行) 以下是bartender .net程序框圖
    發表于 10-19 10:14

    本期視頻介紹AD PCB封裝轉換為RedPCB。#PCB#pcb設計 #Altium

    PCB封裝
    上海弘快科技有限公司
    發布于 :2024年10月18日 10:45:48

    如何將BQ35100配置為EOS模式

    電子發燒友網站提供《如何將BQ35100配置為EOS模式.pdf》資料免費下載
    發表于 09-11 10:03 ?0次下載
    <b class='flag-5'>如何將</b>BQ35100配置為EOS模式

    擺脫自建的繁瑣,EDA元件轉cadence原理圖封裝實戰技巧

    擺脫自建的繁瑣,EDA元件轉cadence原理圖封裝實戰技巧
    的頭像 發表于 08-24 12:29 ?2947次閱讀
    擺脫自建<b class='flag-5'>庫</b>的繁瑣,EDA元件<b class='flag-5'>庫</b>轉cadence原理圖<b class='flag-5'>封裝</b><b class='flag-5'>庫</b>實戰技巧

    請問如何將cURL添加到ESP8266_RTOS_SDK項目中?

    我想使用 curl api,但我不知道如何將添加到我的項目中,這樣當我將該的頭文件包含在我的項目中時它就不會抱怨。 有誰知道如何正確地第三方
    發表于 07-09 07:52

    如何將stm32f207的以太網中lwip1.3.2升級到1.4.1?

    如何將stm32f207的以太網中lwip1.3.2升級到1.4.1
    發表于 05-17 08:04

    函數發生器的常見故障及解決方法

    函數發生器,作為電子測試和測量領域的重要工具,其穩定性和可靠性對于實驗和測試結果的準確性至關重要。然而,由于各種原因,函數發生器在使用過程中可能會遇到各種故障。本文詳細介紹
    的頭像 發表于 05-15 11:45 ?1071次閱讀

    PADS2.7,如何將3D封裝與PCB封裝綁定,然后再PCB設計時可直接調用?

    PADS2.7,如何將3D封裝與PCB封裝綁定,然后再PCB設計時可直接調用?
    發表于 05-06 17:07

    請問hsm如何將整顆Tc389芯片重啟?

    關于 hsm 如何將整顆 tc389 芯片重啟,是否有什么資料介紹,或者說修改什么寄存器呢?
    發表于 03-06 08:05

    multisim14.0函數發生器怎么用

    Multisim 14.0是一款功能強大的電子電路仿真軟件,其中包含了函數發生器。函數發生器是用于產生各種波形信號的設備,可以在電子電路實驗中非常有用。在本文中,我詳細介紹Multi
    的頭像 發表于 02-23 16:41 ?7892次閱讀

    在hightec中如何將源代封裝,并編譯鏈接成.a的庫函數

    在hightec中如何將源代封裝,并編譯鏈接成.a的庫函數
    發表于 02-18 08:10

    ROUND函數的使用方法

    ROUND函數是一種常用的數學函數,在各種程序和計算機語言中都有廣泛的應用。它的作用是對一個給定的數字進行四舍五入運算,可以根據指定的小數位數進行精確的舍入操作。本文詳細介紹ROUN
    的頭像 發表于 01-14 11:19 ?2018次閱讀
    主站蜘蛛池模板: 国产精品色吧国产精品| 国产亚洲精品久久久久5区| 国产精品久久久久久日本 | 三级成年网站在线观看| 99久久免费精品国产免费| 美女裸露100%奶头视频| 2021国产精品一卡2卡三卡4卡| 亚洲伊人情人综合网站| 国产亚洲综合视频| 欧美精品熟妇乱| jj插入bb| 日日噜噜夜夜狠狠视频| 国产 高清 无码 中文| 十九岁在线观看免费完整版电影| 国产99视频精品一区| 侮辱丰满美丽的人妻| 国产真实女人一级毛片| 夜色爽爽爽久久精品日韩| 国产精彩视频在线| 天天射天天爱天天干| 国产真实露脸乱子伦| 岳的奶大又白又胖| 欧美AAAA片免费播放观看| 超碰超碰视频在线观看| 无限资源在线观看8| 九九热视频这里只有精| 91久久综合精品国产丝袜长腿| 欧美日韩1区| 国产精人妻无码一区麻豆| 一边吃奶一边啪啪真舒服| 年轻的老师5理伦片| 岛国在线无码免费观| 日本 一二三 不卡 免费| 国产精品久久久精品a级小说| 亚洲欧美一区二区三区四区| 美国女孩毛片| 国产精品麻豆a在线播放| 中文在线免费看视频| 日韩美女爱爱| 精品无码无人网站免费视频| 9LPORM原创自拍达人|