47 lines
2.0 KiB
Plaintext
47 lines
2.0 KiB
Plaintext
|
Creating a new Algorithm
|
|||
|
------------------------
|
|||
|
|
|||
|
Flash programming algorithms are defined with functions to erase and program
|
|||
|
the Flash device. Special compiler and linker settings are required. Follow
|
|||
|
these steps to create and configure a new Flash programming algorithm:
|
|||
|
- From the toolbar, use the drop-down Select Target to define the processor
|
|||
|
architecture. Cortex-M fits for all Arm Cortex-M0/M0+/M3/M4/M7 devices.
|
|||
|
The configuration assumes a little-endian microcontroller. In case of a
|
|||
|
big-endian microcontroller, select the correct processor core with
|
|||
|
Project - Options for Target - Device.
|
|||
|
- Open the dialog Project - Options for Target - Output and change the content
|
|||
|
of the field Name of Executable to represent the device, for example
|
|||
|
MyDevice.
|
|||
|
- Adapt the programming algorithms in the file FlashPrg.c
|
|||
|
- Adapt the device parameters in the file FlashDev.c
|
|||
|
- Use Project - Build Target to generate the new Flash programming algorithm.
|
|||
|
The output file (for example MyDevice.FLM) has to be added to the DFP.
|
|||
|
|
|||
|
Note
|
|||
|
----
|
|||
|
- Creating a Flash programming algorithm with MDK-Lite is not supported.
|
|||
|
- Flash programming algorithms use Read-Only Position Independent and
|
|||
|
Read-Write Position Independent program code. These options are set in the
|
|||
|
dialogs Project - Options for Target - C/C++ and
|
|||
|
Project - Options for Target - Asm.
|
|||
|
- The dialog Project - Options for Target - Linker defines the linker scatter
|
|||
|
file Target.lin. The error L6305 is disabled with <20>diag_suppress L6305.
|
|||
|
|
|||
|
For more information, refer to the documentation available at
|
|||
|
http://arm-software.github.io/CMSIS_5/Pack/html/flashAlgorithm.html
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>F767 <20><><EFBFBD>İ<EFBFBD> QSPI W25QXX<58><58><EFBFBD><EFBFBD>д<EFBFBD>㷨<EFBFBD><E3B7A8>
|
|||
|
|
|||
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>FLM<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>keil<EFBFBD><EFBFBD>װĿ¼<EFBFBD><EFBFBD>flash<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
ע<EFBFBD>⣺
|
|||
|
1<EFBFBD><EFBFBD> <20><>Ŀ<EFBFBD><C4BF><EFBFBD>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫһ<D2AA><D2BB>
|
|||
|
|
|||
|
2<EFBFBD><EFBFBD> <20><>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
FlashDev.c<>е<EFBFBD>FlashDevice<63><65><EFBFBD><EFBFBD>W25QXX<58><58>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD>С(Device Size in Bytes)
|
|||
|
|
|||
|
3: ע<><D7A2><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>FLMʱ<4D><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> insufficient RAM for Flash Algorithms.
|
|||
|
<EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> :
|
|||
|
Project->Options->Utilities->...Settings-><3E><>RAM for Algorithm <20><> size = 0x8000 <--<2D>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|