LoginSignup
7
4

開発環境を豊かにする開発事例
https://qiita.com/official-events/89fd4ad3c24d7882117d
参加記事です。

<この項は書きかけです。順次追記します。>

この記事は、最後に一覧にしたMathworksのAUTOSAR Youtube動画を見た方もしくは、その動画に出てくる技術をなんとなくわかっている方を想定しています。AUTOSAR初心者、MATLAB / Simulink初心者を想定していません。ごめんなさい。

Simulink for AUTOSAR Adaptive

AUTOSARについては、

AUTOSAR を知る前に

WTO/TBT協定に基づき、ISO, IECの国際規格は技術的な仕様記述の出発点である。

WTO/TBT協定、

加盟国は、強制規格を必要とする場合において、関連する国際規格が存在するとき又はその仕上がりが目前であるときは、当該国際規格又はその関連部分を強制規格の基礎として用いる。ただし、気候上の又は地理的な基本的要因、基本的な技術上の問題等の理由により、当該国際規格又はその関連部分が、追求される正当な目的を達成する方法として効果的でなく又は適当でない場合は、この限りでない。

産業標準化法

(日本産業規格の尊重)
第六十九条 国及び地方公共団体は、鉱工業に関する技術上の基準を定めるとき、その買い入れる鉱工業品に関する仕様を定めるときその他その事務を処理するに当たつて第二条第一項各号に掲げる事項に関し一定の基準を定めるときは、日本産業規格を尊重してこれをしなければならない。
(産業標準化及び国際標準化の促進)
第七十条 国は、産業標準の制定及び普及、国際標準に関する国際団体その他の国際的な枠組みへの協力並びに産業標準化及び国際標準化に関する業務に従事する者への支援を通じて、産業標準化及び国際標準化の促進に努めるものとする。
2 国立研究開発法人(独立行政法人通則法(平成十一年法律第百三号)第二条第三項に規定する国立研究開発法人をいう。第四項において同じ。)及び大学は、民間事業者と連携しつつ、産業標準化に資する研究開発、国際標準に関する国際団体その他の国際的な枠組みへの協力及びその他の産業標準化又は国際標準化に関する活動に主体的に取り組むよう努めるとともに、産業標準化又は国際標準化に関する業務に従事する者の職務がその重要性にふさわしい魅力あるものとなるよう、産業標準化又は国際標準化に関する業務に従事する者の適切な処遇の確保に努めるものとする。
3 事業者は、産業標準化に資する研究開発、国際標準に関する国際団体その他の国際的な枠組みへの協力及びその他の産業標準化又は国際標準化に関する活動に主体的に取り組むよう努めるとともに、産業標準化又は国際標準化に関する業務に従事する者の職務がその重要性にふさわしい魅力あるものとなるよう、産業標準化又は国際標準化に関する業務に従事する者の適切な処遇の確保に努めるものとする。

ISO OSEKが国際規格であり、
AutosarはISO OSEKに準じていることがWTO/TBT協定に違反しない根拠となっている。

Autosarはosekじゃない

という発言を耳にすることがある。WTO/TBT協定、ISO, IEC 国際規格の意味からすれば、AUTOSARがOSEKとの違いを記述しないといけないが、そのまま利用する部分は記述しなくてもいいという習慣にもとづいて記載していない。
団体としてのAUTOSARがISOにリエゾン関係になっていなかった。そのため、リエゾン団体で可能な参照、内容の引用もしてないのかもしれない。

国際規格との違いを説明することが、WTO/TBT協定に基づく技術的仕様記述であるが、細かい表現方法に規制はないためか、わかりにくい状態なのかもしれない。

OSEKが規定している、OSの機能を利用しないCategory1の割り込みと、OSの機能を利用するCategory2の割り込みは、AUTOSARでも引き継いでいる。AUTOSAR TOOLでこれらの割り込みの設定の機能を入れるかどうかは設計によるかもしれない。

AUTOSARで割り込みによる設計についての記述がないのは、OSEKで規定しているから省略しているだけであると理解するとよい。

OSEK/VDX Operating System Specification 2.2.3 https://www.irisa.fr/alf/downloads/puaut/TPNXT/images/os223.pdf
p.25

