Quartus II ハンドブック Volume 5、セクションIV. マルチプロセッサの調整

Similar documents
Nios® II HAL API を使用したソフトウェア・サンプル集 「Modular Scatter-Gather DMA Core」

Nios II ソフトウェア開発ハンドブック Version 1.2 第6章. 例外処理 ver.1.2

Nios II ハードウェア・チュートリアル

プロセッサ・アーキテクチャ

Nios II ソフトウェア開発ハンドブック Version 1.2 第5章. HAL用デバイス・ドライバの開発 ver.1.1

Nios II 簡易チュートリアル

Nios IIプロセッサ・リファレンス・ハンドブック、セクション I. Nios IIプロセッサ Ver. 1.2

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

AccessflÌfl—−ÇŠš1

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *

第5回お試しアカウント付き並列プログラミング講習会

Nios II カスタム・インストラクションによるキャスト(型変換)の高速化

Nios II IDE によるソフトウェア開発 - セクション 1

Avalon Memory-Mappedブリッジ

44 4 I (1) ( ) (10 15 ) ( 17 ) ( 3 1 ) (2)


生活設計レジメ

Nios II Flash Programmer ユーザ・ガイド

I II III 28 29

Nios II - Vectored Interrupt Controller の実装

入門ガイド

ito.dvi

2

FPGA 外部のメモリをアバロン・MM・インタフェースへ接続する方法

:30 12:00 I. I VI II. III. IV. a d V. VI

:30 12:00 I. I VI II. III. IV. a d V. VI

浦安ライオンズクラブ81獅子吼.indd

<348C8E8D862E696E6464>

C による数値計算法入門 ( 第 2 版 ) 新装版 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 新装版 1 刷発行時のものです.

WinHPC ppt

07-二村幸孝・出口大輔.indd

double float

共栄火災の現状2008

C言語によるアルゴリズムとデータ構造

これわかWord2010_第1部_ indd

パワポカバー入稿用.indd

これでわかるAccess2010

SOPC Builder ペリフェラル 簡易ユーザ・ガイド - PIO (Parallel I/O)

lexex.dvi

C C UNIX C ( ) 4 1 HTML 1

FPGAメモリおよび定数のインシステム・アップデート

untitled

„”Łñ5„”“ƒ



.\..


n_bead 4_14_NotOut


21

40年史表紙out.ai



2



No W A K A Y A M A 1 2 Contents


n_bead 4_14_NotOut

No

PDFさきたま49号01.indd

<93FA967B8CEA2E706466>

関西テレビ放送番組制作ガイドライン

newmodelinformation_book_sample.pdf


さきたま57号p01.indd

2 No

contents

2 No


1 CONTENTS P.6 P.13 P.15 P.16 P.22 P.30 P.37 P.41 P.42 P.43 P.44 P.45 P.46 P.2 P.2 P.3 P.2 P.3 P.2 P.6 P.5 P.4 P.3 P.3 P.3 P.3

2 No

PJta_h1h4_0329.ai


yama291_02_15ck.indd

子ども・子育て支援新制度ハンドブック(平成27年7月改訂版)

表紙.indd

ご利用ガイドブック(お便りフォトサービス編)スマートフォン版

−ÈŁÛ05/‚æ4‘Í

顧客満足は利益の源泉

トップ営業マンに学ぶ営業テクニック

.X../...O..

P01.pdf

<93AF918B89EF89EF95F12091E631318D862E706466>

24_5章_01f

untitled

Contents

untitled

旬をたのしむ京野菜

13_08_JA.indd

< F41348D818EC58C9F92E88E518D6C8F912E6169>

お客様の心をつかむ営業活動のセオリーと実践法

+303_H1_4.ai

untitled


育児・介護ガイド(表紙).eps

かたがみ


untitled

untitled

Transcription:

IV. SOPC Builder Nios II 9 Avalon Mutex 10 Avalon Mailbox 9 10 / 9 v5.1.0 2005 5 v5.0.0 Nios II 2004 12 v1.0 10 v5.1.0 2005 5 v5.0.0 Altera Corporation IV 1

Quartus II Volume 5 IV 2 Altera Corporation

9. Avalon Mutex NII51020-5.1.0 Avalon Mutex Mutex Mutex Mutex Mutex Mutex Mutex Mutex Nios II Avalon Mutex Nios II Mutex SOPC Builder SOPC Builder Mutex 2 32 Avalon 9 1 9 1. Mutex R/W 31 16 15 1 0 0 mutex RW OWNER VALUE 1 reset RW RESET Altera Corporation 9 1

