Vxworks的BSP配置以及寄存器读写问题

peterkingwz 2014-10-13 09:08:30
我是一块mpc8641d的POWERPC的主板,运行VXWORKS6.6的系统,这块板子是我自己做的,硬件都已经调通了,最近在做BSP的修改工作,这块板子现在通过BDI烧写器可以访问所有的内存地址,所有总线上挂载的包括CPLD,DPRAM,NVRAM,以及VME总线,都可以正常读写。我在BSP中对rominit.s这个文件做了和烧写器配置文件相同的配置,但是现在通过程序只能正常访问CPLD的虚拟寄存器,访问其他设备都会死机,向大家请教一下,除了rominit.s这个文件,还有哪个文件需要注意,还有其他方面需要考虑?
非常感谢!
...全文
1301 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
peterkingwz 2014-10-29
  • 打赏
  • 举报
回复
我把所有的局部总线挂载的器件全部加窗之后解决了问题,不过在连续读写的时候还是不太稳定,会出现随机的错误
peterkingwz 2014-10-15
  • 打赏
  • 举报
回复
自带的rominit.s,我只是在地址配置做了修改,TLB我还真没有关注,我仔细看一下,再来请教
lerd_cs 2014-10-14
  • 打赏
  • 举报
回复
把romInit.s 贴出来
Tony363 2014-10-14
  • 打赏
  • 举报
回复
TLB配了吗,感觉问题最优可能的就是tlb没有配置,访问这些地址产生tlb miss异常,没有办法处理,所以挂了,romInit.s是你自己写的还是自带的?
peterkingwz 2014-10-14
  • 打赏
  • 举报
回复
只贴了配置部分


	/* Memory mapped region base address */

	/* Flash memory space  law 5*/
	WRITEADR(r6, r7, M8XXX_LAWBAR5(CCSBAR), 0xF8000)

	WRITEADR(r6, r7, M8XXX_LAWAR5(CCSBAR),
		 LAWAR_ENABLE | LAWAR_TGTIF_LBC | LAWAR_SIZE_128MB )

	isync
	
	/* load BR0 flash 128MByte*/
	WRITEADR(r6, r7, M8XXX_BR0 (CCSBAR), 0xf8001801)
	/* load OR0 */
	WRITEADR(r6, r7, M8XXX_OR0 (CCSBAR), 0xf8006ff7)
	isync
	sync
	eieio

    /* CPLD - registers  law4*/
	WRITEADR(r6, r7, M8XXX_LAWBAR8(CCSBAR), 0xF0400)

	WRITEADR(r6, r7, M8XXX_LAWAR8(CCSBAR),
		 LAWAR_ENABLE | LAWAR_TGTIF_LBC | LAWAR_SIZE_128KB )
	isync 
	
	/* load BR1 NVRAM */
	WRITEADR(r6, r7, M8XXX_BR1 (CCSBAR), 0xf0400801)
	/* load OR1 */
	WRITEADR(r6, r7, M8XXX_OR1 (CCSBAR), 0xfffe6041)
	isync
	sync
	eieio
	isync
    
    
    WRITEADR(r6, r7, M8XXX_LAWBAR6(CCSBAR), 0xF0800)

	WRITEADR(r6, r7, M8XXX_LAWAR6(CCSBAR),
		 LAWAR_ENABLE | LAWAR_TGTIF_LBC | LAWAR_SIZE_1MB )
    isync  
    
    /* load BR2 DPRAM  */
	WRITEADR(r6, r7, M8XXX_BR2 (CCSBAR), 0xf0801001)
	/* load OR2 */
	WRITEADR(r6, r7, M8XXX_OR2 (CCSBAR), 0xffffe041)
	isync
	sync
	eieio
	isync    
	
	/* CPLD - registers  law4*/
	WRITEADR(r6, r7, M8XXX_LAWBAR4(CCSBAR), 0xF0200)

	WRITEADR(r6, r7, M8XXX_LAWAR4(CCSBAR),
		 LAWAR_ENABLE | LAWAR_TGTIF_LBC | LAWAR_SIZE_1MB )
	isync 
	
	/* load BR3 Registers Space */
	WRITEADR(r6, r7, M8XXX_BR3 (CCSBAR), 0xf0201801)
	/* load OR3 */
	WRITEADR(r6, r7, M8XXX_OR3 (CCSBAR), 0xfff06011)
	isync
	sync
	eieio
	isync
	
	WRITEADR(r6, r7, M8XXX_LAWBAR7(CCSBAR), 0xF0600)

	WRITEADR(r6, r7, M8XXX_LAWAR7(CCSBAR),
		 LAWAR_ENABLE | LAWAR_TGTIF_LBC | LAWAR_SIZE_1MB )
    isync  
	
	/* load BR4 VME  */
	WRITEADR(r6, r7, M8XXX_BR4 (CCSBAR), 0xf0601801)
	/* load OR4 */
	WRITEADR(r6, r7, M8XXX_OR4 (CCSBAR), 0xfff06f11)
	isync
	sync
	eieio
	isync    


	/* Initialise the Local Bus Controller */
	li      r4, 0x2000
	mtctr   r4
	WRITEADR(r6, r7, M8XXX_LCRR(CCSBAR), 0x80000008)
	isync
	sync
	eieio
dllDelay4:
	nop
	bdnz    dllDelay4

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