<?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>FX2 cyusb.dll driver won&amp;#39;t LoadRAM()</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/22591/fx2-cyusb-dll-driver-won-t-loadram</link><description> 
I have an fw.hex file compiled wth Keil that works good on my FX2
Dev Board and loading it with the Control Panel. 
Now I&amp;#39;m writing a C# Windows Application to work with it. I&amp;#39;m using
the provided cyusb.dll. and I can&amp;#39;t get it to load fw.hex to RAM</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/148050?ContentTypeID=1</link><pubDate>Mon, 11 Aug 2008 14:15:44 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7be45439-0c0f-4afb-85af-8fb0af128974</guid><dc:creator>Tsuneo Chinzei</dc:creator><description>&lt;p&gt;&lt;p&gt;
Pascal,&lt;/p&gt;

&lt;p&gt;
I don&amp;#39;t think the topic is so useful.&lt;br /&gt;
&lt;a href="http://www.keil.com/forum/docs/thread6363.asp"&gt;http://www.keil.com/forum/docs/thread6363.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
It just says Ran Shalgi&amp;#39;s problem seems to be fixed
&lt;b&gt;temporarily&lt;/b&gt; by&lt;br /&gt;
&lt;i&gt;&amp;quot;change linker settings to start code placement at 0x200 and
onwards.&amp;quot;&lt;/i&gt;&lt;br /&gt;
And the reason that Ran Shalgi and Erik suggested are wrong.&lt;/p&gt;

&lt;p&gt;
Ran Shalgi wrote,&lt;br /&gt;
&lt;i&gt;&amp;quot;Cypress initialization code copies the USB descriptors to RAM
address 0x80.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
There is no such function on EZ-USB.&lt;br /&gt;
The USB descriptor is provided by the firmware code.&lt;br /&gt;
And On the EZ-USB architecture, CODE and XDATA spaces share the same
XRAM.&lt;br /&gt;
Why does it need to copy the USB descriptors?&lt;/p&gt;

&lt;p&gt;
Also, even if such function would be there,&lt;br /&gt;
why the problem is not revealed until the code size grows?&lt;br /&gt;
As the default, KEIL linker always stuffs the code space from the low
address first.&lt;/p&gt;

&lt;p&gt;
And Erik suggested FIFO/GPIF Autovector of EZ-USB extended
interrupt.&lt;br /&gt;
Actually, this vectors are placed on 0x&lt;b&gt;0480 - 0x04B4&lt;/b&gt;.&lt;br /&gt;
It&amp;#39;s beyond the problematic address, 0x0200&lt;br /&gt;
Then, this vectors are completely irrelevant to the issue.&lt;/p&gt;

&lt;p&gt;
This autovector is enabled by AV4EN=1 in the INTSETUP
register.&lt;br /&gt;
Did you enable this flag?&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;In the linker I have to configure the code area starting at
address 0x200&lt;br /&gt;
otherwise when code size is greater than 11ko the linker put code at
address 0,&lt;br /&gt;
when area between 0x00 and 0x80 is reserved for FX2.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
On the code space, 0x0000-0x0080, reset and interrupt vectors are
placed.&lt;br /&gt;
The linker handles this space properly,&lt;br /&gt;
as long as you use &amp;quot;interrupt&amp;quot; specifier correctly, without extra
linker setting.&lt;br /&gt;
Then, this is not the reason why you need the extra linker
setting.&lt;/p&gt;

&lt;p&gt;
Check the map file (.M51) for CODE and XDATA assignment.&lt;/p&gt;

&lt;p&gt;
Programming is not a voodoo magic.&lt;br /&gt;
Find out the real reason and fix it.&lt;br /&gt;
Otherwise, you&amp;#39;ll get into trouble again.&lt;/p&gt;

