Sanify the MCU linker scripts

We now have SRAM_L and SRAM_U split apart. Otherwise, it's just a matter
of time before the linker splits something across them which the
compiler tries accessing with ldrd or something and causes mysterious
problems at runtime.

Also, the new arrangement has the stack grow off the end of RAM, so
instead of clobbering the heap you'll just get a hard fault if you
overflow the stack.

Change-Id: I3c18ac665b48ddc0456e0a1ef34213dcac8e9c85
diff --git a/tools/cpp/gen_crosstool.py b/tools/cpp/gen_crosstool.py
index 547faf0..ec70e11 100644
--- a/tools/cpp/gen_crosstool.py
+++ b/tools/cpp/gen_crosstool.py
@@ -47,13 +47,16 @@
       '%NAME%': 'cortex-m4f',
       '%CPU%': '__MK64FX512__',
       '%F_CPU%': '120000000',
-      '%LINKER_SCRIPT%': 'motors/core/kinetis_192k.ld',
+      '%LINKER_SCRIPT%': 'motors/core/kinetis_512_256.ld',
       })
+  # TODO(Brian): The parts we actually use have 1M of FLASH. Do we want to take
+  # advantage, or maintain compatibility with alternative parts that use some
+  # of it for EEPROM/FlexMem/etc?
   add_m4f_toolchain(crosstool_proto.toolchain.add(), m4f_proto, {
       '%NAME%': 'cortex-m4f-k22',
       '%CPU%': '__MK22FX512__',
       '%F_CPU%': '120000000',
-      '%LINKER_SCRIPT%': 'motors/core/kinetis_128k.ld',
+      '%LINKER_SCRIPT%': 'motors/core/kinetis_512_128.ld',
       })
 
   with open(args[2], 'w') as f: