<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Kinetis MicrocontrollersのトピックRe: Loader</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Loader/m-p/273577#M9514</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know much about kinetis but in order to reallocate code in other memory region you need the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In compile time you need the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Your flash memory should be iomap that mean is mapped to a memory region and is not a SPI , etc device.&lt;/P&gt;&lt;P&gt;2) Depending of you linker you need to make or edit a linker control file in order to place the object file which those functions in the desired address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A example of this lets take i.mx6 u-boot input file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENTRY(_start)&lt;/P&gt;&lt;P&gt;SECTIONS&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = 0x00000000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* WARNING - the following is hand-optimized to fit within&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* the sector layout of our flash chips!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXX FIXME XXX&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; board/freescale/mx6q_sabreauto/flash_header.o (.text.flasheader)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu/arm_cortexa8/start.o&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; board/freescale/mx6q_sabreauto/libmx6q_sabreauto.a&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lib_arm/libarm.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net/libnet.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drivers/mtd/libmtd.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drivers/mmc/libmmc.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;On this one is creating a sections which start at address 00000 then all the .text section(only the code)&amp;nbsp; from all the object files are placed as they appear.&lt;/P&gt;&lt;P&gt;For more information about this you could read:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.math.utah.edu/docs/info/ld_3.html" title="http://www.math.utah.edu/docs/info/ld_3.html"&gt;Using LD, the GNU linker - Command Language&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In run time is more hard and you need to create a loader which place in flash those function track destiny address and parses all the references to those functions and fix that in code.&lt;/P&gt;&lt;P&gt;Some general information about that is available in&amp;nbsp; &lt;A href="http://www.iecc.com/linker/" title="http://www.iecc.com/linker/"&gt;Linkers and Loaders&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know exactly which linker is using the Kinetis but maybe the compiler suit had some facilities which makes this more easy, I would recommend look in the compiler help if there's one .&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;-Israel.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Oct 2013 13:41:10 GMT</pubDate>
    <dc:creator>israelpz</dc:creator>
    <dc:date>2013-10-10T13:41:10Z</dc:date>
    <item>
      <title>Loader</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Loader/m-p/273576#M9513</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I'm preparing loader for &lt;A href="http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=KL2x"&gt;kl25&lt;/A&gt; and I would like to know, how I may change location in flash memory of function:&lt;/P&gt;&lt;P&gt;__init_registers();&lt;/P&gt;&lt;P&gt;__init_hardware();&lt;/P&gt;&lt;P&gt;__init_harware();&lt;/P&gt;&lt;P&gt;__load_static_base();&lt;/P&gt;&lt;P&gt;__init_pic();&lt;/P&gt;&lt;P&gt;__copy_rom_sectons_to_ram();&lt;/P&gt;&lt;P&gt;__fp_init();&lt;/P&gt;&lt;P&gt;__call_static_initializers();&lt;/P&gt;&lt;P&gt;__init_user();&lt;/P&gt;&lt;P&gt;__init_semihost();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and what for are these functions?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Oct 2013 12:44:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Loader/m-p/273576#M9513</guid>
      <dc:creator>Markon</dc:creator>
      <dc:date>2013-10-10T12:44:38Z</dc:date>
    </item>
    <item>
      <title>Re: Loader</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Loader/m-p/273577#M9514</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know much about kinetis but in order to reallocate code in other memory region you need the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In compile time you need the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Your flash memory should be iomap that mean is mapped to a memory region and is not a SPI , etc device.&lt;/P&gt;&lt;P&gt;2) Depending of you linker you need to make or edit a linker control file in order to place the object file which those functions in the desired address.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A example of this lets take i.mx6 u-boot input file&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENTRY(_start)&lt;/P&gt;&lt;P&gt;SECTIONS&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = 0x00000000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .text&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* WARNING - the following is hand-optimized to fit within&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* the sector layout of our flash chips!&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXX FIXME XXX&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; board/freescale/mx6q_sabreauto/flash_header.o (.text.flasheader)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu/arm_cortexa8/start.o&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; board/freescale/mx6q_sabreauto/libmx6q_sabreauto.a&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lib_arm/libarm.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; net/libnet.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drivers/mtd/libmtd.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drivers/mmc/libmmc.a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (.text)&lt;/P&gt;&lt;P&gt;On this one is creating a sections which start at address 00000 then all the .text section(only the code)&amp;nbsp; from all the object files are placed as they appear.&lt;/P&gt;&lt;P&gt;For more information about this you could read:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.math.utah.edu/docs/info/ld_3.html" title="http://www.math.utah.edu/docs/info/ld_3.html"&gt;Using LD, the GNU linker - Command Language&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In run time is more hard and you need to create a loader which place in flash those function track destiny address and parses all the references to those functions and fix that in code.&lt;/P&gt;&lt;P&gt;Some general information about that is available in&amp;nbsp; &lt;A href="http://www.iecc.com/linker/" title="http://www.iecc.com/linker/"&gt;Linkers and Loaders&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know exactly which linker is using the Kinetis but maybe the compiler suit had some facilities which makes this more easy, I would recommend look in the compiler help if there's one .&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;-Israel.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Oct 2013 13:41:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Loader/m-p/273577#M9514</guid>
      <dc:creator>israelpz</dc:creator>
      <dc:date>2013-10-10T13:41:10Z</dc:date>
    </item>
  </channel>
</rss>

