Are you able to write linkerfiles?
Yeah, but I admit there was a learning curve. That curve was made
much steeper than necessary because I followed a tutorial which gave false advice, and non-working linker script examples; having no tutorial at all would have been better. (The mistake was, it initialized the stack pointer to a value multiple of four, but not a multiple of eight, which is a requirement for
some ARM instructions.) ALIGN() is your friend...
You don't need to do it
completely from scratch - there is nothing wrong in looking at examples and modifying them to your needs, as long as you understand what they are doing, and what you want to do. Learning from autogenerated code and modifying it sucks, though, because it tends to be far from understandable or optimal.
After the initial hassle, I have had no issues. I routinely use the multitude of memory sections modern devices (above the most simple M0 devices) offer: different flash sectors (for erase granularity, storing data that keeps over firmware updates), core-coupled memories (standard ARM ITCM, DTCM, or vendor-specific), battery backup RAM, etc. All of this is extremely simple and work the same way once you understand how you enter the memory regions: just understand the linker script syntax, enter the memory map as shown in the device datasheet. It has worked the same way for decades, and will work the same way for decades to come, and is the same for all manufacturers. Finding the memory map from the right datasheet pdf is the biggest task, and may take as much as 5 minutes.
I recognize the biggest obstacle is in the lack of documentation: basically good examples and simple tutorials. Requiring people rely on autogeneration on a point-and-click gui is, IMHO, damaging. I'm OK with it being an optional extra, but it's sad how lacking the documentation and tutorials are.
My makefiles are just a few lines. Similarly, my peripheral init code tends to be 1/10th of lines of the equivalent autogenerated thing, and can be actually modified. There is very little magic in compiling for ARM microcontrollers. Stuff autogenerated by IDEs and code configurators make it
look complex. Autogenerators are like a workaholic who terrorises the company by doing excess work to demonstrate he's irreplaceable.