[开发工具] Keil在SRAM中调试怎么不像传说的那么麻烦?

[复制链接]
3593|7
 楼主| ddb_21ic 发表于 2008-9-19 11:09 | 显示全部楼层 |阅读模式
刚刚实验了一下,只要在Project-Option-Target下面,把ROM和RAM的地址、大小设置好,刚进入调试时运行不了,复位一下再运行就OK了(Keil3.62@万利板)
 楼主| ddb_21ic 发表于 2008-9-19 11:19 | 显示全部楼层

再来个STM32最简单的程序

看example,都是RCC_Configuration和NVIC_Configuration开始
我菜,看不懂这两个东东,跳过她
直接GPIO_Init,LED和Key还是一样的用。
===================================================================
int main(void)
{
#ifdef DEBUG
  debug();
#endif

    gpio_init();
    gpio_test();

  /* Infinite loop */
      while (1)
      {
      }
}

#define iKey2()            GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3)
#define oLED1(onoff)    GPIO_WriteBit(GPIOC, GPIO_Pin_7, onoff)
#define oLED2(onoff)    GPIO_WriteBit(GPIOC, GPIO_Pin_6, onoff)

void gpio_init()
{
    GPIO_InitTypeDef ioInit;

    ioInit.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
    ioInit.GPIO_Speed = GPIO_Speed_2MHz;
    ioInit.GPIO_Mode = GPIO_Mode_Out_PP;
    GPIO_Init(GPIOC, &ioInit);    //初始化LED输出

    ioInit.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
    ioInit.GPIO_Speed = GPIO_Speed_2MHz;
    ioInit.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOD, &ioInit);    //初始化Key输入         
}

void gpio_test()
{
    while(1)
    {
        if(iKey2())
        {
            oLED1(Bit_SET);
            oLED2(Bit_RESET);
        }
        else
        {
            oLED2(Bit_SET);
            oLED1(Bit_RESET);        
        }
    }
}
eddia2000 发表于 2008-9-22 21:34 | 显示全部楼层

怎么设的嘛?

"把ROM和RAM的地址、大小设置好"
怎么设的嘛?
 楼主| ddb_21ic 发表于 2008-9-23 17:22 | 显示全部楼层

例如

         start        size
IROM  0x20000000     0x2800
IRAM  0x20002800     0x2800

fly七星神剑 发表于 2013-7-25 14:56 | 显示全部楼层
香如故 发表于 2013-7-25 16:41 | 显示全部楼层
你程序没用到中断,如果用到中断必须设置入口基地址,否则进不了中断
zeluo 发表于 2013-7-25 19:13 | 显示全部楼层
这个问题不是很了解   楼主   兄弟帮你顶一个   再看看别人的意见吧  
sinadz 发表于 2013-7-25 19:20 | 显示全部楼层
这个的确不是很难
您需要登录后才可以回帖 登录 | 注册

本版积分规则

107

主题

1124

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部