0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以autosar為基礎(chǔ)完成n32g45x的驅(qū)動,并適配內(nèi)核為autosar的操作系統(tǒng)

海闊天空的專欄 ? 來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2022-05-26 19:27 ? 次閱讀

一、項目介紹

隨著小米宣布造車,當(dāng)下“軟件定義汽車”的趨勢如火如荼,autosar的全稱Automotive Open System Architecture,即汽車開放軟件架構(gòu),這正如TCP/IP對網(wǎng)絡(luò)進(jìn)行統(tǒng)一,autosar是對汽車軟件技術(shù)的統(tǒng)一,TCP/IP制定的初衷是為統(tǒng)一網(wǎng)絡(luò)標(biāo)準(zhǔn)從而誕生了今天的互聯(lián)網(wǎng),而AUTOSAR的制定是為實現(xiàn)汽車電子軟件的統(tǒng)一從而實現(xiàn)汽車電子軟件的復(fù)用。本項目是基于autosar3.1的開源代碼arctic core,在此基礎(chǔ)上,完成在n32g45x上的mcal驅(qū)動,適配RT-Thread內(nèi)核為autosar的操作系統(tǒng)。


目前已完成mcal的mcu驅(qū)動,autosar的osek操作系統(tǒng)已經(jīng)能在n32g45x上正常調(diào)度,移植rtthread到arctic core,但是在適配OSEK/VDX的接口過程中,發(fā)現(xiàn)這個適配工作不是一兩個月所能完成,因為osek/vdx的標(biāo)準(zhǔn)非常嚴(yán)格,如果對OSEK/VDX感興趣的小伙伴可以一起加入rtthread對osek/vdx的適配。

二、簡述AUTOSAR及OSEK/VDX

2.1 AUTOSAR的分層模型及各層簡述

pYYBAGKPYqGAUa2kAAIl1Nb9WzQ491.png


AUTOSAR從上往下分為應(yīng)用層、RTE層和基礎(chǔ)軟件層(BSW)。

應(yīng)用層由多個軟件組件SWC組成,每個SWC是具有一定功能的模塊,如汽車發(fā)動機控制邏輯,這些模塊可以由matlab的autosar軟件包依據(jù)模型進(jìn)行設(shè)計;RTE全稱Runtime Environment,即運行時環(huán)境,它的內(nèi)部是一條autosar框架定義的虛擬功能總線(VFB),SWC、BSW通過這條虛擬功能總線進(jìn)行通信

BSW從上到下分為服務(wù)層、ECU抽象層、MCU抽象層,分層的目的是為了實現(xiàn)各層的復(fù)用和對下一層的隔離,這正如RT-Thread的分層思想那樣,RT-Thread可以適配不同的MCU就是因為采用了驅(qū)動和設(shè)備分離的策略,RT-Thread的同一個設(shè)備因為注冊了不同的驅(qū)動就可以驅(qū)動不同的MCU。在AUTOSAR中,和MCU有關(guān)的一層是MCU抽象層,及MCAL,用RTT的驅(qū)動和設(shè)備分離的思想來理解autosar的mcal就是同一個ECU抽象層因為注冊了不同的MCU驅(qū)動就可以驅(qū)動不同的MCU。在autosar的成員中就有nxp這樣的芯片原廠提供autosar的mcal。


2.2 簡述OSEK/VDX接口api

在autosar的服務(wù)層中有一個符合OSEK/VDX標(biāo)準(zhǔn)的操作系統(tǒng),負(fù)責(zé)內(nèi)存管理、對各個功能的調(diào)度,api分為任務(wù)管理、中斷處理、事件機制、資源管理、報警器。

2.2.1 任務(wù)管理api

1 StatusTypeActivateTask(TaskType)
2 將任務(wù)號為TaskID的任務(wù)由掛起態(tài)變?yōu)榫途w態(tài)。
3 StatusTypeTerminateTask(void)
4 將任務(wù)由就緒態(tài)轉(zhuǎn)為掛起態(tài)。
5 StatusTypeChainTask(TaskType)
6 將當(dāng)前任務(wù)由就緒轉(zhuǎn)為掛起,并將TaskID的任務(wù)由掛起轉(zhuǎn)為就緒,相當(dāng)于TerminateTask和ActivateTask的連用。
7 StatusTypeSchedule(void)
8 執(zhí)行一次調(diào)度。
9

2.2.2 事件api

1 StatusTypeSetEvent(TaskTypeEventMaskType)
2 設(shè)置一個事件位,當(dāng)執(zhí)行SetEvent后等待該事件位的任務(wù)可以由等待態(tài)變?yōu)榫途w態(tài)。
3 StatusTypeClearEvent(EventMaskType)
4 清楚事件位
5 StatusTypeGetEvent(TaskTypeEventMaskRefType)
6 返回TaskID任務(wù)的所有事件位
7 StatusTypeWaitEvent(EventMaskType)
8 等待事件位,等待事件位的任務(wù)由就緒態(tài)轉(zhuǎn)為等待態(tài)。
9

2.2.3 報警器(鬧鐘)api

