<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Keil 5.24 + AT45DB642D. Why so hard?</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/41999/keil-5-24-at45db642d-why-so-hard</link><description> 
Hi everyone! 
. I try to use EFS(Embedde File System) with Keil 5.24 for
AT45DB642D. 
I read manual
 www.keil.com/.../fs_create_app.html 

And config my project as described. For SPI flash. 
Initial current drive = F0. 

 
But i got a lot error after</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Keil 5.24 + AT45DB642D. Why so hard?</title><link>https://community.arm.com/thread/131716?ContentTypeID=1</link><pubDate>Sun, 21 Apr 2019 13:33:49 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:87945f70-2c03-4dbf-8261-bbae9bbd31e8</guid><dc:creator>Vladimir Timohin</dc:creator><description>&lt;p&gt;&lt;p&gt;
Hi everyone! The problem is solved.&lt;br /&gt;
For build AT45DB161D.c it&amp;#39;s better to use AT45DB642D.c&lt;br /&gt;
Because it&amp;#39;s correct to use : /* buf[4..7]: don&amp;#39;t care */&lt;br /&gt;
But in AT45DB641E.c use inappropriate: /* buf[4...5]: don&amp;#39;t care
*/&lt;/p&gt;

&lt;pre&gt;
static int32_t ReadData (uint32_t addr, void *data, uint32_t cnt) {
  uint32_t page_addr;
  uint32_t page_offs;
  uint8_t  buf[8];
  int32_t  result;

  if (data == NULL) {
    return ARM_DRIVER_ERROR_PARAMETER;
  }

  page_addr = addr / PAGE_SIZE;
  page_offs = addr % PAGE_SIZE;

  addr = (page_addr &amp;lt;&amp;lt; 11) | page_offs;

  /* Prepare Command with address */
  buf[0] = CMD_READ_DATA;
  buf[1] = (uint8_t)(addr &amp;gt;&amp;gt; 16);
  buf[2] = (uint8_t)(addr &amp;gt;&amp;gt;  8);
  buf[3] = (uint8_t)(addr &amp;gt;&amp;gt;  0);
  /* buf[4..7]: don&amp;#39;t care */

  /* Select Slave */
  result = ptrSPI-&amp;gt;Control(ARM_SPI_CONTROL_SS, ARM_SPI_SS_ACTIVE);
  if (result != ARM_DRIVER_OK) { return ARM_DRIVER_ERROR; }

  /* Send Command with Address */
  result = ptrSPI-&amp;gt;Send(buf, 8);
  if (result != ARM_DRIVER_OK) { goto transfer_error; }
  while (ptrSPI-&amp;gt;GetDataCount() != 8);
&lt;/pre&gt;

&lt;p&gt;
Best regards, Vladimir&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil 5.24 + AT45DB642D. Why so hard?</title><link>https://community.arm.com/thread/129623?ContentTypeID=1</link><pubDate>Sun, 14 Apr 2019 23:25:07 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:9a8725ee-a11a-43ea-a3e0-b2971b3e0cf7</guid><dc:creator>Vladimir Timohin</dc:creator><description>&lt;p&gt;&lt;p&gt;
Does anyone have Project example for Keil 5(EFS) + AT45xxx ?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil 5.24 + AT45DB642D. Why so hard?</title><link>https://community.arm.com/thread/121495?ContentTypeID=1</link><pubDate>Sun, 14 Apr 2019 13:24:11 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:09872243-937d-46da-86a4-8c9bb63efc49</guid><dc:creator>Vladimir Timohin</dc:creator><description>&lt;p&gt;&lt;p&gt;
Hi everyone!&lt;br /&gt;
I found solution for this problem.&lt;br /&gt;
It&amp;#39;s necessarry set DRIVER_SPI_NUM=1 for Spi_drive 1 in Target - &amp;gt;
C++ define.&lt;/p&gt;

&lt;p&gt;
But after that i have problem with SPI interchange.&lt;br /&gt;
There is no try to send or receive bytes.&lt;/p&gt;

&lt;p&gt;
fcheck (&amp;quot;F0:&amp;quot;) return: fsAccessDenied.&lt;/p&gt;

&lt;p&gt;
functions:&lt;br /&gt;
static int32_t ReadData (uint32_t addr, void *data, uint32_t cnt)&lt;br /&gt;
static ARM_FLASH_STATUS GetStatus (void)&lt;br /&gt;
Not calling.&lt;/p&gt;

&lt;p&gt;
How it is possible to see what is inside fcheck() functions.&lt;/p&gt;

&lt;p&gt;
P.S. finit(&amp;quot;F0:&amp;quot;) return fsOK.&lt;/p&gt;

&lt;p&gt;
Best regards, Vladimir.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil 5.24 + AT45DB642D. Why so hard?</title><link>https://community.arm.com/thread/118849?ContentTypeID=1</link><pubDate>Fri, 12 Apr 2019 14:42:11 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:46e4b422-babb-4bd4-8adc-3ade0f1ed14e</guid><dc:creator>Andrew Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
That&amp;#39;s a Linker error.&lt;/p&gt;

&lt;p&gt;
So you&amp;#39;ve used a function without providing any definition (aka
implementation) of it.&lt;/p&gt;

