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>
|
||
|