ISR category 1
The ISR does not use an operating system service8. After the ISR is finished, processing continues exactly at the instruction where the interrupt has occurred, i.e. the interrupt has no influence on task management. ISRs of this category have the least overhead.
ISR category 2
The OSEK operating system provides an ISR-frame to prepare a run-time environment for a dedicated user routine. During system generation the user routine is assigned to the interrupt.
Within interrupt service routines, usage of OSEK operating system services is restricted according to Figure 12-1.
isr.png

仮訳
「割込み処理(ISR)分類1
割込み処理(ISR)はOSサービスを使用しません。 割り込み処理(ISR)が終了した後、処理は割り込みが発生した命令に戻ります。割り込みはタスク管理に影響を与えません。 この分類の割り込み処理(ISR)は、復帰時間(overhead)が最小です。
割り込み処理(ISR)分類2
OSEK OSは、専用ユーザルーチン用の実行環境を準備するための割込み処理(ISR)機能を提供します。 システム生成中に、ユーザールーチンを割込みに割り当てます。
割込み処理内では、OSEK OSサービス使用は図12-1に制限します。

AUTOSAR開発環境を豊かにするには、例えば、SimulinkにAUTOSARのボタンがあって、それを押せば、コード生成とシミュレーションをしてくれるような感じにすると楽かもしれません。Classic Platform, Adaptive Platformおよび、どのコアにどちらを配置するかのボタンも一緒にあるといいなって思うんです。

AUTOSARとMATLAB/Simulinkとの連携は、2006年に、次の文書発行時から少なくとも、3.0発行の2008年まで続いていたことは確認できます。

しかし、なかなか便利にならないという声を聞くことがあります。
理由を考えるよりも、どうしたら便利にできるかを考えてみましょう。

Applying Simulink to AUTOSAR

Document Number: 185

reference

[1] Specification of the Virtual Functional Bus AUTOSAR_VirtualFunctionBus.pdf
[2] Specification of RTE Software AUTOSAR_SWS_RTE.pdf
[3] Specification of Interaction with Behavioral Models AUTOSAR_InteractionBehavioralModels.pdf
[3] Specification of Interaction with Behavioral Models AUTOSAR_InteractionBehavioralModels.pdf
[4] Metamodel AUTOSAR_Metamodel.eap
[5] Software Component Template AUTOSAR_SoftwareComponentTemplate.pdf
[6] Glossary AUTOSAR_Glossary.pdf
[7] AUTOSAR Services AUTOSAR_Services.pdf
[8] Requirements on Interoperability of Authoring Tools AUTOSAR_RS_InteroperabilityAuthoringTools.pdf
[9] Methodology AUTOSAR_Methodology.pdf
[10] Specification of System Template AUTOSAR_SystemTemplate.pdf

ここでの課題は、気負いすぎているかもしれません。
形式的な定義を決めていっているような気もします。
モデル設計の専門家の方の意見をちゃんと聞いてみようと思います。
ISOのOSIが失敗を繰り返さないか、セキュリティのために必要な機能は利用すればいいのだろうし。

Virtual Function BUsは、Ethernet/TCP/IPのように、その仕組みの中に入っている場合と、
CANのようにIDによる通信をしていた規約との共通部分を選び、Ethernet/TCP/IPと同じような仕組みを
CANに提供すればいいだけではなかったのでしょうか。

AUTOSAR MCAL Support in MATLAB and Simulink

答えの一部 仮訳

