Submit Search
Upload
第二回東海北陸ロボコン交流会 川上プレゼン
•
Download as PPTX, PDF
•
0 likes
•
122 views
東
東海北陸ロボコン 交流会
Follow
第二回東海北陸ロボコン交流会 川上プレゼン
Read less
Read more
Technology
Report
Share
Report
Share
1 of 21
Download now
Recommended
Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20
Kiyoshi Ogawa
Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30
Kiyoshi Ogawa
Who enjoy a coding standard?
Who enjoy a coding standard?
Kiyoshi Ogawa
C++プログラマの為のセキュリティ入門
C++プログラマの為のセキュリティ入門
道化師 堂華
VC++プロジェクト向け難読化ツールの開発
VC++プロジェクト向け難読化ツールの開発
Shuzo Kashihara
Try new transport protocol SRT
Try new transport protocol SRT
Tetsuyuki Kobayashi
C++による数値解析の並列化手法
C++による数値解析の並列化手法
dc1394
おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能
Kenta IDA
Recommended
Who enjoy a coding standard? ver. 0.20
Who enjoy a coding standard? ver. 0.20
Kiyoshi Ogawa
Who enjoy a coding standard? ver. 0.30
Who enjoy a coding standard? ver. 0.30
Kiyoshi Ogawa
Who enjoy a coding standard?
Who enjoy a coding standard?
Kiyoshi Ogawa
C++プログラマの為のセキュリティ入門
C++プログラマの為のセキュリティ入門
道化師 堂華
VC++プロジェクト向け難読化ツールの開発
VC++プロジェクト向け難読化ツールの開発
Shuzo Kashihara
Try new transport protocol SRT
Try new transport protocol SRT
Tetsuyuki Kobayashi
C++による数値解析の並列化手法
C++による数値解析の並列化手法
dc1394
おそらく明日から役にたつC++11新機能
おそらく明日から役にたつC++11新機能
Kenta IDA
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
Kinuko Yasuda
C++0xの概要(デブサミ2010)
C++0xの概要(デブサミ2010)
Akira Takahashi
C++ AMPを使ってみよう
C++ AMPを使ってみよう
Osamu Masutani
Boost勉強会 #10 ディスカッションまとめ
Boost勉強会 #10 ディスカッションまとめ
Sigureya
第10回FA設備技術勉強会 C言語再学習
第10回FA設備技術勉強会 C言語再学習
insertpenis
Gstreamer Basics
Gstreamer Basics
Seiji Hiraki
Runtime c++editing
Runtime c++editing
Seiya Ishibashi
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
ryos36
ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
Monomeeting 20081022
Monomeeting 20081022
Atsushi Eno
Implement tech
Implement tech
HCPC: 北海道大学競技プログラミングサークル
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
富山高専射水キャンパス
富山高専射水キャンパス
東海北陸ロボコン 交流会
mbedのすゝめ(追加バージョン)
mbedのすゝめ(追加バージョン)
東海北陸ロボコン 交流会
岐阜Bノブちゃんズ
岐阜Bノブちゃんズ
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 豊田高専プレゼン
第二回東海北陸ロボコン交流会 豊田高専プレゼン
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 鈴鹿高専プレゼン
第二回東海北陸ロボコン交流会 鈴鹿高専プレゼン
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 井木プレゼン
第二回東海北陸ロボコン交流会 井木プレゼン
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 関口プレゼン
第二回東海北陸ロボコン交流会 関口プレゼン
東海北陸ロボコン 交流会
鈴鹿高専ロボコン 部活紹介と技術紹介
鈴鹿高専ロボコン 部活紹介と技術紹介
東海北陸ロボコン 交流会
沼津高専ロボコン部 部活動紹介
沼津高専ロボコン部 部活動紹介
東海北陸ロボコン 交流会
富山高専射水キャンパス ロボット紹介
富山高専射水キャンパス ロボット紹介
東海北陸ロボコン 交流会
More Related Content
Similar to 第二回東海北陸ロボコン交流会 川上プレゼン
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
Kinuko Yasuda
C++0xの概要(デブサミ2010)
C++0xの概要(デブサミ2010)
Akira Takahashi
C++ AMPを使ってみよう
C++ AMPを使ってみよう
Osamu Masutani
Boost勉強会 #10 ディスカッションまとめ
Boost勉強会 #10 ディスカッションまとめ
Sigureya
第10回FA設備技術勉強会 C言語再学習
第10回FA設備技術勉強会 C言語再学習
insertpenis
Gstreamer Basics
Gstreamer Basics
Seiji Hiraki
Runtime c++editing
Runtime c++editing
Seiya Ishibashi
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
ryos36
ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
openrtm
Monomeeting 20081022
Monomeeting 20081022
Atsushi Eno
Implement tech
Implement tech
HCPC: 北海道大学競技プログラミングサークル
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
Yoshiki Shibukawa
Similar to 第二回東海北陸ロボコン交流会 川上プレゼン
(12)
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
C++0xの概要(デブサミ2010)
C++0xの概要(デブサミ2010)
C++ AMPを使ってみよう
C++ AMPを使ってみよう
Boost勉強会 #10 ディスカッションまとめ
Boost勉強会 #10 ディスカッションまとめ
第10回FA設備技術勉強会 C言語再学習
第10回FA設備技術勉強会 C言語再学習
Gstreamer Basics
Gstreamer Basics
Runtime c++editing
Runtime c++editing
Stellaris を使った組み込みアプリ開発ガイド
Stellaris を使った組み込みアプリ開発ガイド
ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
Monomeeting 20081022
Monomeeting 20081022
Implement tech
Implement tech
Golang tokyo #7 qtpm
Golang tokyo #7 qtpm
More from 東海北陸ロボコン 交流会
富山高専射水キャンパス
富山高専射水キャンパス
東海北陸ロボコン 交流会
mbedのすゝめ(追加バージョン)
mbedのすゝめ(追加バージョン)
東海北陸ロボコン 交流会
岐阜Bノブちゃんズ
岐阜Bノブちゃんズ
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 豊田高専プレゼン
第二回東海北陸ロボコン交流会 豊田高専プレゼン
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 鈴鹿高専プレゼン
第二回東海北陸ロボコン交流会 鈴鹿高専プレゼン
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 井木プレゼン
第二回東海北陸ロボコン交流会 井木プレゼン
東海北陸ロボコン 交流会
第二回東海北陸ロボコン交流会 関口プレゼン
第二回東海北陸ロボコン交流会 関口プレゼン
東海北陸ロボコン 交流会
鈴鹿高専ロボコン 部活紹介と技術紹介
鈴鹿高専ロボコン 部活紹介と技術紹介
東海北陸ロボコン 交流会
沼津高専ロボコン部 部活動紹介
沼津高専ロボコン部 部活動紹介
東海北陸ロボコン 交流会
富山高専射水キャンパス ロボット紹介
富山高専射水キャンパス ロボット紹介
東海北陸ロボコン 交流会
岐阜高専B-ロボット紹介
岐阜高専B-ロボット紹介
東海北陸ロボコン 交流会
岐阜高専A-ロボット紹介
岐阜高専A-ロボット紹介
東海北陸ロボコン 交流会
富山本郷キャンパス-ロボット紹介
富山本郷キャンパス-ロボット紹介
東海北陸ロボコン 交流会
プログラムの高速化
プログラムの高速化
東海北陸ロボコン 交流会
MDの基本と応用について
MDの基本と応用について
東海北陸ロボコン 交流会
More from 東海北陸ロボコン 交流会
(15)
富山高専射水キャンパス
富山高専射水キャンパス
mbedのすゝめ(追加バージョン)
mbedのすゝめ(追加バージョン)
岐阜Bノブちゃんズ
岐阜Bノブちゃんズ
第二回東海北陸ロボコン交流会 豊田高専プレゼン
第二回東海北陸ロボコン交流会 豊田高専プレゼン
第二回東海北陸ロボコン交流会 鈴鹿高専プレゼン
第二回東海北陸ロボコン交流会 鈴鹿高専プレゼン
第二回東海北陸ロボコン交流会 井木プレゼン
第二回東海北陸ロボコン交流会 井木プレゼン
第二回東海北陸ロボコン交流会 関口プレゼン
第二回東海北陸ロボコン交流会 関口プレゼン
鈴鹿高専ロボコン 部活紹介と技術紹介
鈴鹿高専ロボコン 部活紹介と技術紹介
沼津高専ロボコン部 部活動紹介
沼津高専ロボコン部 部活動紹介
富山高専射水キャンパス ロボット紹介
富山高専射水キャンパス ロボット紹介
岐阜高専B-ロボット紹介
岐阜高専B-ロボット紹介
岐阜高専A-ロボット紹介
岐阜高専A-ロボット紹介
富山本郷キャンパス-ロボット紹介
富山本郷キャンパス-ロボット紹介
プログラムの高速化
プログラムの高速化
MDの基本と応用について
MDの基本と応用について
Recently uploaded
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Recently uploaded
(11)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
第二回東海北陸ロボコン交流会 川上プレゼン
1.
2.
序章(1/3)C++とは • C++はC言語を拡張した言語です。(~後方互換) • C++はいくつかのバージョンがあります。 EC++は黒歴史らしいので触れません。 年表
説明 C++98 1998 基本仕様の制定 C++03 2003 98年版の修正 C++11 2011 Auto, ラムダ式, 範囲For文,メモリー管理機能 C++14 2014 11年版の修正 C++17? 2017? 新機能の追加? 今回のテーマ
3.
序章(2/3) どんな環境で使えるか? • AVRやARM系(LPCやSTM)のマイコンで使える。 •
もちろんWINDOWSやRASPBERRY PIでも使える。 • GCC,G++(GNU)が使えれば基本的に使える。 但し PIC, PSOCでは使えない。 • PIC32 (MIPS系)ではC++03相当まで。 • PSOC(ARM系)ではC++をサポートしていないが、魔改造すれば使える!?
4.
序章 (3/3) 設定方法 LPCマイコンを例に上げると PROJECT
→ PROPERTY C++ BUILD → DIALECT LANGUAGE STANDARD で変更できる。 (ECLIPSE系なら基本的に同じ) LPCマイコンはマイナーかな?
5.
便利機能 (1/5) AUTO
文 • AUTO文は型を自動的に推測する機能です。 • 長々しい型を省略できる。 VECTOR<T>はT型の動的配列です。<VECTOR>にあるよ。 int a=10; auto b=10; //同じ意味になります。 vector <int> vec(32);//32の大きさを持つ動的配列 vector<int>::iterator c=vec.begin();//長い… auto d =vec.begin();//ね、楽でしょ。
6.
便利機能(2/5) 範囲FOR文 • 範囲FOR文を使えば簡単にコレクションを一巡できる。 •
但し逆順で探索はできない。D言語ならあるらしいけど… 構文 • FOR (型 要素名: コレクション){…} (SIZEOFで配列の個数を求めるテクニックはC言語でわりと便利です。)
7.
便利機能(3/5) ラムダ式 (1/2) •
ラムダ式 … 関数の一種、関数オブジェクト • 関数の中でも宣言できる。 • どんな型になるかはわからない。要 AUTO文 • 構文 [キャプチャ](引数)->戻り値{関数の実体} キャプチャ…第二の引数のようなもの。最初のラムダ式を作るときに渡さされる 例文(省略あり) auto random = []()->int{return rand()%256;}//乱数を返すラムダ式 int ans=random(); int index=10; auto next=[&index]()->int{return ++index;}//indexを参照 int pos = next();//pos=11
8.
便利機能(3/5) ラムダ式 (2/2)
一例 • 使い方 • SORTの条件を楽に指定できる。 • 並列処理関係のライブラリで使う。 例文 (省略あり) list<int> lst(64); sort(lst.begin(),lst.end(),[](int a,int b){return a<b;}); #include <ppl.h> vector<double> vec(128);//何か代入したとする。 parallel_transform(vec.begin(), vec.end(), vec.begin(), [](double n) { return n*n; });//全部二乗
9.
便利機能(4/5) スマートポインタ • 普通のポインタの場合 •
生成と開放処理を明記しなくてはならない。(開放を忘れそうになる) • スマートポインタの場合 • 開放処理を自動的に行わせることができる。 例文 #include <memory> void func(){ int* cmn_ptr=new int(55); std::unique_ptr<int> uni_ptr(new int(5)); ~処理~ delete cmn_ptr; }
10.
便利機能(5/5) 整数型(C99) • INTやFLOATでは環境依存のため実際の大きさがわからない。
SIZEOF(INT)=? ↑マイコンの場合、レジスタを直に叩くことが多いので困る。 ・<STDINT.H>もしくは<CSTDINT>を使えば解決できる。 <STDINT.H>はC言語のライブラリなのでPICやPSOCでも利用できる。 例文(省略あり) #include <stdint.h> uint32_t a;//32bitの整数型 sizeof(a)=4 int64_t b;//64bitの自然数型 sizeof(b)=8
11.
メモリ管理(1/4) MALLOCについて • MALLOC…C言語で使われる動的にメモリーを配置する関数 しかし、動的に可変長のメモリーを確保すると断片化する。 安価なマイコンには実装されていないMMU(メモリー管理ユニット)及びGCはないと仮定してる。
12.
メモリ管理(1/4) MALLOCについて • MALLOC…C言語で使われる動的にメモリーを配置する関数 しかし、動的に可変長のメモリーを確保すると断片化する。
13.
メモリ管理(1/5) MALLOCについて • MALLOC…C言語で使われる動的にメモリーを配置する関数 しかし、動的に可変長のメモリーを確保すると断片化する。 •
固定的な大きさを確保する関数なら断片化を避けることでできる。※メモリ利用効率は落ちる。
14.
メモリ管理(2/4) 自作しよう • データ構造 •
配列+その要素での単方法リスト • アルゴリズム Template <size_t size , unsigned num> class MemPool { union item { //共有体で強引にメモリー配置を設定 uint8_t dummy[size]; item* next; } data[num];//配列 item *top; //使っていない要素の単方向リスト … }
15.
メモリ管理(2/4) 自作しよう • データ構造 •
配列+その要素での単方法リスト • アルゴリズム • 初期化 for (unsigned int i = 0; i < num; i++) { //スタックにおけるPush動作と同じ data[i].next=top; top=&data[i]; }
16.
メモリ管理(2/4) 自作しよう • データ構造 •
配列+その要素での単方法リスト • アルゴリズム。 • 初期化 • 確保 Void* CreatePointer(){ //スタックのPopと同じ item* temp = top; top = top->next; temp->next = nullptr;/*バグ防止*/ return (void*)temp; }
17.
メモリ管理(2/4) 自作しよう • データ構造 •
配列+その要素での単方法リスト • アルゴリズム • 初期化 • 確保 • 開放 Void ReleasePointer(void* ptr){ //スタックのPushと同じ if (p!=nullptr){ item* p=(item*)ptr; it->next = top; top = it; } }
18.
メモリ管理(3/4) C++に対応させよう • C++は演算子を変更する機能がある。 •
メモリーの管理に使うNEW とDELETEも同様に変更できる。 例文(省略あり) class Object{ private: static MemPool pool(sizeof(Object),100); public: Object()=default;//default文(C++11以降)を覚えると楽 virtual ~Object()=default; void* operator new (size_t sz){ return pool.CreatePointer(sz);//自作関数をここに入れる。 } void operator delete(void* ptr){ pool.ReleasePointer(ptr); //自作関数をここに入れる。 } }
19.
メモリー管理(4/4) まとめ • メモリープールを使えば断片化は避けられる。 •
制約の多いマイコンでもC++11,14の機能を使えば(慣れれば) 安全且つ楽にメモリー管理を行うことができる。 メモリープールの実装をしたコードを配布してます。
20.
質疑応答
Download now