&lt;p&gt;
Most often, this is because you&amp;#39;ve #included a header, but have
not provided the corresponding source or binary library file.&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.keil.com/support/man/docs/armclang_err/armclang_err_dom1365073159742.htm"&gt;
&lt;a href="http://www.keil.com/support/man/docs/armclang_err/armclang_err_dom1365073159742.htm"&gt;www.keil.com/.../armclang_err_dom1365073159742.htm&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil 5.24 + AT45DB642D. Why so hard?</title><link>https://community.arm.com/thread/83969?ContentTypeID=1</link><pubDate>Fri, 12 Apr 2019 14:20:53 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:55715a4c-b5a6-4f8b-a527-67d037248c03</guid><dc:creator>Vladimir Timohin</dc:creator><description>&lt;p&gt;&lt;p&gt;
I decided to build new project. And after that i got next
error:&lt;/p&gt;

&lt;p&gt;
Error: L6218E: Undefined symbol Driver_SPI0 (referred from
at45db641e.o).&lt;/p&gt;

&lt;p&gt;
I have next RTE Configuration:&lt;/p&gt;

&lt;p&gt;
CMSIS -&amp;gt; Core&lt;br /&gt;
CMSIS -&amp;gt; RTOS2(API)-&amp;gt;Keil RTX5&lt;br /&gt;
CMSIS Driver -&amp;gt; Flash -&amp;gt; AT45DB642D&lt;br /&gt;
CMSIS Driver -&amp;gt; SPI(API) -&amp;gt; SPI&lt;br /&gt;
Compiler -&amp;gt; Event Recorder&lt;br /&gt;
Compiler -&amp;gt; I/O -&amp;gt; File&lt;br /&gt;
Device -&amp;gt; Startup&lt;br /&gt;
Device -&amp;gt; STM32Cube Framework (API) -&amp;gt; STM32CubeMX ( SPI #1
activated Full Duplex Mode)&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; Common&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; Cortex&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; DMA&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; GPIO&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; MDMA&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; PWR&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; RCC&lt;br /&gt;
Device -&amp;gt; STM32Cube HAL -&amp;gt; SPI&lt;br /&gt;
File System -&amp;gt; CORE&lt;br /&gt;
File System -&amp;gt; Drive -&amp;gt;NOR ( 1 pcs)&lt;/p&gt;

&lt;p&gt;
All drivers installed. How could i fix my error?&lt;/p&gt;

&lt;p&gt;
Best regards, Vladimir.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil 5.24 + AT45DB642D. Why so hard?</title><link>https://community.arm.com/thread/71202?ContentTypeID=1</link><pubDate>Fri, 12 Apr 2019 05:03:48 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b0e0a8e5-26d2-45e0-88d2-7127f65927a9</guid><dc:creator>Andrew Neil</dc:creator><description>&lt;p&gt;&lt;pre&gt;
error: #20: identifier &amp;quot;NOR_HandleTypeDef&amp;quot; is &lt;b&gt;undefined&lt;/b&gt;
&lt;/pre&gt;

&lt;p&gt;
and&lt;/p&gt;

&lt;pre&gt;
error: #20: identifier &amp;quot;NOR_IDTypeDef&amp;quot; is &lt;b&gt;undefined&lt;/b&gt;
&lt;/pre&gt;

&lt;p&gt;
it sounds like you have omitted to #include a required header file
or files ...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>