一部のユーザにとっては、この種の方法で十分です。モデルベースデザインを使用してAUTOSAR準拠のアプリケーション(アプリレイヤ)を作成でき、NXPハードウェアでアプリケーションをテストするためだけにPILを使用できます。
MATLAB / Simulinkの完全なAUTOSARソリューションに欠けているリンクは次のとおりです。ECUおよびMCUレイヤーをサポートする方法は?
あなたの質問について:
AUTOSAR MCALドライバからSimulinkモデル(ブロック)を作成することを目的としています。
これは可能ですか?
今のところ、これは答えを作成する前にもっとよく理解したいことです。実際、私は同じ答えを探しています。
理論的には、それは少なくとも静的な構成として可能であるはずです。
私が知っていることは次のとおりです。NXPMCALドライバ(マイクロコントローラ抽象化レイヤ)はc / h /ソースとして出荷します。MCALドライバの適切な構造を生成するために使用するEB Tresos Studion構成ファイルも必要です。 MCALドライバのすべてのヘッダファイルを取得する前にこの手順を実行する必要があるため、これはSimulinkブロックを作成する際の重要な壁です。 MCALドライバの静的構成を想定すると、それが突然可能になります。
質問:それは許容できる解決策ですか? (Tresosで事前に構築された静的ドライバ構成)
SWC(AUTOSARソフトウェアコンポーネント)はSWC ARXMLを使用してインポートできることは知っていますが、BSWMDのみを使用してMCALドライバをSimulinkにインポートできるかどうかわかりません。
私の理解では、MATLABはアプリケーション層にのみ適用可能な2つの開発フローに対応しています。
既存のARXMLをSimulinkにインポートして、AUTOSARオーサリングツールで作成されたソフトウェアコンポーネントに基づいてSimulinkモデルを作成できるトップダウン手法。
Simulinkモデルから開始し、AUTOSAR環境で使用するARXML記述とCコードをエクスポートするボトムアップア手法。
ただし、どちらの方法もアプリケーション層にのみ適用できます。私が間違っている ?
BSWMDがどのように機能しているか、正確な内容はわかりません。もっと知りたいです。これは、MathworksAUTOSARチームによる良い質問かもしれません。 BSWMDの使用をどのように計画しているかについて、より多くの洞察を共有できますか?
これが不可能な場合、通常のS-function / MEXファイルと同じように少なくともMCALドライバ(C / Hファイル)をSimulinkにインポートすることは可能ですか?はいの場合、このワークフローの実現を手伝っていただけませんか。
私のビジョンは、c / hファイルをMCAL外部配信パッケージのリソースとして(それらに触れないでください)、MATLABTLCを使用して各ドライバの関数呼び出しを挿入することです。
それでも、仕事の流れの大きなギャップは、私がまだ完全には理解していませんが、SimulinkユーザがECU /サービスレイヤを介して(アプリレイヤ)からMCALドライバにアプリケーションをリンクする方法です。それは私がまだ所有していない不足している情報ですか?
通常のAUTOSAR開発経験があるユーザがここにいる場合は、彼らがどのようにそれを行ったかを聞いてみたいと思います。私が知っているのは、アプリケーションとMCALの間のリンクはRTEを介して行われるべきだということだけです。これがSimulink環境でどのように行われるかは私にはわかりません。
新しい洞察と質問を楽しみにしています

SimulinkモデルによるAUTOSAR適用10箇条

10のうち、大事だと思う事項を半分に絞ろうとすると、わからないことがいくつかある。

1.既存のSimulinkモデルをAUTOSARに移行する戦略を決定する

移行するという必要がある前提に立っているのが疑問。
AUTOSARは、自動化の道具だから、現在のモデルそのものをAUTOSARで動く不足部分を自動生成すればいいだけではないのだろうか。また、その際に、必要がないBSWは無理に使う必要はないことを明確にするのが、戦略の重要な点かもしれない。白紙から始めるのは悪いことではないが、鉄からアルミとか、モータからエンジンとか、材料とか部品が大幅に変更になるときだけに有効かもしれない。

「1 つのモデルをAUTOSARと非AUTOSARで共有」という戦略はとても大事なことです。AUTOSARであろうがなかろうが、モデルを変えるのであれば、それはモデルではないかなって思うんです。

2. AUTOSARワークフローを1つに絞る

必ずしも一つに絞る必要はないかもしれない。例えば、CANはボトムアップ、Ethernetはトップダウンというように構成要素によって、複数の方法を混在させた方がいいことがあるかもしれません。

具体例ができたら報告します。

3 データ管理戦略を選択する

とても大事なことですね。

例えば、Github/Gitlab/BitbucketとDockerを組み合わせて、データを監理すれば、無駄はデータ・ソフトウェアの配布、編集の作業が省力化できるかもしれませんね。

4 モデリング標準を確立する

車、部品を設計するモデルと、設計したモデルを制御するためのモデルとを分けて考えるとよいでしょう。

