芯驰 E3640 异常向量表的问题 Cortex R5

好久没有更新文章了,特来冒个泡

差不多已经玩了E3640快一个月了,同志们,裸机啊,不是什么AutoSar,可恨的乙方,支持着,支持着,就支持不下去了,so,我只能用芯驰官方的demo,FreeRTOS跑功能,还好只是个demo项目,不做诊断,只要功能正常能跑通就行,啊啊啊啊,我太难了。。。

从一开拿到产品,我就开始了嘲讽芯片公司了,你既然要在国内推广,竟然不开放资料,这就很搞笑啊,资料不开放,你让别人怎么推荐你们的东西?就凭你们那破ppt?算了算了,就发这么多牢骚吧。

这个芯片呢,号称有6个R5内核,真是打肿脸充胖子,英飞凌的397是不是可以说有10个核啊,人家现在也开始推497了,频率也提到600M了,资源也有了大的提升,那你这个芯片的优势是不是顿时就没了?实际上这个E3640可用的核心最大可以有5个,最小有3个,第一组核心是锁步内核,不可拆分,剩下的四个核心可以自由配置,可以锁步也可以单独运行,但是整个芯片里自由3个VIC,这怎么分配,还没研究到,可能和GIC一样吧,后边在看吧,先解决目前的问题吧。

芯驰给的sdk库和demo是基于他们自己的E3Gateway,这个芯片有24路CANFD,这个确实强,但是内存只有4M,没有算TCM和ECC内存之类的,是不是感觉很大,但是忽略了一个问题,你拿到板子的时候,你的调试工作都是在ram中进行的,相当于ram的一部分是要当rom用的啊,就算后期用到AutoSar,这里边有Fee,他是用flash模拟EEPROM,当你要操作的flash时候,外挂flash就不能xip执行了,也就是说程序还是要跑在RAM中,那这ram就捉襟见肘了,这可咋整,所以说这个芯片必须外扩ram才有的玩,不然还是个残次品。

然后说一下异常向量表的事儿,这个会影响到中断执行不到什么的,等问题,有同学可能不太懂异常向量表和中断向量表有什么区别,之前用CortexM系列的同学可能知道中断向量表,没听说过这个,玩CortexA系列的同学绝对能分得清,我们知道CortexM系列上电第一条指令是从复位向量开始执行的,CortexA系列和R系列这里也是一样的,M系列一般都是用keil和IAR开发,IDE在进入main函数之前已经帮你做好了C语言运行环境初始化,但是R系列和A系列一般需要开发人员手工自己搞了。

M系列里边中断的优先级什么的都是由nvic控制的,芯片厂商定制的,R4,R5,R7是由VIC控制的,A系列是由GIC控制的,玩M系列的同学,如果有做过BootLoader,就应该知道,进入APP之后,需要通过SCB重新映射中断向量表到app的起始位置或者ram中自己定义的位置,不然中断找不到app中的中断的实现,而A系列是用过cp15协处理器c12寄存器可以把异常向量表设置在任何位置,R系列就比较特殊了,他有两个地址,一个是0x00000000的低地址位置,另一个是0xFFFF0000的高地址位置,这个需要在协处理器里选择。

芯驰公司的E3640就神奇了,0x00000000起始的128KB是芯片内部的bootrom,那我的异常向量表怎么设置?别慌,有办法,R5里边有个ram叫TCM这玩意可以通过CP15的C11寄存器映射到0x00000000的位置,但是这一块东西芯驰他没有介绍啊!!!玩M系列的同学有几个是研究过M3,M4的手册的,还是纯英文的,都是看着正点原子和野火的教程入门的,这直接放倒一大片。说起手册,我就气不打一出来,好好的一个国产芯片,只弄一个英文版的手册,你是在国内推广的啊,我们都是中国人啊,好好的中文不用,净给开发人员增加难度,真的很无语,还有,你就不能写详细一点吗,用户手册写的稀烂,根本找不到每个外设在什么地方,完全要靠猜,真的是见鬼了,外设是怎么工作的,时钟树能不能画详细一点,你都不知道每个外设连在哪里了,怎么配置。

然后就是调试工具了,ARM核用jlink调试,没啥问题,但你是个多核芯片啊,jlink不支持多核调试啊,Autosar到时候是SMP运行的啊,咋整,靠猜吗,dap本身倒是支持多核,但是在iar环境下配置成多核状态,直接就废了,一连接就报读不到cpu状态,然后就没有然后了,dap开发者们加油。

说道多核,我就想再说说了,多核启动了,用户手册里直接没有相关部分,同志们,他是一点都不提啊,就很无语,你是怕别人抄你还是怎么着,绝了,真的是,今天就吐槽到这里吧,希望芯驰官网能看到,求求做个人吧。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年11月10日
下一篇 2023年11月10日

相关推荐