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

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

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

3天內不再提示

在Nitrogen8M SBC上運行VxWorks 7

冬至子 ? 來源:北南南北 ? 作者:gaitpu ? 2023-06-15 14:31 ? 次閱讀

為什么使用Nitrogen8M單板計算機

Boundary Devices公司推出的Nitrogen8M單板計算機是一個非常出色的開發板,我們已經在許多Linux驅動程序項目中使用它作為開發平臺,它具有一個四核的NXP i.MX8M處理器,2 GB RAM,以太網USB 3等。

我有一個同事最近正在參與一個VxWorks 7項目,項目是關于i.MX8M的客制化設計,這讓我在想,在Nitrogen8M上運行VxWorks會有多容易呢?

NXP i.MX8M上跑VxWorks 7

自90年代初以來,我們一直在編寫VxWorks板級支持包(BSP)和驅動程序,所以我知道我們是有可能讓VxWorks 7跑在NXP i.MX8M上的。VxWorks 7的創新之一是為各種片上系統(SoC)設備引入了平臺(處理器)支持層,從而使向新板子的移植工作變得更加容易。通過將板子具體的硬件配置從BSP中移出并移進設備樹中,可以幫助簡化移植工作。

由于大多數外圍設備都集成到處理器中,因此除了配置一個設備樹以運行基本內核外,幾乎沒有其他事情可做了。當然,最魔幻的在于細節部分。絕大多數的定制化板子都是為特定市場上的某一個工作而設計的,因此使內核運行通常只是任何項目的開始而已。

VxWorks 7支持NXP i.MX8M SoC以及許多NXP的評估板,這是我的起點。我為Nitrogen8M單板創建了一個簡單的設備樹,并在現有的i.MX8M板級文件中添加了一些基本的板子具體的定義。然后,我編譯了一個內核映像,生成了一個帶有集成設備樹的U-Boot兼容的ELF文件。

加載內核

現在,使用U-Boot tftpboot命令將VxWorks映像加載到板子上:

= > tftp 43000000 uVxWorks 
Using FEC device 
TFTP from server 192.168.10.20; our IP address is 192.168.10.10 
Filename 'uVxWorks'. 
Load address: 0x43000000 

Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         ########################################
         7 MiB/s
done 
Bytes transferred = 4395496 (4311e8 hex)

下面使用bootm命令來運行它,由于設備樹已集成到VxWorks內核映像中,因此我只需要指定加載地址:

= > bootm 43000000
## Booting kernel from Legacy Image at 43000000 ...
   Image Name: vxworks
   Image Type: AArch64 VxWorks Kernel Image (uncompressed)
   Data Size: 4395432 Bytes = 4.2 MiB
   Load Address: 40100000
   Entry Point: 40100000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
## Starting vxWorks at 0x40100000, device tree at 0x00000000 ...
Target Name: vxTarget
 _________            _________ 
 \\77777777\\          /77777777/ 
  \\77777777\\        /77777777/ 
   \\77777777\\      /77777777/ 
    \\77777777\\    /77777777/ 
     \\77777777\\   \\7777777/ 
      \\77777777\\   \\77777/              VxWorks 7 SMP 64-bit 
       \\77777777\\   \\777/ 
        \\77777777\\   \\7/     Core Kernel version: 3.1.1.0 
         \\77777777\\   -      Build date: Apr 29 2020 10:55:31 
          \\77777777\\ 
           \\7777777/         Copyright Wind River Systems, Inc. 
            \\77777/   -                 1984-2020 
             \\777/   /7\\ 
              \\7/   /777\\ 
               -   ------- 

                   Board: Boundary Devices Nitrogen8M SBC - ARMv8 
               CPU Count: 4 
          OS Memory Size: 2048MB 
        ED&R Policy Mode: Deployed
 Adding 9129 symbols for standalone.

- >

以上都很簡單,只花了幾個小時。但是,我們現在有的只是內核和以太網的支持,這只是一個開始,還不足以支持復雜的應用程序。

增加USB 3的支持

增加USB 3支持會如何呢?USB主機控制器已集成到處理器中,原則上也應該很容易,只需將正確的驅動程序添加到內核配置并更新設備樹即可。

我插入了一個U盤,期望能檢測到它并列出其中的內容,結果什么動靜也沒有!我檢查了驅動程序和內核配置,看起來都沒問題,那出問題的地方可能是哪兒呢?

我把USB的調試信息打開,并重新編譯了VxWorks內核,重新啟動運行帶有調試功能的內核,當我插入U盤的時候,USB主機控制器沒有識別到任何的設備插入事件,這是確定無疑的了。

看來是時候要更仔細研究一下硬件了!

Nitrogen8M上的USB 3主機控制器

Nitrogen8M有兩個USB 3主機控制器,一個連接到了USB 3的Mini Type B的連接器,用于OTG連接。另一個連接到板載USB 3 hub(Renesas uPD720210),其提供了三個板載的USB端口。

幸運的是,Boundary Devices公司提供了板子的原理圖,這很有趣:

圖片

Nitrogen 8M on-board USB3 hub