例えば、電池で利用する材料を何を使うとどうなるかを設計するモデルをMatlab/simlinkで作るかもしれません。
あるいは、別のソフトウェアで作成したモデルを、ソフトウェアを生成するために、Matlab/Simlinkに変換するかもしれません。いずれの場合であっても、設計モデルが違えば、制御モデルも違うかもしれません。

設計モデルのモデリング標準と、設計モデルのモデリング標準は、どうすれば確立できるかまだうまく説明できていません。ごめんなさい。

5 シミュレーションしてからコード生成する

え、それしない人いるの?
驚き。試験してからコード生成が、Test Firstじゃないの?(嘘)

6 量産コード生成機能を使用する

量産コードで試験しないと、順番と時間合わせ(timing)が妥当かどうか確かめられない。

7. Simulink を使用してレガシーコードをAUTOSARに移行する

移行するのは、道具で自動生成で行うとよい。またはSimulinkが生成したコードを直接AUTOSARの道具類で自動生成できればいいかも。

8.徹底的に自動化する

基本姿勢ですね。

9. ISO 26262の導入は事前に計画する

ISO 26262に限らず、国際規格はWTO/TBT協定に基づき、仕様の差が非関税障壁にならないように、国際規格との差を表現するための道具で、「導入する」という言葉で表現する意味がわかっていない。

10. 将来を見据えた移行計画

Classic PlatformとAdaptive Platformで共通に使えるモデルとそのための一揃いの道具をどう整備していくかは、将来を見据えた上で行うとよい。

  1. 電池の材料をどうするかで、電圧を変えるかもしれない。
  2. 電動機(motor)の設計により、数を変えるかもしれない。1つ、2つ、4つ、、、。

並べ直しと表現調整

1. 徹底的に自動化する

2. 量産コード生成機能を使用する

量産コードでなければ、どういうシミュレーションをどれくらい実施するかの範囲が変わるかもしれない。

3. シミュレーションしてからコード生成する

4. データ管理戦略を決める

5. 将来を見据えた計画

5.1 モデリング標準を確立する

5.2 AUTOSARワークフローを絞る

5.3 既存のSimulinkモデルをAUTOSARで利用する戦略を決定する

5.4 Simulink を使用してレガシーコードをAUTOSARで利用する

5.5 ISO 26262の対応は順次計画

CONTROL ALGORITHM MODELING GUIDELINES USING MATLAB®, Simulink®, and Stateflow®

モデルを書く時の具体的な方法については、日本によい標準があります。

お断り:制御理論研究室を卒業していますが、Matlab発売前に、制御で使う連立微分方程式の解法の数値計算プログラムを組んでいました。MATLAB等のセミナ助手などをしたことがありあったかもしれませんが、実用的なプロジェクトで設計をしたことがありません。大学と企業のモータ制御で、MATLABで設計している研究にはアドバイザとして参加していたが、自分では一行も書いていないため、全くとんちんかんなことを書くかもしれません。

CONTROL ALGORITHM MODELING GUIDELINES USING MATLAB®, Simulink®, and Stateflow® Version 6.0(日本語版)
Japan MBD Automotive Advisory Board (JMAAB)
2020 年 11 月 12 日
http://jmaab.mathworks.jp/deliverables/Style_Guideline_ver6.pdf

AUTOSARに関する記述には、少し記述が不足しているかもしれません。
Simulinkで生成したコードを割り込み処理に割り振ったり、
Category 1の割り恋処理では行わない部分をCategory 2の割り込みを呼んだり、
そのCategory 2の割り込みからタスクを呼び出すあたりも自動生成すればいいのだろう。
現在、どのツールが対応しているかは未確認。

10.3. AUTOSAR の概念
...
AUTOSAR ソフトウェアプラットフォームの概念

  • 高負荷・低速・定期的な処理は、アプリケーションレイヤ
  • 高速あるいは不定期なドライバー類は、ベーシックソフトウェア
    ...
    ベーシックソフトウェア領域は、なるべく簡単な計算とし、各アプリケーション機能に対して共通の計算機能を配置する事が AUTOSAR のコンセプトです。
    ...

課題1

  • 高負荷・低速・定期的な処理は、アプリケーションレイヤ
  • 高速あるいは不定期なドライバー類は、ベーシックソフトウェア

