在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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和工程的鏈接將被移除,因此無法進行任何的調試操作以及查看源代碼。建議在工程開發的最后階段再使用該模式。

審核編輯:金巧

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

    關注

    128

    文章

    8561

    瀏覽量

    144875
  • 嵌入式處理
    +關注

    關注

    0

    文章

    341

    瀏覽量

    10265
  • 函數
    +關注

    關注

    3

    文章

    4372

    瀏覽量

    64292
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    PCB標準封裝文件

    PCB標準封裝文件
    發表于 05-22 17:43 ?1次下載

    Allegro Skill封裝功能之導出單個封裝介紹

    在PCB設計中,若需提取特定封裝,傳統用Allegro自帶導出方法需通過"File→Export→Libraries"導出全部封裝文件。
    的頭像 發表于 04-16 17:33 ?698次閱讀
    Allegro Skill<b class='flag-5'>封裝</b>功能之導出單個<b class='flag-5'>封裝</b><b class='flag-5'>介紹</b>

    解鎖TSMaster fifo函數:報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調函數模式和fifo模式。fifo函數是TSMaster近期新增的函數,本文重點介紹fi
    的頭像 發表于 03-14 20:04 ?383次閱讀
    解鎖TSMaster fifo<b class='flag-5'>函數</b>:報文讀取的高效<b class='flag-5'>方法</b>

    GaNPX?和PDFN封裝器件的焊接專業經驗

    介紹如何將GaN Systems的GaNPX? 和PDFN封裝下的E-HEMT器件焊接到PCB。
    的頭像 發表于 03-13 17:38 ?543次閱讀
    GaNPX?和PDFN<b class='flag-5'>封裝</b>器件的焊接專業經驗

    如何將Linux安裝包快速轉成玲瓏包

    本篇將以 motrix 為例為大家展示如何將 Linux 安裝包快速轉成玲瓏包。
    的頭像 發表于 03-12 16:01 ?424次閱讀
    <b class='flag-5'>如何將</b>Linux安裝包快速轉成玲瓏包

    如何將HAL轉為LL

    怎么HAL轉為LL
    發表于 03-10 06:08

    如何將項目從IAR遷移到Embedded Studio

    本文描述如何將IAR EWARM項目遷移到SEGGER Embedded Studio(簡稱SES)中。
    的頭像 發表于 02-25 17:11 ?492次閱讀
    <b class='flag-5'>如何將</b>項目從IAR遷移到Embedded Studio

    如何將python文件導入到ROS系統中

    本文通過使用myCobot機械臂進行QR碼視覺追蹤的實踐案例分析,介紹如何將 python 文件導入到 ROS 系統中。
    的頭像 發表于 02-11 11:08 ?698次閱讀
    <b class='flag-5'>如何將</b>python文件導入到ROS系統中

    功率器件晶圓測試及封裝成品測試介紹

    ???? 本文主要介紹功率器件晶圓測試及封裝成品測試。?????? ? 晶圓測試(CP)???? 如圖所示為典型的碳化硅晶圓和分立器件電學測試的系統,主要由三部分組成,左邊為電學檢測探針臺阿波羅
    的頭像 發表于 01-14 09:29 ?1034次閱讀
    功率器件晶圓測試及<b class='flag-5'>封裝成</b>品測試<b class='flag-5'>介紹</b>

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

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

    HAL函數調用示例

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

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

    “?經常有小伙伴在群里問,有沒有辦法可以批量把Altium Designer的封裝轉成KiCad的形式。目前階段暫時只能單個的導出,或者封裝全部放到AD的PCB上,然后通過導入PC
    的頭像 發表于 11-12 12:21 ?3166次閱讀
    在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

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

    我想使用 curl api,但我不知道如何將添加到我的項目中,這樣當我將該的頭文件包含在我的項目中時它就不會抱怨。 有誰知道如何正確地第三方
    發表于 07-09 07:52
    主站蜘蛛池模板: 国产一区二区影院 | 日日干干夜夜 | 欧美高h | 日本视频一区二区三区 | 极品美女啪啪 | 欧美一区二区三区高清视频 | 天天做夜夜做久久做狠狠 | 天天爱天天爽 | 欧美日韩国产成人高清视频 | 黄色录像三级 | 手机在线观看毛片 | 小屁孩和大人啪啪 | 一区二区免费播放 | 人人公开免费超级碰碰碰视频 | 免费一日本一级裸片在线观看 | 色婷婷5月 | aa视频免费看 | 国产精品自线在线播放 | 成人影院久久久久久影院 | 伊人久久大| 成人三级电影在线观看 | 日日夜夜天天干干 | 三级网址在线播放 | 天堂网在线视频 | 午夜高清福利 | 色视频免费在线 | 黄色网页在线观看 | 韩国理论片在线看2828dy | 一级黄色免费毛片 | se色综合视频 | 国产毛片一区二区三区精品 | 婷婷色九月综合激情丁香 | 国产va在线播放 | 色播激情五月 | 国产又黄又爽又猛的免费视频播放 | 免费观看视频高清www | 四虎网址在线观看 | www视频在线观看com | 人人干综合 | 精品成人毛片一区二区视 | 久草男人天堂 |