mini2440之首个C程序点亮LED分析

发布时间:2024-06-20  

启动文件+库+文件

启动文件:

硬件的初始化

1.关看门口狗(看门狗就是定时器,系统启动时开启的,开始计时如果3秒没有关闭,则自动重启系统)

2.初始化时钟(2440一上电的为12hz,最大可以达到400hz,所以为了使其更快,就需要设置高一点)

3.初始化SDRAM

软件初始化

4.设置栈(将栈指针指向某块内存)

5.设置main函数的返回地址

6.调用main函数

7.清理工作

(注:mini2440中2步慢点没关系小只是点亮灯而已,3步不用sdram用内置sram所以可以不设)

硬件初始化

  1. .text 

  2. .global _start 

  3. _start: 

  4. @硬件初始化 

  5.             ldr     r0, =0x53000000    @ 0x53000000为看门狗控制寄存器的地址 

  6.             mov     r1, #0x0                 @拉低电平,关闭看门狗计时器 ,禁止WATCHDOG,否则CPU会不断重启 

  7.             str     r1, [r0] 

  8. @软件初始化                   

  9.             ldr     sp, =1024*4             @ 设置堆栈,注意:不能大于4k, 因为现在可用的内存只有4K,nand flash中的代码在复位后会移到内部ram中,此ram只有4K 

  10.             bl      main                        @ 调用C程序中的main函数 

  11. halt_loop: 

  12.             b       halt_loop           @循环 

点亮led的c语言程序

  1. #define GPBCON      (*(volatile unsigned long *)0x56000010) 

  2. #define GPBDAT      (*(volatile unsigned long *)0x56000014) 

  3. @(*(volatile unsigned long *)0x56000010):强制转化为unsigned long 类型的指针变量,(*(unsigned long *)0x56000010)为取得0x56000010地址下的内容 

  4. @volatile 用与标识编译器不优化 

  5. int main() 

  6.     GPBCON = 0x00000400;    // 设置GPB5为输出口, 位[11:10]=0b01 

  7.     GPBDAT = 0x00000000;    // GPB5输出0,LED1点亮 

  8.     return 0; 

注设置多个led输出引脚的模式的时候

#define GPB5_OUT (1<<(5*2))//因为设置gpb5的引脚为10和11位,10位为高电平

#define GPB6_OUT (1<<(6*2))

#define GPB7_OUT (1<<(7*2))

#define GPB8_OUT (1<<(8*2))

GPBCON=GPB5_OUT|GPB6_OUT|GPB7_OUT;//设置所有LED对应引脚为输出模式


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>