Your first picture probably hinted you correctly towards your issue.
Check you fpc.cfg and see if that contains the correct paths. The units of a particular platform are searched for in a platform specific directory by default. But you have to explicitly tell FPC that (*).
In your Lazarus project options, compiler options, verbosity you can select different settings. When you check one of those (additional) options then the compiler will spit out more information for example on what files are tried. I usually use the option -va (show everything) to let FPC produce a full log of everything, save that and view that in a text editor to see what goes wrong. It shows what configuration file is used, which macros are active, which directories are searched for/in and which files are tried etc.
I am assuming that you already (cross) compiled your units for the platform that you wish to target.
(*) in an attempt to make it more clear, my fpc.cfg contains the following lines:
# searchpath for units and other system dependent things
-Fu[fpc_basedir]/[fpc_version]/units/$fpctarget/*
-Fu[fpc_basedir]/[fpc_version]/units/$fpctarget/rtl
where the square-bracketed items are corresponding with their actual location on disk. There are no square brackets in the configuration lines themselves.
Such setup requires that all (compiled) units are located in the units directory which contains subdirectories based on their target name.
Because you also seem to be targeting an embedded target (?) you also might have to use the $fpcsubarch and $fpcmemorymodel for such a specif target that requires it. You can use the #ifdef and #endif declarations to place such targets in a separate section.