This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何编写ARM端的裸机



我想自己编写OMAPL138的ARM的裸机程序调试,我想既然ARM和DSP都可以操作外设内存,那么把DSP操作GPIO的程序复制到ARM端不就行了。

可是没有实现灯的闪烁,请问是什么情况?

另外我在调试的时候,发现ARM的运行速度非常慢,一个for循环运行了很长时间,是我调试的方法不正确吗?(我是直接在CCS上建立的ARM-OMAPL138程序,使用XDS510仿真器直接调试的)。

  • ARM运行程序控制GPIO,和DSP一样都是操作GPIO寄存器,没有实现灯的闪烁,你可以单步调试一下,看看那里配置出了问题

  • 是这样的。arm如果要配置PINMUX寄存器的值,必须进入到supervisor模式,而程序刚进入main的时候是user模式。

    我按照ti网站上的说法,把boot.asm或者是init.asm加入进去,依然无法改写PINMUX的值。

    打开boot.asm和init.asm查看,发现它们的代码在最后都是 进入user模式的语句。。。。

    我的问题是,要怎么样才能使arm进入main函数的时候是supervisor模式呢?

  • 终于解决了。。。。

    首先,boot.asm 是可以将arm在执行main函数的时候带入supervisor模式的,但是init.asm貌似是不可以的。

    此时可以修改SYSCFG寄存器了。

    但是要操作GPIO,必须要再使能PSCs模块,可以使用gel文件,或者在main函数中使能。

    可是,,为什么在DSP调试的时候,不需要使用gel文件使能PSCs模块,就可以直接操作GPIO呢?

  • 这个需要看一下PSCs模块的初始默认状态