精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

ASN1CASN.1編譯器概述

工程師鄧生 ? 來源:哲想軟件 ? 作者:哲想軟件 ? 2022-09-21 10:03 ? 次閱讀

ASN1CASN.1編譯器將ASN.1和/或XMLschema(XSD)源規范轉換成C、C++、C#Java源代碼。

開發人員可以使用此代碼將結構/對象轉換為已完成的ASN.1消息,并使用任何ITU-T/ISO編碼規則(BER、CER、DER、PER或XER),以及ISO/IEEE醫療設備編碼規則(MDER)和NTCIP八隅體編碼規則(OER)將其轉換為或轉換為已完成的ASN.1消息。

ASN1C還包括將XSD規范轉換為ASN.1規范的工具,反之亦然。

d2fcd772-3161-11ed-ba43-dac502259ad0.png

生成的ASN1C代碼由類型定義和編碼/解碼函數(或方法)組成,這些函數提供了一個完整的應用程序編程接口(API),用于處理ASN.1規范中包含的消息定義。

除了ASN.1編譯器之外,程序包中還包含一個公共編碼/解碼函數的運行時庫。此庫包含用于編碼和解碼ASN.1基元(布爾值、整數等)的例程。ASN1CASN.1編譯器匯編對這些函數的一系列調用,以完成對更復雜消息類型的編碼或解碼。

程序員要使編碼器/解碼器啟動并運行所需要做的就是:

1、運行ASN1C為給定的ASN.1或XSD規格生成代碼

2、開發一個應用程序來調用生成代碼中的函數/方法

3、編譯/連接應用程序、生成的代碼和運行時庫

為了幫助處理第2和第3項,編譯器還能夠生成示例閱讀器和編寫器程序,以及生成文件構建所有生成的代碼。

ASN.1 to C/C++

C和C++版本都使用由一組低級基本C函數組成的公共基本運行時庫,對基本類型進行編碼和解碼。代碼生成主要在C語言中完成,并為所有定義的ASN.1類型提供了一套完整的CAPI函數。

C++代碼生成功能添加了一組類“包裝器”,用于隱藏調用編碼/解碼函數時的大部分細節。這些包裝器提供了特定于C++的附加服務。其中包括通過構造函數自動初始化生成類型的變量,通過操作符重載更容易地分配和測試數據,以及通過事件處理機制的虛擬回調接口。

從ASN.1到JavaC#

生成的Java代碼由一系列Java源文件組成——一個用于ASN.1規格中定義的每個產品(類型)。每個Java文件(至少)包含以下項目:

一個或多個公共成員數據變量,用于保存生成類型的數據。

初始化變量的構造函數。

一種編碼方法。

一個解碼方法。

將目標內容打印到給定輸出流的打印方法。

還有一個用于Java的運行時庫。它由一系列用于編碼和解碼ASN.1基本類型的類組成。例如,Asn1Integer類將對ASN.1INTEGER類型的變量進行編碼或解碼。編譯器將擴展這些基類,以形成直接從基類型派生的更高級別的類型,或者組裝一系列這些較低級別的對象來形成構造的類型(例如,序列)。

C#代碼的生成與上面描述的Java生成非常相似。為ASN.1規范中定義的每個產品生成一個單獨的C#類。它包含使用任何ASN.1編碼規則對類實例進行編碼和解碼的構造函數和方法。

可以使用Java或C#嵌入式開發工具包來支持JavaMicroEdition (J2ME)或C#compact edition庫。

Eclipse 插件

概述

ASN1C Eclipse插件允許在EclipseIDE環境中,使用ASN1C編輯、語法檢查和生成Java、C#或C/C++代碼。它與Java透視圖集成的方式允許直接從ASN.1源代碼創建Java項目。

請注意,這個插件在Eclipse4.6 (Neon)和更高版本中都是可用的。不支持早期版本的Eclipse。

下載和安裝

推薦的插件安裝方法是通過我們的插件更新站點:https://www.obj-sys.com/eclipse。請您遵循以下步驟:

1. 選擇Help->安裝新軟件

2. 輸入“Workwith”位置的更新站點:“https://www.obj.sys.com/eclipse”

3.可用的插件應該出現在列表中

4. 啟用“ASN.1和XML解決方案”旁邊的檢查框,然后單擊next

