你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
toofree 发表于 2019-7-24 15:18 完全相同的两片外部Flash就可以,只要你不读就行。
安 发表于 2019-7-24 15:23 楼主,我不太理解这个同时。代码运行都是有顺序的,很难实现同时操作。最好能描述一下想做什么。 ...
查看全部评分
toofree 发表于 2019-7-24 17:31 无论什么操作,都无法实现,同一时间同时读或写同一地址段的两个地址空间的,必须是分时复用。 你这么试, ...
butterflyspring 发表于 2019-7-24 17:35 从芯片结构和擦写功能上看,是实现不了的。而且FLASH擦写原理上讲,接口电路升压是不可能再操作的。所以你 ...
安 发表于 2019-7-25 09:32 楼主,进入Hard_fault后,可以根据寄存器查找进去前的代码运行到那里。可以线确定一下进入的原因。 ...
我相同时写内部的flash,主要想验证一下是否内部flash支持不同地址同时读写操作
我的目的是这样的:我可以简单地把内部flash比如说256k的空间地址为0x08000000-0x08040000, 如果我把代码烧写到RAM中,也是从RAM中启动,这样的话整个flash区域我都可以随意操作,现在问题来了,如果我想同时写flash空间的两个地址 不知道这样是否可以,最关键的是我不知道咋样实现同时操作,除非是双核的MCU可能能完全做到这个所谓的同时,我看到NXP的 MCU似乎可以这么操作, 后来我做做过这样的测试 就是开启一个中断,中断中不停的对一个地址或者一块地址flash 擦除读写操作,主程序中对另外一块地址进行不停的读操作,我就长时间的跑,看看会不会发生异常比如Hard_fault错误,结果长时间都不会发生错误,我把中断时间改为毫秒级别,还是没看到错误,后来我就在memory窗口打开了我要读取的flash地址查看对应地址数据,结果很多次都报错了,所以这样是不是可以证明,不能同时操作不同地址falsh空间,否则容易造成总线错误,最终导致的是Hard_fault错误呢, 因为中断这个方法感觉不是很靠谱(毕竟我记得ST的flash在读写擦除flash时候似乎不响应中断), 而我之所以可以测出Hard_fault错误,原因可能是keil软件和code同时在操作falsh导致了这个Hard_fault。。。 提出这个问题的目的是看大家有没有更好的办法测试一下这个结论?
无论什么操作,都无法实现,同一时间同时读或写同一地址段的两个地址空间的,必须是分时复用。
你这么试,以为是同时操作,实际内部已做了仲裁,进行了分时调度。你开个中断,就以为是同时了?中断执行的时候,主程序是不执行的。退出中断后,主程序才能继续执行。
就算是双核操作,也是有前提的,必须是两片独立的地址空间,必须是两组独立的系统总线。
评分
查看全部评分
评分
查看全部评分
分析的很有道理,受教了,多谢,我也是最近研究了那个s32k116 恩智浦的MCU 看到他们的两个flash 分别在两个bank上,可以同时操作一些功能,所以我想在ST上试试看行不行
你是不是用过恩智浦的MCU s32k系列的就是两个bank
你好,请教一下,怎么样根据寄存器找到进入hard_fault原因呢