Changeset 389 for azure_iot_hub/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- Location:
- azure_iot_hub/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/README-TLSF.txt
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 1 TLSF Malloc ã¢ãã±ã¼ã¿1 TLSF Malloc アロケータ 2 2 2017.4.15 3 大山4 1. æ¦è¦3 大山 4 1.概要 5 5 6 TLSF ã¯å¹çããããã©ã°ã¡ã³ããèµ·ãã«ããã¢ãã±ã¼ã¿ã§ãã OS éä¾åã« 7 å®è£ 8 ããã¦ãããããçµè¾¼ã¿ã·ã¹ãã ã¸ã®å¿ç¨ã«é©ãã¦ãã¾ãããã®å®è£ 9 ã§ã¯ 10 æä»å¶å¾¡ãè¡ã£ã¦ãã¾ãããè¤æ°ã®ã¿ã¹ã¯ã§å 11 ±ç¨ããã«ã¯ãæä»å¶å¾¡ãè¡ãå¿ 6 TLSF は効率よく、フラグメントが起きにくいアロケータです。 OS 非依存に 7 実装されているため、組込みシステムへの応用に適しています。この実装では 8 排他制御を行っていません。複数のタスクで共用するには、排他制御を行う必 9 要があります。 12 10 13 è¦ãããã¾ãã 11 2. 実装について 14 12 15 2. å®è£ 16 ã«ã¤ã㦠17 18 1) TLSF ã¢ãã±ã¼ã¿ã®æ¬ä½ã¯ãTECS ã¸ã§ãã¬ã¼ã¿ããã±ã¼ã¸ã«ã¯å«ã¾ãã¦ãã¾ããã 19 以ä¸ã«å 20 ¬éããã¦ãã TLSF ãå 21 ¥æããå¿ 22 è¦ãããã¾ãã 23 ãã㯠GPL/LGPL ã©ã¤ã»ã³ã¹ã§å 24 ¬éããã¦ãã¾ãã 13 1) TLSF アロケータの本体は、TECS ジェネレータパッケージには含まれていません。 14 以下に公開されている TLSF を入手する必要があります。 15 これは GPL/LGPL ライセンスで公開されています。 25 16 http://www.gii.upv.es/tlsf/main/docs 26 17 27 2) TLSF ã«ã¯ãå¥ã«å®è£ 28 ãã MIT ã©ã¤ã»ã³ã¹ã§å 29 ¬éããã¦ãããã®ãããã¾ãã 30 API ãè¥å¹²ç°ãªããããtTLSFMalloc_inline.h ãå°ãä¿®æ£ããå¿ 31 è¦ãããã¾ãã 18 2) TLSF には、別に実装され MIT ライセンスで公開されているものもあります。 19 API が若干異なるため、tTLSFMalloc_inline.h を少し修正する必要があります。 32 20 https://github.com/mattconte/tlsf 33 21 34 3) ET ããã³ã³ç¨ããã±ã¼ã¸35 mruby-on-ev3rt+tecs_package (ev3rt) ã«ã¯ã1) ã® TLSF ãå«ã¾ãã¦ãã¾ãã22 3) ETロボコン用パッケージ 23 mruby-on-ev3rt+tecs_package (ev3rt) には、1) の TLSF が含まれています。 -
azure_iot_hub/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc.cdl
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/plain
totext/plain;charset=UTF-8
r388 r389 2 2 * Copyright (C) 2008-2017 by TOPPERS Project 3 3 * 4 * ä¸è¨èä½æ¨©è 5 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 6 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 7 * å¤ã»åé 8 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 9 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 10 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 11 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 12 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 13 * ç¨ã§ããå½¢ã§åé 14 å¸ããå ´åã«ã¯ï¼åé 15 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 16 * è 17 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 18 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 19 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããªãå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 22 * ã¨ï¼ 23 * (a) åé 24 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 25 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 26 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 27 * (b) åé 28 å¸ã®å½¢æ 29 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 30 * å ±åãããã¨ï¼ 31 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 32 * 害ãããï¼ä¸è¨èä½æ¨©è 33 ããã³TOPPERSããã¸ã§ã¯ããå 34 責ãããã¨ï¼ 35 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 36 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ãã 38 * å 39 責ãããã¨ï¼ 4 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 5 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 6 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 7 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 8 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 9 * スコード中に含まれていること. 10 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 11 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 12 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 13 * の無保証規定を掲載すること. 14 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 15 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 16 * と. 17 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 18 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 19 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 20 * 報告すること. 21 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 22 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 23 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 24 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 25 * 免責すること. 40 26 * 41 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 42 ã 43 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 44 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 45 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 46 * ã®è²¬ä»»ãè² ããªãï¼ 27 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 28 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 29 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 30 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 31 * の責任を負わない. 47 32 * 48 33 * @(#) $Id$ … … 60 45 var { 61 46 /* 62 * ã¡ã¢ãªãã¼ã«47 * メモリプール 63 48 * 64 * size_is ã®å¼æ°ã«é¢ããè£è¶³èª¬æ65 * pool ã®åã uint64_t ã®ãã sizeof uint64_t (8) ã§å²ã£ã¦ãã66 * memoryPoolSize ã 8 ã®åæ°ã§ãªãå ´åãã¡ã¢ãªé åãä¸è¶³ããªããã +7 ãå ç®ãã¦ããé¤ãã49 * size_is の引数に関する補足説明 50 * pool の型が uint64_t のため sizeof uint64_t (8) で割っている 51 * memoryPoolSize が 8 の倍数でない場合、メモリ領域が不足しないよう +7 を加算してから除する 67 52 */ 68 53 [size_is( (memoryPoolSize+7) / 8 )] -
azure_iot_hub/trunk/asp3_dcre/tecsgen/tecs/TLSFMalloc/tTLSFMalloc_inline.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 2 2 * Copyright (C) 2008-2017 by TOPPERS Project 3 3 * 4 * ä¸è¨èä½æ¨©è 5 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 6 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 7 * å¤ã»åé 8 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 9 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 10 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 11 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 12 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 13 * ç¨ã§ããå½¢ã§åé 14 å¸ããå ´åã«ã¯ï¼åé 15 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 16 * è 17 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 18 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 19 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããªãå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 22 * ã¨ï¼ 23 * (a) åé 24 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 25 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 26 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 27 * (b) åé 28 å¸ã®å½¢æ 29 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 30 * å ±åãããã¨ï¼ 31 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 32 * 害ãããï¼ä¸è¨èä½æ¨©è 33 ããã³TOPPERSããã¸ã§ã¯ããå 34 責ãããã¨ï¼ 35 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 36 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 37 ããã³TOPPERSããã¸ã§ã¯ãã 38 * å 39 責ãããã¨ï¼ 4 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 5 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 6 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 7 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 8 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 9 * スコード中に含まれていること. 10 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 11 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 12 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 13 * の無保証規定を掲載すること. 14 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 15 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 16 * と. 17 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 18 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 19 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 20 * 報告すること. 21 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 22 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 23 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 24 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 25 * 免責すること. 40 26 * 41 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 42 ã 43 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 44 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 45 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 46 * ã®è²¬ä»»ãè² ããªãï¼ 27 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 28 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 29 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 30 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 31 * の責任を負わない. 47 32 * 48 33 * @(#) $Id$ … … 55 40 56 41 /* #[<PREAMBLE>]# 57 * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã58 * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã42 * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください 43 * tecsmerge によるマージに使用されます 59 44 * 60 * å±æ§ã¢ã¯ã»ã¹ãã¯ã#_CAAM_#45 * 属性アクセスマクロ #_CAAM_# 61 46 * memoryPoolSize size_t ATTR_memoryPoolSize 62 47 * pool uint64_t* VAR_pool … … 162 147 163 148 /* #[<POSTAMBLE>]# 164 * ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã149 * これより下に非受け口関数を書きます 165 150 * #[</POSTAMBLE>]#*/ 166 151
Note:
See TracChangeset
for help on using the changeset viewer.