Hub有一個復位引腳,器件的數據手冊說這是一個低電平有效的復位信號,我的猜測是Hub被一直置于復位狀態,因此我需要將該信號驅動為高電平才能使其退出復位狀態。

復位信號是從哪兒來的呢?再看一下板子的原理圖:

圖片

GPIO pin driving USB hub reset

一點也不奇怪,該復位信號確實來自處理器的一個GPIO引腳。幸運的是,VxWorks 7對i.MX8M平臺的支持包含了一個GPIO的驅動程序,我將此驅動程序添加到了內核的配置中,然后,我在Nitrogen8M設備樹中添加了一個引腳配置,以在啟動過程中將GPIO1的引腳14設置為高電平。

完整的設備樹如下所示:

/* nitrogen8m.dts - Boundary Devices Nitrogen8M SBC device tree source */
/*
modification history
--------------------
29apr20,jge created
*/
/dts-v1/;
#include "prjParams.h"
#include "imx8mq.dtsi"
#include "imx8mq-clocks.dtsi"
#include "imx8mq-iomux.dtsi"
/ {
 model = "Boundary Devices Nitrogen8M SBC - ARMv8";
 aliases
 {
 ethernet0 = &enet0;
 serial0 = &uart1;
 };
 memory
 {
 device_type = "memory";
 reg = < 0x0 0x40000000 0x0 0x80000000 >;
 };
 /*
 * U-Boot only fixes up bootargs if  environment variable is set
 * when VxWorks kernel is configured in independent DTB mode.
 */
 chosen
 {
 bootargs = "enet(0,0)host:vxWorks h=192.168.10.20 e=192.168.10.10:ffffff00
g=192.168.10.1 u=target pw=vxTarget";
 stdout-path = "serial0";
 };
 };
&enet0
 {
 phy0: ethernet-phy@0
 {
 compatible = "atheros,ar8035";
 reg = < 0 >;
 };
 };
&iomux
 {
 iomux_usb2: iomux_usb2
 {
 pin-set = <
 0x060 0x2C8 0x000 0x0 0x0 0x16
 >;
 };
};
&gpio1
 {
 status = "okay";
 pinmux-0 = < &iomux_usb2 >;
 usb_hub_resetb
 {
 gpio-hog;
 gpios = < 14 >;
 output-high;
 };
 };

重新編譯內核并再次引導后,我們可以看到以下信息:

## Starting vxWorks at 0x40100000, device tree at 0x00000000 ...
Target Name: vxTarget
_________            _________
\\77777777\\          /77777777/
 \\77777777\\        /77777777/
  \\77777777\\      /77777777/
   \\77777777\\    /77777777/
    \\77777777\\   \\7777777/
     \\77777777\\   \\77777/              VxWorks 7 SMP 64-bit
      \\77777777\\   \\777/
       \\77777777\\   \\7/     Core Kernel version: 3.1.1.0
        \\77777777\\   -      Build date: May 1 2020 13:59:07
         \\77777777\\
          \\7777777/         Copyright Wind River Systems, Inc.
           \\77777/   -                 1984-2020
            \\777/   /7\\
             \\7/   /777\\
              -   -------

                  Board: Boundary Devices Nitrogen8M SBC - ARMv8
              CPU Count: 4
         OS Memory Size: 1984MB
       ED&R Policy Mode: Deployed

 Adding 10204 symbols for standalone.

- >

板子啟動后,我看到USB存儲設備中的LED燈在閃爍,在shell下使用devs顯示內核設備列表也確認了這一點,該列表顯示了USB設備上存在兩個已掛載的文件系統分區。

- > devs
drv refs name
  1 [ 3] /
  2 [ 3] /bd0:1 == > /bd0a
  2 [ 3] /bd0:2 == > /bd0b
  5 [ 3] /bd0a
  6 [ 3] /bd0b
 10 [ 3] /input/event
  0 [ 3] /null
  3 [ 3] /ttyS0
  2 [ 3] /tyCo/0 == > /ttyS0
 12 [ 3] host:
value = -140737484449152 = 0xffff8000003b9a80
- >
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19286

    瀏覽量

    229854
  • 以太網
    +關注

    關注

    40

    文章

    5426

    瀏覽量

    171733
  • USB控制器
    +關注

    關注

    1

    文章

    35

    瀏覽量

    11864
  • Linux系統
    +關注

    關注

    4

    文章

    593

    瀏覽量

    27397
  • 片上系統
    +關注

    關注

    0

    文章

    186

    瀏覽量

    26818
