[技术问答]

关于M051芯片BSP中FMC问题

[复制链接]
3294|3
手机看帖
扫描二维码
随时随地手机跟帖
sqrong|  楼主 | 2015-3-2 11:30 | 显示全部楼层 |阅读模式
本帖最后由 sqrong 于 2015-3-2 11:32 编辑

固件库与数据手册冲突
    /* Read current User Configuration */
    FMC_ReadConfig(au32Config, 1);

    /* Just return when Data Flash has been enabled */
    if(!(au32Config[0] & 0x1))
        return 0;
根据数据手册上,上面程序的FMC_ReadConfig(au32Config, 1);
FMC_CONFIG_BASE         0x00300000UL 寄存器第0位是保留的。
数据手册为新唐官方最新的,BSP版本为M051_Series_BSP_CMSIS_Rev3.00.002 。--FMC_RW

        FMC_ReadConfig(au32Config, 2);
        if(au32Config[0] & 0x40)
        {
            FMC_EnableConfigUpdate();
            au32Config[0] &= ~0x40;
            FMC_Erase(FMC_CONFIG_BASE);
            FMC_WriteConfig(au32Config, 2);

            // Perform chip reset to make new User Config take effect
            SYS_ResetChip();
        }
数据手册中只有一个CONFIG0寄存器的描述,另一个的作用??? fmc_iap->fmc_ap_main->SetIAPBoot(void)

二、从APROM中将程序拷贝到LDROM中,中断向量表为何不拷贝,但又将向量页重映射到LDROM。
LoadImage((uint32_t)&loaderImage1Base, (uint32_t)&loaderImage1Limit,
                         FMC_LDROM_BASE, FMC_LDROM_SIZE);// loaderImage1Base根据map文件是在0x0C处,刚好跳过了向量表。
/* Set VECMAP to LDROM for booting from LDROM */
FMC_SetVectorPageAddr(FMC_LDROM_BASE);

Howard16| | 2015-3-3 11:35 | 显示全部楼层
本帖最后由 Howard16 于 2015-3-3 11:41 编辑

一,  M051系列沒有Config1, 其他系列的才有, Config1是拿來設定Dataflash的起始位置用的,
    但是M051的Dataflash設計是固定起始位置0x1f000, 不給設定的
    大概是拿其他系列的BSP改成M051沒有注意到這個細節。

    if(SetDataFlashBase(DATA_FLASH_TEST_BASE) < 0)
    {
        printf("Failed to set Data Flash base address!\n");
        goto lexit;
    }
      這段程式刪掉就好了, Dataflash起始就設計好了, 不需要這個判斷。


二, 從APROM拷貝到LDROM的程式是一個完整的程式,也就是說拷貝過去的資料本身包含有一個程式所有的內容,
     當然也包含向量表,沒有必要把APROM自己的向量表拷貝過去,

     這個向量頁映射並不是從一個副函式跳到另一個副函式,而是從一個程式跳到另外一個程式,兩個程式有自己的向量表,不通用的





使用特权

评论回复
sqrong|  楼主 | 2015-3-3 16:24 | 显示全部楼层
Howard16 发表于 2015-3-3 11:35
一,  M051系列沒有Config1, 其他系列的才有, Config1是拿來設定Dataflash的起始位置用的,
    但是M051的D ...

谢谢你的解答,第二个问题是我理解错误了,没有注意到linker->Extra Options的使用。

使用特权

评论回复
gaoyang9992006| | 2015-3-12 10:15 | 显示全部楼层
我也跟着楼主学习一下,以后免得出错。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