不定期なアプリケーションレイヤもあるし、定期的なドライバもある。ここですれ違っている。

例えば、
「高速・低負荷なドライバー類で、OSの機能を利用しないのはカテゴリ1割り込み
 高速な処理と、CAT1割り込みから呼ばれて、OSの機能を利用するのはカテゴリ2割込み
 高負荷・低速な処理は、アプリケーションレイヤ
 高速なドライバー類、RTEを生成したくない処理は、ベーシックソフトウェア」
ではどうだろうか。

課題2

ベーシックソフトウェア領域は、なるべく簡単な計算とし、各アプリケーション機能に対して共通の計算機能を配置する事が AUTOSAR のコンセプトです。

複雑な計算を行うか、エンジンベンチ、モータベンチで測定した結果に基づいて表引きをするかどうかは、計算時間が間に合うかどうかで決めることではないのだろうか。ベーシックソフトウェアかアプリケーションレイヤであるかは関係ないかもしれない。必要があれば、論理回路で設計するかもしれない。MCU,ECUの回路での処理はベーシックソフトウェアでもアプリケーションレイヤでもない。

モデルで生成するのはソフトウェアだけではなく、論理回路を生成することもあるかなって思うんです。っていうか、自分が電気屋さんだし、SlideshareではVerilogHDLの資料の方がViewsも多く、世の中に需要があるのは、いかに速く、複雑なこともひょっとしたらできるかもしれないICを作ることかなっとも思ったりします。
100万個という単位は、論理回路の設計にはちょうどいい大きさだったり。

また、論理回路を設計している時間の間に、すべてのソフトウェアを構成して、モデル段階でシミュレーションを一度完成しておくことが、SILS、HILSなどの段階があるんじゃなかったかなって。

自動車ソフトウェアの標準仕様 “AUTOSAR”の評価

堀 川 健 一*・目 崎 元 太・渡 辺 章 代 加 櫓 武・松 本 達 治
https://sei.co.jp/technology/tr/bn175/pdf/sei10597.pdf

割り込みについての記述がなく、AUTOSAR仕様で割り込みで処理した場合の比較がない。
もし、アプリを割り込みに割り当てれば、RTEの生成の必要はない。
何をタスクに割り当て、何を割り込みに割り当てたのかの記述がない。
割り込み設定の詳細がないと、結果の意味がわからないかもしれない。

つまり、タスク割り当てによるAUTOSARのRTEの冗長分と、Model baseの自動生成の非効率分の両方を足し合わせたものを示されても、納得感はない。

いかがでしょうか。

Youtube

AUTOSAR for Production with Model-Based Design

Execution Order for AUTOSAR Runnables in Simulink

AUTOSAR ECU Software Simulation in Simulink

Model AUTOSAR ECU Power-Up and Power-Down Behavior in Simulink

Simulation of AUTOSAR Software Components

AUTOSAR Composition Authoring with Simulink

AUTOSAR Compositions in Simulink: Top Down Workflow

From Simulink to AUTOSAR Production Code

What Is AUTOSAR Blockset?

Designing Software Architectures Using AUTOSAR Blockset

Modeling and Simulating Basic Software with AUTOSAR Blockset

AUTOSAR Support from Simulink and Embedded Coder

Autosar Complaint Code Generation from Embedded Coder

Scheduling for AUTOSAR Architecture Models in Simulink

AUTOSAR Client Server SIL Simulation

How to Generate an AUTOSAR Lookup Table Using Lookup Table Optimization

Introducing AUTOSAR Blockset for Classic and Adaptive Applications - Coder Summit 2019

関連モデル

自動車には、主動力以外に、大小さまざまな種類の電動機を利用する可能性がある。
できるだけ幅広い電動機の設計、論理回路の設計およびソフトウェアのモデルを試すとよいかもしれない。

ユーザー独自のモーター駆動システムの作成
https://jp.mathworks.com/help/physmod/sps/powersys/ug/building-your-own-drive.html

可変速モーター制御のシミュレーション
https://jp.mathworks.com/help/physmod/sps/powersys/ug/simulating-variable-speed-motor-control.html

PWM 制御の DC モーター
https://jp.mathworks.com/help/physmod/sps/ug/pwm-controlled-dc-motor.html