5. 單擊下一頁中的Next

6. 選擇許可條款的接受,并在下一頁中單擊Finish

7. 單擊Yes重啟Eclipse

或者,可以將插件下載為.zip文件,然后安裝。單擊下面的鏈接下載該文件:

ASN1C Eclipse插件.zip文件

下載插件后,請按照以下步驟安裝:

1. 選擇幫助->安裝新軟件

2. 單擊Addbutto

3.單擊彈出的pag中的Archive按鈕

4. 找到下載的zip文件并選擇O

5. 啟用“ASN.1和XML解決方案”旁邊的復選框,然后單擊Nex

6. 在下一個pag中單擊Next

7. 選擇許可條款的接受,并在下一個pag中單擊Finish

8. 單擊Yes重啟Eclipse

開始使用插件

安裝之后,必須設置ASN1C編譯器可執行文件的路徑:

1. 選擇Windows->首選項->ASN1C編譯器

2.在“編譯器路徑”框中,輸入ASN1C編譯器可執行文件的完整路徑(或使用Browse)

3.單擊OK退出屏幕

現在可以創建一個新項目。我們將使用ASN1CJava Employee程序作為示例。

1. 選擇Windows->首選項->ASN1C編譯器

2. 點擊“語言”下拉列表,選擇“Java”作為應用程序語言

3.點擊“選擇編碼規則”下拉列表,選擇“BER”選項

4.點擊“選擇要生成的函數類型”下拉列表,檢查“Encode”和“Decode”選項

5.點擊“基本選項”下拉列表,選擇“生成示例閱讀器程序”和“生成示例編寫程序”選項

6. 點擊“Javaoptions”下拉列表,選擇“Outputcode to module name dirs (-dirs)”選項

7. 單擊OK退出preferences屏幕

8. 選擇文件->新->項目…

9.在“ASN1編譯工具”下,選擇“ASN1C編譯器項目”,然后單擊“下一步”

10. 將項目名稱設置為“Employee”,然后單擊“Next”

11.ASN.1文件現在可以使用“添加文件”按鈕添加到項目中。單擊此按鈕,導航到ASN1Cjava/sample_ber/Employee目錄,并選擇Employee.asn。然后單擊“Next”

12. 在下一頁中單擊Next(Java設置)

13.在最后一頁(ASN1C編譯器命令),選中“在finish上啟動ASN.1編譯器”選項,然后單擊“finish”。ASN1C編譯器現在應該嘗試生成Java文件





審核編輯:劉清

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

    關注

    19

    文章

    2943

    瀏覽量

    104108
  • API
    API
    +關注

    關注

    2

    文章

    1461

    瀏覽量

    61493
  • 編譯器
    +關注

    關注

    1

    文章

    1602

    瀏覽量

    48896
  • 編程接口
    +關注

    關注

    1

    文章

    36

    瀏覽量

    7971

原文標題:Obj-sys:ASN1CASN.1 編譯器

