Tag Archives: singlechip

How to Solve platformio adding library error

Solve platformio add library error problem
Problem: Adding TFT_eSPI library prompted that SPI.h could not be found
In file included from .pio\libdeps\esp32dev\TFT_eSPI\TFT_eSPI.cpp:17:0:
.pio\libdeps\esp32dev\TFT_eSPI\TFT_eSPI.h:32:17: fatal error: SPI.h: No such file or directory
Solution: Add a sentence to the platformio.ini file
lib_ldf_mode = deep+

There may still be warnings, but no error will be reported
can be compiled successfully

Reference: https://techoverflow.net/2020/12/14/how-to-fix-platformio-esp8266-esp32-fatal-error-spi-h-no-such-file-or-directory

[Solved] Keil5 burn STM32F chip Error: error: Flash download failed – “cortex-m4″“

Load “…\Obj\Laliji.axf”
Set JLink Project File to “F:\01MCU\STM32F429\TestProgram\Project\JLinkSettings.ini”
JLink Info: Device “STM32F429IG” selected.

JLink info:
DLL: V4.98e, compiled May 5 2015 11:00:52
Firmware: J-Link V10 compiled Oct 15 2018 16:40:35
Hardware: V10.10
S/N : 260106173
Feature(s) : FlashBP, GDB, FlashDL, JFlash, RDI
JLink Info: Found SWD-DP with ID 0x2BA01477JLink Info: Found SWD-DP with ID 0x2BA01477JLink Info: Found Cortex-M4 r0p1, Little endian.JLink Info: FPUnit: 6 code (BP) slots and 2 literal slotsJLink Info: CoreSight components:JLink Info: ROMTbl 0 @ E00FF000JLink Info: ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB00C SCSJLink Info: ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 003BB002 DWTJLink Info: ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 002BB003 FPBJLink Info: ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 003BB001 ITMJLink Info: ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 000BB9A1 TPIUJLink Info: ROMTbl 0 [5]: FFF42000, CID: B105900D, PID: 000BB925 ETM
ROMTableAddr = 0xE00FF003

Target info:
Device: STM32F429IG
VTarget = 3.270V
State of Pins:
TCK: 0, TDI: 1, TDO: 1, TMS: 1, TRES: 1, TRST: 1
Hardware-Breakpoints: 6
Software-Breakpoints: 8192
Watchpoints: 4
JTAG speed: 5000 kHz
No Algorithm found for: 08000000H - 08001073H
Erase skipped!
Error: Flash Download failed - “Cortex-M4”
Flash Load finished at 14:46:07


1, click the magic wand of keil interface (Alt + F7)
2, Settings

3, Flash Download -> add

4, choose the type of chip-> add

keil: ERROR L107:ADDRESS SPACE OVERFlOW [How to Solve]

There are 6 pins, one pin is connected to DS18B20 to measure the temperature, two pins are connected to the IIC adapter board of pcf8574 to drive LCD1602, and three pins are connected to DS1302 to take the clock.

All right! 128 bytes of on-chip data storage area ram is exhausted. Keil compiles and directly informs:
error l107: address space overflow

LCD1602 custom characters are placed in the RAM area
unsigned char chr_nian[]={0x08,0x1F,0x02,0x0F,0x0A,0x1F,0x02,0x00};// Year
unsigned char Chr_yue[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00};// Month
unsigned char Chr_ri[]={0x1E,0x12,0x12,0x1E,0x12,0x12,0x1E,0x00};// Day
unsigned char # Chr_du[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};// Degrees Celsius
consumes too much RAM capacity

Solution: simply add “code” and transfer all to the program storage area. Equivalent to the assembled DB pseudo instruction
unsigned char code Chr_nian[]={0x08,0x1F,0x02,0x0F,0x0A,0x1F,0x02,0x00};// Year
unsigned char code Chr_yue[]={0x0F,0x09,0x0F,0x09,0x0F,0x09,0x11,0x00};// Month
unsigned char code Chr_ri[]={0x1E,0x12,0x12,0x1E,0x12,0x12,0x1E,0x00};// Day
unsigned char code Chr_du[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};// Degrees Celsius

[Solved] Keil C Error: error C141: syntax error near ‘=‘, expected ‘__asm‘

