zoukankan      html  css  js  c++  java
  • MDK填充FLASH为0xFF


    title: MDK填充FLASH为0xFF
    date: 2019/1/3 20:34:05

    MDK填充FLASH为0xFF

    参考

    area 指定地址 https://blog.csdn.net/zyboy2000/article/details/6752170?utm_source=blogxgwz1

    分散文件 http://www.keil.com/support/docs/3407.htm

    汇编伪指令 https://blog.csdn.net/tinylaker/article/details/50673375

    使用分散文件

    1. Add the following linker switch to Project -> Options for target -> Linker -> Misc Controls:

      这里可以用hex形式表示

      --pad=VALUE   ;0xFF
      
    2. 更改加载文件,这个文件一般在输出目录下,后缀名为sct,取消默认的勾,启用这个加载文件并更改,添加一行,(END_ADR - START_ADR) 也就是FLASH大小

      END_OF_BLOCK (END_ADR - START_ADR) FIXED EMPTY 0x0 {}
      
    3. 例子如下

      ; *************************************************************
      ; *** Scatter-Loading Description File generated by uVision ***
      ; *************************************************************
      
      LR_IROM1 0x00000000 0x00020000  {    ; load region size_region
        ER_IROM1 0x00000000 0x00020000  {  ; load address = execution address
         *.o (RESET, +First)
         *(InRoot$$Sections)
         .ANY (+RO)
        }
        RW_IRAM1 0x20000000 UNINIT 0x00002000  {  ; RW data
         .ANY (+RW +ZI)
        }
        END_OF_BLOCK 0x00020000 FIXED EMPTY 0x0 {}   ;添加这一行,0x00020000就是FLASH大小
      }
      

    使用汇编文件

    	AREA    |.ARM.__at_0x0|, CODE, READONLY
            GBLA count                  ; declare local variable
    count   SETA    1                   ; you are not restricted to
            WHILE   count <= 0          ; such simple conditions
    count   SETA    count+1             ; In this case,
    		DCB     0xFF
            WEND
    

    51汇编填充

    OVL.ASM 文件内容如下:
    START_ADDR EQU 22C0H //空 ROM 区的起始地址
    CODE_NUM EQU 7488 //所填代码的个数
    CSEG AT START_ADDR
    REPT CODE_NUM
    DB 0A5H
    ENDM
    END
    
    //指定地址
    CSEG AT 0000H
    ORG 0000H
    

    51 C填充

    1. 新建C文件,比如BANK1.C,添加数组定义在CODE区, 比如10个字节的A5

      unsigned char code abc[]={0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,0xA5,};
      
    2. 在 User Segments 中填入此数组所在的 C 文件定义在所要指定地址的 CODE 区域中,这里写入10个字节的A5CODE区的BANK2的起始地址为0xEF00的区域)
      mark

  • 相关阅读:
    Mysql事务隔离级
    51nod1076(tarjan)
    求无向图的割点和桥模板(tarjan)
    51nod1770(xjb)
    51nod1640(kruscal)
    51nod1639(组合数学)
    51nod1625(枚举&贪心)
    51nod1562(set&模拟)
    51nod1483(打表)
    51nod1475(贪心&枚举)
  • 原文地址:https://www.cnblogs.com/zongzi10010/p/10216892.html
Copyright © 2011-2022 走看看