收藏 人收藏

    評論

    相關推薦

    VxWorks映象的分類

    的上層應用程序顯得不是很方便。2、 基于ROM的VxWorks映象這是一種運行于RAM中,但起初存放于ROM中的VxWorks映象。即該映象需要和搬移程序一起固化BOOT中。目標板
    發表于 08-25 11:20

    vxworks smp

    使用OpenGL ES2.0的圖形程序vxworks smp下運行時如何解決CPU占用率過高現象?(版本是vxworks 6.9,使用的是風河workbench 3.3自帶的ARMA
    發表于 11-06 22:13

    請問一下GD32F350芯片是怎樣8M運行

    請問一下GD32F350芯片是怎樣8M運行的?有哪些流程?
    發表于 11-01 06:44

    如何同時cortex A53運行Linux和在cortex M7運行FreeRTOS?

    對于機器人項目,我需要同時 cortex A53 運行 Linux 和在 cortex M7 運行
    發表于 03-21 08:29

    imx8mp運行M7聲卡時出現問題如何解決?

    開發板運行M7程序參考IMX_LINUX_USERS_GUIDE.pdf。內核版本 Linux imx8mpevk 5.15.32-l
    發表于 03-28 06:10

    S32G M7_0和M7_1內核獨立/并行運行,M7_1 (VM1) 未正常運行怎么解決?

    我的系統中存在 2 個虛擬機, VM0 用于 Core0 (M7_0), VM1 用于 Core1(
    發表于 05-04 07:21

    如何使LLCE_CANM7上工作以進行多重引導 (M7/A53)?

    LLCE_CAN loopback example。 如果 A53 正在啟動進入操作系統,M7 將意外停止。 這是我的問題: M7 正常運行需要檢查哪些配置? 有沒有可能讓LLCE_CAN控制器0-
    發表于 06-08 09:03

    VxWorks系統基于M總線控制系統的設計與實現

    研究基于VxWorks嵌入式實時系統下M 總線控制系統的軟件設計思想和實現方法.該系統需要設置兩個各自獨立運行的實時任務. 達到對外部設備進行控制的功能.第1個任務負責收集
    發表于 12-16 14:12 ?8次下載

    VxWorksAT91FR40162的BSP定制

    討論BSP 的概念以及ARM 芯片AT91FR40162 的特點;研究BSP 定制過程中需要清楚的VxWorks映像的生成和種類, 以及系統的啟動流程; 著重研究VxWorks 操作系統
    發表于 04-15 10:28 ?6次下載

    VxWorksPowerPC系統的移植與實現

    使用WindRiver 公司提供的 Torrnado 集成開發工具,將VxWorks 移植到PowerPc 處理器,將移植結果應用在跑馬燈的實現,運行正常,表明移植成功。關鍵字:
    發表于 06-23 13:08 ?44次下載

    VxWorks系統基于M總線控制系統的設計與實現

    研究基于VxWorks嵌入式實時系統下M 總線控制系統的軟件設計思想和實現方法.該系統需要設置兩個各自獨立運行的實時任務. 達到對外部設備進行控制的功能.第1個任務負責收集
    發表于 01-09 15:04 ?23次下載

    VxWorksAT91RM9200的BSP設計

    摘要:闡述VxWorks實時操作系統中板級支持包BSP的概念和作用;研究VxWorks映像的生成和分類,以及系統的啟動流程;著重介紹VxWorks操作系統ARM9芯片AT9lRM92
    發表于 07-29 14:37 ?37次下載

    ARM平臺上運行Xen 可同時管理linux和VxWorks

    首先來看一下Xen的應用場景,然后我們朝著Zynq上進行延伸。風河剛剛發布了一篇博客,主要是描述ARM cortex-A53處理器同時運行VxWorks和Linux。若想使
    的頭像 發表于 02-03 16:56 ?7217次閱讀
    ARM平臺上<b class='flag-5'>運行</b>Xen 可同時管理linux和<b class='flag-5'>VxWorks</b>

    nitrogen基于vue的純前端mac版桌面

    gitee-nitrogen.zip
    發表于 04-18 11:43 ?0次下載
    <b class='flag-5'>nitrogen</b>基于vue的純前端mac版桌面

    貿澤開售加快工業IoT設備開發的 Boundary Devices Nitrogen8M Plus SMARC

    Nitrogen8M Plus SMARC。Nitrogren8M Plus SMARC是一款符合SMARC 2.1行業標準的高性能系統級模塊 (SoM),與SMARC載板相結合可組成單板計算機,大大加快產品上市
    發表于 03-15 17:23 ?406次閱讀
    主站蜘蛛池模板: 亚洲一区二区三区精品视频| 国产午夜三级| 亚洲成年人在线| 噜噜色噜噜色| 天天干夜夜拍| 亚洲福利视频一区二区三区| 四虎永久在线日韩精品观看| 国内一级特黄女人精品毛片| 久久免费福利视频| 精品国产中文一级毛片在线看| 人成网站在线观看| 天天躁狠狠躁| 色爱区综合五月激情| 全色网站| 日日爽夜夜爽| xxxx性xxxx| 经典三级一区二区三区视频| 久久午夜精品| 中国videos偷窥| 国内自拍露脸普通话对白在线| 高清不卡毛片免费观看| 亚洲高清免费在线观看| 成人在线免费电影| 国产大片黄在线看免费| 日韩三级精品| 手机看片日本| 亚洲美国avcom| freesexvideo性欧美医生护士| 丁香激情五月| 欧美xxxxbbbb| 久久久夜| 亚洲高清免费视频| se94se欧美| 欧美日本一区二区三区生| 老师别揉我胸啊嗯上课呢视频| 激情综合激情五月| 五月激情片| 天天操夜夜操狠狠操| 自拍你懂的| 97午夜精品| 国产在线播放成人免费|