&lt;p&gt;
Tsuneo&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/148045?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2008 09:37:20 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:78d532b6-0040-45bd-aadf-6e8982eaf3c7</guid><dc:creator>Gabriel Camiro</dc:creator><description>&lt;p&gt;&lt;p&gt;
Let me check that out and I&amp;#39;ll post results.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/147430?ContentTypeID=1</link><pubDate>Thu, 07 Aug 2008 09:11:29 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d4139096-f920-4710-954f-ce78205f3892</guid><dc:creator>Pascal Pelllet</dc:creator><description>&lt;p&gt;&lt;p&gt;
I found another post that solve my problem:&lt;br /&gt;
&lt;a href="http://www.keil.com/forum/docs/thread6363.asp"&gt;http://www.keil.com/forum/docs/thread6363.asp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
In the linker I have to configure the code area starting at
address 0x200 otherwise when code size is greater than 11ko the
linker put code at address 0, when area between 0x00 and 0x80 is
reserved for FX2.&lt;br /&gt;
I hope this solution resolve your problem too.&lt;/p&gt;

&lt;p&gt;
Pascal&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/146237?ContentTypeID=1</link><pubDate>Wed, 06 Aug 2008 10:01:41 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:62918f04-595f-47b4-a5c4-f90809815c5e</guid><dc:creator>Gabriel Camiro</dc:creator><description>&lt;p&gt;&lt;p&gt;
I think that if I program a firmware loader that is small enough
that I can load it from eeprom to internal memory at power-up. Then
transfer the code with EP0 to the FX2 and the loader firmware movx
data to external memory and reenumerate.&lt;br /&gt;
Does that sound like a good idea?&lt;br /&gt;
Now, any help on that would be thanked!&lt;br /&gt;
Gabriel Camiro&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/144441?ContentTypeID=1</link><pubDate>Wed, 06 Aug 2008 09:34:54 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:aea0c85f-f359-4aad-9fe0-0b56f98d9031</guid><dc:creator>Pascal Pelllet</dc:creator><description>&lt;p&gt;&lt;p&gt;
I think i have the same problem: I cannot download a firmware
bigger than 11ko in the internal RAM of the FX2LP.&lt;br /&gt;
To download into the internal RAM, the FX2 has a Vendor command
(0xA0, see FX2 Datasheet). I think that Cypress tools uses this
command. to download into external RAM, a loader must be downloaded
into internal RAM before.&lt;/p&gt;

&lt;p&gt;
When I compile my firmware with Keil tools, I have no error
message, but I cannot execute it on the target.&lt;/p&gt;

&lt;p&gt;
In my firmware, I have two different vendor commands. If I compile
it separately, (program size is under 11Ko), it runs, but If i
compile the firmware with both commands (program size is above 11ko)
it crashes!!&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/142075?ContentTypeID=1</link><pubDate>Mon, 21 Jul 2008 14:52:01 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:44d76556-2df1-42e5-9feb-7e847889676a</guid><dc:creator>Gabriel Camiro</dc:creator><description>&lt;p&gt;&lt;p&gt;
No, I have the latest software and same results. I wonder how to
load firmware manually?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/138852?ContentTypeID=1</link><pubDate>Sat, 19 Jul 2008 01:58:50 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c473305d-9c5a-400e-97b0-23a4b21678d7</guid><dc:creator>Tsuneo Chinzei</dc:creator><description>&lt;p&gt;&lt;p&gt;
I don&amp;#39;t think the routine distinguishes on-chip XRAM and external
one,&lt;br /&gt;
because hardware configuration (EA pins) does it.&lt;br /&gt;
Firmware cannot select on-chip or external.&lt;/p&gt;

&lt;p&gt;
Original FX2 had 8KBytes on-chip XRAM, current FX2LP extends it to
16KB.&lt;/p&gt;

&lt;p&gt;
Did the new version fixes the bug?&lt;/p&gt;

