FLASH API 的配置

FLASH的配置步骤

  1. 将FLASH2812_API_v210.lib 添加到头文件中。

技术图片

(2)将Flash281x_API_Config.h Flash281x_API_Library.h 两个头文件添加进include目录下。这两个头文件主要包含的是 FLASH_API函数的定义 状态返回的定义

本工程中将两个头文件合并为ALLdefine.h

技术图片

 

  1. 配置API的频率

    修改define.h 中CPU_RATE 来设置正确的CPU频率配置算法

    技术图片

     

  2. 在alldefine . h 中初始化 Flash_CPUScaleFactor 变量

    这个变量具体的操作 除了赋值以外 可能在F2812_API_V210.Lib中进行,我们看不见。我们只能给这个FALSH API 全局变量进行赋值 如下图

     

    在alldefine.h 中定义了这个API全局变量, 但是在downloader()函数中完成赋值。

    如下面的两张图

    技术图片

     

     

     

     

     

    (4)初始化PLLCR 寄存器

    技术图片

     

     

     

    (5)初始化CALLBACK 函数指针 (这个可以补充进入指针的用法的文档中去)

    在 alldef.h 头文件中 声明一个函数 用指向函数的指针变量

    然后在downloader()函数中 将函数名字&flashcallbackfunction 赋给 指针变量    Flash_CallbackPtr.

    Flashcallbackfunction() 函数 在downloader .c 中定义。见下面的三张图,

    Flashcallbackfunction()函数的 作用是在 flash 烧写过程中 接收数据?

    技术图片

     

    技术图片

    技术图片

     

(6) 禁止中断和看门狗

在CodeStartBranch.asm 中禁止看门狗的写法

下面是汇编语言的写法

技术图片

 

LB _c_int00 ? 是什么意思?

 

和以下用C编写的代码 是等价的

# define WDCR(volatile Uint16 *) 0X00007029 //WDCR

Asm ("EALLOW")

*WDCR=(*WDCR|0X0086); //禁止看门狗

Asm ("EDIS")

 

 

 

(7)将API 复制到RAM 区,为保证其正常运行,API需要在RAM 区中执行,

一般而言 API 函数保存在FLASH A 扇区,改扇区为保留, 需要在CMD文件中 为API 的源代码分配响应的空间

 

技术图片

_Flash28_API_RunStart 是 Flash28_API 运行的首地址 是全局变量

_Flash28_API_LoadStart 是 Flash28_API 装载的首地址 是全局变量

_Flash28_API_LoadEnd 是段 Flash28_API 装载的结束地址 是全局变量

 

在alldef.h 中上面的三个全局变量进行声明 因为是在 cmd 文件中已经定义

所以在alldef.h 中 用extern 关键字修饰

技术图片

函数的调用 在main 函数中 已经解锁以后

 

技术图片

 

Memcopy 函数的定义

技术图片

 

  源WORD文档版 链接

 

相关文章