1 StatusTypeGetAlarmBase(AlarmType,AlarmBaseRefType)
2 獲取報警器的時基
3 StatusTypeGetAlarm(AlarmTypeTickRefType)
4 獲取鬧鐘當(dāng)前的tick
5 StatusTypeSetRelAlarm(AlarmType,TickType,TickType)
6 設(shè)置相對鬧鐘
7 StatusTypeSetAbsAlarm(AlarmType,TickType,
8 TickType)
9 設(shè)置絕對鬧鐘
10 StatusTypeCancelAlarm(AlarmType)
11 取消鬧鐘
12

三、AUTOSAR開源代碼arctic core軟件框架和分析

3.1 相關(guān)資源鏈接

arctic core官網(wǎng):


http://dev.arccore.com/public/user-doc/UD441x/Arctic-Core-4.0_9503291.html

arctic core源碼獲取 :


http://my.arccore.com/hg

源碼構(gòu)建說明:


http://dev.arccore.com/public/userdoc/UD441x/Makesystem_23789620.html

3.2 軟件框架說明

pYYBAGKPYyWAAwU9AABrhQXpDRw558.png


在arch文件夾中的文件為MCU內(nèi)核架構(gòu)相關(guān)的文件,如cortex-m3,主要內(nèi)容為M3的啟動文件(見M3編程指南),MCU的固件庫。


在boards文件夾中的文件為各個MCU的實現(xiàn),包括對板子的配置。


system文件夾中包含了一個OSEK/VDX標(biāo)準(zhǔn)的操作系統(tǒng)。

四、在N32G45X上完成AUTOSAR的MCAL

以MCU驅(qū)動的時鐘設(shè)置為例,static void SetClocks(Mcu_ClockSettingConfigType *clockSettingsPtr)是autosar的mcal定義的一個接口,用于設(shè)置MCU的時鐘,在n32g45x的實現(xiàn)如下:


poYBAGKPY3uAacG7AAIghmZeWD0375.png

寫好mcal的mcu后編譯成可執(zhí)行文件下載到板子上,AUTOSAR能夠在n32g45x上正常運行,可以看到三個任務(wù)塊在調(diào)度。下載工具用的是pyocd。

pYYBAGKPY4iAegTdAAB5EUamSiM932.png

五、RT-THREAD的移植

由于源碼采用的構(gòu)建工具是makefile,所以需要將rtthread的源碼和頭文件路徑添加到makefile文件。編譯下載到板子上可以看到rtthread正常運行。

圖片

六、倉庫地址

由于arctic core沒有g(shù)ithub,不能采用fork的方式協(xié)作開發(fā),我的代碼上傳到gitee提示版權(quán)風(fēng)險無法轉(zhuǎn)為公開的倉庫,對源碼感興趣的小伙伴可以在下方留下gitee賬號或發(fā)郵件給我369247354@qq.com,我拉你到項目組。源碼從附件下載:

n32g45x_arctic_core.zip

七、項目視頻

https://www.bilibili.com/video/BV1Ma411b7kD/

八、總結(jié)和展望

本次移植過程中,mcal的移植較為輕松,適配n32g45x的寄存器花了不少時間,需要查看n32g45x的參考手冊的寄存器定義一個一個的去改。移植rtthread到arctic core的源碼比較簡單,只是添加rtt的源碼到arctic core的makefile。遺憾的是還沒完成rtt適配OSEK/VDX的接口,希望對OSEK/VDX感興趣的小伙伴加入進(jìn)來,一起完成rtt對OESK/VDX的適配。

來源:RTThread物聯(lián)網(wǎng)操作系統(tǒng)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    362

    瀏覽量

    21588