1. This code is a clock code designed for the timer T0 programming of 89C52 single-chip microcomputer.

unsigned char code ledcode[]={0x3f,0x5b,0x4f,0x66,0x7d,7,0x7f,0x6f};	//Segment selection code for common cathode 0-9
unsigned char data hou,min,sec,num,disbuf[]={0,0,10,0,0,0,10,0,0}; //hour,minute,sec,num is the number of T0 interrupts,disbuf is the number of displayed digits
#define codport P0; //Display segment output port
#define sitport P2; //Display bit code output port

void display() //display function
	unsigned int j; //for loop
	unsigned char i,scan; //scan is the bit code of the output control display bit, also called scan code
		codport=0; //Display new content before clearing the screen, otherwise it will be displayed incorrectly in Proteus
		codport=ledcode[disbuf[i]]; //the number to be displayed send break code port
		sitport=~scan; //Bit code port low corresponding bit valid, lit

2、In the following program, the compilation shows an error
clock.c(14): warning C275: expression with possibly no effect
clock.c(14): error C141: syntax error near ‘=’, expected ‘__asm’
clock.c(15): error C141: syntax error near ‘=’, expected ‘__asm’
clock.c(16): error C141: syntax error near ‘=’, expected ‘__asm’
clock.c – 3 Error(s), 1 Warning(s).
Locating the error found is

codport=0; //clear the screen before displaying new content, otherwise it will be displayed incorrectly in Proteus
codport=ledcode[disbuf[i]]; //the number to be displayed is sent to the code breaking port
sitport=~scan; //Bit code port low corresponding bit valid, lit

3. Since bit operations are required for codport and sitport, the modified macro is defined as

unsigned char code ledcode[]={0x3f,0x5b,0x4f,0x66,0x7d,7,0x7f,0x6f};	//Segment selection code for common cathode 0-9
unsigned char data hou,min,sec,num,disbuf[]={0,0,10,0,0,0,10,0,0}; //hour,minute,sec,num is the number of T0 interrupts,disbuf is the number of displayed digits
sibt codport=P0; //display segment code output port
sbit sitport=P2; //display bit code output port

4. Compiled successfully after modification

Clion develops STM32, adds files and compiles with an error “no such file or directory”“

Clion adds files and compiles with an error “no such file or directory”

1.1 adding files

Create folders directly under the project directory and create source files and header files

After addition, errors will occur when writing. C files including. H files, which need to be modified cmakelist. TXT

Add header file

include_directories(Path1/path1 Path2/path2)

path1/path1 indicates the header file path. Different paths are separated by spaces, as shown in the following figure:

Add source file

file(GLOB_RECURSE SOURCES "directory/*.*")

directory indicates the path folder name. The source files under different paths are separated by spaces, as shown in the following figure:

After completion, the compilation can reach 100%, but an error is reported: no such file or directory

By reference: clion 2020.2.4 cmake error reporting

When a newly added file is found, cmakelist. TXT will automatically add linker_ SCRIPT

Delete the header file and source file behind it


Compile again, no error will be reported and can be downloaded normally.

NXP mx8 Platform tensorflow-lite build error [How to Solve]

Solutions provided by NXP
Compiling L5.4.3_1.0.0 BSP On Ubuntu 180.4 LTS – NXP Community
1. Compile tensorflow-lite with bitbake
bitbake tensorflow-lite -c do_configure -v -f
The following error occurs, at this time you can see the download of the wrong package
FAILED: ruy-populate-prefix/src/ruy-populate-stamp/ruy-populate-download
The specific path is


Check whether there is a corresponding zip package in the modified directory, and copy it to the tensorflow pack folder created in the corresponding root directory.

