UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor edsutton
Visitor
7,782 Views
Registered: ‎02-25-2009

Source Code Verison Control - What file extensions and directories can be ignored?

I am experimenting with using Subversion version control under Windows. Does anyone know which file extensions and directories are outputs of the build process?  Basically I need to know which files should be version controlled and which ones not.  I am currently ignoring the following but suspect there are quite a few more:

 

File Extension to Ignore:

 

*.o *.lo .la *.al *.elf .libs *.so *.so.[0-9]* *.a *.pyc *.pyo ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp *.edn *.ncf *.ngo *.sym *.sch *.schbak *.schcmd *.xmsgs  .~ .~ ~.

 

 

Folders to Ignore:

 

cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj tmp Tmp __xps _xmsgs

 

Thanks in advance,

 

-Ed

6 Replies
Historian
Historian
7,769 Views
Registered: ‎02-25-2008

Re: Source Code Verison Control - What file extensions and directories can be ignored?


edsutton wrote:

I am experimenting with using Subversion version control under Windows. Does anyone know which file extensions and directories are outputs of the build process?  Basically I need to know which files should be version controlled and which ones not.  I am currently ignoring the following but suspect there are quite a few more:

 

File Extension to Ignore:

 

*.o *.lo .la *.al *.elf .libs *.so *.so.[0-9]* *.a *.pyc *.pyo ## .*.rej .rej .~ ~ .# .DS_Store thumbs.db Thumbs.db *.bak *.class *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk .msi .res *.pch *.suo *.exp *.edn *.ncf *.ngo *.sym *.sch *.schbak *.schcmd *.xmsgs  .~ .~ ~.

 

 

Folders to Ignore:

 

cvs CVS .CVS .cvs release Release debug Debug ignore Ignore bin Bin obj Obj tmp Tmp __xps _xmsgs

 

Thanks in advance,

 

-Ed


Welcome to the ninth circle of Hell!

 

The only EDK files I keep in my svn repo are:

 

.xmp

.mhs

.mss

 

You do NOT need to keep the following folders in the repo:

 

__xps

blkdiagram

data

etc

hdl

implementation

microblaze_0

synthesis

 

nor any of the log files.

 

If you use custom IP cores, then you must keep the cores in the repo, too. NB that my EDK projects are always subsets of a larger ISE project, and my "custom IP" talks to the outside world. Now this can get icky. Because we think the whole notion of custom IP cores and drivers is fundamentally broken, my designs have exactly one custom IP core that is a PLB slave. (We don't see the point of multiple instances of the slave PLB interface, which you'd get if each of your IP cores was implemented per Xilinx concepts.)  This PLB slave is simply a memory space -- no "registers" in the Xilinx PLB slave sense. All I care about is the clock, reset, slave memory space select (Bus2IP_CS), read/write flag, byte enables, data, address and acks. I do my own decoding in an entity called peripheral_core (which replaces user_logic).

 

Now here's a clever trick: all of the stuff that you'd normally share among different projects (say, an SPI master, or whatever) can be added as instances in periperhal_core and can be checked out as part of the project using the svn:externals property on the my_ipcore_v1_00_a directory.

 

So the upshot of all of this is that the pcores directory tree can be added to your project in the repo. The whole Xilinx concept of "local" and "shared" IP "repositories" is ignored (because it's stupid). We also don't implement "drivers" in the Xilinx sense, for the same reason. 

 

If you wish to stick with individual IP cores (say, an SPI master and a bunch of registers and a third that does something else), then it's trickier: the pcores directory itself should be in the main project's repo, and you should attach an svn:externals property to that which calls out your three cores.

 

Also, don't forget to keep your MicroBlaze/PPC C sources and the linker script in the repo. The rest I keep the applications in the repo as a separate project, again which checked out as part of the larger design because an svn:externals property is put on the  top-level EDK project directory. 

 

If you wish to use SDK, then welcome to the TENTH Circle Of Hell. It is not at all clear which of the zillions of XML files created by Eclipse are actually necessary to keep in the repo. So good luck with it.

 

--a

 

PS: I'm sure that 11.1i will break all of the above in some fundamental manner.

----------------------------Yes, I do this for a living.
Visitor edsutton
Visitor
7,746 Views
Registered: ‎02-25-2009

Re: Source Code Verison Control - What file extensions and directories can be ignored?

Wow! Excellent information!

 

I tried removing the folders you specified before adding them to the Subversion repository.  I must still be excluding an important file type.  When I compile the PowerPc project source code I get: ERROR:MDT - Invalid target speed '-10'.  Would you know what type of file I may have excluded?

 

At Local date and time: Mon Mar 02 14:57:10 2009
 make -f EDK_CORE.make Lwip_Packets_program started...
*********************************************
Creating software libraries...
*********************************************
libgen -mhs EDK_CORE.mhs -p xc4vfx20ff672-10  EDK_CORE.mss
libgen
Xilinx EDK 10.1.03 Build EDK_K_SP3.6
Copyright (c) 1995-2008 Xilinx, Inc.  All rights reserved.
ERROR:MDT - Invalid target speed '-10'
make: *** [ppc405_0/lib/libxil.a] Error 2
Done!

 

Thanks again for the great information!

 

-Ed

0 Kudos
Explorer
Explorer
7,739 Views
Registered: ‎07-08-2008

Re: Source Code Verison Control - What file extensions and directories can be ignored?

Hi,

 

I will not help you a lot but -10 is part of partname you typed in command line:

-p {device}{package}-{speed}

 

In you case these are the numbers:  libgen -mhs EDK_CORE.mhs -p xc4vfx20ff672-10  EDK_CORE.mss


Greetings, Mariusz

--
Mariusz Grad.
0 Kudos
Newbie gnubilly2
Newbie
6,927 Views
Registered: ‎06-05-2009

Re: Source Code Verison Control - What file extensions and directories can be ignored?

Thanks for all the good info.  SVN with Xilinx is very painful.

 

The only thing I would add would be to add the data directory to the list of directories to include in your archive since it contains the .ucf file which may be customized to get the proper I/O standards, pinouts etc. 

 

Cheers,

 

Bill

0 Kudos
Contributor
Contributor
6,907 Views
Registered: ‎02-12-2009

Re: Source Code Verison Control - What file extensions and directories can be ignored?

I use SVN with the SDK, and I include only the source files (.c and .h). All the other files can be created by the SDK.

 

When I checkout a project from SVN, I just go into the SDK and create the sw projects again and ask SDK not to make a dummy main.c file. As long as you specify the same source directories as where your source files are, this works fine.

0 Kudos
Xilinx Employee
Xilinx Employee
6,903 Views
Registered: ‎08-07-2007

Re: Source Code Verison Control - What file extensions and directories can be ignored?

Hi Ed,

 

You will need the files in those 4 folders to run XPS:

__xps

blkdiagram

data

etc.

 

The _xps and  blkdiagram folders can be created by XPS automatically (it they don't exist, XPS will create them). 

The data folder has the UCF, which you should sync IM.The etc constains all of the options files. Those two folders shouldn't be removed since XPS won't re-create them.

 

-XF

 

0 Kudos