&lt;p&gt;
Tsuneo&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/130347?ContentTypeID=1</link><pubDate>Fri, 18 Jul 2008 21:21:57 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:bee9bbaf-9e82-4964-af38-d1290da66b9f</guid><dc:creator>Gabriel Camiro</dc:creator><description>&lt;p&gt;&lt;p&gt;
Well FX2 has only 8k or RAM for that purpose. So my firmware is
10k and most of the sample firmware are bigger than that. So how is
it loaded to the Chip. It has to be running on external RAM in the
128k chip in the dev board.&lt;br /&gt;
Am I wrong?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/124820?ContentTypeID=1</link><pubDate>Fri, 18 Jul 2008 18:45:25 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:4216b243-7aba-4f58-a6b3-0336470300a6</guid><dc:creator>Tsuneo Chinzei</dc:creator><description>&lt;p&gt;&lt;p&gt;
&lt;i&gt;&amp;quot;What I read is that LoadRAM() is wouldn&amp;#39;t load programs to
external memory.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
The expression of the reference has misled you.&lt;/p&gt;

&lt;p&gt;
&lt;i&gt;&amp;quot;The LoadRAM method of CyFX2Device writes the contents of an
.iic or a .hex file to the &lt;b&gt;internal&lt;/b&gt; RAM of an FX2 device and
then, re-starts the device, running the new downloaded firmware. The
file containing the firmware image is named in the fwFile
paramter.&amp;quot;&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
This &amp;quot;internal&amp;quot; RAM means on-chip XRAM, which serves also as CODE
space. Anyway, you cannot run any firmware on IRAM.&lt;/p&gt;

&lt;p&gt;
Tsuneo&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/114127?ContentTypeID=1</link><pubDate>Fri, 18 Jul 2008 11:39:07 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:6f4d852b-14ce-4599-aa43-f7c5f99fb65d</guid><dc:creator>Gabriel Camiro</dc:creator><description>&lt;p&gt;&lt;p&gt;
Well I have the newest version of the cyusb.dll.&lt;br /&gt;
What I read is that LoadRAM() is wouldn&amp;#39;t load programs to external
memory. So how does the supplied Control Panel does to load programs
to fx2?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/100915?ContentTypeID=1</link><pubDate>Fri, 18 Jul 2008 07:56:05 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:419b2f1c-d9e1-4c03-a124-8767c254dffc</guid><dc:creator>Gabriel Camiro</dc:creator><description>&lt;p&gt;&lt;p&gt;
I will check that. Any other method to load my .hex to the
external memory of FX2?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/76501?ContentTypeID=1</link><pubDate>Thu, 17 Jul 2008 23:26:18 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d985c9f9-4fcb-494e-ae83-d099931555bc</guid><dc:creator>Tsuneo Chinzei</dc:creator><description>&lt;p&gt;&lt;p&gt;
I&amp;#39;ve not used SuiteUSB, but watch Cypress regularly. :-)&lt;/p&gt;

&lt;p&gt;
What is the version of SuiteUSB ?&lt;br /&gt;
Recently, Cypress put this web page&lt;/p&gt;

&lt;p&gt;
SuiteUSB.NET 2.0 &lt;b&gt;(2)&lt;/b&gt;&lt;br /&gt;
Last Updated 2 Jul, 2008&lt;/p&gt;

&lt;p&gt;
On this page, they distribute newer version of SuiteUSB&lt;br /&gt;

&lt;a href="http://download.cypress.com.edgesuite.net/design_resources/reference_designs/contents/suiteusb_net_2_0___usb_development_tools_for_visual_studio_2005_and__net_2_0_3_0_19.msi"&gt;download.cypress.com.edgesuite.net/.../suiteusb_net_2_0___usb_development_tools_for_visual_studio_2005_and__net_2_0_3_0_19.msi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
The former version was 2_0_3_0_14.&lt;/p&gt;

&lt;p&gt;
Tsuneo&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FX2 cyusb.dll driver won't LoadRAM()</title><link>https://community.arm.com/thread/52064?ContentTypeID=1</link><pubDate>Thu, 17 Jul 2008 14:59:40 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:502cd5b2-17b0-4ff2-bd07-cd9502f26260</guid><dc:creator>Gabriel Camiro</dc:creator><description>&lt;p&gt;&lt;p&gt;
Just an update. I&amp;#39;ve tried loading LED Cycle which is 227 bytes
long and it loads good. Anything larger won&amp;#39;t load. Might be some
size factor?&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>