Mutex 1 Mutex ID VALUE 0x0000 Mutex Mutex mutex Avalon mutex mutex mutex mutex VALUE mutex OWNER OWNER ID OWNER VALUE Mutex OWNER reset RESET High 1 SOPC Builder Mutex SOPC Builder Nios II HALHardware Abstraction Layer Mutex SOPC Builder Initial Value VALUE Initial Value Initial Owner Initial Owner OWNER Initial Owner Mutex 9 2 Altera Corporation Quartus II Volume 5

Avalon Mutex Mutex Nios II Mutex Mutex HAL API ANSI C Mutex Nios II cpuid mutex OWNER Mutex Mutex altera_avalon_mutex_regs.h altera_avalon_mutex.h Mutex altera_avalon_mutex.c Mutex Mutex Mutex altera_avalon_mutex.h Mutex alt_mutex_dev 9 2 Mutex 9 2. Mutex ( / ) altera_avalon_mutex_open() altera_avalon_mutex_trylock() altera_avalon_mutex_lock() altera_avalon_mutex_unlock() MutexMutex Mutex Mutex Mutex Mutex Mutex Altera Corporation 9 3 Quartus II Volume 5

9 2. Mutex ( / ) altera_avalon_mutex_is_mine() altera_avalon_mutex_first_lock() CPU Mutex Mutex Mutex Mutex 9 5 Mutex API Mutex Mutex Mutex #include <altera_avalon_mutex.h> /* Mutex */ alt_mutex_dev* mutex = altera_avalon_mutex_open( /dev/mutex ); /* Mutex 1 */ altera_avalon_mutex_lock( mutex, 1 ); /* * */ /* */ altera_avalon_mutex_unlock( mutex ); 9 4 Altera Corporation Quartus II Volume 5

Avalon Mutex Mutex API Mutex API Altera Corporation 9 5 Quartus II Volume 5

altera_avalon_mutex_is_mine() altera_avalon_mutex_is_mine() : : ISR : : : : : int altera_avalon_mutex_is_mine(alt_mutex_dev* dev) <altera_avalon_mutex.h> dev Mutex CPU Mutex altera_avalon_mutex_is_mine() CPUMutex 9 6 Altera Corporation Quartus II Volume 5

altera_avalon_mutex_first_lock() altera_avalon_mutex_first_lock() : : ISR : : : : : int altera_avalon_mutex_first_lock(alt_mutex_dev* dev) <altera_avalon_mutex.h> dev Mutex Mutex 1 0 altera_avalon_mutex_first_lock() Mutex Altera Corporation 9 7 Quartus II Volume 5

altera_avalon_mutex_lock() altera_avalon_mutex_lock() : : ISR : : : void altera_avalon_mutex_lock(alt_mutex_dev* dev, alt_u32 value) : : <altera_avalon_mutex.h> dev Mutex value Mutex altera_avalon_mutex_lock()mutexmutex value 9 8 Altera Corporation Quartus II Volume 5

altera_avalon_mutex_open() altera_avalon_mutex_open() : : ISR : : : : : alt_mutex_dev* alt_hardware_mutex_open(const char* name) <altera_avalon_mutex.h> name Mutex Mutex Mutex NULL altera_avalon_mutex_open()mutex Altera Corporation 9 9 Quartus II Volume 5

altera_avalon_mutex_trylock() altera_avalon_mutex_trylock() : : ISR : : : : : int altera_avalon_mutex_trylock(alt_mutex_dev* dev, alt_u32 value) <altera_avalon_mutex.h> dev Mutex value Mutex Mutex Mutex altera_avalon_mutex_trylock() Mutex 1 9 10 Altera Corporation Quartus II Volume 5

altera_avalon_mutex_unlock() altera_avalon_mutex_unlock() : : ISR : : void altera_avalon_mutex_unlock(alt_mutex_dev* dev) <altera_avalon_mutex.h> : dev Mutex : : altera_avalon_mutex_unlock()mutex Mutex Mutex Altera Corporation 9 11 Quartus II Volume 5

altera_avalon_mutex_unlock() 9 12 Altera Corporation Quartus II Volume 5

10. Avalon Mailbox NII53001-5.1.0 Avalon Mailbox Mailbox 1 Mailbox Mutex Mailbox Mailbox Nios II Avalon Nios II Mailbox SOPC Builder SOPC Builder Mailbox 4 32 Avalon 10 1 10 1. Mutex R/W 31 16 15 1 0 0 mutex0 RW OWNER VALUE 1 reset0 RW RESET 2 mutex1 RW OWNER VALUE 3 reset1 RW RESET Altera Corporation 10 1