收藏 人收藏

    評論

    相關(guān)推薦

    【設(shè)計技巧】基于AUTOSAR的電機驅(qū)動系統(tǒng)報告

    有重要意義。本報告電動汽車用驅(qū)動電機作為研究對象, AUTOSAR 開發(fā)架構(gòu)基礎(chǔ),對電機驅(qū)動
    發(fā)表于 07-27 08:00

    介紹一種適配RT-Thread內(nèi)核autosar操作系統(tǒng)

    目是基于autosar3.1的開源代碼arctic core,在此基礎(chǔ)上,完成n32g45x上的mcal驅(qū)動,適配RT-Thread
    發(fā)表于 05-19 15:40

    國民技術(shù)MCU應(yīng)用筆記連載(4)——N32G45x系列USB自定義HID設(shè)備的實現(xiàn)

    了HID設(shè)備的驅(qū)動程序,因而無需用戶自己開發(fā)驅(qū)動程序,對于一些數(shù)據(jù)量較少的場合(例如按鍵輸入、LED顯示或一些小容量的芯片燒錄器等),使用用戶自定義HID設(shè)備是很合適的。本文主要介紹N32G45x USB自定義HID設(shè)備的實現(xiàn)。
    發(fā)表于 07-05 11:58

    基于RT-Thread內(nèi)核AUTOSARn32g上的實現(xiàn)方案

    操作系統(tǒng)。目前已完成mcal的mcu驅(qū)動,autosar的osek操作系統(tǒng)已經(jīng)能在n32g45x
    發(fā)表于 07-27 14:30

    N32G45x/G4FRx/N32WBx系列觸控設(shè)計指南

    本應(yīng)用筆記主要針對 N32G45x/G4FRx/N32WBx 系列 MCU 在智能門鎖、智能家居等觸控產(chǎn)品上提供完整的觸控解決方案及典型觸控應(yīng)用的詳細(xì)說明,開發(fā)者提供技術(shù)支持。
    發(fā)表于 11-02 06:12

    面向汽車應(yīng)用的AUTOSAR設(shè)計技巧

    面向汽車應(yīng)用的AUTOSAR設(shè)計技巧 汽車OEM正在開發(fā)基于AUTOSAR的電子系統(tǒng)應(yīng)對當(dāng)代汽車中日益復(fù)雜的軟件。AUTOSAR簡化了
    發(fā)表于 01-15 10:46 ?1144次閱讀

    AUTOSAR和OSEK網(wǎng)絡(luò)管理比較

    AUTOSAR與OSEK二者都是汽車電子軟件的標(biāo)準(zhǔn)。OSEK/VDX是基于ECU開發(fā)的操作系統(tǒng)標(biāo)準(zhǔn),AUTOSAR基于整體汽車電子開發(fā)的功能標(biāo)準(zhǔn)。
    發(fā)表于 09-16 09:42 ?1697次閱讀

    N32G45x系列用戶手冊

    N32G45x系列用戶手冊
    發(fā)表于 11-10 19:50 ?2次下載
    <b class='flag-5'>N32G45x</b>系列用戶手冊

    N32G45x系列用戶手冊

    N32G45x系列用戶手冊
    發(fā)表于 11-10 19:50 ?0次下載
    <b class='flag-5'>N32G45x</b>系列用戶手冊

    N32G45x系列用戶手冊

    N32G45x系列用戶手冊
    發(fā)表于 11-10 19:50 ?0次下載
    <b class='flag-5'>N32G45x</b>系列用戶手冊

    基于AUTOSAR規(guī)范的操作系統(tǒng)知識

    汽車電子控制器中目前基本遵循AUTOSAR規(guī)范,而其中操作系統(tǒng)作為BSW的重頭戲,始終讓學(xué)習(xí)AUTOSAR的同學(xué)望而生畏,進(jìn)而望而卻步。所以,今天整理下基于AUTOSAR規(guī)范的
    的頭像 發(fā)表于 02-13 14:03 ?1641次閱讀
    基于<b class='flag-5'>AUTOSAR</b>規(guī)范的<b class='flag-5'>操作系統(tǒng)</b>知識

    經(jīng)緯恒潤AUTOSAR成功適配智芯科技國產(chǎn)車規(guī)級芯片

    近日,經(jīng)緯恒潤AUTOSAR基礎(chǔ)軟件產(chǎn)品INTEWORK-EAS-CP成功適配智芯半導(dǎo)體的Z20K14x產(chǎn)品家族。同時,經(jīng)緯恒潤完成了對智芯半導(dǎo)體Z20K14
    的頭像 發(fā)表于 05-30 09:31 ?951次閱讀
    經(jīng)緯恒潤<b class='flag-5'>AUTOSAR</b>成功<b class='flag-5'>適配</b>智芯科技國產(chǎn)車規(guī)級芯片

    AUTOSAR OS操作系統(tǒng)功能特性

    按照預(yù)定的時間要求執(zhí)行。 2. 時鐘和定時器管理:AUTOSAR OS可以管理系統(tǒng)時鐘和定時器,提供精確的時間基準(zhǔn)和定時功能,支持任務(wù)和中斷的時
    的頭像 發(fā)表于 10-27 16:55 ?2164次閱讀

    經(jīng)緯恒潤AUTOSAR成功適配曦華科技國產(chǎn)車規(guī)級芯片

    近日,經(jīng)緯恒潤AUTOSAR基礎(chǔ)軟件產(chǎn)品INTEWORK-EAS-CP成功適配曦華科技的藍(lán)鯨CVM014x系列車規(guī)級MCU芯片。同時,經(jīng)緯恒潤完成了對曦華科技開發(fā)板的MCAL軟件
    的頭像 發(fā)表于 12-19 08:00 ?563次閱讀
    經(jīng)緯恒潤<b class='flag-5'>AUTOSAR</b>成功<b class='flag-5'>適配</b>曦華科技國產(chǎn)車規(guī)級芯片

    經(jīng)緯恒潤AUTOSAR產(chǎn)品成功適配芯來RISC-V車規(guī)內(nèi)核

    近日,經(jīng)緯恒潤AUTOSAR基礎(chǔ)軟件產(chǎn)品INTEWORK-EAS(ECUAUTOSARSoftware,以下簡稱EAS)在芯來提供的HP060開發(fā)板上成功適配芯來科技的RISC-V處理器NA內(nèi)核
    的頭像 發(fā)表于 03-29 08:00 ?459次閱讀
    經(jīng)緯恒潤<b class='flag-5'>AUTOSAR</b>產(chǎn)品成功<b class='flag-5'>適配</b>芯來RISC-V車規(guī)<b class='flag-5'>內(nèi)核</b>