文章出處:【微信號:哲想軟件,微信公眾號:哲想軟件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    任務編譯器v6.3r1運行速度太慢,是什么原因導致的?

    我使用的是 Tasking 編譯器 v6.3r1,在編譯時使用了優化選項--optimize=0,編譯時間非常長。 事實上,我正在編譯的文件
    發表于 07-26 06:52

    AI編譯器技術剖析

    隨著人工智能技術的飛速發展,AI編譯器作為一種新興的編譯技術逐漸進入人們的視野。AI編譯器不僅具備傳統編譯器的功能,如將高級語言編寫的源代碼轉換為機器可執行的代碼,還融入了人工智能技術
    的頭像 發表于 07-17 18:28 ?1211次閱讀

    人工智能編譯器與傳統編譯器的區別

    人工智能編譯器(AI編譯器)與傳統編譯器在多個方面存在顯著的差異。這些差異主要體現在設計目標、功能特性、優化策略、適用范圍以及技術復雜性等方面。以下是對兩者區別的詳細探討,旨在全面解析其內在差異。
    的頭像 發表于 07-17 18:19 ?1265次閱讀

    Meta發布基于Code Llama的LLM編譯器

    近日,科技巨頭Meta在其X平臺上正式宣布推出了一款革命性的LLM編譯器,這一模型家族基于Meta Code Llama構建,并融合了先進的代碼優化和編譯器功能。LLM編譯器的推出,標志著Meta在人工智能領域的又一重大突破,將
    的頭像 發表于 06-29 17:54 ?1310次閱讀

    SEGGER編譯器優化和安全技術介紹 支持最新C和C++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制設計的優化C/C++編譯器。它建立在強大的Clang前端上,支持最新的C和C++語言功能。 除其他外,其主要功能包括: 1)?尺寸
    的頭像 發表于 06-04 15:31 ?1168次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優化和安全技術介紹 支持最新C和C++語言

    C語言:嵌入式開發中的關鍵編譯器角色

    嵌入式程序開發跟硬件密切相關,需要使用C語言來讀寫底層寄存、存取數據、控制硬件等,C語言和硬件之間由編譯器來聯系,一些C標準不支持的硬件特性操作,由編譯器提供。
    發表于 04-26 14:53 ?412次閱讀
    C語言:嵌入式開發中的關鍵<b class='flag-5'>編譯器</b>角色

    QT開發學習筆記1(安裝交叉編譯器

    QT安裝交叉編譯器
    的頭像 發表于 02-18 10:02 ?688次閱讀
    QT開發學習筆記<b class='flag-5'>1</b>(安裝交叉<b class='flag-5'>編譯器</b>)

    RL78系列的C編譯器包數據手冊

    電子發燒友網站提供《RL78系列的C編譯器包數據手冊.pdf》資料免費下載
    發表于 01-26 15:55 ?0次下載
    RL78系列的C<b class='flag-5'>編譯器</b>包數據手冊

    Triton編譯器的原理和性能

    Triton是一種用于編寫高效自定義深度學習原語的語言和編譯器。Triton的目的是提供一個開源環境,以比CUDA更高的生產力編寫快速代碼,但也比其他現有DSL具有更大的靈活性。Triton已被采用
    的頭像 發表于 12-16 11:22 ?2214次閱讀
    Triton<b class='flag-5'>編譯器</b>的原理和性能

    TVM編譯器的整體架構和基本方法

    有將近兩個月沒有學習一些新東西,更新一下博客了。一直在忙公司的一個項目,是做一款支持LSTM和RNN的通用架構加速IP。自己恰好負責指令編譯工作,雖然開始的指令比較粗糙,沒有一套完整的編譯器架構
    的頭像 發表于 11-30 09:36 ?1863次閱讀
    TVM<b class='flag-5'>編譯器</b>的整體架構和基本方法

    編譯器的優化選項

    一個程序首先要保證正確性,在保證正確性的基礎上,性能也是一個重要的考量。要編寫高性能的程序,第一,必須選擇合適的算法和數據結構;第二,應該編寫編譯器能夠有效優化以轉換成高效可執行代碼的源代碼,要做到
    的頭像 發表于 11-24 15:37 ?750次閱讀
    <b class='flag-5'>編譯器</b>的優化選項

    嵌入式javascript編譯器的設計與實現

    電子發燒友網站提供《嵌入式javascript編譯器的設計與實現.pdf》資料免費下載
    發表于 10-30 11:29 ?0次下載
    嵌入式javascript<b class='flag-5'>編譯器</b>的設計與實現

    新版編譯器的設計思路和優化方法

    小程序編譯器在小程序開發、預覽、發布各個階段都需要使用,因此編譯器性能會直接影響到開發者開發效率,也會影響到開發者工具的使用體驗。 由于舊版的編譯器(基于 webpack4)在構建大型項目時會很慢,內存占用也高,一直被開發者吐槽
    發表于 10-13 11:21 ?256次閱讀
    新版<b class='flag-5'>編譯器</b>的設計思路和優化方法

    嵌入式開發中的C語言編譯器設置

    編譯器的語義檢查很弱小,甚至還會“掩蓋”錯誤?,F代的編譯器設計是件浩瀚的工程,為了讓編譯器設計簡單一些,目前幾乎所有編譯器的語義檢查都比較弱小。為了獲得更快的執行效率,C語言被設計的足
    發表于 10-11 12:43 ?574次閱讀

    esp32除了用arduino編譯器還可以用哪個編譯器?

    esp32除了用arduino編譯器還可以用哪個編譯器
    發表于 09-25 06:13