高速演算を可能とするFPGAシミュレータと HDL Coder活用事例
トヨタテクニカルディベロップメント株式会社 第1計測制御事業部 シミュレーション要素開発室 高木 俊一
MathWorks Japan アプリケーションエンジニアリング部 松本 充史
https://www.mathworks.com/content/dam/mathworks/mathworks-dot-com/solutions/automotive/files/jp-expo-2015/fpga-simulator-and-hdl-coder.pdf

FPGA/マルチコアCPUを活用した プラントモデル並列化技術について
2017.10.31 トヨタテクニカルディベロップメント(株) シミュレーション事業部 川口 晃
https://www.matlabexpo.com/content/dam/mathworks/mathworks-dot-com/images/events/matlabexpo/jp/2017/g1-ttdc-plant-model-parallelization.pdf

Physical Model Hub
https://physical-model.ttsystems.com

モータHILSソリューション
https://www.aandd.co.jp/products/dsp-tech/dsp-xils/xlis-solution/xlis_motor-hils/

EV/HEV開発向け 最新HILSソリューション【dSPACE】
http://guide.jsae.or.jp/first_column/2682/

モータ設計
https://www.jmag-international.com/jp/feature/motor_design/

バッテリーのモデリング
https://jp.mathworks.com/solutions/power-electronics-control/battery-models.html

MATLAB®を用いた リチウム・イオン電池の実践研究
立命館大学 福井正博
http://www.ritsumei.ac.jp/se/re/fukuilab/top/2017/171031_MATLAB_EXPO_fukui.pdf

<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>

AUTOSAR

AUTOSARはどこから来て、どこへ行くか。, AUTOSAR(13)
https://qiita.com/kaizen_nagoya/items/b605326a1aebe79b5d85

AUTOSARが手に取るように分かるようになるには, AUTOSAR(29)
https://qiita.com/kaizen_nagoya/items/ae092ea6aef89cdc15df

AUTOSAR入門, AUTOSAR(16)
https://qiita.com/kaizen_nagoya/items/5e43b8ef0935c32ee11d

Autosarの課題
https://qiita.com/kaizen_nagoya/items/617d10b0e34143030600

AUTOSAR Q&A, AUTOSAR(30)
https://qiita.com/kaizen_nagoya/items/ba6c02b772e9617dc138

TOPPERS のAUTOSARへの貢献(更新中), AUTOSAR(15)
https://qiita.com/kaizen_nagoya/items/d363cf06e2176207b391

AUTOSAR一覧
https://qiita.com/kaizen_nagoya/items/89c07961b59a8754c869

参考資料(reference)

第11回 TOPPERS活用アイデア・アプリケーション開発コンテスト

ひょっとしたら、この部門への投稿の表題を変えて、コンテストに応募するのも手かも。

TOPPERS のAUTOSARへの貢献(更新中), AUTOSAR(15)

AUTOSARとSimulink: Adaptive Platform, Classic Platformとマルチコア対応を含めた共通化を目指して

TOPPERS の AUTOSAR への貢献 II (改定中)

人生で影響を受けた本100冊。Youtube(3)

今まで書いてよかった技術書を紹介しよう!
https://qiita.com/kaizen_nagoya/items/d31b7c158541d345a7ef

「未経験者が認識してなさそうなTIPS」で同意したいこと
https://qiita.com/kaizen_nagoya/items/9759de698df880eb1f77

新人

マネージャ・リーダーの私にとって有益な知見が得られた書籍
https://qiita.com/kazuo_reve/items/6976029e72763ea73245#_reference-df08fb0b4ee7eedaec9d

新人の方によく展開している有益な情報
https://qiita.com/kazuo_reve/items/d1a3f0ee48e24bba38f1

新人(学生)を指導するよりも新人(学生)に指導してもらった方が効率的。仮説・検証(139)
https://qiita.com/kaizen_nagoya/items/db993b1536055029f7c8

文書履歴

ver. 0.01 初稿 20210814 午後5時
ver. 0.02 Youtube追記 20210814 午後6時
ver. 0.03 資料追記 20210814 午後10時
ver. 0.04 割り込み処理追記 20210815 正午
ver. 0.05 Simulink for AUTOSAR Adaptive 追記 20220612

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4