请问stm32f4怎么用SPEEX进行编码

2019-07-14 14:33发布

我想用SPEEX进行语音编码 可是一直进入的是内存错误中断是怎么回事?
void MemManage_Handler(void)
{
  /* USER CODE BEGIN MemoryManagement_IRQn 0 */
  /* USER CODE END MemoryManagement_IRQn 0 */
  while (1)
  {
  }
  /* USER CODE BEGIN MemoryManagement_IRQn 1 */
  /* USER CODE END MemoryManagement_IRQn 1 */
}

通过仿真发现每次执行到int nb_encode(void *state, void *vin, SpeexBits *bits)这个函数里的
  /* LSP Quantization */
   if (st->first)
   {
      for (i=0;i<st->lpcSize;i++)
         st->old_lsp = lsp;
   }

就会跳到内存错误中断,有没有大神给讲解一下该怎么整
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
滔滔不绝的滔滔
1楼-- · 2019-07-14 22:04
st这个指针是哪里的?初始化了么?
kingnet_5220
2楼-- · 2019-07-15 00:49
 精彩回答 2  元偷偷看……
kingnet_5220
3楼-- · 2019-07-15 06:23
滔滔不绝的滔滔 发表于 2019-1-16 08:15
st这个指针是哪里的?初始化了么?

int nb_encode(void *state, void *vin, SpeexBits *bits)
{
   EncState *st;
这个指针是开头就定义好的,,
EncState 是.h文件里定义的
typedef struct EncState
他代表窄带编码器全部状态的结构
这是我下载的库
http://www.openedv.com/forum.php ... amp;highlight=speex
基本不知道要改什么。。。。。
之前没有修改堆的大小显示进入的都是硬件错误中断,修改了堆的大小后进入的就是内存错误中断了。。
kingnet_5220
4楼-- · 2019-07-15 11:07
本帖最后由 qq327804286 于 2017-12-21 14:41 编辑

这个指针
int nb_encode(void *state, void *vin, SpeexBits *bits)
{
   EncState *st;
在函数的一开始就定义了,,EncState 至于这个是
typedef struct EncState
我一开始没有修改堆的大小显示进入的是硬件错误中断,当我把堆大小改变后进入的就是内存错误中断了。。。

一周热门 更多>