| FAILED: ruy-populate-prefix/src/ruy-populate-stamp/ruy-populate-download
| cd /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build && /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/recipe-sysroot-native/usr/bin/cmake -P /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/_deps/ruy-subbuild/ruy-populate-prefix/src/ruy-populate-stamp/download-ruy-populate.cmake && /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/recipe-sysroot-native/usr/bin/cmake -P /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/_deps/ruy-subbuild/ruy-populate-prefix/src/ruy-populate-stamp/verify-ruy-populate.cmake && /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/recipe-sysroot-native/usr/bin/cmake -P /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/_deps/ruy-subbuild/ruy-populate-prefix/src/ruy-populate-stamp/extract-ruy-populate.cmake && /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/recipe-sysroot-native/usr/bin/cmake -E touch /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/_deps/ruy-subbuild/ruy-populate-prefix/src/ruy-populate-stamp/ruy-populate-download
| ninja: build stopped: subcommand failed.
| CMake Error at /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/recipe-sysroot-native/usr/share/cmake-3.19/Modules/FetchContent.cmake:989 (message):
|   Build step for ruy failed: 1
| Call Stack (most recent call first):
|   /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/recipe-sysroot-native/usr/share/cmake-3.19/Modules/FetchContent.cmake:1118:EVAL:2 (__FetchContent_directPopulate)
|   /work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/recipe-sysroot-native/usr/share/cmake-3.19/Modules/FetchContent.cmake:1118 (cmake_language)
|   tools/cmake/modules/OverridableFetchContent.cmake:531 (FetchContent_Populate)
|   tools/cmake/modules/ruy.cmake:30 (OverridableFetchContent_Populate)
|   tools/cmake/modules/Findruy.cmake:16 (include)
|   CMakeLists.txt:197 (find_package)
| -- Configuring incomplete, errors occurred!
| See also "/work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/CMakeFiles/CMakeOutput.log".
| See also "/work/code/temp/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/CMakeFiles/CMakeError.log".
| + bb_sh_exit_handler
| + ret=1
| + [ 1 != 0 ]
| + echo WARNING: exit code 1 from a shell command.
| WARNING: exit code 1 from a shell command.
| + exit 1

The second error;


Check whether there is a zip in this directory, and in the copy to tensorflow pack folder

ninja: build stopped: subcommand failed.
-- Downloading pthreadpool to /work/code/test/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/pthreadpool-source (define PTHREADPOOL_SOURCE_DIR to avoid it)
-- Configuring done
-- Generating done
-- Build files have been written to: /work/code/test/ver/build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/pthreadpool-download
[1/9] Creating directories for 'pthreadpool'
[2/9] Performing download step (download, verify and extract) for 'pthreadpool'
-- Downloading...
   inactivity timeout='none'
-- Using src='https://github.com/Maratyszcza/pthreadpool/archive/545ebe9f225aec6dca49109516fac02e973a3de2.zip'
-- [download 100% complete]
-- verifying file...
-- Downloading... done
-- extracting...
-- extracting... [tar xfz]

3. Subsequent errors change in turn.

4. Execute this../cp.sh script during bitmake tensorflow Lite – C compile – V – f compilation, and tensorflow Lite will be compiled successfully.

mkdir -p ./../build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/_deps/ruy-subbuild/ruy-populate-prefix/src/
cp 54774a7a2cf85963777289193629d4bd42de4a59.zip  ./../build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/_deps/ruy-subbuild/ruy-populate-prefix/src/

mkdir -p ./../build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/cpuinfo-download/cpuinfo-prefix/src/
cp 5916273f79a21551890fd3d56fc5375a78d1598d.zip ../build-imx-robot/tmp/work/cortexa53-crypto-poky-linux/tensorflow-lite/2.5.0-r0/build/cpuinfo-download/cpuinfo-prefix/src/

[Solved] win32diskimager Error: An error occured when attempting to XXX, Error 5: Access is Denied

Problem Description:

today, you need to format the SD card as FAT32, and then write an img file to it. Use the card reader to connect the SD card to the host, and then use win32discriminator software to write an error to the specified drive letter: an error occurred when attempting to XXX, error 5: access is denied.


1) Download SD memory card formatter (official website)
2) select overwirte format to format
3) use win32diskimager to write again. Success!

I think some people on the Internet say that the card reader is broken. Change a card reader. You can try this method first. If not, replace the card reader.

[Solved] Keil-MDK Error: “Error: Encountered an improper argument”

Keil MDK solves the problem of “error: encoded an improved argument”

Arm official problem description and solutions: https://developer.arm.com/documentation/ka004382/latest

Cause of problem: μ The vision5 debugger is currently unable to process dwarf debugging information that contains folders or file names with UTF-8 characters. In other words, your project directory should be in Chinese, instead of using the directory with Chinese.

Solution: change all the paths to English, then clean up the project and recompile.