Mailbox 2 mutex 1 1 Mailbox Mutex Mailbox Mailbox 10 3 Mutex Avalon Mutex SOPC Builder Mailbox SOPC Builder Nios II HAL (Hardware Abstraction Layer) SOPC Builder Mailbox 1. Mailbox 2. SOPC Builder System Contents Mailbox RAM Mailbox Mailbox 3. SOPC Builder System Contents Mailbox Mailbox 4. SOPC Builder System Contents a. Mailbox b. Mailbox 10 2 Altera Corporation Quartus II Volume 5

Avalon Mailbox 5. Mailbox More <mailbox name> Settings Mailbox SOPC Builder GUI More <mailbox name> Settings Memory module - Mailbox Memory module 10 2 4 Shared Mailbox Memory Offset - Mailbox Mailbox Size (bytes) - Mailbox Nios II Mailbox 8 1 Mailbox Mailbox Size (bytes) 12 Mailbox Nios II Mailbox Mailbox Mailbox 1 Mailbox Mailbox 32 Mailbox FIFO Mailbox 1 Mailbox 1 Mailbox Altera Corporation 10 3 Quartus II Volume 5

Mailbox Mailbox Mailbox Mailbox altera_avalon_mailbox_regs.h altera_avalon_mailbox.h Mailbox altera_avalon_mailbox.c Mailbox Mailbox Mailbox altera_avalon_mailbox.h Mailbox alt_mailbox_dev 10 2 Mailbox 10 6 Mailbox API 10 2. Mailbox API altera_avalon_mailbox_close() altera_avalon_mailbox_get() altera_avalon_mailbox_open() altera_avalon_mailbox_pend() altera_avalon_mailbox_post() Mailbox Mailbox Mailbox Mailbox Mailbox 10 4 Altera Corporation Quartus II Volume 5

Avalon Mailbox Mailbox Mailbox Mailbox 2 2 Mailbox Mailbox Mailbox #include <stdio.h> #include "altera_avalon_mailbox.h" int main() alt_u32 message = 0; alt_mailbox_dev* send_dev, recv_dev; /* 2 Mailbox */ send_dev = altera_avalon_mailbox_open("/dev/mailbox_0"); recv_dev = altera_avalon_mailbox_open("/dev/mailbox_1"); while(1) { /* */ altera_avalon_mailbox_post(send_dev, message); } /* */ message = altera_avalon_mailbox_pend(recv_dev); return 0; } Altera Corporation 10 5 Quartus II Volume 5

Mailbox API Mailbox API Mailbox (API) 10 6 Altera Corporation Quartus II Volume 5

altera_avalon_mailbox_close() altera_avalon_mailbox_close() void altera_avalon_mailbox_close (alt_mailbox_dev* dev); ISR <altera_avalon_mailbox.h> dev Mailbox altera_avalon_mailbox_close() Mailbox Altera Corporation 10 7 Quartus II Volume 5

altera_avalon_mailbox_get() altera_avalon_mailbox_get() ISR alt_u32 altera_avalon_mailbox_get (alt_mailbox_dev* dev, int* err); <altera_avalon_mailbox.h> dev Mailbox err Mailbox 0 err 0 EWOULDBLOCK altera_avalon_mutex_get() 10 8 Altera Corporation Quartus II Volume 5

altera_avalon_mailbox_open() altera_avalon_mailbox_open() ISR alt_mailbox_dev* altera_avalon_mailbox_open (const char* name); <altera_avalon_mailbox.h> name Mailbox Mailbox Mailbox NULL altera_avalon_mailbox_open() Mailbox Altera Corporation 10 9 Quartus II Volume 5

altera_avalon_mailbox_pend() altera_avalon_mailbox_pend() ISR alt_u32 altera_avalon_mailbox_pend (alt_mailbox_dev* dev); <altera_avalon_mailbox.h> dev Mailbox altera_avalon_mailbox_pend() Mailbox 10 10 Altera Corporation Quartus II Volume 5

altera_avalon_mailbox_post() altera_avalon_mailbox_post() ISR int altera_avalon_mailbox_post (alt_mailbox_dev* dev, alt_u32 msg); <altera_avalon_mailbox.h> dev Mailbox msg 0 Mailbox EWOULDBLOCK altera_avalon_mailbox_post() Mailbox Altera Corporation 10 11 Quartus II Volume 5

altera_avalon_mailbox_post() 10 12 Altera Corporation Quartus II Volume 5