裸机开发学习心得有什么问题欢迎一起交流
以下是部分心得
ledgpxcon中每两位控制一个引脚:00输入,01输出,10特殊功能初始化rgpbcon,rgpbup,rgpbdat三个寄存器关于ads配置的解释:在targetsettings中的post-linker中选择armfromelf,因为我们需要把elf文件格式转化为下载到flash中所必须的二进制文件
在languagesettings中的所有语言的target下的architectureorprocessor,选择arm920t,因为s3c2440是arm920t内核
在armlinker中的output中的robase填写0x30000000,因为在开发板上sdram是从0x30000000地址开始
在layout中的object/symbol中填写2440init
o,它是启动文件的目标文件,在section中填写init,它是在启动文件中我们所定义的入口代码段的名称
外部中断我们要打开某一中断的屏蔽,这样才能响应该中断,相对应的寄存器为intmsk;还要设置外部中断的触发方式,如低电平、高电平、上升沿、下降沿等,相对应的寄存器为extintn
另外由于eint4到eint7共用一个中断向量,eint8到eint23也共用一个中断向量,而intmsk只负责总的中断向量的屏蔽,要具体打开某一具体的中断屏蔽,还需要设置eintmask
有一些中断是共用一个中断向量的,而一个中断向量只能有一个中断执行函数,因此具体是哪个外部中断,还需要eintpend或rintoffset来判断使用__irq这个关键词来定义中断处理函数,这样系统会为我们自动保存一些必要的变量,并能够在中断处理函数执行第1页共5页完后正确地返回这种形式:void__irqkey;pisr_eint0=(int)key;定时器使用主要配置:外部时钟