各位专家,在对TMS570LS3137芯片的RAMECC初始化时,有几个问题想请教一下:
1. 通过HAL Code generator自动生成的代码,在_c_int00()函数中,为什么是先调用_memoryInit_(0x01)完成硬件自动初始化,再调用_coreEnableRamEcc_()使能SRAM ecc。在芯片手册中写的不应该是先使能ECC,再进行硬件初始化吗?如果先执行初始化,那初始化的时候怎么知道SRAM是按照奇偶校验初始化的还是按照ECC纠错初始化的?
2. 是否需要先使能外设接口模块的时钟门控,才能去读写各个外设模块的寄存器以及ram空间呢?另外,外设的ram空间是否只能是奇偶校验的保护措施?外设的RAM空间在执行硬件自动初始化前,不需要在各个外设模块中使能外设的奇偶校验吗?例如在HAL Code generator自动生成的代码中,对于VIM接口RAM的初始化,仅仅是调用_memoryInit_(0x04)来初始化VIM接口的RAM,而在调用此函数前,并未时能VIM时钟门控以及VIMram奇偶校验使能控制寄存器,这是为什么呢?
3. cpu ram区的address parity checking是干嘛用的? address parity checking出现错误是会产生ESM group2 的错误信号,但在hal code generator软件上为什么不能使能group2和group3的错误信号通道啊?
4. RAM ecc1比特错报错给ESM可以产生中断,2比特错误是产生data abort异常吗?