当前位置:  技术问答>linux和unix

如何在vivi的平台上使用中断

    来源: 互联网  发布时间:2016-02-04

    本文导语:  我买了一块2410的板子,但是我目前暂不打算跑系统。 我的设想是:先在板子上烧写了vivi,然后在ADS里写了些简单的代码,直接操作2410寄存器的,编译成bin文件后,在vivi的平台上,利用串口或网口把它下载到vivi的kerne...

我买了一块2410的板子,但是我目前暂不打算跑系统。
我的设想是:先在板子上烧写了vivi,然后在ADS里写了些简单的代码,直接操作2410寄存器的,编译成bin文件后,在vivi的平台上,利用串口或网口把它下载到vivi的kernel分区上以实现上电自启动。

在ADS写的代码里,我想用到外部中断,程序都写好了,利用DNW把bin文件烧写到RAM里能正常运行,但是在vivi的平台就是不能正常运行,查了些资料才知道:vivi中没有支持中断,如果需要中断,就要在某一RAM空间设置好中断向量然后将这一段空间映射到0地址就可以了。
目前我的部分代码如下:
#define _ISR_STARTADDRESS     0x33FFFF00
... ...
#define pISR_EINT8_23      (*(unsigned *)(_ISR_STARTADDRESS+0x34))
... ...
pISR_EINT8_23=(unsigned)EintHandler;
... ...

请问:“在某一RAM空间设置好中断向量然后将这一段空间映射到0地址”,这个应该怎么做呢?大家能不能给出些示例代码啊?
多谢各位的指点!:)

|
“在某一RAM空间设置好中断向量然后将这一段空间映射到0地址” 这一说法有些问题。因为在vivi中,MMU还未被打开,exceptions的入口总是在0地址处(不考虑high vector)。

中断部分的处理需要加入到vivi启动部分(exceptions入口要加入,具体的请参考ARM体系的说明),一种可能的实现是入口是一条跳转指令,跳转到总的IRQ处理函数中,在处理函数里自己再处理各个具体的IRQ(一般会有个IRQ table)。

实现看可以找某个版本的kernel,根据arch/arm/kernel下的实现自己编码,或者找某个RTOS(支持AMR平台)来参考会快一些。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 求助:如何向非裸板上重新烧写vivi?
  • 请问vivi如何在启动的时候自动引导linux内核?
  • 移植的vivi不支持USB 下载?急
  • vivi
  • 求一个vivi bootloader
  • vivi 分区问题,大家指教。
  • 求问:vivi烧写问题
  • 跪求大虾指点为何VIVI进不去呢
  • VIVI编译问题2
  • mini2440 jlinkv7烧写vivi问题,大家指教,不胜感激。
  • VIVI 的menuconfig 时 提示错误了,如何修改呢?
  • VIVI编译问题
  • 我移植了kernel,vivi,cramfs,却找不到网卡
  • vivi tftp problem
  • !!谁知道结构体怎么分配内存,VIVI中
  • vivi banks sdram设置
  • 我编译vivi的时候找不到 -lgcc该如何办?
  • !!!vivi的stage1中的疑问,
  • vivi 烧写大kernel的问题
  • 请教个vivi启动linux内核的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3