日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > linux >内容正文

linux

glibc交叉编译_TSN之linuxptp交叉编译

發(fā)布時(shí)間:2023/12/20 linux 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 glibc交叉编译_TSN之linuxptp交叉编译 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  • 0 開(kāi)發(fā)環(huán)境
  • 1 linuxptp是什么
  • 2 為什么要交叉編譯linuxptp
  • 3 修改makefile
  • 4 修改源碼
  • 5 交叉編譯

0 開(kāi)發(fā)環(huán)境

  • 筆記本:ubuntu18.04.5,內(nèi)核版本為5.3
  • 開(kāi)發(fā)板:imx8mp-evk
  • 內(nèi)核版本:Linux5.4.24
  • 交叉編譯工具鏈:fsl-imx-xwayland-glibc-x86_64-imx-image-core-aarch64-imx8mpevk-toolchain-5.4-zeus.sh

注:下面的可能會(huì)遺漏部分細(xì)節(jié),但主要的部分基本都寫(xiě)出來(lái)了,應(yīng)該無(wú)大礙。

注:以下步驟雖然針對(duì)的imx8mp-evk,但只要是aarch64架構(gòu)的芯片,大部分操作都通用的。

注:這是個(gè)人的踩坑記錄,雖然可以解決問(wèn)題,但估計(jì)不是最好的解決方案,歡迎評(píng)論區(qū)一起探討。

1 linuxptp是什么

This software is an implementation of the Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux. The dual design goals are to provide a robust implementation of the standard and to use the most relevant and modern Application Programming Interfaces (API) offered by the Linux kernel. Supporting legacy APIs and other platforms is not a goal.

我利用它主要是為了測(cè)試TSN的802.1AS特性,使用的軟件為

  • ptp4l
    • Implementation of PTP (Ordinary Clock, Boundary Clock)
  • phc2sys
    • Synchronize two clocks (typically PHC and system clock)
  • pmc (PTPManagement Client)
    • Send PTP management messages to PTP nodes

如果對(duì)內(nèi)部的實(shí)現(xiàn)協(xié)議感興趣,可以見(jiàn)下面鏈接,以及未來(lái)的總結(jié)。

IEEE1588 ( PTP ) 協(xié)議簡(jiǎn)介?www.cnblogs.com

從時(shí)鐘得到4個(gè)精確的兩個(gè)報(bào)文的收發(fā)時(shí)間,就可以計(jì)算出相應(yīng)的offset與delay來(lái)了

注:PTP并沒(méi)有介紹的那么簡(jiǎn)單,還有FSM、PID、Filter等一系列組件,構(gòu)建一個(gè)完整的時(shí)間同步系統(tǒng)。

2 為什么要交叉編譯linuxptp

linuxptp這個(gè)組件在大部分嵌入式linux系統(tǒng)中是標(biāo)配的,至于為什么要交叉編譯的原因是想要利用gbd調(diào)試,而想要調(diào)試就需要在交叉編譯加入調(diào)試信息才可以進(jìn)行調(diào)試。

The Linux PTP Project?linuxptp.sourceforge.net

可以通過(guò)git下載最新的版本進(jìn)行編譯

git clone git://git.code.sf.net/p/linuxptp/code linuxptp

下面是git下來(lái)的最新代碼,當(dāng)然這個(gè)代碼需要進(jìn)行適當(dāng)修改才可以編譯到我們的板子上去。

3 修改makefile

需要修改的地方主要有以下幾項(xiàng)

  • KBUILD_OUTPUT:指向Linux內(nèi)核源代碼地址
  • DEBUG:加入-g,即加入調(diào)試信息
  • CC:注釋掉
  • CFLAGS:加入O(O1)優(yōu)化等級(jí),便與調(diào)試
  • prefix:添加安裝目錄,便于管理

4 修改源碼

即使修改上述的makefile,使用如下命令構(gòu)建交叉編譯環(huán)境,編譯會(huì)因?yàn)橹貜?fù)定義仍會(huì)不通過(guò)

這時(shí)候需要根據(jù)源碼交叉編譯的報(bào)錯(cuò),修改注釋掉missing.h文件的如下位置即可

5 交叉編譯

source /opt/fsl-imx-xwayland/5.4-zeus/environment-setup-aarch64-poky-linux make -j 8

然后就成功通過(guò)交叉編譯了,編譯結(jié)果如下(雖然有少數(shù)的警告,但至少交叉編譯成功了)

生成的代碼如下,利用file ptp4l可以發(fā)現(xiàn)文件屬性正常。

使用make install即可把需要的可執(zhí)行文件進(jìn)行進(jìn)行打包歸類(lèi),然后就可以愉快的調(diào)試了。

利用nfs拷貝到開(kāi)發(fā)板之后發(fā)現(xiàn)軟件版本是最新編譯的3.0版本

注:個(gè)人能力有限,歡迎批評(píng)指正。

原創(chuàng)不易,嚴(yán)禁剽竊!

歡迎大家關(guān)注我的微信公眾號(hào)——小白倉(cāng)庫(kù) 原創(chuàng)經(jīng)驗(yàn)資料分享:包含但不僅限于FPGA、ARM、RISC-V、Linux、LabVIEW等軟硬件開(kāi)發(fā),另外分享生活中的趣事以及感悟。目的是建立一個(gè)平臺(tái)記錄學(xué)習(xí)過(guò)的知識(shí),并分享出來(lái)自認(rèn)為有用的與感興趣的道友相互交流進(jìn)步。

總結(jié)

以上是生活随笔為你收集整理的glibc交叉编译_TSN之linuxptp交叉编译的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。