大家好、
我正在通过读取 ADC 值来解决数据中止问题。 实际上、在我的项目中、我每100us 配置一次由 HET 触发的 ADC。
中断正常发生,但通过在函数中的 UINT32 index =(ADC =adcREG1)?行中读取 ADC 值来实现。 0U:1U;
uint32 adcGetData (adcBASE-t * ADC、uint32组、adcData_t * data)
{
uint32 i;
uint32 buf;
uint32模式;
uint32索引=(ADC = adcREG1)? 0U:1U;
uint32计数;
adcData_t * ptr =数据;
}
我获得数据中止。 我猜堆会有问题,因为当我注释掉这一行时, adcData_t *ptr = data 又出现了同样的问题;
这是我的链接器脚本
/*链接器设置*/
--stack_size=0x0800
--heap_size=0x0100
--retain="*(.intvecs)"
/*------------------ *
/*内存映射*/
存储器{
引导程序(X):origin=0x00000000 length=0x00000020
FLASH0 (RX):origin=0x00000020 length=0x000FFFE0
堆栈(RW):origin=0x08000000 length=0x00001300
RAM (RW):origin=0x08001300 length=0x0001ED00
}
/*------------------ *
/*段配置*/
剖面{
.intvecs:{}>向量
.text:{}> FLASH0
.const:{}>FLASH0
.cinit:{}> FLASH0
.pinit:{}> FLASH0
.bss:{}> RAM
.data :{}> RAM
堆:{}> RAM
.sysmem:{}>RAM
}
在我的项目中、我使用的是 FreeRTOS、串行接口工作正常。 配置了堆栈4096字节的 ADC 的任务。
你有什么想法吗? 非常感谢您的参与。