<?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>topic Re: CAN base address align restriction in LPC55 in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1403850#M47729</link>
    <description>&lt;P&gt;I will go with it ! I didn't think about this workaround.&lt;BR /&gt;&lt;BR /&gt;Thank you !&lt;/P&gt;</description>
    <pubDate>Mon, 24 Jan 2022 08:44:54 GMT</pubDate>
    <dc:creator>ValentinCh</dc:creator>
    <dc:date>2022-01-24T08:44:54Z</dc:date>
    <item>
      <title>CAN base address align restriction in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1356431#M46805</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I recently post a &lt;A href="https://community.nxp.com/t5/LPC-Microcontrollers/Linker-fail-LPC55/m-p/1355863#M46793" target="_blank" rel="noopener"&gt;question&lt;/A&gt; because I had a rare RAM problem. Finally I realized that the reason of the problem came from the need to align the CAN0_RAM_BASE_ADDRESS to 0x10000.&lt;/P&gt;&lt;P&gt;The CAN0_RAM_BASE_ADDRESS is linked into the &lt;STRONG&gt;&lt;EM&gt;.bss&lt;/EM&gt;&lt;/STRONG&gt; section. By default in the linker_file.ld automate generated by the MCUxpresso, the .bss output section comes after the &lt;STRONG&gt;&lt;EM&gt;.data&lt;/EM&gt;&lt;/STRONG&gt; output section, and both are linked into the &lt;STRONG&gt;RAM_0_1_2&lt;/STRONG&gt; (0x20000000). This RAM has a lenght of 0x10000.&lt;/P&gt;&lt;P&gt;So, if &lt;EM&gt;&lt;STRONG&gt;.data&lt;/STRONG&gt;&lt;/EM&gt; is not empty, CAN0_RAM_BASE_ADDRESS can not be linked into the address 0x20000000 because it is already use by &lt;EM&gt;&lt;STRONG&gt;.data&lt;/STRONG&gt;&lt;/EM&gt; vars, and the following address aligned to 0x10000, is 0x20010000, and unfortunetly is out of range of the &lt;STRONG&gt;RAM_0_1_2&lt;/STRONG&gt;.&lt;/P&gt;&lt;P&gt;This restricion make quiet unuseful the CAN module using CAN_MSG_RAM_BASE, because any static var initialization will cause a compilation error due to RAM out of range fail.&lt;/P&gt;&lt;P&gt;I found a workaround, using a manual .ld file and puting the .data after the .bss, but I don't like pretty much.&lt;/P&gt;&lt;P&gt;In my opinion this CAN module has a very big restriction with the alignment and the range memory of this microcontroler, and is something that should be take in consideration in following developments.&lt;/P&gt;&lt;P&gt;This post is just to help someone that have had the same problem, and to open a discousion about it findig a better solution.&lt;/P&gt;</description>
      <pubDate>Mon, 18 Oct 2021 07:38:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1356431#M46805</guid>
      <dc:creator>javiervallori</dc:creator>
      <dc:date>2021-10-18T07:38:41Z</dc:date>
    </item>
    <item>
      <title>Re: CAN base address align restriction in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1367383#M46932</link>
      <description>&lt;P&gt;This problem will be fixed in&amp;nbsp;SDK 2.11.0 Major Release.&lt;/P&gt;
&lt;P&gt;Thank you for bringing the problem to our attention!&lt;/P&gt;
&lt;P&gt;Best Regards&lt;/P&gt;
&lt;P&gt;Jun Zhang&lt;/P&gt;</description>
      <pubDate>Fri, 05 Nov 2021 14:36:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1367383#M46932</guid>
      <dc:creator>ZhangJennie</dc:creator>
      <dc:date>2021-11-05T14:36:02Z</dc:date>
    </item>
    <item>
      <title>Re: CAN base address align restriction in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1403426#M47713</link>
      <description>&lt;P&gt;Hi,&lt;BR /&gt;&lt;BR /&gt;I'm facing the same issue.&lt;BR /&gt;I've downloaded the 2.11 SDK and&amp;nbsp;the bug does not seem to have been fixed.&lt;BR /&gt;(I need to put the bss section before the data section)&lt;BR /&gt;&lt;BR /&gt;Do you have any updates ?&lt;/P&gt;</description>
      <pubDate>Fri, 21 Jan 2022 19:42:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1403426#M47713</guid>
      <dc:creator>ValentinCh</dc:creator>
      <dc:date>2022-01-21T19:42:43Z</dc:date>
    </item>
    <item>
      <title>Re: CAN base address align restriction in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1403767#M47726</link>
      <description>&lt;P&gt;Hi Valentin,&lt;/P&gt;&lt;P&gt;I get an alternative workaround from NXP, maybe more simple because it is just a small code change in the peripheral.c file. They propouse to add a forced CAN_MESSAGE_RAM initialization avoiding to put it in the .bss.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;SDK_ALIGN(uint32_t CAN0_RAM_BASE_ADDRESS[CAN0_MESSAGE_RAM_SIZE], CAN0_BASE_ADDRESS_ALIGN_SIZE)&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt; = {1}&lt;/FONT&gt;&lt;/STRONG&gt;;&lt;/PRE&gt;&lt;P&gt;I hope it helps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 24 Jan 2022 07:07:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1403767#M47726</guid>
      <dc:creator>javiervallori</dc:creator>
      <dc:date>2022-01-24T07:07:37Z</dc:date>
    </item>
    <item>
      <title>Re: CAN base address align restriction in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1403850#M47729</link>
      <description>&lt;P&gt;I will go with it ! I didn't think about this workaround.&lt;BR /&gt;&lt;BR /&gt;Thank you !&lt;/P&gt;</description>
      <pubDate>Mon, 24 Jan 2022 08:44:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1403850#M47729</guid>
      <dc:creator>ValentinCh</dc:creator>
      <dc:date>2022-01-24T08:44:54Z</dc:date>
    </item>
    <item>
      <title>Re: CAN base address align restriction in LPC55</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1508999#M49909</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;PRE&gt;SDK_ALIGN(uint32_t CAN0_RAM_BASE_ADDRESS[CAN0_MESSAGE_RAM_SIZE], CAN0_BASE_ADDRESS_ALIGN_SIZE)&lt;STRONG&gt;&lt;FONT color="#FF0000"&gt; = {1}&lt;/FONT&gt;&lt;/STRONG&gt;;&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;This is a working solution.&lt;/P&gt;&lt;P&gt;I'm not that familiar with the CONFIG TOOL yet, but will this manually inserted change (in peripheral.c) be overwritten every time I click "re-generate/update code" in CONFIG TOOL?&lt;/P&gt;&lt;P&gt;Or is there any workaround, so that the CONFIG TOOL does not overwrite the manually inserted change?&lt;/P&gt;</description>
      <pubDate>Fri, 19 Aug 2022 21:16:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/CAN-base-address-align-restriction-in-LPC55/m-p/1508999#M49909</guid>
      <dc:creator>SynBilly</dc:creator>
      <dc:date>2022-08-19T21:16:13Z</dc:date>
    </item>
  </channel>
</rss>

