InitBuffer
产品支持情况
| 
          产品  | 
        
          是否支持  | 
       
|---|---|
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          x  | 
       
| 
          | 
        
          √  | 
       
| 
          | 
        
          x  | 
       
功能说明
TPipe是用来管理全局内存的框架,用户可以调用TPipe中的InitBuffer接口为TQue等内存队列和TBuf进行内存分配。
函数原型
- 为TQue分配内存
      
1 2
template <class T> __aicore__ inline bool InitBuffer(T& que, uint8_t num, uint32_t len)
 
- 为TBuf分配内存
      
1 2
template <TPosition bufPos> __aicore__ inline bool InitBuffer(TBuf<bufPos>& buf, uint32_t len)
 
参数说明
| 
          参数名称  | 
        
          含义  | 
       
|---|---|
| 
          bufPos  | 
        
          TBuf所在的逻辑位置,TPosition类型。  | 
       
约束说明
- InitBuffer申请的内存会在Tpipe对象销毁时通过析构函数自动释放,无需手动释放。
 - 如果需要重新分配InitBuffer申请的内存,可以调用Reset,再调用InitBuffer接口。
 
返回值
返回Buffer初始化的结果。
调用示例
          1 2 3 4 5 6 7 8 9 10 11  | 
         
          // 为TQue分配内存,分配内存块数为2,每块大小为128Bytes AscendC::TPipe pipe; // Pipe内存管理对象 AscendC::TQue<AscendC::TPosition::VECOUT, 2> que; //输出数据Queue队列管理对象,TPosition为VECOUT uint8_t num = 2; uint32_t len = 128; pipe.InitBuffer(que, num, len); // 为TBuf分配内存,分配长度为128Bytes AscendC::TPipe pipe; AscendC::TBuf<AscendC::TPosition::A1> buf; //输出数据管理对象,TPosition为A1 uint32_t len = 128; pipe.InitBuffer(buf, len);  | 
        
     父主题: TPipe