• mini2440第一个裸机程序


     mini2440上的LED接口

     

    /*
     * 功能:实现LED1灯循环亮灭
     * LED1--GPB5
     * LED2--GPB6
     * LED3--GPB7
     * LED4--GPB8
     */
    #define rGPBCON (*(volatile unsigned long *) 0x56000010)
    #define rGPBDAT (*(volatile unsigned long *) 0x56000014)
    
    #define Led1_On        0x1DF
    #define Led2_On        0x1BF
    #define Led3_On        0x17F
    #define Led4_On        0xFF
    
    #define LedSide_On        0xDF
    #define LedMidd_On        0x13F
    
    #define DELAY_CNT     0x3000
    void Led_Port_Init( void );
    
    void delay( int t )
    {
        while(t>0)
            t--;
    }
    
    int main( void )
    {
        Led_Port_Init();
        while ( 1 )
        {
    #if 0
            //循环点亮4盏灯
            rGPBDAT = Led1_On;
            delay( DELAY_CNT );
            rGPBDAT = Led2_On;
            delay( DELAY_CNT );
            rGPBDAT = Led3_On;
            delay( DELAY_CNT );
            rGPBDAT = Led4_On;
            delay( DELAY_CNT );    
    #endif
            rGPBDAT = LedSide_On;
            delay( DELAY_CNT*2 );
            rGPBDAT = LedMidd_On;
            delay( DELAY_CNT*2 );       
        }
    }
    
    void Led_Port_Init( void )
    {
        /* 设置GPB5,6,7,8为输出端口 */
        rGPBCON = 0X15400;
    }

    打开keil uversion4

    新建工程

    1. 选择CPU为Samsung/S3C2440A,单击OK

    2.在上一步单击完OK后,会弹出下图,该图是为了让你选择是不是将Samsung S3C2440的启动代码复制添加的你的工程文档,可以看到工程文档自动添加了S3C2440.s。

    3.新建一个文件。选择File/New,新建一个文件。把上面的C代码复制进去。保存为fisrt.c

    4.将first.c文件添加到你的工程,对着Source Group1右击,选择“Add Files to Group "Source Group 1"...”

    5.target中,选择Asm,define填入__EVAL。

    6.target中,选择linker,去除勾选“use memory layout from target diaglog ”

    7.target中,utilities中,setting中,选择flash SST39x 160x Flash  2M

    8.编译成功后,确保板子是从nor flash启动的,然后点击keil软件的load按钮,就可以看到写入成功。

    此时程序已经在运行。

    我们拔掉jtag线,重启板子,程序将从nor flash载入,开始运行。

    错误解决:

    1)first.axf: Error: L6218E: Undefined symbol Image$$ER_ROM1$$RO$$Length (referred from s3c2440.o).

    要解决这个问题只需在options的Asm选项卡中Define选项中添加__EVAL宏即可

  • 相关阅读:
    [栈]
    [数据结构实验]学生成绩管理
    [数据结构实验]集合交并
    shapefile 转 geojson 文件类型
    ubuntu sublime text key
    opengl
    c++
    sublime text3 key
    ubuntu安装nvidia驱动
    全球国家svg边界svg
  • 原文地址:https://www.cnblogs.com/souroot/p/11179307.html
Copyright © 2020-2023  润新知