完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我正在使用SPC56EL60L3和SPC5STUDIO v5.0。 阅读参考手册RM0032我理解STCU寄存器是存储器映射的,可供软件读/写访问,但我找不到如何使用SPC5STUDIO API访问寄存器。 这些寄存器是如何命名的?我希望我不得不写一些类似STCU.REG_NAME.R的东西。 好的,我需要写什么来代替STCU? 谢谢。 问候 亚历山德罗 以上来自于谷歌翻译 以下为原文 Hello everyone, I'm working with SPC56EL60L3 and SPC5STUDIO v5.0. Reading the reference manual RM0032 I understand the STCU registers are memory mapped and accessible for the software to read/write, but I can't find how to access the registers using the SPC5STUDIO API. How are those registers named? I expect I'm going to have to write something like STCU.REG_NAME.R.. OK what do I need to write in place of STCU? Thank you. Regards Alessandro |
|
相关推荐
5个回答
|
|
嗨,
我想我需要提供一些我需要做的更多细节,以便更清楚。 基本上我想实现开机自检,如RM0032的STCU部分所述。 RM描述了软件应该做什么,在重置阶段完成后检查自检程序的结果(在重置阶段运行)。 在第1300页,我发现了以下图表: 第3点指出SW需要检查自检的结果。有关如何进行此项检查的详细信息,请参见第1301页: ''Integrity SW应在自检后根据STCU状态条件执行操作。即使没有报告错误,Integrity SW也应确认所有MBIST和LBIST都已成功完成,并且不会标记其他错误。此软件确认可防止STCU内部的错误错误地指示自检通过。 ......“” 因此,看起来SW需要在控制权移交给Apps SW之前检查结果。 第一个问题与应该运行此检查的位置有关。 它已经是启动代码的一部分吗?我一直在寻找从_reset_address(在boot.s中)的启动代码到对main函数的调用(在crt0.s中),我找不到任何东西.. 如果没有:我应该把这张支票放在哪里? 假设第一个问题得到解答,我应该如何检查STCU寄存器以确定自检结束的方式? (这是上一篇文章中的问题,改写)。我在SPC5STUDIO API中找不到STCU寄存器声明。 示例代码会很棒。 我有第三个问题,但是我会留下下一篇文章,当我得到上述两个问题的答案时 |
|
|
|
,
, 亚历山德罗你好, 这取决于收藏家 收集并更新与L / MBIST相关的状态和错误条件 , 执行和STCU内部操作。收集器发送BIST错误信息, 到FCCU并发信号通知MC_RGM开始功能复位。我认为您应该通过启用此中断来检查中断: 做完了, MC_RGM 56 0x0380 16,'功能'复位备用事件,中断,MC_RGM MC_RGM 失败 252 0x0FC0 16自检RCC0故障FCCU , 253 0x0FD0 16自检RCC1故障FCCU为您的信息,包含文件SPC56EL不包含STCU模块上的映射 在进入主要部分之前,您可以使用检查一些重置值。 对不起,我们在STCU上没有例子。 , ,最好的祝福 ,,,,,,,,,,二万 , , 以上来自于谷歌翻译 以下为原文 , , Hello Alessandro , it depends on the collector Collects and updates the status and error conditions related to the L/MBIST , execution and STCU internal operation. The Collector sends the BIST error information , to the FCCU and signals the MC_RGM to begin a functional reset.I think that you should check the interruption by enabling this interruption : Done , MC_RGM 56 0x0380 16 ,'Functional' Reset Alternate Event ,Interrupt ,MC_RGM MC_RGM Failure 252 0x0FC0 16 Self Check RCC0 Failure FCCU , 253 0x0FD0 16 Self Check RCC1 Failure FCCUfor your information, The include files SPC56EL does not contain the mapping on STCU module you can use check some reset value ,before going to the main section.
Sorry , we have no example on STCU. , ,Best regards , , , , , , , , , , Erwan , , |
|
|
|
你好,Erwan,
谢谢您的回复。 我想我没有完全得到你解释的内容.. 看看RM0032文档,我发现了这个: 43.1.3.1: 报告错误 如果报告错误,Integrity SW应: •读取STCU_LBS标志寄存器以确定哪些LBIST失败。 •读取STCU_LBE标志寄存器以确定哪些LBIST未完成。 •读取STCU_MBSL和STCU_MBSH标志寄存器以确定哪些MBIST失败。 •读取STCU_MBEL和STCU_MBEH标志寄存器以确定哪些MBIST未完成。 •读取STCU_ERR寄存器以检查是否存在内部STCU故障。 43.1.3.2: 没有报告错误 如果没有报告错误,Integrity SW应确认以下内容: •每个LBIST结果的签名寄存器与其对应的期望值匹配:对于每个LBIST: - 读取STCU_LBMISREL / H和STCU_LBIST_NMISRRL / H寄存器以检查与STCU_LBS和STCU_LBE位的一致性。 - 阅读第43.1.3.1节“报告的错误”中描述的寄存器,并验证它们的值是否符合预期。 看起来在某些时刻,在复位后,我需要检查STCU寄存器并检查它们是否符合预期值。 现在我有了允许访问寄存器的定义。 问题是:我在哪里放置上述支票? 可以将它们放在主应用程序中吗?或者我应该将它们放在启动代码中? 谢谢。 问候 亚历山德罗 以上来自于谷歌翻译 以下为原文 Hello Erwan, thank you for your reply. I think I don't fully get what you explained.. Looking at the RM0032 document I found this: 43.1.3.1: Reported errors In the case of reported errors, the Integrity SW should: • Read the STCU_LBS flag register to determine which LBISTs failed. • Read the STCU_LBE flag register to determine which LBISTs did not finish. • Read the STCU_MBSL and STCU_MBSH flag registers to determine which MBISTs failed. • Read the STCU_MBEL and STCU_MBEH flag registers to determine which MBISTs did not finish. • Read the STCU_ERR register to check whether there has been an internal STCU failure. 43.1.3.2: No reported errors In the case of no reported errors, the Integrity SW should confirm the following: • The signature registers of each of the LBIST results match their corresponding expected values: For each LBIST: – Read the STCU_LBMISREL/H and STCU_LBIST_NMISRRL/H registers to check the coherency with the STCU_LBS and STCU_LBE bits. – Read the registers described in Section 43.1.3.1, Reported errors,” and verify that their values are as expected. It looks like at some moment, after the reset, I need to check the STCU registers anc check them against expected values. Now I have the defines allowing to access the registers. The question is: where do I place the above-mentioned checks? Is it OK to place them in the main application? Or should i place them in the startup code? thank you. Regards Alessandro |
|
|
|
你好Alesandro,
我已经检查过K2或SPC56EL。 (Soc功能有效团队) 我认为您可以将代码放在主应用程序上 最好的祝福 二万 以上来自于谷歌翻译 以下为原文 Hello Alesandro , i have checked on K2 or SPC56EL. (Soc Functional Valid Team) I think that you can place the code on main application Best regards Erwan |
|
|
|
你好,Erwan,
感谢您的反馈意见。 我一直在阅读参考手册,并尝试在启动后实施STCU测试,但仍然有一些不是100%明确的。 我们假设我要检查STCU是否有错误。 如果报告错误,则声明自检电源失败并退出。 如果没有报告错误,我需要检查STCU寄存器以验证是否所有测试都已完成。 以下代码是否可以? 谢谢。 问候 亚历山德罗 & sharpdefine STCU_LBE_OK 0x00000007U & sharpdefine STCU_MBEL_OK 0xFFFFFFFFU & sharpdefine STCU_MBEH_OK 0x00000007Uint32_t postStcuTest(void) { int32_t retVal_i32; if(STCU_ERR!= 0U) { / *错误由STCU报告* / retVal_i32 = POST_ERROR; } 其他 { / * STCU没有报告错误* / / * *需要检查是否所有测试 *已经完成 * / if((STCU_LBE!= STCU_LBE_OK) || (STCU_MBEL!= STCU_MBEL_OK) || (STCU_MBEH!= STCU_MBEH_OK)) { retVal_i32 = POST_ERR; } 其他 { / * *需要检查是否所有测试 *已成功完成 * / if((STCU_LB_MISRRL0!= STCU_LB_MISREL0) || (STCU_LB_MISRRH0!= STCU_LB_MISREH0) ) { retVal_i32 = POST_ERR; } 其他 { retVal_i32 = POST_OK; } } } return retVal_i32; } 以上来自于谷歌翻译 以下为原文 Hello Erwan, thank you for your feedback. I've been reading the reference manual and trying to implement the STCU test after boot, but there's still something that's not 100% clear. Let's suppose I'm going to check the STCU for errors. If errors are reported, declare the power on self test failed and exit. If no errors are reported, I need to check the STCU registers to verify if all the tests have run to completion. Would the following code be OK? Thank you. Regards Alessandro &sharpdefine STCU_LBE_OK 0x00000007U &sharpdefine STCU_MBEL_OK 0xFFFFFFFFU &sharpdefine STCU_MBEH_OK 0x00000007Uint32_t postStcuTest( void ) { int32_t retVal_i32; if(STCU_ERR != 0U) { /* errors are reported by STCU */ retVal_i32 = POST_ERROR; } else { /* no errors are reported by STCU */ /* * need to check if all the tests * have run to completion */ if( ( STCU_LBE != STCU_LBE_OK ) || ( STCU_MBEL != STCU_MBEL_OK ) || ( STCU_MBEH != STCU_MBEH_OK ) ) { retVal_i32 = POST_ERR; } else { /* * need to check if all the tests * have completed sucesfully */ if ( ( STCU_LB_MISRRL0 != STCU_LB_MISREL0 ) || ( STCU_LB_MISRRH0 != STCU_LB_MISREH0) ) { retVal_i32 = POST_ERR; } else { retVal_i32 = POST_OK; } } } return retVal_i32; } |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2741 浏览 1 评论
3244 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1813 浏览 1 评论
3653 浏览 6 评论
6044 浏览 21 评论
1342浏览 4评论
203浏览 3评论
对H747I-DISCO写程序时将CN2的st-link复用为usart1,再次烧录时无法检测到stlink怎么解决?
356浏览 2评论
STM32G474RE芯片只是串口发个数据就发烫严重是怎么回事?
446浏览 2评论
STM32处理增量式编码器Z信号如何判断中断是正转的还是反向转的?
275浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 18:05 , Processed in 1.437028 second(s), Total 86, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号