bla
This commit is contained in:
parent
9ac343fc45
commit
72be7b0c2f
@ -252,8 +252,8 @@ namespace Matomat
|
|||||||
}
|
}
|
||||||
Factory.getLCD().print("Koffein im Umlauf: " + k.ToString().PadLeft(4, ' ') + " mg (" + avg.ToString().PadLeft(4, ' ') + " mg/Per)" +
|
Factory.getLCD().print("Koffein im Umlauf: " + k.ToString().PadLeft(4, ' ') + " mg (" + avg.ToString().PadLeft(4, ' ') + " mg/Per)" +
|
||||||
"²²²²²²²²²²²²²²²²²²²²²²²²²²²²" + p[0] +
|
"²²²²²²²²²²²²²²²²²²²²²²²²²²²²" + p[0] +
|
||||||
"² MATOMAT Wilkommen! ²" + p[1] +
|
"² MATOMAT Willkommen! ²" + p[1] +
|
||||||
"² Frohes genießen der Mate ²" + p[2]);
|
"² Frohes Genießen der Mate ²" + p[2]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void showUserInfo(User user)
|
public static void showUserInfo(User user)
|
||||||
|
@ -29,10 +29,13 @@
|
|||||||
<DebugType>pdbonly</DebugType>
|
<DebugType>pdbonly</DebugType>
|
||||||
<Optimize>true</Optimize>
|
<Optimize>true</Optimize>
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
<DefineConstants>TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ApplicationIcon>icon.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="mysql.data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
<Reference Include="mysql.data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
@ -90,6 +93,7 @@
|
|||||||
<Content Include="dll\mysql.data.entity.dll" />
|
<Content Include="dll\mysql.data.entity.dll" />
|
||||||
<Content Include="dll\mysql.visualstudio.dll" />
|
<Content Include="dll\mysql.visualstudio.dll" />
|
||||||
<Content Include="dll\mysql.web.dll" />
|
<Content Include="dll\mysql.web.dll" />
|
||||||
|
<Content Include="icon.ico" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
|
@ -41,9 +41,11 @@ namespace Matomat.Output
|
|||||||
private volatile bool _shouldStop;
|
private volatile bool _shouldStop;
|
||||||
private SerialPort serialPort;
|
private SerialPort serialPort;
|
||||||
private bool disable = false;
|
private bool disable = false;
|
||||||
|
private string ComPort;
|
||||||
|
|
||||||
private LCDDisplay(string port)
|
private LCDDisplay(string port)
|
||||||
{
|
{
|
||||||
|
this.ComPort = port;
|
||||||
this.serialPort = new SerialPort(port, 19200, Parity.None, 8, StopBits.One);
|
this.serialPort = new SerialPort(port, 19200, Parity.None, 8, StopBits.One);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -132,6 +134,14 @@ namespace Matomat.Output
|
|||||||
text = text.PadRight(160, ' ');
|
text = text.PadRight(160, ' ');
|
||||||
text = text.Substring(0, 40) + "\n" + text.Substring(40, 40) + "\n" + text.Substring(80, 40) + "\n" + text.Substring(120, 40);
|
text = text.Substring(0, 40) + "\n" + text.Substring(40, 40) + "\n" + text.Substring(80, 40) + "\n" + text.Substring(120, 40);
|
||||||
Console.WriteLine(text);
|
Console.WriteLine(text);
|
||||||
|
if (!disable)
|
||||||
|
{
|
||||||
|
if (this.serialPort.IsOpen)
|
||||||
|
{
|
||||||
|
this.serialPort.Close();
|
||||||
|
}
|
||||||
|
this.serialPort.Open();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void displayClear()
|
private void displayClear()
|
||||||
|
@ -11,7 +11,7 @@ using System.Resources;
|
|||||||
[assembly: AssemblyConfiguration("")]
|
[assembly: AssemblyConfiguration("")]
|
||||||
[assembly: AssemblyCompany("BlubbFish")]
|
[assembly: AssemblyCompany("BlubbFish")]
|
||||||
[assembly: AssemblyProduct("Matomat")]
|
[assembly: AssemblyProduct("Matomat")]
|
||||||
[assembly: AssemblyCopyright("Copyright © BlubbFish 2013")]
|
[assembly: AssemblyCopyright("Copyright © BlubbFish 2013-2014")]
|
||||||
[assembly: AssemblyTrademark("")]
|
[assembly: AssemblyTrademark("")]
|
||||||
[assembly: AssemblyCulture("")]
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
@ -33,6 +33,6 @@ using System.Resources;
|
|||||||
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||||
// übernehmen, indem Sie "*" eingeben:
|
// übernehmen, indem Sie "*" eingeben:
|
||||||
// [assembly: AssemblyVersion("1.0.*")]
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
[assembly: AssemblyVersion("1.0.0.1")]
|
[assembly: AssemblyVersion("1.0.0.2")]
|
||||||
[assembly: AssemblyFileVersion("1.0.0.1")]
|
[assembly: AssemblyFileVersion("1.0.0.2")]
|
||||||
[assembly: NeutralResourcesLanguageAttribute("de-DE")]
|
[assembly: NeutralResourcesLanguageAttribute("de-DE")]
|
||||||
|
BIN
Matomat/icon.ico
Normal file
BIN
Matomat/icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.8 KiB |
8
firmware/.dep/Cstartup_SAM7.o.d
Normal file
8
firmware/.dep/Cstartup_SAM7.o.d
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
src/start/Cstartup_SAM7.o: src/start/Cstartup_SAM7.c include/board.h \
|
||||||
|
include/AT91SAM7.h include/lib_AT91SAM7.h
|
||||||
|
|
||||||
|
include/board.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
46
firmware/.dep/blinkcode.o.d
Normal file
46
firmware/.dep/blinkcode.o.d
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
src/os/blinkcode.o: src/os/blinkcode.c src/os/pit.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
src/os/dbgu.h src/os/led.h src/os/blinkcode.h
|
||||||
|
|
||||||
|
src/os/pit.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/led.h:
|
||||||
|
|
||||||
|
src/os/blinkcode.h:
|
3
firmware/.dep/ctype.o.d
Normal file
3
firmware/.dep/ctype.o.d
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
lib/ctype.o: lib/ctype.c include/asm/ctype.h
|
||||||
|
|
||||||
|
include/asm/ctype.h:
|
67
firmware/.dep/dbgu.o.d
Normal file
67
firmware/.dep/dbgu.o.d
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
src/dfu/dbgu.o: src/dfu/dbgu.c include/lib_AT91SAM7.h include/AT91SAM7.h \
|
||||||
|
include/board.h src/dfu/dbgu.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/board.h:
|
||||||
|
|
||||||
|
src/dfu/dbgu.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
86
firmware/.dep/dfu.o.d
Normal file
86
firmware/.dep/dfu.o.d
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
src/dfu/dfu.o: src/dfu/dfu.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
include/usb_ch9.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/usb_dfu.h include/board.h include/AT91SAM7.h \
|
||||||
|
include/lib_AT91SAM7.h src/pcd/usb_strings_dfu.h src/dfu/dfu.h \
|
||||||
|
src/dfu/../config.h src/dfu/dbgu.h src/os/flash.h src/os/pcd_enumerate.h \
|
||||||
|
include/asm/atomic.h include/asm/system.h include/asm/compiler.h \
|
||||||
|
include/openpcd.h src/dfu/../openpcd.h include/compile.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
include/board.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
src/pcd/usb_strings_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/dfu/dbgu.h:
|
||||||
|
|
||||||
|
src/os/flash.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/dfu/../openpcd.h:
|
||||||
|
|
||||||
|
include/compile.h:
|
57
firmware/.dep/fifo.o.d
Normal file
57
firmware/.dep/fifo.o.d
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
src/os/fifo.o: src/os/fifo.c src/os/fifo.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h
|
||||||
|
|
||||||
|
src/os/fifo.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
46
firmware/.dep/flash.o.d
Normal file
46
firmware/.dep/flash.o.d
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
src/os/flash.o: src/os/flash.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h src/dfu/dbgu.h include/board.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/dfu/dbgu.h:
|
||||||
|
|
||||||
|
include/board.h:
|
62
firmware/.dep/led.o.d
Normal file
62
firmware/.dep/led.o.d
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
src/os/led.o: src/os/led.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h include/openpcd.h \
|
||||||
|
src/os/../openpcd.h src/os/usb_handler.h src/os/req_ctx.h src/os/dbgu.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
||||||
|
|
||||||
|
src/os/usb_handler.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
44
firmware/.dep/lib_AT91SAM7.o.d
Normal file
44
firmware/.dep/lib_AT91SAM7.o.d
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
lib/lib_AT91SAM7.o: lib/lib_AT91SAM7.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/AT91SAM7.h include/lib_AT91SAM7.h include/AT91SAM7.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
108
firmware/.dep/main.o.d
Normal file
108
firmware/.dep/main.o.d
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
src/os/main.o: src/os/main.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
include/compile.h include/lib_AT91SAM7.h include/AT91SAM7.h \
|
||||||
|
src/os/dbgu.h src/os/led.h src/os/blinkcode.h src/os/main.h \
|
||||||
|
src/os/power.h src/os/system_irq.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
src/os/pit.h src/os/wdt.h src/os/usbcmd_generic.h src/os/pcd_enumerate.h \
|
||||||
|
include/lib_AT91SAM7.h include/asm/atomic.h include/asm/system.h \
|
||||||
|
include/asm/compiler.h include/openpcd.h src/dfu/dfu.h include/usb_ch9.h \
|
||||||
|
include/usb_dfu.h src/dfu/../config.h src/os/../openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
include/compile.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/led.h:
|
||||||
|
|
||||||
|
src/os/blinkcode.h:
|
||||||
|
|
||||||
|
src/os/main.h:
|
||||||
|
|
||||||
|
src/os/power.h:
|
||||||
|
|
||||||
|
src/os/system_irq.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
src/os/pit.h:
|
||||||
|
|
||||||
|
src/os/wdt.h:
|
||||||
|
|
||||||
|
src/os/usbcmd_generic.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
136
firmware/.dep/main_dumbreader.o.d
Normal file
136
firmware/.dep/main_dumbreader.o.d
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
src/pcd/main_dumbreader.o: src/pcd/main_dumbreader.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h include/openpcd.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
src/os/dbgu.h src/pcd/rc632.h include/cl_rc632.h \
|
||||||
|
../librfid//include/librfid/rfid.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h \
|
||||||
|
../librfid//include/librfid/rfid_system.h \
|
||||||
|
../librfid//include/librfid/rfid_asic.h \
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h \
|
||||||
|
src/pcd/rc632_highlevel.h src/os/led.h src/os/pcd_enumerate.h \
|
||||||
|
include/lib_AT91SAM7.h include/asm/atomic.h include/asm/system.h \
|
||||||
|
include/asm/compiler.h include/openpcd.h src/dfu/dfu.h include/usb_ch9.h \
|
||||||
|
include/usb_dfu.h src/dfu/../config.h src/os/usb_handler.h \
|
||||||
|
src/os/req_ctx.h src/pcd/../openpcd.h src/os/main.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/pcd/rc632.h:
|
||||||
|
|
||||||
|
include/cl_rc632.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_system.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h:
|
||||||
|
|
||||||
|
src/pcd/rc632_highlevel.h:
|
||||||
|
|
||||||
|
src/os/led.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/os/usb_handler.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
src/pcd/../openpcd.h:
|
||||||
|
|
||||||
|
src/os/main.h:
|
87
firmware/.dep/pcd_enumerate.o.d
Normal file
87
firmware/.dep/pcd_enumerate.o.d
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
src/os/pcd_enumerate.o: src/os/pcd_enumerate.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
include/usb_ch9.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/asm/atomic.h include/asm/system.h include/asm/compiler.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h include/openpcd.h \
|
||||||
|
src/pcd/usb_strings_app.h src/os/pcd_enumerate.h src/dfu/dfu.h \
|
||||||
|
include/usb_dfu.h src/dfu/../config.h src/os/req_ctx.h \
|
||||||
|
src/os/../openpcd.h src/os/dbgu.h src/os/../config.h \
|
||||||
|
src/os/usb_descriptors_openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/pcd/usb_strings_app.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/../config.h:
|
||||||
|
|
||||||
|
src/os/usb_descriptors_openpcd.h:
|
60
firmware/.dep/pio_irq.o.d
Normal file
60
firmware/.dep/pio_irq.o.d
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
src/os/pio_irq.o: src/os/pio_irq.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h src/os/pio_irq.h src/os/dbgu.h \
|
||||||
|
src/os/req_ctx.h include/openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/pio_irq.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
65
firmware/.dep/pit.o.d
Normal file
65
firmware/.dep/pit.o.d
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
src/os/pit.o: src/os/pit.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/asm/system.h include/lib_AT91SAM7.h include/AT91SAM7.h \
|
||||||
|
src/os/pit.h src/os/dbgu.h src/os/system_irq.h src/os/../openpcd.h \
|
||||||
|
include/openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/pit.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/system_irq.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
80
firmware/.dep/pwm.o.d
Normal file
80
firmware/.dep/pwm.o.d
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
src/os/pwm.o: src/os/pwm.c include/lib_AT91SAM7.h include/AT91SAM7.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
include/openpcd.h src/os/usb_handler.h src/os/req_ctx.h \
|
||||||
|
src/os/pcd_enumerate.h include/asm/atomic.h include/asm/system.h \
|
||||||
|
include/asm/compiler.h src/dfu/dfu.h include/usb_ch9.h include/usb_dfu.h \
|
||||||
|
src/dfu/../config.h src/os/dbgu.h src/os/../openpcd.h
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/os/usb_handler.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
133
firmware/.dep/rc632.o.d
Normal file
133
firmware/.dep/rc632.o.d
Normal file
@ -0,0 +1,133 @@
|
|||||||
|
src/pcd/rc632.o: src/pcd/rc632.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h include/cl_rc632.h \
|
||||||
|
include/openpcd.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
src/pcd/../openpcd.h src/os/fifo.h src/os/dbgu.h src/os/pcd_enumerate.h \
|
||||||
|
include/asm/atomic.h include/asm/system.h include/asm/compiler.h \
|
||||||
|
src/dfu/dfu.h include/usb_ch9.h include/usb_dfu.h src/dfu/../config.h \
|
||||||
|
src/os/usb_handler.h src/os/req_ctx.h src/pcd/rc632.h \
|
||||||
|
../librfid//include/librfid/rfid.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h \
|
||||||
|
../librfid//include/librfid/rfid_system.h \
|
||||||
|
../librfid//include/librfid/rfid_asic.h \
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/cl_rc632.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
src/pcd/../openpcd.h:
|
||||||
|
|
||||||
|
src/os/fifo.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/os/usb_handler.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
src/pcd/rc632.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_system.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h:
|
112
firmware/.dep/rc632_highlevel.o.d
Normal file
112
firmware/.dep/rc632_highlevel.o.d
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
src/pcd/rc632_highlevel.o: src/pcd/rc632_highlevel.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
include/cl_rc632.h src/pcd/rc632.h ../librfid//include/librfid/rfid.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h \
|
||||||
|
../librfid//include/librfid/rfid_system.h \
|
||||||
|
../librfid//include/librfid/rfid_asic.h \
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h src/os/dbgu.h \
|
||||||
|
../librfid//include/librfid/rfid_protocol_mifare_classic.h \
|
||||||
|
../librfid//include/librfid/rfid_protocol.h \
|
||||||
|
../librfid//include/librfid/rfid_protocol_tcl.h \
|
||||||
|
../librfid//include/librfid/rfid_protocol_mifare_ul.h \
|
||||||
|
../librfid//include/librfid/rfid_protocol_tagit.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
include/cl_rc632.h:
|
||||||
|
|
||||||
|
src/pcd/rc632.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_system.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_protocol_mifare_classic.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_protocol.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_protocol_tcl.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_protocol_mifare_ul.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_protocol_tagit.h:
|
77
firmware/.dep/req_ctx.o.d
Normal file
77
firmware/.dep/req_ctx.o.d
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
src/os/req_ctx.o: src/os/req_ctx.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/unistd.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/unistd.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/stdlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/alloca.h \
|
||||||
|
include/asm/bitops.h include/asm/system.h src/os/dbgu.h src/os/req_ctx.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h src/os/../openpcd.h \
|
||||||
|
include/openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/unistd.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/unistd.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/stdlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/alloca.h:
|
||||||
|
|
||||||
|
include/asm/bitops.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
52
firmware/.dep/string.o.d
Normal file
52
firmware/.dep/string.o.d
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
lib/string.o: lib/string.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
include/asm/ctype.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
include/asm/ctype.h:
|
71
firmware/.dep/syscalls.o.d
Normal file
71
firmware/.dep/syscalls.o.d
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
src/os/syscalls.o: src/os/syscalls.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/stdlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/alloca.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stat.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/time.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/time.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
include/board.h include/AT91SAM7.h include/lib_AT91SAM7.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/stdlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/alloca.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stat.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/time.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/time.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
include/board.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
51
firmware/.dep/system_irq.o.d
Normal file
51
firmware/.dep/system_irq.o.d
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
src/os/system_irq.o: src/os/system_irq.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h src/os/system_irq.h \
|
||||||
|
src/os/dbgu.h src/os/../openpcd.h include/openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/system_irq.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
51
firmware/.dep/tc_cdiv.o.d
Normal file
51
firmware/.dep/tc_cdiv.o.d
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
src/os/tc_cdiv.o: src/os/tc_cdiv.c include/lib_AT91SAM7.h \
|
||||||
|
include/AT91SAM7.h src/os/dbgu.h src/os/../openpcd.h include/openpcd.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
src/os/tc_cdiv.h
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
src/os/tc_cdiv.h:
|
49
firmware/.dep/trigger.o.d
Normal file
49
firmware/.dep/trigger.o.d
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
src/os/trigger.o: src/os/trigger.c include/lib_AT91SAM7.h \
|
||||||
|
include/AT91SAM7.h src/os/trigger.h src/os/../openpcd.h \
|
||||||
|
include/openpcd.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/trigger.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
93
firmware/.dep/usb_benchmark.o.d
Normal file
93
firmware/.dep/usb_benchmark.o.d
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
src/os/usb_benchmark.o: src/os/usb_benchmark.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
include/lib_AT91SAM7.h include/AT91SAM7.h src/os/led.h src/os/dbgu.h \
|
||||||
|
src/os/pcd_enumerate.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/asm/atomic.h include/asm/system.h include/asm/compiler.h \
|
||||||
|
include/openpcd.h src/dfu/dfu.h include/usb_ch9.h include/usb_dfu.h \
|
||||||
|
src/dfu/../config.h src/os/usb_handler.h src/os/req_ctx.h \
|
||||||
|
src/os/../openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/led.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/os/usb_handler.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
92
firmware/.dep/usb_handler.o.d
Normal file
92
firmware/.dep/usb_handler.o.d
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
src/os/usb_handler.o: src/os/usb_handler.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
include/openpcd.h src/os/pcd_enumerate.h include/lib_AT91SAM7.h \
|
||||||
|
include/AT91SAM7.h include/asm/atomic.h include/asm/system.h \
|
||||||
|
include/asm/compiler.h src/dfu/dfu.h include/usb_ch9.h include/usb_dfu.h \
|
||||||
|
src/dfu/../config.h src/os/usb_handler.h src/os/req_ctx.h src/os/led.h \
|
||||||
|
src/os/dbgu.h src/os/../openpcd.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/errno.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/os/pcd_enumerate.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
include/asm/atomic.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
include/asm/compiler.h:
|
||||||
|
|
||||||
|
src/dfu/dfu.h:
|
||||||
|
|
||||||
|
include/usb_ch9.h:
|
||||||
|
|
||||||
|
include/usb_dfu.h:
|
||||||
|
|
||||||
|
src/dfu/../config.h:
|
||||||
|
|
||||||
|
src/os/usb_handler.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
src/os/led.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/../openpcd.h:
|
110
firmware/.dep/usbcmd_generic.o.d
Normal file
110
firmware/.dep/usbcmd_generic.o.d
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
src/os/usbcmd_generic.o: src/os/usbcmd_generic.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
include/openpcd.h src/os/req_ctx.h include/lib_AT91SAM7.h \
|
||||||
|
include/AT91SAM7.h src/os/usb_handler.h src/os/led.h src/os/dbgu.h \
|
||||||
|
src/os/main.h src/os/flash.h include/board.h src/pcd/rc632_highlevel.h \
|
||||||
|
../librfid//include/librfid/rfid_asic.h \
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h \
|
||||||
|
../librfid//include/librfid/rfid.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h \
|
||||||
|
../librfid//include/librfid/rfid_system.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h \
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
include/openpcd.h:
|
||||||
|
|
||||||
|
src/os/req_ctx.h:
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/usb_handler.h:
|
||||||
|
|
||||||
|
src/os/led.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/main.h:
|
||||||
|
|
||||||
|
src/os/flash.h:
|
||||||
|
|
||||||
|
include/board.h:
|
||||||
|
|
||||||
|
src/pcd/rc632_highlevel.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_asic_rc632.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/stdio.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/stdio.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_system.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443a.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso14443b.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_iso15693.h:
|
||||||
|
|
||||||
|
../librfid//include/librfid/rfid_layer2_icode1.h:
|
68
firmware/.dep/vsprintf.o.d
Normal file
68
firmware/.dep/vsprintf.o.d
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
lib/vsprintf.o: lib/vsprintf.c \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h \
|
||||||
|
include/asm/ctype.h include/asm/div64.h include/asm/system.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include-fixed/limits.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include-fixed/syslimits.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/limits.h
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stdarg.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/string.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/reent.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/string.h:
|
||||||
|
|
||||||
|
include/asm/ctype.h:
|
||||||
|
|
||||||
|
include/asm/div64.h:
|
||||||
|
|
||||||
|
include/asm/system.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include-fixed/limits.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include-fixed/syslimits.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/limits.h:
|
46
firmware/.dep/wdt.o.d
Normal file
46
firmware/.dep/wdt.o.d
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
src/os/wdt.o: src/os/wdt.c include/lib_AT91SAM7.h include/AT91SAM7.h \
|
||||||
|
src/os/dbgu.h src/os/system_irq.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h \
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h
|
||||||
|
|
||||||
|
include/lib_AT91SAM7.h:
|
||||||
|
|
||||||
|
include/AT91SAM7.h:
|
||||||
|
|
||||||
|
src/os/dbgu.h:
|
||||||
|
|
||||||
|
src/os/system_irq.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/_ansi.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/newlib.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/config.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/ieeefp.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/features.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/_default_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/_types.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/sys/lock.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/include/stddef.h:
|
||||||
|
|
||||||
|
e:\programme\mingw\libexec\arm\bin\../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/include/machine/types.h:
|
339
firmware/COPYING
Normal file
339
firmware/COPYING
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 2, June 1991
|
||||||
|
|
||||||
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
License is intended to guarantee your freedom to share and change free
|
||||||
|
software--to make sure the software is free for all its users. This
|
||||||
|
General Public License applies to most of the Free Software
|
||||||
|
Foundation's software and to any other program whose authors commit to
|
||||||
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
|
the GNU Lesser General Public License instead.) You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
this service if you wish), that you receive source code or can get it
|
||||||
|
if you want it, that you can change the software or use pieces of it
|
||||||
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
|
These restrictions translate to certain responsibilities for you if you
|
||||||
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
|
you have. You must make sure that they, too, receive or can get the
|
||||||
|
source code. And you must show them these terms so they know their
|
||||||
|
rights.
|
||||||
|
|
||||||
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
|
distribute and/or modify the software.
|
||||||
|
|
||||||
|
Also, for each author's protection and ours, we want to make certain
|
||||||
|
that everyone understands that there is no warranty for this free
|
||||||
|
software. If the software is modified by someone else and passed on, we
|
||||||
|
want its recipients to know that what they have is not the original, so
|
||||||
|
that any problems introduced by others will not reflect on the original
|
||||||
|
authors' reputations.
|
||||||
|
|
||||||
|
Finally, any free program is threatened constantly by software
|
||||||
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
|
program will individually obtain patent licenses, in effect making the
|
||||||
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License applies to any program or other work which contains
|
||||||
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
|
under the terms of this General Public License. The "Program", below,
|
||||||
|
refers to any such program or work, and a "work based on the Program"
|
||||||
|
means either the Program or any derivative work under copyright law:
|
||||||
|
that is to say, a work containing the Program or a portion of it,
|
||||||
|
either verbatim or with modifications and/or translated into another
|
||||||
|
language. (Hereinafter, translation is included without limitation in
|
||||||
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running the Program is not restricted, and the output from the Program
|
||||||
|
is covered only if its contents constitute a work based on the
|
||||||
|
Program (independent of having been made by running the Program).
|
||||||
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
|
source code as you receive it, in any medium, provided that you
|
||||||
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
|
notices that refer to this License and to the absence of any warranty;
|
||||||
|
and give any other recipients of the Program a copy of this License
|
||||||
|
along with the Program.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
|
of it, thus forming a work based on the Program, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) You must cause the modified files to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
b) You must cause any work that you distribute or publish, that in
|
||||||
|
whole or in part contains or is derived from the Program or any
|
||||||
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
|
parties under the terms of this License.
|
||||||
|
|
||||||
|
c) If the modified program normally reads commands interactively
|
||||||
|
when run, you must cause it, when started running for such
|
||||||
|
interactive use in the most ordinary way, to print or display an
|
||||||
|
announcement including an appropriate copyright notice and a
|
||||||
|
notice that there is no warranty (or else, saying that you provide
|
||||||
|
a warranty) and that users may redistribute the program under
|
||||||
|
these conditions, and telling the user how to view a copy of this
|
||||||
|
License. (Exception: if the Program itself is interactive but
|
||||||
|
does not normally print such an announcement, your work based on
|
||||||
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Program,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Program.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Program
|
||||||
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
|
under Section 2) in object code or executable form under the terms of
|
||||||
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
|
source code, which must be distributed under the terms of Sections
|
||||||
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
|
b) Accompany it with a written offer, valid for at least three
|
||||||
|
years, to give any third party, for a charge no more than your
|
||||||
|
cost of physically performing source distribution, a complete
|
||||||
|
machine-readable copy of the corresponding source code, to be
|
||||||
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
|
c) Accompany it with the information you received as to the offer
|
||||||
|
to distribute corresponding source code. (This alternative is
|
||||||
|
allowed only for noncommercial distribution and only if you
|
||||||
|
received the program in object code or executable form with such
|
||||||
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
|
The source code for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For an executable work, complete source
|
||||||
|
code means all the source code for all modules it contains, plus any
|
||||||
|
associated interface definition files, plus the scripts used to
|
||||||
|
control compilation and installation of the executable. However, as a
|
||||||
|
special exception, the source code distributed need not include
|
||||||
|
anything that is normally distributed (in either source or binary
|
||||||
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
|
operating system on which the executable runs, unless that component
|
||||||
|
itself accompanies the executable.
|
||||||
|
|
||||||
|
If distribution of executable or object code is made by offering
|
||||||
|
access to copy from a designated place, then offering equivalent
|
||||||
|
access to copy the source code from the same place counts as
|
||||||
|
distribution of the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
|
except as expressly provided under this License. Any attempt
|
||||||
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
|
void, and will automatically terminate your rights under this License.
|
||||||
|
However, parties who have received copies, or rights, from you under
|
||||||
|
this License will not have their licenses terminated so long as such
|
||||||
|
parties remain in full compliance.
|
||||||
|
|
||||||
|
5. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Program or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Program (or any work based on the
|
||||||
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Program or works based on it.
|
||||||
|
|
||||||
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
|
Program), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
|
these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties to
|
||||||
|
this License.
|
||||||
|
|
||||||
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Program at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Program by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under
|
||||||
|
any particular circumstance, the balance of the section is intended to
|
||||||
|
apply and the section as a whole is intended to apply in other
|
||||||
|
circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system, which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Program under this License
|
||||||
|
may add an explicit geographical distribution limitation excluding
|
||||||
|
those countries, so that distribution is permitted only in or among
|
||||||
|
countries not thus excluded. In such case, this License incorporates
|
||||||
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
|
of the General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Program
|
||||||
|
specifies a version number of this License which applies to it and "any
|
||||||
|
later version", you have the option of following the terms and conditions
|
||||||
|
either of that version or of any later version published by the Free
|
||||||
|
Software Foundation. If the Program does not specify a version number of
|
||||||
|
this License, you may choose any version ever published by the Free Software
|
||||||
|
Foundation.
|
||||||
|
|
||||||
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
|
programs whose distribution conditions are different, write to the author
|
||||||
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
|
of preserving the free status of all derivatives of our free software and
|
||||||
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License along
|
||||||
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program is interactive, make it output a short notice like this
|
||||||
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, the commands you use may
|
||||||
|
be called something other than `show w' and `show c'; they could even be
|
||||||
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1989
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
This General Public License does not permit incorporating your program into
|
||||||
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
|
consider it more useful to permit linking proprietary applications with the
|
||||||
|
library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License.
|
613
firmware/Makefile
Normal file
613
firmware/Makefile
Normal file
@ -0,0 +1,613 @@
|
|||||||
|
# Hey Emacs, this is a -*- makefile -*-
|
||||||
|
#
|
||||||
|
# WinARM makefile for the FreeRTOS-demo on LPC2138
|
||||||
|
# based in information from the FreeRTOS LPC2106 example
|
||||||
|
#
|
||||||
|
# by Martin Thomas, Kaiserslautern, Germany
|
||||||
|
# <eversmith@heizung-thomas.de>
|
||||||
|
#
|
||||||
|
# based on the WinAVR makefile written by Eric B. Weddington, Jörg Wunsch, et al.
|
||||||
|
# Released to the Public Domain
|
||||||
|
# Please read the make user manual!
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# On command line:
|
||||||
|
#
|
||||||
|
# make all = Make software.
|
||||||
|
#
|
||||||
|
# make clean = Clean out built project files.
|
||||||
|
#
|
||||||
|
# make program = Download the hex file to the device
|
||||||
|
#
|
||||||
|
# (TODO: make filename.s = Just compile filename.c into the assembler code only)
|
||||||
|
#
|
||||||
|
# To rebuild project do "make clean" then "make all".
|
||||||
|
#
|
||||||
|
# Changelog:
|
||||||
|
# - 17. Feb. 2005 - added thumb-interwork support (mth)
|
||||||
|
# - 28. Apr. 2005 - added C++ support (mth)
|
||||||
|
# - 29. Arp. 2005 - changed handling for lst-Filename (mth)
|
||||||
|
# - 1. Nov. 2005 - exception-vector placement options (mth)
|
||||||
|
# - 15. Nov. 2005 - added library-search-path (EXTRA_LIB...) (mth)
|
||||||
|
# - 2. Dec. 2005 - fixed ihex and binary file extensions (mth)
|
||||||
|
# - 22. Feb. 2006 - added AT91LIBNOWARN setting (mth)
|
||||||
|
# - 19. Apr. 2006 - option FLASH_TOOL (default lpc21isp); variable IMGEXT (mth)
|
||||||
|
# - 19. Mai. 2006 - USE_THUMB_MODE switch, ROM_RUN->RUN_FROM_ROM RAM_RUN->RUN_FROM_RAM
|
||||||
|
|
||||||
|
LIBRFID_DIR:=../librfid/
|
||||||
|
|
||||||
|
FLASH_TOOL = AT91FLASH
|
||||||
|
#FLASH_TOOL = UVISION
|
||||||
|
#FLASH_TOOL = OPENOCD
|
||||||
|
|
||||||
|
# MCU name and submodel
|
||||||
|
MCU = arm7tdmi
|
||||||
|
#SUBMDL = AT91SAM7S64
|
||||||
|
SUBMDL = AT91SAM7S128
|
||||||
|
|
||||||
|
USE_THUMB_MODE = NO
|
||||||
|
#USE_THUMB_MODE = YES
|
||||||
|
|
||||||
|
## Create ROM-Image (final)
|
||||||
|
RUN_MODE=RUN_FROM_ROM
|
||||||
|
## Create RAM-Image (debugging) - not used in this example
|
||||||
|
#RUN_MODE=RUN_FROM_RAM
|
||||||
|
|
||||||
|
## We want to produce a full-flash image, but including DFU
|
||||||
|
IMGTYPE=-sam7dfu-app
|
||||||
|
|
||||||
|
# with / at end
|
||||||
|
PATH_TO_LINKSCRIPTS=link/
|
||||||
|
|
||||||
|
#### not used in this example:
|
||||||
|
## Exception-Vector placement only supported for "ROM_RUN"
|
||||||
|
## (placement settings ignored when using "RAM_RUN")
|
||||||
|
## - Exception vectors in ROM:
|
||||||
|
#VECTOR_LOCATION=VECTORS_IN_ROM
|
||||||
|
## - Exception vectors in RAM:
|
||||||
|
#VECTOR_LOCATION=VECTORS_IN_RAM
|
||||||
|
|
||||||
|
# Target file name (without extension).
|
||||||
|
TARGET:=main_reqa
|
||||||
|
|
||||||
|
USBSTRINGS=src/picc/usb_strings_app.h src/pcd/usb_strings_app.h
|
||||||
|
|
||||||
|
# List C source files here. (C dependencies are automatically generated.)
|
||||||
|
# use file-extension c for "c-only"-files
|
||||||
|
SRC =
|
||||||
|
|
||||||
|
# List C source files here which must be compiled in ARM-Mode.
|
||||||
|
# use file-extension c for "c-only"-files
|
||||||
|
|
||||||
|
# First, build library ...
|
||||||
|
SRCARM = lib/lib_AT91SAM7.c
|
||||||
|
ifdef DEBUG
|
||||||
|
SRCARM += lib/vsprintf.c lib/ctype.c lib/string.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
# then, OS ...
|
||||||
|
SRCARM += src/os/pcd_enumerate.c src/os/fifo.c src/os/dbgu.c \
|
||||||
|
src/os/led.c src/os/req_ctx.c src/os/trigger.c \
|
||||||
|
src/os/main.c src/os/syscalls.c src/os/usb_handler.c \
|
||||||
|
src/os/usb_benchmark.c src/os/tc_cdiv.c src/os/pit.c \
|
||||||
|
src/os/pwm.c src/os/pio_irq.c src/os/usbcmd_generic.c \
|
||||||
|
src/os/wdt.c src/os/blinkcode.c src/os/system_irq.c \
|
||||||
|
src/os/flash.c
|
||||||
|
|
||||||
|
ifeq ($(BOARD), PCD)
|
||||||
|
# PCD support code
|
||||||
|
SRCARM += src/pcd/rc632.c src/pcd/rc632_highlevel.c
|
||||||
|
# finally, the actual main application
|
||||||
|
SRCARM += src/pcd/$(TARGET).c
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD), PICC)
|
||||||
|
# PICC support code
|
||||||
|
SRCARM += src/picc/tc_fdt.c src/picc/ssc_picc.c src/picc/adc.c \
|
||||||
|
src/picc/decoder.c src/picc/decoder_miller.c \
|
||||||
|
src/picc/load_modulation.c src/picc/tc_cdiv_sync.c \
|
||||||
|
src/picc/decoder_nrzl.c src/picc/da.c src/picc/pll.c \
|
||||||
|
src/picc/openpicc.c
|
||||||
|
# finally, the actual main application
|
||||||
|
SRCARM += src/picc/$(TARGET).c
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# List C++ source files here.
|
||||||
|
# use file-extension cpp for C++-files (use extension .cpp)
|
||||||
|
CPPSRC =
|
||||||
|
|
||||||
|
# List C++ source files here which must be compiled in ARM-Mode.
|
||||||
|
# use file-extension cpp for C++-files (use extension .cpp)
|
||||||
|
#CPPSRCARM = $(TARGET).cpp
|
||||||
|
CPPSRCARM =
|
||||||
|
|
||||||
|
# List Assembler source files here.
|
||||||
|
# Make them always end in a capital .S. Files ending in a lowercase .s
|
||||||
|
# will not be considered source files but generated files (assembler
|
||||||
|
# output from the compiler), and will be deleted upon "make clean"!
|
||||||
|
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||||
|
# it will preserve the spelling of the filenames, and gcc itself does
|
||||||
|
# care about how the name is spelled on its command-line.
|
||||||
|
ASRC =
|
||||||
|
|
||||||
|
ASRCLIB = lib/changebit.S lib/clearbit.S lib/setbit.S lib/testchangebit.S \
|
||||||
|
lib/testclearbit.S lib/testsetbit.S
|
||||||
|
ifdef DEBUG
|
||||||
|
#ASRCLIB += lib/memcpy.S lib/memset.S lib/lib1funcs.S lib/div64.S
|
||||||
|
ASRCLIB += lib/lib1funcs.S lib/div64.S
|
||||||
|
endif
|
||||||
|
|
||||||
|
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||||
|
ASRCARM = src/start/Cstartup_app.S $(ASRCLIB)
|
||||||
|
|
||||||
|
## Output format. (can be ihex or binary)
|
||||||
|
## (binary i.e. for openocd and SAM-BA, hex i.e. for lpc21isp and uVision)
|
||||||
|
#FORMAT = ihex
|
||||||
|
FORMAT = binary
|
||||||
|
|
||||||
|
# Optimization level, can be [0, 1, 2, 3, s].
|
||||||
|
# 0 = turn off optimization. s = optimize for size.
|
||||||
|
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
|
||||||
|
OPT = 2
|
||||||
|
#OPT = 0
|
||||||
|
|
||||||
|
# Debugging format.
|
||||||
|
# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2.
|
||||||
|
# AVR (extended) COFF requires stabs, plus an avr-objcopy run.
|
||||||
|
#DEBUGF = stabs
|
||||||
|
DEBUGF = dwarf-2
|
||||||
|
|
||||||
|
# List any extra directories to look for include files here.
|
||||||
|
# Each directory must be seperated by a space.
|
||||||
|
#### FreeRTOS
|
||||||
|
EXTRAINCDIRS = $(LIBRFID_DIR)/include/
|
||||||
|
|
||||||
|
# List any extra directories to look for library files here.
|
||||||
|
# Each directory must be seperated by a space.
|
||||||
|
#EXTRA_LIBDIRS = ../arm7_efsl_0_2_4
|
||||||
|
EXTRA_LIBDIRS = $(LIBRFID_DIR)/src/.libs/
|
||||||
|
|
||||||
|
## Using the Atmel AT91_lib produces warning with
|
||||||
|
## the default warning-levels.
|
||||||
|
## yes - disable these warnings; no - keep default settings
|
||||||
|
AT91LIBNOWARN = yes
|
||||||
|
#AT91LIBNOWARN = no
|
||||||
|
|
||||||
|
# Compiler flag to set the C Standard level.
|
||||||
|
# c89 - "ANSI" C
|
||||||
|
# gnu89 - c89 plus GCC extensions
|
||||||
|
# c99 - ISO C99 standard (not yet fully implemented)
|
||||||
|
# gnu99 - c99 plus GCC extensions
|
||||||
|
CSTANDARD = -std=gnu99
|
||||||
|
|
||||||
|
# Place -D or -U options for C here
|
||||||
|
CDEFS = -D$(RUN_MODE) -D__MS_types__ -D__LIBRFID__
|
||||||
|
|
||||||
|
ifdef DEBUG
|
||||||
|
CDEFS += -DDEBUG
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef OLIMEX
|
||||||
|
CDEFS += -DOLIMEX
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD),PICC)
|
||||||
|
CDEFS += -DPICC
|
||||||
|
CINCS = -Isrc/picc
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD),PCD)
|
||||||
|
CDEFS += -DPCD
|
||||||
|
CINCS = -Isrc/pcd
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Place -I options here
|
||||||
|
CINCS += -Iinclude -Isrc
|
||||||
|
|
||||||
|
# Place -D or -U options for ASM here
|
||||||
|
ADEFS = -D$(RUN_MODE)
|
||||||
|
|
||||||
|
ifdef VECTOR_LOCATION
|
||||||
|
CDEFS += -D$(VECTOR_LOCATION)
|
||||||
|
ADEFS += -D$(VECTOR_LOCATION)
|
||||||
|
endif
|
||||||
|
|
||||||
|
CDEFS += -D__$(SUBMDL)__
|
||||||
|
ADEFS += -D__$(SUBMDL)__
|
||||||
|
|
||||||
|
|
||||||
|
# Compiler flags.
|
||||||
|
# -g*: generate debugging information
|
||||||
|
# -O*: optimization level
|
||||||
|
# -f...: tuning, see GCC manual and avr-libc documentation
|
||||||
|
# -Wall...: warning level
|
||||||
|
# -Wa,...: tell GCC to pass this to the assembler.
|
||||||
|
# -adhlns...: create assembler listing
|
||||||
|
#
|
||||||
|
# Flags for C and C++ (arm-elf-gcc/arm-elf-g++)
|
||||||
|
CFLAGS = -g$(DEBUGF)
|
||||||
|
CFLAGS += $(CDEFS) $(CINCS)
|
||||||
|
CFLAGS += -O$(OPT)
|
||||||
|
CFLAGS += -Wall -Wextra -Wcast-align -Wimplicit -Wunused
|
||||||
|
CFLAGS += -Wpointer-arith -Wswitch
|
||||||
|
CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow
|
||||||
|
CFLAGS += -Wbad-function-cast -Wsign-compare -Waggregate-return
|
||||||
|
CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$<)
|
||||||
|
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||||
|
#CFLAGS += -ffunction-sections -fdata-sections
|
||||||
|
|
||||||
|
# flags only for C
|
||||||
|
CONLYFLAGS += -Wnested-externs
|
||||||
|
CONLYFLAGS += $(CSTANDARD)
|
||||||
|
|
||||||
|
ifneq ($(AT91LIBNOWARN),yes)
|
||||||
|
#AT91-lib warnings with:
|
||||||
|
CFLAGS += -Wcast-qual
|
||||||
|
CONLYFLAGS += -Wmissing-prototypes
|
||||||
|
CONLYFLAGS += -Wstrict-prototypes
|
||||||
|
CONLYFLAGS += -Wmissing-declarations
|
||||||
|
endif
|
||||||
|
|
||||||
|
# flags only for C++ (arm-elf-g++)
|
||||||
|
# CPPFLAGS = -fno-rtti -fno-exceptions
|
||||||
|
CPPFLAGS =
|
||||||
|
|
||||||
|
# Assembler flags.
|
||||||
|
# -Wa,...: tell GCC to pass this to the assembler.
|
||||||
|
# -ahlns: create listing
|
||||||
|
# -g$(DEBUGF): have the assembler create line number information
|
||||||
|
ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:.S=.lst),--g$(DEBUGF) -Iinclude/ -D__ASSEMBLY__
|
||||||
|
|
||||||
|
|
||||||
|
#Additional libraries.
|
||||||
|
|
||||||
|
# Extra libraries
|
||||||
|
# Each library-name must be seperated by a space.
|
||||||
|
# To add libxyz.a, libabc.a and libefsl.a:
|
||||||
|
# EXTRA_LIBS = xyz abc efsl
|
||||||
|
#EXTRA_LIBS = efsl
|
||||||
|
ifeq ($(TARGET),main_librfid)
|
||||||
|
EXTRA_LIBS = rfid
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET),main_reqa)
|
||||||
|
EXTRA_LIBS = rfid
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET),main_presence)
|
||||||
|
EXTRA_LIBS = rfid
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET),main_mifare)
|
||||||
|
EXTRA_LIBS = rfid
|
||||||
|
endif
|
||||||
|
|
||||||
|
#Support for newlibc-lpc (file: libnewlibc-lpc.a)
|
||||||
|
#NEWLIBLPC = -lnewlib-lpc
|
||||||
|
|
||||||
|
MATH_LIB = #-lm
|
||||||
|
|
||||||
|
# CPLUSPLUS_LIB = -lstdc++
|
||||||
|
|
||||||
|
|
||||||
|
# Linker flags.
|
||||||
|
# -Wl,...: tell GCC to pass this to linker.
|
||||||
|
# -Map: create map file
|
||||||
|
# --cref: add cross reference to map file
|
||||||
|
LDFLAGS = -nostartfiles -Wl,-Map=$(TARGET).map,--cref
|
||||||
|
LDFLAGS += $(NEWLIBLPC) $(MATH_LIB)
|
||||||
|
LDFLAGS += -lc -lgcc
|
||||||
|
LDFLAGS += $(CPLUSPLUS_LIB)
|
||||||
|
LDFLAGS += $(patsubst %,-L%,$(EXTRA_LIBDIRS))
|
||||||
|
LDFLAGS += $(patsubst %,-l%,$(EXTRA_LIBS))
|
||||||
|
#LDFLAGS += --gc-sections
|
||||||
|
|
||||||
|
# Set Linker-Script Depending On Selected Memory and Controller
|
||||||
|
ifeq ($(RUN_MODE),RUN_FROM_RAM)
|
||||||
|
LDFLAGS +=-T$(PATH_TO_LINKSCRIPTS)$(SUBMDL)-RAM.ld
|
||||||
|
else
|
||||||
|
LDFLAGS +=-T$(PATH_TO_LINKSCRIPTS)$(SUBMDL)-ROM$(IMGTYPE).ld
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# Flash-Programming support using lpc21isp by Martin Maurer
|
||||||
|
# only for Philips LPC and Analog ADuC ARMs
|
||||||
|
#
|
||||||
|
# Settings and variables:
|
||||||
|
#LPC21ISP = lpc21isp
|
||||||
|
LPC21ISP = lpc21isp
|
||||||
|
LPC21ISP_PORT = com1
|
||||||
|
LPC21ISP_BAUD = 38400
|
||||||
|
LPC21ISP_XTAL = 12000
|
||||||
|
LPC21ISP_FLASHFILE = $(TARGET).hex
|
||||||
|
# verbose output:
|
||||||
|
#LPC21ISP_DEBUG = -debug
|
||||||
|
# enter bootloader via RS232 DTR/RTS (only if hardware supports this
|
||||||
|
# feature - see Philips AppNote):
|
||||||
|
LPC21ISP_CONTROL = -control
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# Define directories, if needed.
|
||||||
|
## DIRARM = c:/WinARM/
|
||||||
|
## DIRARMBIN = $(DIRAVR)/bin/
|
||||||
|
## DIRAVRUTILS = $(DIRAVR)/utils/bin/
|
||||||
|
|
||||||
|
# Define programs and commands.
|
||||||
|
SHELL = sh
|
||||||
|
CC = arm-none-eabi-gcc
|
||||||
|
CPP = arm-none-eabi-g++
|
||||||
|
OBJCOPY = arm-none-eabi-objcopy
|
||||||
|
OBJDUMP = arm-none-eabi-objdump
|
||||||
|
SIZE = arm-none-eabi-size
|
||||||
|
NM = arm-none-eabi-nm
|
||||||
|
#CC = arm-elf-gcc
|
||||||
|
#CPP = arm-elf-g++
|
||||||
|
#OBJCOPY = arm-elf-objcopy
|
||||||
|
#OBJDUMP = arm-elf-objdump
|
||||||
|
#SIZE = arm-elf-size
|
||||||
|
#NM = arm-elf-nm
|
||||||
|
REMOVE = rm -f
|
||||||
|
COPY = cp
|
||||||
|
|
||||||
|
# Define Messages
|
||||||
|
# English
|
||||||
|
MSG_ERRORS_NONE = Errors: none
|
||||||
|
MSG_BEGIN = "-------- begin (mode: $(RUN_MODE)) --------"
|
||||||
|
MSG_END = -------- end --------
|
||||||
|
MSG_SIZE_BEFORE = Size before:
|
||||||
|
MSG_SIZE_AFTER = Size after:
|
||||||
|
MSG_FLASH = Creating load file for Flash:
|
||||||
|
MSG_EXTENDED_LISTING = Creating Extended Listing:
|
||||||
|
MSG_SYMBOL_TABLE = Creating Symbol Table:
|
||||||
|
MSG_LINKING = Linking:
|
||||||
|
MSG_COMPILING = Compiling C:
|
||||||
|
MSG_COMPILING_ARM = "Compiling C (ARM-only):"
|
||||||
|
MSG_COMPILINGCPP = Compiling C++:
|
||||||
|
MSG_COMPILINGCPP_ARM = "Compiling C++ (ARM-only):"
|
||||||
|
MSG_ASSEMBLING = Assembling:
|
||||||
|
MSG_ASSEMBLING_ARM = "Assembling (ARM-only):"
|
||||||
|
MSG_CLEANING = Cleaning project:
|
||||||
|
MSG_FORMATERROR = Can not handle output-format
|
||||||
|
MSG_LPC21_RESETREMINDER = You may have to bring the target in bootloader-mode now.
|
||||||
|
|
||||||
|
# Define all object files.
|
||||||
|
COBJ = $(SRC:.c=.o)
|
||||||
|
AOBJ = $(ASRC:.S=.o)
|
||||||
|
COBJARM = $(SRCARM:.c=.o)
|
||||||
|
AOBJARM = $(ASRCARM:.S=.o)
|
||||||
|
CPPOBJ = $(CPPSRC:.cpp=.o)
|
||||||
|
CPPOBJARM = $(CPPSRCARM:.cpp=.o)
|
||||||
|
|
||||||
|
# Define all listing files.
|
||||||
|
LST = $(ASRC:.S=.lst) $(ASRCARM:.S=.lst) $(SRC:.c=.lst) $(SRCARM:.c=.lst)
|
||||||
|
LST += $(CPPSRC:.cpp=.lst) $(CPPSRCARM:.cpp=.lst)
|
||||||
|
|
||||||
|
# Compiler flags to generate dependency files.
|
||||||
|
### GENDEPFLAGS = -Wp,-M,-MP,-MT,$(*F).o,-MF,.dep/$(@F).d
|
||||||
|
GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d
|
||||||
|
|
||||||
|
# Combine all necessary flags and optional flags.
|
||||||
|
# Add target processor to flags.
|
||||||
|
ALL_CFLAGS = -mcpu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
|
||||||
|
ALL_ASFLAGS = -mcpu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
# Default target.
|
||||||
|
all: begin gccversion sizebefore build sizeafter finished end
|
||||||
|
|
||||||
|
ifeq ($(FORMAT),ihex)
|
||||||
|
build: elf hex lss sym
|
||||||
|
hex: $(TARGET).hex
|
||||||
|
IMGEXT=hex
|
||||||
|
else
|
||||||
|
ifeq ($(FORMAT),binary)
|
||||||
|
build: elf bin lss sym
|
||||||
|
bin: $(TARGET).bin
|
||||||
|
IMGEXT=bin
|
||||||
|
else
|
||||||
|
$(error "$(MSG_FORMATERROR) $(FORMAT)")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
elf: $(TARGET).elf
|
||||||
|
lss: $(TARGET).lss
|
||||||
|
sym: $(TARGET).sym
|
||||||
|
|
||||||
|
# Eye candy.
|
||||||
|
begin:
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_BEGIN)
|
||||||
|
|
||||||
|
finished:
|
||||||
|
@echo $(MSG_ERRORS_NONE)
|
||||||
|
|
||||||
|
end:
|
||||||
|
@echo $(MSG_END)
|
||||||
|
@echo
|
||||||
|
|
||||||
|
|
||||||
|
# Display size of file.
|
||||||
|
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
|
||||||
|
ELFSIZE = $(SIZE) -A $(TARGET).elf
|
||||||
|
sizebefore:
|
||||||
|
@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi
|
||||||
|
|
||||||
|
sizeafter:
|
||||||
|
@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
|
||||||
|
|
||||||
|
|
||||||
|
# Display compiler version information.
|
||||||
|
gccversion :
|
||||||
|
@$(CC) --version
|
||||||
|
|
||||||
|
|
||||||
|
# Program the device.
|
||||||
|
# Program the device by using our relais card robot over USB
|
||||||
|
ifeq ($(FLASH_TOOL),AT91FLASH)
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
ls -l $(TARGET).$(IMGEXT)
|
||||||
|
at91flash $(TARGET).$(IMGEXT)
|
||||||
|
else
|
||||||
|
ifeq ($(FLASH_TOOL),UVISION)
|
||||||
|
# Program the device with Keil's uVision (needs configured uVision-Workspace).
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
@echo
|
||||||
|
@echo "Programming with uVision"
|
||||||
|
C:\Keil\uv3\Uv3.exe -f uvisionflash.Uv2 -ouvisionflash.txt
|
||||||
|
else
|
||||||
|
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||||
|
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
@echo
|
||||||
|
@echo "Programming with OPENOCD"
|
||||||
|
C:\WinARM\utils\openocd\openocd_svn59\openocd.exe -f oocd_sam7_flash.cfg
|
||||||
|
else
|
||||||
|
# Program the device. - lpc21isp will not work for SAM7
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_LPC21_RESETREMINDER)
|
||||||
|
$(LPC21ISP) $(LPC21ISP_OPTIONS) $(LPC21ISP_DEBUG) $(LPC21ISP_FLASHFILE) $(LPC21ISP_PORT) $(LPC21ISP_BAUD) $(LPC21ISP_XTAL)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# Create final output file (.hex) from ELF output file.
|
||||||
|
%.hex: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_FLASH) $@
|
||||||
|
$(OBJCOPY) -O $(FORMAT) $< $@
|
||||||
|
|
||||||
|
# Create final output file (.bin) from ELF output file.
|
||||||
|
%.bin: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_FLASH) $@
|
||||||
|
$(OBJCOPY) -O $(FORMAT) $< $@
|
||||||
|
|
||||||
|
|
||||||
|
# Create extended listing file from ELF output file.
|
||||||
|
# testing: option -C
|
||||||
|
%.lss: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_EXTENDED_LISTING) $@
|
||||||
|
$(OBJDUMP) -h -S -C $< > $@
|
||||||
|
|
||||||
|
|
||||||
|
# Create a symbol table from ELF output file.
|
||||||
|
%.sym: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_SYMBOL_TABLE) $@
|
||||||
|
$(NM) -n $< > $@
|
||||||
|
|
||||||
|
|
||||||
|
# Link: create ELF output file from object files.
|
||||||
|
.SECONDARY : $(TARGET).elf
|
||||||
|
.PRECIOUS : $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM)
|
||||||
|
%.elf: $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM)
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_LINKING) $@
|
||||||
|
$(CC) $(ALL_CFLAGS) $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) --output $@ $(LDFLAGS)
|
||||||
|
|
||||||
|
# Compile: create object files from C source files. ARM/Thumb
|
||||||
|
$(COBJ) : %.o : %.c
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILING) $<
|
||||||
|
$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
|
||||||
|
|
||||||
|
# Compile: create object files from C source files. ARM-only
|
||||||
|
$(COBJARM) : %.o : %.c include/compile.h $(USBSTRINGS)
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILING_ARM) $<
|
||||||
|
$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
|
||||||
|
|
||||||
|
# Compile: create object files from C++ source files. ARM/Thumb
|
||||||
|
$(CPPOBJ) : %.o : %.cpp
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILINGCPP) $<
|
||||||
|
$(CPP) -c $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
# Compile: create object files from C++ source files. ARM-only
|
||||||
|
$(CPPOBJARM) : %.o : %.cpp
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILINGCPP_ARM) $<
|
||||||
|
$(CPP) -c $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Compile: create assembler files from C source files. ARM/Thumb
|
||||||
|
## does not work - TODO - hints welcome
|
||||||
|
##$(COBJ) : %.s : %.c
|
||||||
|
## $(CC) $(THUMB) -S $(ALL_CFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Assemble: create object files from assembler source files. ARM/Thumb
|
||||||
|
$(AOBJ) : %.o : %.S
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_ASSEMBLING) $<
|
||||||
|
$(CC) -c $(ALL_ASFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Assemble: create object files from assembler source files. ARM-only
|
||||||
|
$(AOBJARM) : %.o : %.S
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_ASSEMBLING_ARM) $<
|
||||||
|
$(CC) -c $(ALL_ASFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Target: clean project.
|
||||||
|
clean: begin clean_list finished end
|
||||||
|
|
||||||
|
|
||||||
|
clean_list :
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_CLEANING)
|
||||||
|
$(REMOVE) $(TARGET).hex
|
||||||
|
$(REMOVE) $(TARGET).bin
|
||||||
|
$(REMOVE) $(TARGET).obj
|
||||||
|
$(REMOVE) $(TARGET).elf
|
||||||
|
$(REMOVE) $(TARGET).map
|
||||||
|
$(REMOVE) $(TARGET).obj
|
||||||
|
$(REMOVE) $(TARGET).a90
|
||||||
|
$(REMOVE) $(TARGET).sym
|
||||||
|
$(REMOVE) $(TARGET).lnk
|
||||||
|
$(REMOVE) $(TARGET).lss
|
||||||
|
$(REMOVE) $(COBJ)
|
||||||
|
$(REMOVE) $(CPPOBJ)
|
||||||
|
$(REMOVE) $(AOBJ)
|
||||||
|
$(REMOVE) $(COBJARM)
|
||||||
|
$(REMOVE) $(CPPOBJARM)
|
||||||
|
$(REMOVE) $(AOBJARM)
|
||||||
|
$(REMOVE) $(LST)
|
||||||
|
$(REMOVE) $(SRC:.c=.s)
|
||||||
|
$(REMOVE) $(SRC:.c=.d)
|
||||||
|
$(REMOVE) $(SRCARM:.c=.s)
|
||||||
|
$(REMOVE) $(SRCARM:.c=.d)
|
||||||
|
$(REMOVE) $(CPPSRC:.cpp=.s)
|
||||||
|
$(REMOVE) $(CPPSRC:.cpp=.d)
|
||||||
|
$(REMOVE) $(CPPSRCARM:.cpp=.s)
|
||||||
|
$(REMOVE) $(CPPSRCARM:.cpp=.d)
|
||||||
|
$(REMOVE) .dep/*
|
||||||
|
$(REMOVE) include/compile.h
|
||||||
|
$(REMOVE) src/picc/usb_strings_app.h
|
||||||
|
$(REMOVE) scripts/usbstring
|
||||||
|
|
||||||
|
.PHONY: include/compile.h
|
||||||
|
include/compile.h:
|
||||||
|
scripts/mkcompile_h > $@
|
||||||
|
|
||||||
|
$(USBSTRINGS): %.h : %.txt ./scripts/usbstring
|
||||||
|
cat $< | ./scripts/usbstring > $@
|
||||||
|
|
||||||
|
scripts/usbstring: scripts/usbstring.c
|
||||||
|
gcc $^ -o $@
|
||||||
|
|
||||||
|
# Include the dependency files.
|
||||||
|
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
|
||||||
|
|
||||||
|
|
||||||
|
# Listing of phony targets.
|
||||||
|
.PHONY : all begin finish end sizebefore sizeafter gccversion \
|
||||||
|
build elf hex bin lss sym clean clean_list program
|
||||||
|
|
572
firmware/Makefile.dfu
Normal file
572
firmware/Makefile.dfu
Normal file
@ -0,0 +1,572 @@
|
|||||||
|
# Hey Emacs, this is a -*- makefile -*-
|
||||||
|
#
|
||||||
|
# WinARM makefile for the FreeRTOS-demo on LPC2138
|
||||||
|
# based in information from the FreeRTOS LPC2106 example
|
||||||
|
#
|
||||||
|
# by Martin Thomas, Kaiserslautern, Germany
|
||||||
|
# <eversmith@heizung-thomas.de>
|
||||||
|
#
|
||||||
|
# based on the WinAVR makefile written by Eric B. Weddington, Jörg Wunsch, et al.
|
||||||
|
# Released to the Public Domain
|
||||||
|
# Please read the make user manual!
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# On command line:
|
||||||
|
#
|
||||||
|
# make all = Make software.
|
||||||
|
#
|
||||||
|
# make clean = Clean out built project files.
|
||||||
|
#
|
||||||
|
# make program = Download the hex file to the device
|
||||||
|
#
|
||||||
|
# (TODO: make filename.s = Just compile filename.c into the assembler code only)
|
||||||
|
#
|
||||||
|
# To rebuild project do "make clean" then "make all".
|
||||||
|
#
|
||||||
|
# Changelog:
|
||||||
|
# - 17. Feb. 2005 - added thumb-interwork support (mth)
|
||||||
|
# - 28. Apr. 2005 - added C++ support (mth)
|
||||||
|
# - 29. Arp. 2005 - changed handling for lst-Filename (mth)
|
||||||
|
# - 1. Nov. 2005 - exception-vector placement options (mth)
|
||||||
|
# - 15. Nov. 2005 - added library-search-path (EXTRA_LIB...) (mth)
|
||||||
|
# - 2. Dec. 2005 - fixed ihex and binary file extensions (mth)
|
||||||
|
# - 22. Feb. 2006 - added AT91LIBNOWARN setting (mth)
|
||||||
|
# - 19. Apr. 2006 - option FLASH_TOOL (default lpc21isp); variable IMGEXT (mth)
|
||||||
|
# - 19. Mai. 2006 - USE_THUMB_MODE switch, ROM_RUN->RUN_FROM_ROM RAM_RUN->RUN_FROM_RAM
|
||||||
|
|
||||||
|
|
||||||
|
FLASH_TOOL = AT91FLASH
|
||||||
|
#FLASH_TOOL = UVISION
|
||||||
|
#FLASH_TOOL = OPENOCD
|
||||||
|
|
||||||
|
# MCU name and submodel
|
||||||
|
MCU = arm7tdmi
|
||||||
|
#SUBMDL = AT91SAM7S64
|
||||||
|
SUBMDL = AT91SAM7S256
|
||||||
|
|
||||||
|
USE_THUMB_MODE = NO
|
||||||
|
#USE_THUMB_MODE = YES
|
||||||
|
|
||||||
|
## Create ROM-Image (final)
|
||||||
|
RUN_MODE=RUN_FROM_ROM
|
||||||
|
## Create RAM-Image (debugging) - not used in this example
|
||||||
|
#RUN_MODE=RUN_FROM_RAM
|
||||||
|
|
||||||
|
## We want to produce a full-flash image, but including DFU
|
||||||
|
IMGTYPE=-sam7dfu-dfu
|
||||||
|
|
||||||
|
# with / at end
|
||||||
|
PATH_TO_LINKSCRIPTS=link/
|
||||||
|
|
||||||
|
#### not used in this example:
|
||||||
|
## Exception-Vector placement only supported for "ROM_RUN"
|
||||||
|
## (placement settings ignored when using "RAM_RUN")
|
||||||
|
## - Exception vectors in ROM:
|
||||||
|
#VECTOR_LOCATION=VECTORS_IN_ROM
|
||||||
|
## - Exception vectors in RAM:
|
||||||
|
#VECTOR_LOCATION=VECTORS_IN_RAM
|
||||||
|
|
||||||
|
# Target file name (without extension).
|
||||||
|
TARGET:=dfu
|
||||||
|
|
||||||
|
USBSTRINGS=src/picc/usb_strings_dfu.h src/pcd/usb_strings_dfu.h
|
||||||
|
|
||||||
|
# List C source files here. (C dependencies are automatically generated.)
|
||||||
|
# use file-extension c for "c-only"-files
|
||||||
|
SRC =
|
||||||
|
|
||||||
|
# List C source files here which must be compiled in ARM-Mode.
|
||||||
|
# use file-extension c for "c-only"-files
|
||||||
|
|
||||||
|
SRCARM = src/start/Cstartup_SAM7.c lib/lib_AT91SAM7.c \
|
||||||
|
src/dfu/dfu.c src/dfu/dbgu.c src/os/flash.c
|
||||||
|
|
||||||
|
# List C++ source files here.
|
||||||
|
# use file-extension cpp for C++-files (use extension .cpp)
|
||||||
|
CPPSRC =
|
||||||
|
|
||||||
|
# List C++ source files here which must be compiled in ARM-Mode.
|
||||||
|
# use file-extension cpp for C++-files (use extension .cpp)
|
||||||
|
#CPPSRCARM = $(TARGET).cpp
|
||||||
|
CPPSRCARM =
|
||||||
|
|
||||||
|
# List Assembler source files here.
|
||||||
|
# Make them always end in a capital .S. Files ending in a lowercase .s
|
||||||
|
# will not be considered source files but generated files (assembler
|
||||||
|
# output from the compiler), and will be deleted upon "make clean"!
|
||||||
|
# Even though the DOS/Win* filesystem matches both .s and .S the same,
|
||||||
|
# it will preserve the spelling of the filenames, and gcc itself does
|
||||||
|
# care about how the name is spelled on its command-line.
|
||||||
|
ASRC =
|
||||||
|
|
||||||
|
# List Assembler source files here which must be assembled in ARM-Mode..
|
||||||
|
ASRCARM = src/start/Cstartup.S
|
||||||
|
|
||||||
|
ifeq ($(DEBUG),1)
|
||||||
|
SRCARM += lib/vsprintf.c lib/ctype.c lib/string.c
|
||||||
|
ASRCARM += lib/div64.S
|
||||||
|
endif
|
||||||
|
|
||||||
|
## Output format. (can be ihex or binary)
|
||||||
|
## (binary i.e. for openocd and SAM-BA, hex i.e. for lpc21isp and uVision)
|
||||||
|
#FORMAT = ihex
|
||||||
|
FORMAT = binary
|
||||||
|
|
||||||
|
# Optimization level, can be [0, 1, 2, 3, s].
|
||||||
|
# 0 = turn off optimization. s = optimize for size.
|
||||||
|
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
|
||||||
|
OPT = s
|
||||||
|
#OPT = 0
|
||||||
|
|
||||||
|
# Debugging format.
|
||||||
|
# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2.
|
||||||
|
# AVR (extended) COFF requires stabs, plus an avr-objcopy run.
|
||||||
|
#DEBUGF = stabs
|
||||||
|
DEBUGF = dwarf-2
|
||||||
|
|
||||||
|
# List any extra directories to look for include files here.
|
||||||
|
# Each directory must be seperated by a space.
|
||||||
|
#### FreeRTOS
|
||||||
|
EXTRAINCDIRS =
|
||||||
|
|
||||||
|
# List any extra directories to look for library files here.
|
||||||
|
# Each directory must be seperated by a space.
|
||||||
|
#EXTRA_LIBDIRS = ../arm7_efsl_0_2_4
|
||||||
|
EXTRA_LIBDIRS =
|
||||||
|
|
||||||
|
## Using the Atmel AT91_lib produces warning with
|
||||||
|
## the default warning-levels.
|
||||||
|
## yes - disable these warnings; no - keep default settings
|
||||||
|
AT91LIBNOWARN = yes
|
||||||
|
#AT91LIBNOWARN = no
|
||||||
|
|
||||||
|
# Compiler flag to set the C Standard level.
|
||||||
|
# c89 - "ANSI" C
|
||||||
|
# gnu89 - c89 plus GCC extensions
|
||||||
|
# c99 - ISO C99 standard (not yet fully implemented)
|
||||||
|
# gnu99 - c99 plus GCC extensions
|
||||||
|
CSTANDARD = -std=gnu99
|
||||||
|
|
||||||
|
# Place -D or -U options for C here
|
||||||
|
CDEFS = -D$(RUN_MODE) -D__MS_types__ -D__LIBRFID__
|
||||||
|
|
||||||
|
ifdef DEBUG
|
||||||
|
CDEFS += -DDEBUG
|
||||||
|
ADEFS += -DDEBUG
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD),OLIMEX)
|
||||||
|
CDEFS += -DOLIMEX
|
||||||
|
ADEFS += -DOLIMEX
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD),PICC)
|
||||||
|
CDEFS += -DPICC
|
||||||
|
ADEFS += -DPICC
|
||||||
|
CINCS = -Isrc/picc
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(BOARD),PCD)
|
||||||
|
SUBMDL = AT91SAM7S128
|
||||||
|
CDEFS += -DPCD
|
||||||
|
ADEFS += -DPCD
|
||||||
|
CINCS = -Isrc/pcd
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Place -I options here
|
||||||
|
CINCS += -Iinclude -Isrc
|
||||||
|
|
||||||
|
# Place -D or -U options for ASM here
|
||||||
|
ADEFS += -D$(RUN_MODE)
|
||||||
|
|
||||||
|
ifdef VECTOR_LOCATION
|
||||||
|
CDEFS += -D$(VECTOR_LOCATION)
|
||||||
|
ADEFS += -D$(VECTOR_LOCATION)
|
||||||
|
endif
|
||||||
|
|
||||||
|
CDEFS += -D__$(SUBMDL)__
|
||||||
|
ADEFS += -D__$(SUBMDL)__
|
||||||
|
|
||||||
|
|
||||||
|
# Compiler flags.
|
||||||
|
# -g*: generate debugging information
|
||||||
|
# -O*: optimization level
|
||||||
|
# -f...: tuning, see GCC manual and avr-libc documentation
|
||||||
|
# -Wall...: warning level
|
||||||
|
# -Wa,...: tell GCC to pass this to the assembler.
|
||||||
|
# -adhlns...: create assembler listing
|
||||||
|
#
|
||||||
|
# Flags for C and C++ (arm-elf-gcc/arm-elf-g++)
|
||||||
|
CFLAGS += -g$(DEBUGF) -DBOARD=$(BOARD)
|
||||||
|
CFLAGS += $(CDEFS) $(CINCS)
|
||||||
|
CFLAGS += -O$(OPT)
|
||||||
|
CFLAGS += -Wall -Wextra -Wcast-align -Wimplicit -Wunused
|
||||||
|
CFLAGS += -Wpointer-arith -Wswitch
|
||||||
|
CFLAGS += -Wredundant-decls -Wreturn-type -Wshadow
|
||||||
|
CFLAGS += -Wbad-function-cast -Wsign-compare -Waggregate-return
|
||||||
|
CFLAGS += -Wa,-adhlns=$(subst $(suffix $<),.lst,$<)
|
||||||
|
CFLAGS += $(patsubst %,-I%,$(EXTRAINCDIRS))
|
||||||
|
#CFLAGS += -ffunction-sections -fdata-sections
|
||||||
|
|
||||||
|
# flags only for C
|
||||||
|
CONLYFLAGS += -Wnested-externs
|
||||||
|
CONLYFLAGS += $(CSTANDARD)
|
||||||
|
|
||||||
|
ifneq ($(AT91LIBNOWARN),yes)
|
||||||
|
#AT91-lib warnings with:
|
||||||
|
CFLAGS += -Wcast-qual
|
||||||
|
CONLYFLAGS += -Wmissing-prototypes
|
||||||
|
CONLYFLAGS += -Wstrict-prototypes
|
||||||
|
CONLYFLAGS += -Wmissing-declarations
|
||||||
|
endif
|
||||||
|
|
||||||
|
# flags only for C++ (arm-elf-g++)
|
||||||
|
# CPPFLAGS = -fno-rtti -fno-exceptions
|
||||||
|
CPPFLAGS =
|
||||||
|
|
||||||
|
# Assembler flags.
|
||||||
|
# -Wa,...: tell GCC to pass this to the assembler.
|
||||||
|
# -ahlns: create listing
|
||||||
|
# -g$(DEBUGF): have the assembler create line number information
|
||||||
|
ASFLAGS = $(ADEFS) -Wa,-adhlns=$(<:.S=.lst),--g$(DEBUGF) -Iinclude/ -D__ASSEMBLY__
|
||||||
|
|
||||||
|
|
||||||
|
#Additional libraries.
|
||||||
|
|
||||||
|
# Extra libraries
|
||||||
|
# Each library-name must be seperated by a space.
|
||||||
|
# To add libxyz.a, libabc.a and libefsl.a:
|
||||||
|
# EXTRA_LIBS = xyz abc efsl
|
||||||
|
#EXTRA_LIBS = efsl
|
||||||
|
EXTRA_LIBS =
|
||||||
|
|
||||||
|
#Support for newlibc-lpc (file: libnewlibc-lpc.a)
|
||||||
|
#NEWLIBLPC = -lnewlib-lpc
|
||||||
|
|
||||||
|
MATH_LIB = #-lm
|
||||||
|
|
||||||
|
# CPLUSPLUS_LIB = -lstdc++
|
||||||
|
|
||||||
|
|
||||||
|
# Linker flags.
|
||||||
|
# -Wl,...: tell GCC to pass this to linker.
|
||||||
|
# -Map: create map file
|
||||||
|
# --cref: add cross reference to map file
|
||||||
|
LDFLAGS = -nostartfiles -Wl,-Map=$(TARGET).map,--cref
|
||||||
|
LDFLAGS += $(NEWLIBLPC) $(MATH_LIB)
|
||||||
|
LDFLAGS += -lc -lgcc
|
||||||
|
LDFLAGS += $(CPLUSPLUS_LIB)
|
||||||
|
LDFLAGS += $(patsubst %,-L%,$(EXTRA_LIBDIRS))
|
||||||
|
LDFLAGS += $(patsubst %,-l%,$(EXTRA_LIBS))
|
||||||
|
#LDFLAGS += --gc-sections
|
||||||
|
|
||||||
|
# Set Linker-Script Depending On Selected Memory and Controller
|
||||||
|
ifeq ($(RUN_MODE),RUN_FROM_RAM)
|
||||||
|
LDFLAGS +=-T$(PATH_TO_LINKSCRIPTS)$(SUBMDL)-RAM.ld
|
||||||
|
else
|
||||||
|
LDFLAGS +=-T$(PATH_TO_LINKSCRIPTS)$(SUBMDL)-ROM$(IMGTYPE).ld
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
# Flash-Programming support using lpc21isp by Martin Maurer
|
||||||
|
# only for Philips LPC and Analog ADuC ARMs
|
||||||
|
#
|
||||||
|
# Settings and variables:
|
||||||
|
#LPC21ISP = lpc21isp
|
||||||
|
LPC21ISP = lpc21isp
|
||||||
|
LPC21ISP_PORT = com1
|
||||||
|
LPC21ISP_BAUD = 38400
|
||||||
|
LPC21ISP_XTAL = 12000
|
||||||
|
LPC21ISP_FLASHFILE = $(TARGET).hex
|
||||||
|
# verbose output:
|
||||||
|
#LPC21ISP_DEBUG = -debug
|
||||||
|
# enter bootloader via RS232 DTR/RTS (only if hardware supports this
|
||||||
|
# feature - see Philips AppNote):
|
||||||
|
LPC21ISP_CONTROL = -control
|
||||||
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
# Define directories, if needed.
|
||||||
|
## DIRARM = c:/WinARM/
|
||||||
|
## DIRARMBIN = $(DIRAVR)/bin/
|
||||||
|
## DIRAVRUTILS = $(DIRAVR)/utils/bin/
|
||||||
|
|
||||||
|
# Define programs and commands.
|
||||||
|
SHELL = sh
|
||||||
|
CC = arm-none-eabi-gcc
|
||||||
|
CPP = arm-none-eabi-g++
|
||||||
|
OBJCOPY = arm-none-eabi-objcopy
|
||||||
|
OBJDUMP = arm-none-eabi-objdump
|
||||||
|
SIZE = arm-none-eabi-size
|
||||||
|
NM = arm-none-eabi-nm
|
||||||
|
#CC = arm-elf-gcc
|
||||||
|
#CPP = arm-elf-g++
|
||||||
|
#OBJCOPY = arm-elf-objcopy
|
||||||
|
#OBJDUMP = arm-elf-objdump
|
||||||
|
#SIZE = arm-elf-size
|
||||||
|
#NM = arm-elf-nm
|
||||||
|
REMOVE = rm -f
|
||||||
|
COPY = cp
|
||||||
|
|
||||||
|
# Define Messages
|
||||||
|
# English
|
||||||
|
MSG_ERRORS_NONE = Errors: none
|
||||||
|
MSG_BEGIN = "-------- begin (mode: $(RUN_MODE)) --------"
|
||||||
|
MSG_END = -------- end --------
|
||||||
|
MSG_SIZE_BEFORE = Size before:
|
||||||
|
MSG_SIZE_AFTER = Size after:
|
||||||
|
MSG_FLASH = Creating load file for Flash:
|
||||||
|
MSG_EXTENDED_LISTING = Creating Extended Listing:
|
||||||
|
MSG_SYMBOL_TABLE = Creating Symbol Table:
|
||||||
|
MSG_LINKING = Linking:
|
||||||
|
MSG_COMPILING = Compiling C:
|
||||||
|
MSG_COMPILING_ARM = "Compiling C (ARM-only):"
|
||||||
|
MSG_COMPILINGCPP = Compiling C++:
|
||||||
|
MSG_COMPILINGCPP_ARM = "Compiling C++ (ARM-only):"
|
||||||
|
MSG_ASSEMBLING = Assembling:
|
||||||
|
MSG_ASSEMBLING_ARM = "Assembling (ARM-only):"
|
||||||
|
MSG_CLEANING = Cleaning project:
|
||||||
|
MSG_FORMATERROR = Can not handle output-format
|
||||||
|
MSG_LPC21_RESETREMINDER = You may have to bring the target in bootloader-mode now.
|
||||||
|
|
||||||
|
# Define all object files.
|
||||||
|
COBJ = $(SRC:.c=.o)
|
||||||
|
AOBJ = $(ASRC:.S=.o)
|
||||||
|
COBJARM = $(SRCARM:.c=.o)
|
||||||
|
AOBJARM = $(ASRCARM:.S=.o)
|
||||||
|
CPPOBJ = $(CPPSRC:.cpp=.o)
|
||||||
|
CPPOBJARM = $(CPPSRCARM:.cpp=.o)
|
||||||
|
|
||||||
|
# Define all listing files.
|
||||||
|
LST = $(ASRC:.S=.lst) $(ASRCARM:.S=.lst) $(SRC:.c=.lst) $(SRCARM:.c=.lst)
|
||||||
|
LST += $(CPPSRC:.cpp=.lst) $(CPPSRCARM:.cpp=.lst)
|
||||||
|
|
||||||
|
# Compiler flags to generate dependency files.
|
||||||
|
### GENDEPFLAGS = -Wp,-M,-MP,-MT,$(*F).o,-MF,.dep/$(@F).d
|
||||||
|
GENDEPFLAGS = -MD -MP -MF .dep/$(@F).d
|
||||||
|
|
||||||
|
# Combine all necessary flags and optional flags.
|
||||||
|
# Add target processor to flags.
|
||||||
|
ALL_CFLAGS = -mcpu=$(MCU) -I. $(CFLAGS) $(GENDEPFLAGS)
|
||||||
|
ALL_ASFLAGS = -mcpu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
# Default target.
|
||||||
|
all: begin gccversion sizebefore build sizeafter finished end
|
||||||
|
|
||||||
|
ifeq ($(FORMAT),ihex)
|
||||||
|
build: elf hex lss sym
|
||||||
|
hex: $(TARGET).hex
|
||||||
|
IMGEXT=hex
|
||||||
|
else
|
||||||
|
ifeq ($(FORMAT),binary)
|
||||||
|
build: elf bin lss sym
|
||||||
|
bin: $(TARGET).bin
|
||||||
|
IMGEXT=bin
|
||||||
|
else
|
||||||
|
$(error "$(MSG_FORMATERROR) $(FORMAT)")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
elf: $(TARGET).elf
|
||||||
|
lss: $(TARGET).lss
|
||||||
|
sym: $(TARGET).sym
|
||||||
|
|
||||||
|
# Eye candy.
|
||||||
|
begin:
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_BEGIN)
|
||||||
|
|
||||||
|
finished:
|
||||||
|
@echo $(MSG_ERRORS_NONE)
|
||||||
|
|
||||||
|
end:
|
||||||
|
@echo $(MSG_END)
|
||||||
|
@echo
|
||||||
|
|
||||||
|
|
||||||
|
# Display size of file.
|
||||||
|
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
|
||||||
|
ELFSIZE = $(SIZE) -A $(TARGET).elf
|
||||||
|
sizebefore:
|
||||||
|
@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_BEFORE); $(ELFSIZE); echo; fi
|
||||||
|
|
||||||
|
sizeafter:
|
||||||
|
@if [ -f $(TARGET).elf ]; then echo; echo $(MSG_SIZE_AFTER); $(ELFSIZE); echo; fi
|
||||||
|
|
||||||
|
|
||||||
|
# Display compiler version information.
|
||||||
|
gccversion :
|
||||||
|
@$(CC) --version
|
||||||
|
|
||||||
|
|
||||||
|
# Program the device.
|
||||||
|
# Program the device by using our relais card robot over USB
|
||||||
|
ifeq ($(FLASH_TOOL),AT91FLASH)
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
ls -l $(TARGET).$(IMGEXT)
|
||||||
|
at91flash $(TARGET).$(IMGEXT)
|
||||||
|
else
|
||||||
|
ifeq ($(FLASH_TOOL),UVISION)
|
||||||
|
# Program the device with Keil's uVision (needs configured uVision-Workspace).
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
@echo
|
||||||
|
@echo "Programming with uVision"
|
||||||
|
C:\Keil\uv3\Uv3.exe -f uvisionflash.Uv2 -ouvisionflash.txt
|
||||||
|
else
|
||||||
|
ifeq ($(FLASH_TOOL),OPENOCD)
|
||||||
|
# Program the device with Dominic Rath's OPENOCD in "batch-mode", needs cfg and "reset-script".
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
@echo
|
||||||
|
@echo "Programming with OPENOCD"
|
||||||
|
C:\WinARM\utils\openocd\openocd_svn59\openocd.exe -f oocd_sam7_flash.cfg
|
||||||
|
else
|
||||||
|
# Program the device. - lpc21isp will not work for SAM7
|
||||||
|
program: $(TARGET).$(IMGEXT)
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_LPC21_RESETREMINDER)
|
||||||
|
$(LPC21ISP) $(LPC21ISP_OPTIONS) $(LPC21ISP_DEBUG) $(LPC21ISP_FLASHFILE) $(LPC21ISP_PORT) $(LPC21ISP_BAUD) $(LPC21ISP_XTAL)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# Create final output file (.hex) from ELF output file.
|
||||||
|
%.hex: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_FLASH) $@
|
||||||
|
$(OBJCOPY) -O $(FORMAT) $< $@
|
||||||
|
|
||||||
|
# Create final output file (.bin) from ELF output file.
|
||||||
|
%.bin: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_FLASH) $@
|
||||||
|
$(OBJCOPY) -O $(FORMAT) $< $@
|
||||||
|
|
||||||
|
|
||||||
|
# Create extended listing file from ELF output file.
|
||||||
|
# testing: option -C
|
||||||
|
%.lss: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_EXTENDED_LISTING) $@
|
||||||
|
$(OBJDUMP) -h -S -C $< > $@
|
||||||
|
|
||||||
|
|
||||||
|
# Create a symbol table from ELF output file.
|
||||||
|
%.sym: %.elf
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_SYMBOL_TABLE) $@
|
||||||
|
$(NM) -n $< > $@
|
||||||
|
|
||||||
|
|
||||||
|
# Link: create ELF output file from object files.
|
||||||
|
.SECONDARY : $(TARGET).elf
|
||||||
|
.PRECIOUS : $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM)
|
||||||
|
%.elf: $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM)
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_LINKING) $@
|
||||||
|
$(CC) $(ALL_CFLAGS) $(AOBJARM) $(AOBJ) $(COBJARM) $(COBJ) $(CPPOBJ) $(CPPOBJARM) --output $@ $(LDFLAGS)
|
||||||
|
|
||||||
|
# Compile: create object files from C source files. ARM/Thumb
|
||||||
|
$(COBJ) : %.o : %.c
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILING) $<
|
||||||
|
$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
|
||||||
|
|
||||||
|
# Compile: create object files from C source files. ARM-only
|
||||||
|
$(COBJARM) : %.o : %.c include/compile.h $(USBSTRINGS)
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILING_ARM) $<
|
||||||
|
$(CC) -c $(ALL_CFLAGS) $(CONLYFLAGS) $< -o $@
|
||||||
|
|
||||||
|
# Compile: create object files from C++ source files. ARM/Thumb
|
||||||
|
$(CPPOBJ) : %.o : %.cpp
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILINGCPP) $<
|
||||||
|
$(CPP) -c $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
# Compile: create object files from C++ source files. ARM-only
|
||||||
|
$(CPPOBJARM) : %.o : %.cpp
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_COMPILINGCPP_ARM) $<
|
||||||
|
$(CPP) -c $(ALL_CFLAGS) $(CPPFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Compile: create assembler files from C source files. ARM/Thumb
|
||||||
|
## does not work - TODO - hints welcome
|
||||||
|
##$(COBJ) : %.s : %.c
|
||||||
|
## $(CC) $(THUMB) -S $(ALL_CFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Assemble: create object files from assembler source files. ARM/Thumb
|
||||||
|
$(AOBJ) : %.o : %.S
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_ASSEMBLING) $<
|
||||||
|
$(CC) -c $(ALL_ASFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Assemble: create object files from assembler source files. ARM-only
|
||||||
|
$(AOBJARM) : %.o : %.S
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_ASSEMBLING_ARM) $<
|
||||||
|
$(CC) -c $(ALL_ASFLAGS) $< -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Target: clean project.
|
||||||
|
clean: begin clean_list finished end
|
||||||
|
|
||||||
|
|
||||||
|
clean_list :
|
||||||
|
@echo
|
||||||
|
@echo $(MSG_CLEANING)
|
||||||
|
$(REMOVE) $(TARGET).hex
|
||||||
|
$(REMOVE) $(TARGET).bin
|
||||||
|
$(REMOVE) $(TARGET).obj
|
||||||
|
$(REMOVE) $(TARGET).elf
|
||||||
|
$(REMOVE) $(TARGET).map
|
||||||
|
$(REMOVE) $(TARGET).obj
|
||||||
|
$(REMOVE) $(TARGET).a90
|
||||||
|
$(REMOVE) $(TARGET).sym
|
||||||
|
$(REMOVE) $(TARGET).lnk
|
||||||
|
$(REMOVE) $(TARGET).lss
|
||||||
|
$(REMOVE) $(COBJ)
|
||||||
|
$(REMOVE) $(CPPOBJ)
|
||||||
|
$(REMOVE) $(AOBJ)
|
||||||
|
$(REMOVE) $(COBJARM)
|
||||||
|
$(REMOVE) $(CPPOBJARM)
|
||||||
|
$(REMOVE) $(AOBJARM)
|
||||||
|
$(REMOVE) $(LST)
|
||||||
|
$(REMOVE) $(SRC:.c=.s)
|
||||||
|
$(REMOVE) $(SRC:.c=.d)
|
||||||
|
$(REMOVE) $(SRCARM:.c=.s)
|
||||||
|
$(REMOVE) $(SRCARM:.c=.d)
|
||||||
|
$(REMOVE) $(CPPSRC:.cpp=.s)
|
||||||
|
$(REMOVE) $(CPPSRC:.cpp=.d)
|
||||||
|
$(REMOVE) $(CPPSRCARM:.cpp=.s)
|
||||||
|
$(REMOVE) $(CPPSRCARM:.cpp=.d)
|
||||||
|
$(REMOVE) .dep/*
|
||||||
|
$(REMOVE) src/picc/usb_strings_dfu.h
|
||||||
|
$(REMOVE) src/dfu/usb_strings_dfu.h
|
||||||
|
$(REMOVE) scripts/usbstring
|
||||||
|
|
||||||
|
.PHONY: include/compile.h
|
||||||
|
include/compile.h:
|
||||||
|
scripts/mkcompile_h > $@
|
||||||
|
|
||||||
|
.PHONY:
|
||||||
|
$(USBSTRINGS): %.h : %.txt ./scripts/usbstring
|
||||||
|
cat $< | ./scripts/usbstring > $@
|
||||||
|
|
||||||
|
scripts/usbstring: scripts/usbstring.c
|
||||||
|
gcc $^ -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# Include the dependency files.
|
||||||
|
-include $(shell mkdir .dep 2>/dev/null) $(wildcard .dep/*)
|
||||||
|
|
||||||
|
|
||||||
|
# Listing of phony targets.
|
||||||
|
.PHONY : all begin finish end sizebefore sizeafter gccversion \
|
||||||
|
build elf hex bin lss sym clean clean_list program
|
||||||
|
|
13
firmware/README
Normal file
13
firmware/README
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Different Targets can be built by implementing a _init_func() and _main_func()_
|
||||||
|
function in src/main_foo.c
|
||||||
|
|
||||||
|
The resulting binary main_foo.bin can be built by issuing
|
||||||
|
make BOARD=PCD TARGET=main_foo
|
||||||
|
|
||||||
|
If you want to add debugging support (debug unit aka DBGU, RS232), add DEBUG=1
|
||||||
|
|
||||||
|
|
||||||
|
Building dfu.bin (the DFU loader binary):
|
||||||
|
make -f Makefile.dfu BOARD=PCD
|
||||||
|
|
||||||
|
For more information, please read http://wiki.openpcd.org/wiki/Firmware
|
23
firmware/TODO
Normal file
23
firmware/TODO
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
SPI:
|
||||||
|
- use PDC DMA for SPI transfers
|
||||||
|
|
||||||
|
RC632:
|
||||||
|
- Fix locking between 'atomic' ops like set/clear bit and RC632 IRQ
|
||||||
|
- Implement VFIFO handling
|
||||||
|
|
||||||
|
USB:
|
||||||
|
- Implement suspend/resume handshake
|
||||||
|
- Make sure we don't eat a lot of power before entering the configured state
|
||||||
|
|
||||||
|
DFU:
|
||||||
|
- fix DFU download (usb control write / zlp at end)
|
||||||
|
- add capability to flash DFU itself
|
||||||
|
- add a header to the application program, checksum and size
|
||||||
|
- checksum application image. If wrong, enter DFU recovery mode
|
||||||
|
- Get rid of lots of constant values and replace them by proper defines
|
||||||
|
|
||||||
|
Generic:
|
||||||
|
- why is watchdog apparently not working?
|
||||||
|
|
||||||
|
Way Later, for librfid:
|
||||||
|
- Implement parts (or all of) 14443 in firmware as alternative configuration
|
BIN
firmware/dfu.bin
Normal file
BIN
firmware/dfu.bin
Normal file
Binary file not shown.
BIN
firmware/dfu.elf
Normal file
BIN
firmware/dfu.elf
Normal file
Binary file not shown.
4097
firmware/dfu.lss
Normal file
4097
firmware/dfu.lss
Normal file
File diff suppressed because it is too large
Load Diff
428
firmware/dfu.map
Normal file
428
firmware/dfu.map
Normal file
@ -0,0 +1,428 @@
|
|||||||
|
Archive member included because of file (symbol)
|
||||||
|
|
||||||
|
e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
lib/lib_AT91SAM7.o (__aeabi_uidiv)
|
||||||
|
e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
src/dfu/dfu.o (__aeabi_idivmod)
|
||||||
|
e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_dvmd_tls.o)
|
||||||
|
e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o) (__aeabi_idiv0)
|
||||||
|
|
||||||
|
Memory Configuration
|
||||||
|
|
||||||
|
Name Origin Length Attributes
|
||||||
|
FLASH 0x00000000 0x00004000 xr
|
||||||
|
DATA 0x00200000 0x00008000 rw
|
||||||
|
STACK 0x00208000 0x00000000 rw
|
||||||
|
*default* 0x00000000 0xffffffff
|
||||||
|
|
||||||
|
Linker script and memory map
|
||||||
|
|
||||||
|
LOAD src/start/Cstartup.o
|
||||||
|
LOAD src/start/Cstartup_SAM7.o
|
||||||
|
LOAD lib/lib_AT91SAM7.o
|
||||||
|
LOAD src/dfu/dfu.o
|
||||||
|
LOAD src/dfu/dbgu.o
|
||||||
|
LOAD src/os/flash.o
|
||||||
|
LOAD e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib\libc.a
|
||||||
|
LOAD e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a
|
||||||
|
START GROUP
|
||||||
|
LOAD e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a
|
||||||
|
LOAD e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2/../../../../arm-none-eabi/lib\libc.a
|
||||||
|
END GROUP
|
||||||
|
0x00000000 . = 0x0
|
||||||
|
|
||||||
|
.text 0x00000000 0x1ac0
|
||||||
|
*(.reset)
|
||||||
|
.reset 0x00000000 0x0 src/start/Cstartup.o
|
||||||
|
*(.text)
|
||||||
|
.text 0x00000000 0x1f0 src/start/Cstartup.o
|
||||||
|
0x0000004c IRQ_Handler_Entry
|
||||||
|
0x000001a0 exit
|
||||||
|
0x000001a4 AT91F_Default_FIQ_handler
|
||||||
|
0x000001a8 AT91F_Default_IRQ_handler
|
||||||
|
0x000001ac AT91F_Spurious_handler
|
||||||
|
.text 0x000001f0 0x10c src/start/Cstartup_SAM7.o
|
||||||
|
0x000001f0 AT91F_LowLevelInit
|
||||||
|
.text 0x000002fc 0x580 lib/lib_AT91SAM7.o
|
||||||
|
0x0000035c AT91F_AIC_ConfigureIt
|
||||||
|
0x00000394 AT91F_AIC_SetExceptionVector
|
||||||
|
0x000003c8 AT91F_AIC_Open
|
||||||
|
0x00000444 AT91F_PDC_Open
|
||||||
|
0x000004b0 AT91F_PDC_Close
|
||||||
|
0x00000508 AT91F_PDC_SendFrame
|
||||||
|
0x0000055c AT91F_PDC_ReceiveFrame
|
||||||
|
0x000005b0 AT91F_PMC_GetMasterClock
|
||||||
|
0x0000063c AT91F_RTTReadValue
|
||||||
|
0x0000066c AT91F_SPI_Close
|
||||||
|
0x000006ac AT91F_ADC_CfgTimings
|
||||||
|
0x00000714 AT91F_SSC_SetBaudrate
|
||||||
|
0x00000778 AT91F_SSC_Configure
|
||||||
|
0x000007c4 AT91F_US_Configure
|
||||||
|
0x00000844 AT91F_US_Close
|
||||||
|
.text 0x0000087c 0xb20 src/dfu/dfu.o
|
||||||
|
0x00000c74 dfu_ep0_handler
|
||||||
|
0x000012d8 dfu_main
|
||||||
|
.text 0x0000139c 0x140 src/dfu/dbgu.o
|
||||||
|
0x0000139c AT91F_DBGU_Ready
|
||||||
|
0x000013b0 AT91F_DBGU_Init
|
||||||
|
0x00001440 AT91F_DBGU_Printk
|
||||||
|
0x00001468 AT91F_DBGU_Get
|
||||||
|
.text 0x000014dc 0x7c src/os/flash.o
|
||||||
|
0x000014e8 flash_page
|
||||||
|
0x00001544 flash_init
|
||||||
|
.text 0x00001558 0x114 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
0x00001558 __aeabi_uidiv
|
||||||
|
0x00001558 __udivsi3
|
||||||
|
0x0000164c __aeabi_uidivmod
|
||||||
|
.text 0x0000166c 0x148 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
0x0000166c __divsi3
|
||||||
|
0x0000166c __aeabi_idiv
|
||||||
|
0x00001794 __aeabi_idivmod
|
||||||
|
.text 0x000017b4 0x4 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_dvmd_tls.o)
|
||||||
|
0x000017b4 __aeabi_idiv0
|
||||||
|
0x000017b4 __aeabi_ldiv0
|
||||||
|
*(.rodata*)
|
||||||
|
.rodata 0x000017b8 0x1e4 src/dfu/dfu.o
|
||||||
|
0x000017b8 dfu_dev_descriptor
|
||||||
|
0x000017ca dfu_cfg_descriptor
|
||||||
|
.rodata.str1.1
|
||||||
|
0x0000199c 0x110 src/dfu/dfu.o
|
||||||
|
.rodata.str1.1
|
||||||
|
0x00001aac 0x11 src/dfu/dbgu.o
|
||||||
|
0x14 (size before relaxing)
|
||||||
|
0x00001ac0 . = ALIGN (0x4)
|
||||||
|
*fill* 0x00001abd 0x3 00
|
||||||
|
0x00001ac0 _etext = .
|
||||||
|
0x00001ac0 PROVIDE (etext, .)
|
||||||
|
|
||||||
|
.glue_7 0x00001ac0 0x0
|
||||||
|
.glue_7 0x00000000 0x0 linker stubs
|
||||||
|
|
||||||
|
.glue_7t 0x00001ac0 0x0
|
||||||
|
.glue_7t 0x00000000 0x0 linker stubs
|
||||||
|
|
||||||
|
.vfp11_veneer 0x00001ac0 0x0
|
||||||
|
.vfp11_veneer 0x00000000 0x0 linker stubs
|
||||||
|
|
||||||
|
.v4_bx 0x00001ac0 0x0
|
||||||
|
.v4_bx 0x00000000 0x0 linker stubs
|
||||||
|
|
||||||
|
.data.shared 0x00200020 0x8 load address 0x00001ac0
|
||||||
|
0x00200020 _data_shared = .
|
||||||
|
*(.data.shared)
|
||||||
|
.data.shared 0x00200020 0x8 src/dfu/dfu.o
|
||||||
|
0x00200020 dfu_state
|
||||||
|
0x00200028 . = ALIGN (0x4)
|
||||||
|
0x00200028 _edata_shared = .
|
||||||
|
0x00001ac8 _data_flash = (LOADADDR (.data.shared) + SIZEOF (.data.shared))
|
||||||
|
|
||||||
|
.data 0x00201ac0 0x24 load address 0x00001ac8
|
||||||
|
0x00201ac0 _data = .
|
||||||
|
*(.vectram)
|
||||||
|
.vectram 0x00201ac0 0x1c src/start/Cstartup.o
|
||||||
|
0x00201ac0 _remap_call_dfu
|
||||||
|
*(.data)
|
||||||
|
.data 0x00201adc 0x0 src/start/Cstartup.o
|
||||||
|
.data 0x00201adc 0x0 src/start/Cstartup_SAM7.o
|
||||||
|
.data 0x00201adc 0x0 lib/lib_AT91SAM7.o
|
||||||
|
.data 0x00201adc 0x8 src/dfu/dfu.o
|
||||||
|
0x00201ae0 foo
|
||||||
|
.data 0x00201ae4 0x0 src/dfu/dbgu.o
|
||||||
|
.data 0x00201ae4 0x0 src/os/flash.o
|
||||||
|
.data 0x00201ae4 0x0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
.data 0x00201ae4 0x0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
.data 0x00201ae4 0x0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_dvmd_tls.o)
|
||||||
|
0x00201ae4 . = ALIGN (0x4)
|
||||||
|
0x00201ae4 _edata = .
|
||||||
|
0x00201ae4 PROVIDE (edata, .)
|
||||||
|
|
||||||
|
.dfu.functab 0x00003fd0 0x30
|
||||||
|
*(.dfu.functab)
|
||||||
|
.dfu.functab 0x00003fd0 0x24 src/dfu/dfu.o
|
||||||
|
0x00003fd0 dfu_api
|
||||||
|
0x00004000 . = ALIGN (0x1000)
|
||||||
|
*fill* 0x00003ff4 0xc 00
|
||||||
|
|
||||||
|
.bss 0x00201ae4 0x105 load address 0x00001aec
|
||||||
|
0x00201ae4 __bss_start = .
|
||||||
|
0x00201ae4 __bss_start__ = .
|
||||||
|
*(.bss)
|
||||||
|
.bss 0x00201ae4 0x0 src/start/Cstartup.o
|
||||||
|
.bss 0x00201ae4 0x0 src/start/Cstartup_SAM7.o
|
||||||
|
.bss 0x00201ae4 0x0 lib/lib_AT91SAM7.o
|
||||||
|
.bss 0x00201ae4 0x104 src/dfu/dfu.o
|
||||||
|
.bss 0x00201be8 0x1 src/dfu/dbgu.o
|
||||||
|
.bss 0x00201be9 0x0 src/os/flash.o
|
||||||
|
.bss 0x00201be9 0x0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
.bss 0x00201be9 0x0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
.bss 0x00201be9 0x0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_dvmd_tls.o)
|
||||||
|
*(COMMON)
|
||||||
|
0x00201bec . = ALIGN (0x4)
|
||||||
|
0x00201bec __bss_end__ = .
|
||||||
|
0x00201bec __bss_end__ = .
|
||||||
|
0x00201bec PROVIDE (main, .)
|
||||||
|
0x00201bec _end = .
|
||||||
|
0x00201bec . = ALIGN (0x4)
|
||||||
|
|
||||||
|
.int_data 0x00208000 0x0
|
||||||
|
*(.internal_ram_top)
|
||||||
|
.internal_ram_top
|
||||||
|
0x00208000 0x0 src/start/Cstartup.o
|
||||||
|
0x00208000 PROVIDE (end, .)
|
||||||
|
|
||||||
|
.stab
|
||||||
|
*(.stab)
|
||||||
|
|
||||||
|
.stabstr
|
||||||
|
*(.stabstr)
|
||||||
|
|
||||||
|
.stab.excl
|
||||||
|
*(.stab.excl)
|
||||||
|
|
||||||
|
.stab.exclstr
|
||||||
|
*(.stab.exclstr)
|
||||||
|
|
||||||
|
.stab.index
|
||||||
|
*(.stab.index)
|
||||||
|
|
||||||
|
.stab.indexstr
|
||||||
|
*(.stab.indexstr)
|
||||||
|
|
||||||
|
.ARM.attributes
|
||||||
|
0x00000000 0x2e
|
||||||
|
.ARM.attributes
|
||||||
|
0x00000000 0x22 src/start/Cstartup.o
|
||||||
|
.ARM.attributes
|
||||||
|
0x00000022 0x32 src/start/Cstartup_SAM7.o
|
||||||
|
.ARM.attributes
|
||||||
|
0x00000054 0x32 lib/lib_AT91SAM7.o
|
||||||
|
.ARM.attributes
|
||||||
|
0x00000086 0x32 src/dfu/dfu.o
|
||||||
|
.ARM.attributes
|
||||||
|
0x000000b8 0x32 src/dfu/dbgu.o
|
||||||
|
.ARM.attributes
|
||||||
|
0x000000ea 0x32 src/os/flash.o
|
||||||
|
.ARM.attributes
|
||||||
|
0x0000011c 0x1a e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
.ARM.attributes
|
||||||
|
0x00000136 0x1a e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
.ARM.attributes
|
||||||
|
0x00000150 0x18 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_dvmd_tls.o)
|
||||||
|
|
||||||
|
.comment 0x00000000 0x2a
|
||||||
|
*(.comment)
|
||||||
|
.comment 0x00000000 0x2a src/start/Cstartup_SAM7.o
|
||||||
|
0x2b (size before relaxing)
|
||||||
|
.comment 0x00000000 0x2b lib/lib_AT91SAM7.o
|
||||||
|
.comment 0x00000000 0x2b src/dfu/dfu.o
|
||||||
|
.comment 0x00000000 0x2b src/dfu/dbgu.o
|
||||||
|
.comment 0x00000000 0x2b src/os/flash.o
|
||||||
|
|
||||||
|
.debug
|
||||||
|
*(.debug)
|
||||||
|
|
||||||
|
.line
|
||||||
|
*(.line)
|
||||||
|
|
||||||
|
.debug_srcinfo
|
||||||
|
*(.debug_srcinfo)
|
||||||
|
|
||||||
|
.debug_sfnames
|
||||||
|
*(.debug_sfnames)
|
||||||
|
|
||||||
|
.debug_aranges 0x00000000 0xc8
|
||||||
|
*(.debug_aranges)
|
||||||
|
.debug_aranges
|
||||||
|
0x00000000 0x28 src/start/Cstartup.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000028 0x20 src/start/Cstartup_SAM7.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000048 0x20 lib/lib_AT91SAM7.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000068 0x20 src/dfu/dfu.o
|
||||||
|
.debug_aranges
|
||||||
|
0x00000088 0x20 src/dfu/dbgu.o
|
||||||
|
.debug_aranges
|
||||||
|
0x000000a8 0x20 src/os/flash.o
|
||||||
|
|
||||||
|
.debug_pubnames
|
||||||
|
0x00000000 0x2b7
|
||||||
|
*(.debug_pubnames)
|
||||||
|
.debug_pubnames
|
||||||
|
0x00000000 0x29 src/start/Cstartup_SAM7.o
|
||||||
|
.debug_pubnames
|
||||||
|
0x00000029 0x177 lib/lib_AT91SAM7.o
|
||||||
|
.debug_pubnames
|
||||||
|
0x000001a0 0x83 src/dfu/dfu.o
|
||||||
|
.debug_pubnames
|
||||||
|
0x00000223 0x64 src/dfu/dbgu.o
|
||||||
|
.debug_pubnames
|
||||||
|
0x00000287 0x30 src/os/flash.o
|
||||||
|
|
||||||
|
.debug_info 0x00000000 0x40e7
|
||||||
|
*(.debug_info .gnu.linkonce.wi.*)
|
||||||
|
.debug_info 0x00000000 0x6a src/start/Cstartup.o
|
||||||
|
.debug_info 0x0000006a 0x428 src/start/Cstartup_SAM7.o
|
||||||
|
.debug_info 0x00000492 0x161b lib/lib_AT91SAM7.o
|
||||||
|
.debug_info 0x00001aad 0x172c src/dfu/dfu.o
|
||||||
|
.debug_info 0x000031d9 0xb8d src/dfu/dbgu.o
|
||||||
|
.debug_info 0x00003d66 0x381 src/os/flash.o
|
||||||
|
|
||||||
|
.debug_abbrev 0x00000000 0xbb3
|
||||||
|
*(.debug_abbrev)
|
||||||
|
.debug_abbrev 0x00000000 0x12 src/start/Cstartup.o
|
||||||
|
.debug_abbrev 0x00000012 0xd7 src/start/Cstartup_SAM7.o
|
||||||
|
.debug_abbrev 0x000000e9 0x2c6 lib/lib_AT91SAM7.o
|
||||||
|
.debug_abbrev 0x000003af 0x403 src/dfu/dfu.o
|
||||||
|
.debug_abbrev 0x000007b2 0x226 src/dfu/dbgu.o
|
||||||
|
.debug_abbrev 0x000009d8 0x1db src/os/flash.o
|
||||||
|
|
||||||
|
.debug_line 0x00000000 0x89e
|
||||||
|
*(.debug_line)
|
||||||
|
.debug_line 0x00000000 0xce src/start/Cstartup.o
|
||||||
|
.debug_line 0x000000ce 0x95 src/start/Cstartup_SAM7.o
|
||||||
|
.debug_line 0x00000163 0x20e lib/lib_AT91SAM7.o
|
||||||
|
.debug_line 0x00000371 0x315 src/dfu/dfu.o
|
||||||
|
.debug_line 0x00000686 0xf7 src/dfu/dbgu.o
|
||||||
|
.debug_line 0x0000077d 0x121 src/os/flash.o
|
||||||
|
|
||||||
|
.debug_frame 0x00000000 0x540
|
||||||
|
*(.debug_frame)
|
||||||
|
.debug_frame 0x00000000 0x24 src/start/Cstartup_SAM7.o
|
||||||
|
.debug_frame 0x00000024 0x254 lib/lib_AT91SAM7.o
|
||||||
|
.debug_frame 0x00000278 0x1b4 src/dfu/dfu.o
|
||||||
|
.debug_frame 0x0000042c 0x84 src/dfu/dbgu.o
|
||||||
|
.debug_frame 0x000004b0 0x50 src/os/flash.o
|
||||||
|
.debug_frame 0x00000500 0x20 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
.debug_frame 0x00000520 0x20 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
|
||||||
|
.debug_str 0x00000000 0x1637
|
||||||
|
*(.debug_str)
|
||||||
|
.debug_str 0x00000000 0x226 src/start/Cstartup_SAM7.o
|
||||||
|
0x233 (size before relaxing)
|
||||||
|
.debug_str 0x00000226 0x918 lib/lib_AT91SAM7.o
|
||||||
|
0xb13 (size before relaxing)
|
||||||
|
.debug_str 0x00000b3e 0x843 src/dfu/dfu.o
|
||||||
|
0xb30 (size before relaxing)
|
||||||
|
.debug_str 0x00001381 0x1f1 src/dfu/dbgu.o
|
||||||
|
0x605 (size before relaxing)
|
||||||
|
.debug_str 0x00001572 0xc5 src/os/flash.o
|
||||||
|
0x21e (size before relaxing)
|
||||||
|
|
||||||
|
.debug_loc 0x00000000 0x1193
|
||||||
|
*(.debug_loc)
|
||||||
|
.debug_loc 0x00000000 0x57 src/start/Cstartup_SAM7.o
|
||||||
|
.debug_loc 0x00000057 0x86c lib/lib_AT91SAM7.o
|
||||||
|
.debug_loc 0x000008c3 0x729 src/dfu/dfu.o
|
||||||
|
.debug_loc 0x00000fec 0xcf src/dfu/dbgu.o
|
||||||
|
.debug_loc 0x000010bb 0xd8 src/os/flash.o
|
||||||
|
|
||||||
|
.debug_macinfo
|
||||||
|
*(.debug_macinfo)
|
||||||
|
|
||||||
|
.debug_weaknames
|
||||||
|
*(.debug_weaknames)
|
||||||
|
|
||||||
|
.debug_funcnames
|
||||||
|
*(.debug_funcnames)
|
||||||
|
|
||||||
|
.debug_typenames
|
||||||
|
*(.debug_typenames)
|
||||||
|
|
||||||
|
.debug_varnames
|
||||||
|
*(.debug_varnames)
|
||||||
|
OUTPUT(dfu.elf elf32-littlearm)
|
||||||
|
|
||||||
|
.debug_ranges 0x00000000 0x1d0
|
||||||
|
.debug_ranges 0x00000000 0x20 src/start/Cstartup.o
|
||||||
|
.debug_ranges 0x00000020 0xa8 lib/lib_AT91SAM7.o
|
||||||
|
.debug_ranges 0x000000c8 0x60 src/dfu/dfu.o
|
||||||
|
.debug_ranges 0x00000128 0x48 src/dfu/dbgu.o
|
||||||
|
.debug_ranges 0x00000170 0x60 src/os/flash.o
|
||||||
|
|
||||||
|
.debug_pubtypes
|
||||||
|
0x00000000 0x485
|
||||||
|
.debug_pubtypes
|
||||||
|
0x00000000 0x6a src/start/Cstartup_SAM7.o
|
||||||
|
.debug_pubtypes
|
||||||
|
0x0000006a 0x128 lib/lib_AT91SAM7.o
|
||||||
|
.debug_pubtypes
|
||||||
|
0x00000192 0x1ec src/dfu/dfu.o
|
||||||
|
.debug_pubtypes
|
||||||
|
0x0000037e 0xb0 src/dfu/dbgu.o
|
||||||
|
.debug_pubtypes
|
||||||
|
0x0000042e 0x57 src/os/flash.o
|
||||||
|
|
||||||
|
Cross Reference Table
|
||||||
|
|
||||||
|
Symbol File
|
||||||
|
AT91F_ADC_CfgTimings lib/lib_AT91SAM7.o
|
||||||
|
AT91F_AIC_ConfigureIt lib/lib_AT91SAM7.o
|
||||||
|
src/dfu/dbgu.o
|
||||||
|
AT91F_AIC_Open lib/lib_AT91SAM7.o
|
||||||
|
AT91F_AIC_SetExceptionVector lib/lib_AT91SAM7.o
|
||||||
|
AT91F_DBGU_Get src/dfu/dbgu.o
|
||||||
|
AT91F_DBGU_Init src/dfu/dbgu.o
|
||||||
|
src/dfu/dfu.o
|
||||||
|
AT91F_DBGU_Printk src/dfu/dbgu.o
|
||||||
|
src/dfu/dfu.o
|
||||||
|
AT91F_DBGU_Ready src/dfu/dbgu.o
|
||||||
|
AT91F_Default_FIQ_handler src/start/Cstartup.o
|
||||||
|
src/start/Cstartup_SAM7.o
|
||||||
|
AT91F_Default_IRQ_handler src/start/Cstartup.o
|
||||||
|
src/start/Cstartup_SAM7.o
|
||||||
|
AT91F_LowLevelInit src/start/Cstartup_SAM7.o
|
||||||
|
src/start/Cstartup.o
|
||||||
|
AT91F_PDC_Close lib/lib_AT91SAM7.o
|
||||||
|
AT91F_PDC_Open lib/lib_AT91SAM7.o
|
||||||
|
AT91F_PDC_ReceiveFrame lib/lib_AT91SAM7.o
|
||||||
|
AT91F_PDC_SendFrame lib/lib_AT91SAM7.o
|
||||||
|
AT91F_PMC_GetMasterClock lib/lib_AT91SAM7.o
|
||||||
|
AT91F_RTTReadValue lib/lib_AT91SAM7.o
|
||||||
|
AT91F_SPI_Close lib/lib_AT91SAM7.o
|
||||||
|
AT91F_SSC_Configure lib/lib_AT91SAM7.o
|
||||||
|
AT91F_SSC_SetBaudrate lib/lib_AT91SAM7.o
|
||||||
|
AT91F_Spurious_handler src/start/Cstartup.o
|
||||||
|
src/start/Cstartup_SAM7.o
|
||||||
|
AT91F_US_Close lib/lib_AT91SAM7.o
|
||||||
|
AT91F_US_Configure lib/lib_AT91SAM7.o
|
||||||
|
src/dfu/dbgu.o
|
||||||
|
IRQ_Handler_Entry src/start/Cstartup.o
|
||||||
|
Top_Stack src/start/Cstartup.o
|
||||||
|
__aeabi_idiv e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
__aeabi_idiv0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_dvmd_tls.o)
|
||||||
|
e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
__aeabi_idivmod e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
src/dfu/dfu.o
|
||||||
|
__aeabi_ldiv0 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_dvmd_tls.o)
|
||||||
|
__aeabi_uidiv e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
lib/lib_AT91SAM7.o
|
||||||
|
__aeabi_uidivmod e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
lib/lib_AT91SAM7.o
|
||||||
|
__bss_end__ src/start/Cstartup.o
|
||||||
|
__bss_start__ src/start/Cstartup.o
|
||||||
|
__divsi3 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_divsi3.o)
|
||||||
|
__udivsi3 e:/programme/mingw/libexec/arm/bin/../lib/gcc/arm-none-eabi/4.5.2\libgcc.a(_udivsi3.o)
|
||||||
|
_data src/start/Cstartup.o
|
||||||
|
_data_flash src/start/Cstartup.o
|
||||||
|
_data_shared src/start/Cstartup.o
|
||||||
|
_edata src/start/Cstartup.o
|
||||||
|
_edata_shared src/start/Cstartup.o
|
||||||
|
_etext src/start/Cstartup.o
|
||||||
|
_remap_call_dfu src/start/Cstartup.o
|
||||||
|
_startup src/start/Cstartup.o
|
||||||
|
dfu_api src/dfu/dfu.o
|
||||||
|
dfu_cfg_descriptor src/dfu/dfu.o
|
||||||
|
dfu_dev_descriptor src/dfu/dfu.o
|
||||||
|
dfu_ep0_handler src/dfu/dfu.o
|
||||||
|
dfu_main src/dfu/dfu.o
|
||||||
|
src/start/Cstartup.o
|
||||||
|
dfu_state src/dfu/dfu.o
|
||||||
|
src/start/Cstartup.o
|
||||||
|
exit src/start/Cstartup.o
|
||||||
|
flash_init src/os/flash.o
|
||||||
|
src/dfu/dfu.o
|
||||||
|
flash_page src/os/flash.o
|
||||||
|
src/dfu/dfu.o
|
||||||
|
foo src/dfu/dfu.o
|
127
firmware/dfu.sym
Normal file
127
firmware/dfu.sym
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
U _startup
|
||||||
|
00000000 t reset
|
||||||
|
00000002 a AT91C_ID_PIOA
|
||||||
|
00000004 t undefvec
|
||||||
|
00000008 t swivec
|
||||||
|
0000000c t pabtvec
|
||||||
|
00000010 t dabtvec
|
||||||
|
00000011 a ARM_MODE_FIQ
|
||||||
|
00000012 a ARM_MODE_IRQ
|
||||||
|
00000013 a ARM_MODE_SVC
|
||||||
|
00000014 t rsvdvec
|
||||||
|
00000018 t irqvec
|
||||||
|
0000001c t fiqvec
|
||||||
|
00000020 t dfu_state_dummy
|
||||||
|
00000024 t FIQ_Handler_Entry
|
||||||
|
0000003c a PIOA_PDSR
|
||||||
|
00000040 a F_BIT
|
||||||
|
0000004c T IRQ_Handler_Entry
|
||||||
|
00000080 a I_BIT
|
||||||
|
0000009c t .RAM_TOP
|
||||||
|
000000a0 t InitReset
|
||||||
|
000000fc t dfu_magic_end
|
||||||
|
00000100 a AIC_IVR
|
||||||
|
00000104 a AIC_FVR
|
||||||
|
00000108 t LoopRelDS
|
||||||
|
00000130 a AIC_EOICR
|
||||||
|
00000144 t _reloc_dfu
|
||||||
|
00000150 t LoopRel
|
||||||
|
0000016c t LoopZI
|
||||||
|
00000188 t loop_rel_t
|
||||||
|
000001a0 T exit
|
||||||
|
000001a4 T AT91F_Default_FIQ_handler
|
||||||
|
000001a8 T AT91F_Default_IRQ_handler
|
||||||
|
000001ac T AT91F_Spurious_handler
|
||||||
|
000001f0 T AT91F_LowLevelInit
|
||||||
|
000002fc t AT91F_PDC_SetNextRx
|
||||||
|
00000308 t AT91F_PDC_SetNextTx
|
||||||
|
00000314 t AT91F_PDC_SetRx
|
||||||
|
00000320 t AT91F_PDC_SetTx
|
||||||
|
0000032c t AT91F_PDC_DisableTx
|
||||||
|
00000338 t AT91F_PDC_DisableRx
|
||||||
|
00000344 t AT91F_CKGR_GetMainClock
|
||||||
|
0000035c T AT91F_AIC_ConfigureIt
|
||||||
|
00000394 T AT91F_AIC_SetExceptionVector
|
||||||
|
000003c8 T AT91F_AIC_Open
|
||||||
|
00000400 a FIQ_Stack_Size
|
||||||
|
00000400 a IRQ_Stack_Size
|
||||||
|
00000444 T AT91F_PDC_Open
|
||||||
|
000004b0 T AT91F_PDC_Close
|
||||||
|
00000508 T AT91F_PDC_SendFrame
|
||||||
|
0000055c T AT91F_PDC_ReceiveFrame
|
||||||
|
000005b0 T AT91F_PMC_GetMasterClock
|
||||||
|
0000063c T AT91F_RTTReadValue
|
||||||
|
0000066c T AT91F_SPI_Close
|
||||||
|
000006ac T AT91F_ADC_CfgTimings
|
||||||
|
00000714 T AT91F_SSC_SetBaudrate
|
||||||
|
00000778 T AT91F_SSC_Configure
|
||||||
|
000007c4 T AT91F_US_Configure
|
||||||
|
00000844 T AT91F_US_Close
|
||||||
|
0000087c t udp_ep0_send_data
|
||||||
|
00000958 t udp_ep0_send_zlp
|
||||||
|
0000099c t udp_ep0_send_stall
|
||||||
|
000009e0 t handle_getstate
|
||||||
|
00000a08 t handle_upload.clone.0
|
||||||
|
00000a7c t handle_dnload.clone.1
|
||||||
|
00000bd0 t handle_getstatus
|
||||||
|
00000c74 T dfu_ep0_handler
|
||||||
|
00000e90 t AT91F_PIO_CfgOutput.clone.5
|
||||||
|
00000ea0 t udp_init
|
||||||
|
00000ed8 t AT91F_PIO_SetOutput.clone.6
|
||||||
|
00000ee4 t AT91F_PIO_ClearOutput.clone.7
|
||||||
|
00000ef0 t AT91F_RSTSoftReset.clone.8
|
||||||
|
00000f00 a AIC_MCR_RCR
|
||||||
|
00000f04 t dfu_udp_irq
|
||||||
|
000012bc t dfu_switch
|
||||||
|
000012d8 T dfu_main
|
||||||
|
0000139c T AT91F_DBGU_Ready
|
||||||
|
000013b0 T AT91F_DBGU_Init
|
||||||
|
00001440 T AT91F_DBGU_Printk
|
||||||
|
00001468 T AT91F_DBGU_Get
|
||||||
|
00001488 t DBGU_irq_handler
|
||||||
|
000014dc t AT91F_MC_EFC_PerformCmd.clone.3
|
||||||
|
000014e8 T flash_page
|
||||||
|
00001544 T flash_init
|
||||||
|
00001558 t .udivsi3_skip_div0_test
|
||||||
|
00001558 T __aeabi_uidiv
|
||||||
|
00001558 T __udivsi3
|
||||||
|
0000164c T __aeabi_uidivmod
|
||||||
|
0000166c T __aeabi_idiv
|
||||||
|
0000166c T __divsi3
|
||||||
|
00001674 t .divsi3_skip_div0_test
|
||||||
|
00001794 T __aeabi_idivmod
|
||||||
|
000017b4 W __aeabi_idiv0
|
||||||
|
000017b4 W __aeabi_ldiv0
|
||||||
|
000017b8 T dfu_dev_descriptor
|
||||||
|
000017ca T dfu_cfg_descriptor
|
||||||
|
000017f0 t usb_strings
|
||||||
|
00001808 t string0
|
||||||
|
0000180c t string1
|
||||||
|
00001874 t string2
|
||||||
|
000018b2 t string3
|
||||||
|
000018e6 t string4
|
||||||
|
00001942 t string5
|
||||||
|
00001ac0 A _etext
|
||||||
|
00001ac8 A _data_flash
|
||||||
|
00003fd0 R dfu_api
|
||||||
|
00200020 D _data_shared
|
||||||
|
00200020 D dfu_state
|
||||||
|
00200024 d dfu_status
|
||||||
|
00200028 A _edata_shared
|
||||||
|
00201ac0 D _data
|
||||||
|
00201ac0 D _remap_call_dfu
|
||||||
|
00201adc d ptr
|
||||||
|
00201ae0 D foo
|
||||||
|
00201ae4 B __bss_start
|
||||||
|
00201ae4 B __bss_start__
|
||||||
|
00201ae4 A _edata
|
||||||
|
00201ae4 b pagebuf32
|
||||||
|
00201be4 b cur_config
|
||||||
|
00201be8 b value.6564
|
||||||
|
00201bec A __bss_end__
|
||||||
|
00201bec A _end
|
||||||
|
00208000 N Top_Stack
|
||||||
|
08000000 a PIO_BOOTLDR
|
||||||
|
fffff000 a AT91C_BASE_AIC
|
||||||
|
fffff400 a AT91C_BASE_PIOA
|
||||||
|
fffffc10 a AT91C_PMC_PCER
|
131
firmware/doc/dfu.txt
Normal file
131
firmware/doc/dfu.txt
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
- data that is needed from both app and dfu mode
|
||||||
|
- code that is needed from both app and dfu mode
|
||||||
|
- function pointers
|
||||||
|
- copy code to RAM in case of DFU switch
|
||||||
|
- data that is only needed in DFU mode
|
||||||
|
- can be overwritten in case of reset-to-application
|
||||||
|
- data that is only needed in app mode
|
||||||
|
- can be overwritten with DFU data in case of DFU switch
|
||||||
|
- code that is only needed in DFU mode
|
||||||
|
- has to be copied to ram in case of DFU switch
|
||||||
|
- code that is only needed in app mode
|
||||||
|
- can be read from flash, no action required
|
||||||
|
|
||||||
|
|
||||||
|
=> abandoned that complicated idea.
|
||||||
|
now all DFU functions are __ramfunc's and thus always present.
|
||||||
|
|
||||||
|
|
||||||
|
interaction between app and dfu code:
|
||||||
|
|
||||||
|
- dfu_switch(void)
|
||||||
|
- dfu_status (can be put in accessor function, if required)
|
||||||
|
- dfu_cfg_descriptor
|
||||||
|
- dfu_dev_descriptor
|
||||||
|
- dfu_ep0_handler()
|
||||||
|
|
||||||
|
|
||||||
|
order of events at boot;
|
||||||
|
|
||||||
|
- start at reset vector in flash
|
||||||
|
- AT91F_LowLevelInit()
|
||||||
|
- setup stack for each mode
|
||||||
|
- relocate 'data' of bootloader, including ramfunc/vectram
|
||||||
|
- clear 'bss' of bootloader
|
||||||
|
- call remap command
|
||||||
|
- call usb initialization (irq, clock)
|
||||||
|
- if keypress,
|
||||||
|
- call dfu_main()
|
||||||
|
- wait for ep0 / busreset interrupt
|
||||||
|
- else call main()
|
||||||
|
|
||||||
|
|
||||||
|
memory layout:
|
||||||
|
|
||||||
|
0: lowlevel startup code
|
||||||
|
Cstartup.o 0x00bc
|
||||||
|
Cstartup_SAM7.o 0x0100
|
||||||
|
dfufunc 0x1dcc
|
||||||
|
dfustruct 0x0038
|
||||||
|
|
||||||
|
text text 0x0070
|
||||||
|
data data 0x0000
|
||||||
|
bss bss 0x000c
|
||||||
|
|
||||||
|
flash = text + data (= 8k)
|
||||||
|
ram/rel = data + bss (12 bytes)
|
||||||
|
|
||||||
|
|
||||||
|
If we drop the DFU-can-flash-DFU requirement, we can leave all DFU related code
|
||||||
|
in flash. no need for any function to be permanently in RAM. However, not
|
||||||
|
preventing this feature in some future version, we shouldn't do that.
|
||||||
|
|
||||||
|
|
||||||
|
Function DFU runtime
|
||||||
|
udp_init x x RAM
|
||||||
|
udp_ep0_send_data x x RAM
|
||||||
|
udp_ep0_send_zlp x x RAM
|
||||||
|
udp_sp0_send_stall x x RAM
|
||||||
|
handle_dnload x - flash/relocated
|
||||||
|
handle_upload x - flash/relocated
|
||||||
|
handle_getstatus x - flash/relocated
|
||||||
|
handle_getstate x - flash/relocated
|
||||||
|
dfu_ep0_handler x x RAM
|
||||||
|
|
||||||
|
dfu_dev_descriptor x - flash/relocated
|
||||||
|
dfu_cfg_descriptor x - flash/relocated
|
||||||
|
dfu_udp_ep0_handler x - flash/relocated
|
||||||
|
dfu_udp_irq x - flash/relocated
|
||||||
|
dfu_switch - x RAM
|
||||||
|
dfu_main x - flash/relocated
|
||||||
|
vectram x x flash/relocated/switched
|
||||||
|
IRQ_Handler_EntryR x x flash/relocated/switched
|
||||||
|
_remap x - flash/reloaded
|
||||||
|
|
||||||
|
dfu_api x x flash (const anyway)
|
||||||
|
dfu_state x x RAM
|
||||||
|
|
||||||
|
|
||||||
|
preconditions:
|
||||||
|
- dfu code assumes to be loaded to address zero to make it work from both ram and rom
|
||||||
|
|
||||||
|
startup:
|
||||||
|
- exception vectors (in flash)
|
||||||
|
- call lowlevel_init
|
||||||
|
- setup user/supervisor/FIQ/IRQ stack
|
||||||
|
- relocate dfu_state
|
||||||
|
- if DFU switch is pressed
|
||||||
|
- jump to dfu_main in flash
|
||||||
|
- relocate all of DFU .text/.data into ram (including exception vectors)
|
||||||
|
- initialize DFU .bss
|
||||||
|
- remap RAM to address zero
|
||||||
|
|
||||||
|
- if DFU switch is not pressed jump to entry address of app
|
||||||
|
- Cstartup_app.S
|
||||||
|
- relocate application .data
|
||||||
|
- initialize application .bss
|
||||||
|
- jump to appliction main
|
||||||
|
- application uses dfu_api in flash, pointing to in-flash data
|
||||||
|
- application calls dfu_switch()
|
||||||
|
- disable all interupts but USB
|
||||||
|
- relocate all of DFU .text/.data into ram (including exception vectors)
|
||||||
|
- remap RAM to address zero
|
||||||
|
- check whether app has already remapped RAM before !?!
|
||||||
|
|
||||||
|
memory map:
|
||||||
|
|
||||||
|
load_addr run_Addr
|
||||||
|
0x00100000 0x00000000 exception vectors (DFU Cstartup)
|
||||||
|
Cstartup_SAM7
|
||||||
|
|
||||||
|
0x00200000
|
||||||
|
|
||||||
|
|
||||||
|
DFU constants:
|
||||||
|
_etext:
|
||||||
|
_data: 0x200000
|
||||||
|
_edata:
|
||||||
|
|
||||||
|
APP contants:
|
||||||
|
_data: _edata_dfu
|
||||||
|
|
34
firmware/doc/piccsim-todo.txt
Normal file
34
firmware/doc/piccsim-todo.txt
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
- code to control digital potentiometers via SPI [MM]
|
||||||
|
- chip select not SPI CS
|
||||||
|
|
||||||
|
- idea: use comparator to determine voltage range, then reconfigure amplifier
|
||||||
|
- later
|
||||||
|
|
||||||
|
- problem: capacitance of digital poti
|
||||||
|
- idea 1:
|
||||||
|
- idea 2: logarithmic amplifier using transistor
|
||||||
|
|
||||||
|
- ADC driver
|
||||||
|
- core [MM]
|
||||||
|
- trigger function (we want to read all values ASAP)
|
||||||
|
- callback function (once new values are available)
|
||||||
|
- init function (initialize ADC)
|
||||||
|
- USB integration [HW]
|
||||||
|
- simple READ_ADC command
|
||||||
|
- one reply packet with all ADC channels
|
||||||
|
|
||||||
|
- OS timer
|
||||||
|
- how often?
|
||||||
|
|
||||||
|
- 'load modulation' driver
|
||||||
|
x set PA2/PA3 to binary 0..3
|
||||||
|
|
||||||
|
x add IO definitions for
|
||||||
|
- PLL INHIBIT low
|
||||||
|
- SPI_SS1_GAIN
|
||||||
|
- SPI_SS2_DATA_THRESHOLD
|
||||||
|
- BOOTLDR
|
||||||
|
|
||||||
|
- sampled data continuous output into file / stdout
|
||||||
|
- trigger sampling by raising/falling edge (configurable)
|
||||||
|
- sample only one buffer
|
42
firmware/doc/piccsim.txt
Normal file
42
firmware/doc/piccsim.txt
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
PICCSIM design
|
||||||
|
|
||||||
|
ISO14443 anticollision:
|
||||||
|
- Configure TC
|
||||||
|
- to reset TC2 on every falling edge
|
||||||
|
- to use FORCE_FAST for TC IRQ
|
||||||
|
- to enable TC2 ETRGS
|
||||||
|
- CARRIER_DIV is switched to 212kHz / 424kHz
|
||||||
|
- this results in SSC Rx is 4x (2x?) oversampling
|
||||||
|
- Set SSC Rx start condition to 4x/2x SOF pattern
|
||||||
|
- upon reception of first falling edge, we
|
||||||
|
- end up in TC FIQ
|
||||||
|
- read out TC0 current value
|
||||||
|
- reconfigure TC0 RA/RB to be in-phase with previously-read TC0
|
||||||
|
value (subtracting some fixed offset depending on FIQ latency)
|
||||||
|
- reconfigure TC2
|
||||||
|
- to use external event on every rising edge
|
||||||
|
- to reset(trigger) on every external event
|
||||||
|
- to clear TIOA2 on RC compare (RC is high)
|
||||||
|
- to set TIOA2 on RA compare (RA set later)
|
||||||
|
- disable TC2 IRQ (and FIQ FAST_FORCE)
|
||||||
|
- Wait for SSC Rx Interrupt (DMA complete, or PIO)
|
||||||
|
- Read and decode single 32bit word
|
||||||
|
- determine whether it is REQA or WUPA
|
||||||
|
- abort if not, start over
|
||||||
|
- depending on last bit 0/1, configure TC2 RA (FDT)
|
||||||
|
- recconfig TC0 to produce 1.6MHz CARRIER_DIV clock for SSC Tx
|
||||||
|
- make sure this is done synchronously
|
||||||
|
-
|
||||||
|
- set up SSC Tx
|
||||||
|
- DMA with pre-encoded (and user-configured) ATQA
|
||||||
|
- start Tx at a rising edge of TF (asserted by TC2 RA)
|
||||||
|
- Send Interrupt once TX DMA is done
|
||||||
|
- Once TC2 RA compare happens, the rising edge of TIOA2 will trigger SSC
|
||||||
|
- Wait for SSC Tx DMA to finish
|
||||||
|
- Repeat similar steps for ANTICOL/SELECT command, differences:
|
||||||
|
- single-byte compare after frame Rx is not sufficient
|
||||||
|
- evaluate number of valid bits ASAP
|
||||||
|
- we might receive and transmit split frame at non-byte-boundaries
|
||||||
|
- just shift a prepared ANTICOL/Select response
|
||||||
|
- make sure parity is handled correctly!
|
||||||
|
- Once we've completed the select, we go on with normal
|
1947
firmware/include/AT91SAM7.h
Normal file
1947
firmware/include/AT91SAM7.h
Normal file
File diff suppressed because it is too large
Load Diff
97
firmware/include/asm/assembler.h
Normal file
97
firmware/include/asm/assembler.h
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
/*
|
||||||
|
* linux/include/asm-arm/assembler.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 1996-2000 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* This file contains arm architecture specific defines
|
||||||
|
* for the different processors.
|
||||||
|
*
|
||||||
|
* Do not include any C declarations in this file - it is included by
|
||||||
|
* assembler source.
|
||||||
|
*/
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
#error "Only include this from assembly code"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <asm/ptrace.h>
|
||||||
|
|
||||||
|
#define pull lsl
|
||||||
|
#define push lsr
|
||||||
|
#define get_byte_0 lsr #24
|
||||||
|
#define get_byte_1 lsr #16
|
||||||
|
#define get_byte_2 lsr #8
|
||||||
|
#define get_byte_3 lsl #0
|
||||||
|
#define put_byte_0 lsl #24
|
||||||
|
#define put_byte_1 lsl #16
|
||||||
|
#define put_byte_2 lsl #8
|
||||||
|
#define put_byte_3 lsl #0
|
||||||
|
|
||||||
|
#define PLD(code...)
|
||||||
|
|
||||||
|
#define MODE_USR USR_MODE
|
||||||
|
#define MODE_FIQ FIQ_MODE
|
||||||
|
#define MODE_IRQ IRQ_MODE
|
||||||
|
#define MODE_SVC SVC_MODE
|
||||||
|
|
||||||
|
#define DEFAULT_FIQ MODE_FIQ
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
*/
|
||||||
|
#ifdef __STDC__
|
||||||
|
#define LOADREGS(cond, base, reglist...)\
|
||||||
|
ldm##cond base,reglist
|
||||||
|
#else
|
||||||
|
#define LOADREGS(cond, base, reglist...)\
|
||||||
|
ldm/**/cond base,reglist
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Build a return instruction for this processor type.
|
||||||
|
*/
|
||||||
|
#define RETINSTR(instr, regs...)\
|
||||||
|
instr regs
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable and disable interrupts
|
||||||
|
*/
|
||||||
|
.macro disable_irq
|
||||||
|
msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro enable_irq
|
||||||
|
msr cpsr_c, #SVC_MODE
|
||||||
|
.endm
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
* assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
*/
|
||||||
|
.macro save_and_disable_irqs, oldcpsr
|
||||||
|
mrs \oldcpsr, cpsr
|
||||||
|
disable_irq
|
||||||
|
.endm
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Restore interrupt state previously stored in a register. We don't
|
||||||
|
* guarantee that this will preserve the flags.
|
||||||
|
*/
|
||||||
|
.macro restore_irqs, oldcpsr
|
||||||
|
msr cpsr_c, \oldcpsr
|
||||||
|
.endm
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These two are used to save LR/restore PC over a user-based access.
|
||||||
|
* The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
* architecture, we can safely ignore this requirement.
|
||||||
|
*/
|
||||||
|
.macro save_lr
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro restore_pc
|
||||||
|
mov pc, lr
|
||||||
|
.endm
|
106
firmware/include/asm/atomic.h
Normal file
106
firmware/include/asm/atomic.h
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
/*
|
||||||
|
* linux/include/asm-arm/atomic.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 1996 Russell King.
|
||||||
|
* Copyright (C) 2002 Deep Blue Solutions Ltd.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#ifndef __ASM_ARM_ATOMIC_H
|
||||||
|
#define __ASM_ARM_ATOMIC_H
|
||||||
|
|
||||||
|
typedef struct { volatile int counter; } atomic_t;
|
||||||
|
|
||||||
|
#define ATOMIC_INIT(i) { (i) }
|
||||||
|
|
||||||
|
#define atomic_read(v) ((v)->counter)
|
||||||
|
|
||||||
|
#include <asm/system.h>
|
||||||
|
#include <asm/compiler.h>
|
||||||
|
|
||||||
|
#define atomic_set(v,i) (((v)->counter) = (i))
|
||||||
|
|
||||||
|
static inline int atomic_add_return(int i, atomic_t *v)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
int val;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
val = v->counter;
|
||||||
|
v->counter = val += i;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int atomic_sub_return(int i, atomic_t *v)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
int val;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
val = v->counter;
|
||||||
|
v->counter = val -= i;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
ret = v->counter;
|
||||||
|
if (likely(ret == old))
|
||||||
|
v->counter = new;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
*addr &= ~mask;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define atomic_xchg(v, new) (xchg(&((v)->counter), new))
|
||||||
|
|
||||||
|
static inline int atomic_add_unless(atomic_t *v, int a, int u)
|
||||||
|
{
|
||||||
|
int c, old;
|
||||||
|
|
||||||
|
c = atomic_read(v);
|
||||||
|
while (c != u && (old = atomic_cmpxchg((v), c, c + a)) != c)
|
||||||
|
c = old;
|
||||||
|
return c != u;
|
||||||
|
}
|
||||||
|
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
|
||||||
|
|
||||||
|
#define atomic_add(i, v) (void) atomic_add_return(i, v)
|
||||||
|
#define atomic_inc(v) (void) atomic_add_return(1, v)
|
||||||
|
#define atomic_sub(i, v) (void) atomic_sub_return(i, v)
|
||||||
|
#define atomic_dec(v) (void) atomic_sub_return(1, v)
|
||||||
|
|
||||||
|
#define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
|
||||||
|
#define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
|
||||||
|
#define atomic_inc_return(v) (atomic_add_return(1, v))
|
||||||
|
#define atomic_dec_return(v) (atomic_sub_return(1, v))
|
||||||
|
#define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
|
||||||
|
|
||||||
|
#define atomic_add_negative(i,v) (atomic_add_return(i, v) < 0)
|
||||||
|
|
||||||
|
/* Atomic operations are already serializing on ARM */
|
||||||
|
#define smp_mb__before_atomic_dec() barrier()
|
||||||
|
#define smp_mb__after_atomic_dec() barrier()
|
||||||
|
#define smp_mb__before_atomic_inc() barrier()
|
||||||
|
#define smp_mb__after_atomic_inc() barrier()
|
||||||
|
|
||||||
|
#endif
|
225
firmware/include/asm/bitops.h
Normal file
225
firmware/include/asm/bitops.h
Normal file
@ -0,0 +1,225 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 1995, Russell King.
|
||||||
|
* Various bits and pieces copyrights include:
|
||||||
|
* Linus Torvalds (test_bit).
|
||||||
|
* Big endian support: Copyright 2001, Nicolas Pitre
|
||||||
|
* reworked by rmk.
|
||||||
|
*
|
||||||
|
* bit 0 is the LSB of an "unsigned long" quantity.
|
||||||
|
*
|
||||||
|
* Please note that the code in this file should never be included
|
||||||
|
* from user space. Many of these are not implemented in assembler
|
||||||
|
* since they would be too costly. Also, they require privileged
|
||||||
|
* instructions (which are not available from user mode) to ensure
|
||||||
|
* that they are atomic.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __ASM_ARM_BITOPS_H
|
||||||
|
#define __ASM_ARM_BITOPS_H
|
||||||
|
|
||||||
|
#include <asm/system.h>
|
||||||
|
|
||||||
|
#define smp_mb__before_clear_bit() mb()
|
||||||
|
#define smp_mb__after_clear_bit() mb()
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These functions are the basis of our bit ops.
|
||||||
|
*
|
||||||
|
* First, the atomic bitops. These use native endian.
|
||||||
|
*/
|
||||||
|
static inline void ____atomic_set_bit(unsigned int bit, volatile unsigned long *p)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned long mask = 1UL << (bit & 31);
|
||||||
|
|
||||||
|
p += bit >> 5;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
*p |= mask;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void ____atomic_clear_bit(unsigned int bit, volatile unsigned long *p)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned long mask = 1UL << (bit & 31);
|
||||||
|
|
||||||
|
p += bit >> 5;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
*p &= ~mask;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void ____atomic_change_bit(unsigned int bit, volatile unsigned long *p)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned long mask = 1UL << (bit & 31);
|
||||||
|
|
||||||
|
p += bit >> 5;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
*p ^= mask;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
____atomic_test_and_set_bit(unsigned int bit, volatile unsigned long *p)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned int res;
|
||||||
|
unsigned long mask = 1UL << (bit & 31);
|
||||||
|
|
||||||
|
p += bit >> 5;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
res = *p;
|
||||||
|
*p = res | mask;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
return res & mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
____atomic_test_and_clear_bit(unsigned int bit, volatile unsigned long *p)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned int res;
|
||||||
|
unsigned long mask = 1UL << (bit & 31);
|
||||||
|
|
||||||
|
p += bit >> 5;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
res = *p;
|
||||||
|
*p = res & ~mask;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
return res & mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
____atomic_test_and_change_bit(unsigned int bit, volatile unsigned long *p)
|
||||||
|
{
|
||||||
|
unsigned long flags;
|
||||||
|
unsigned int res;
|
||||||
|
unsigned long mask = 1UL << (bit & 31);
|
||||||
|
|
||||||
|
p += bit >> 5;
|
||||||
|
|
||||||
|
local_irq_save(flags);
|
||||||
|
res = *p;
|
||||||
|
*p = res ^ mask;
|
||||||
|
local_irq_restore(flags);
|
||||||
|
|
||||||
|
return res & mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
//#include <asm-generic/bitops/non-atomic.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A note about Endian-ness.
|
||||||
|
* -------------------------
|
||||||
|
*
|
||||||
|
* When the ARM is put into big endian mode via CR15, the processor
|
||||||
|
* merely swaps the order of bytes within words, thus:
|
||||||
|
*
|
||||||
|
* ------------ physical data bus bits -----------
|
||||||
|
* D31 ... D24 D23 ... D16 D15 ... D8 D7 ... D0
|
||||||
|
* little byte 3 byte 2 byte 1 byte 0
|
||||||
|
* big byte 0 byte 1 byte 2 byte 3
|
||||||
|
*
|
||||||
|
* This means that reading a 32-bit word at address 0 returns the same
|
||||||
|
* value irrespective of the endian mode bit.
|
||||||
|
*
|
||||||
|
* Peripheral devices should be connected with the data bus reversed in
|
||||||
|
* "Big Endian" mode. ARM Application Note 61 is applicable, and is
|
||||||
|
* available from http://www.arm.com/.
|
||||||
|
*
|
||||||
|
* The following assumes that the data bus connectivity for big endian
|
||||||
|
* mode has been followed.
|
||||||
|
*
|
||||||
|
* Note that bit 0 is defined to be 32-bit word bit 0, not byte 0 bit 0.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Little endian assembly bitops. nr = 0 -> byte 0 bit 0.
|
||||||
|
*/
|
||||||
|
extern void _set_bit_le(int nr, volatile unsigned long * p);
|
||||||
|
extern void _clear_bit_le(int nr, volatile unsigned long * p);
|
||||||
|
extern void _change_bit_le(int nr, volatile unsigned long * p);
|
||||||
|
extern int _test_and_set_bit_le(int nr, volatile unsigned long * p);
|
||||||
|
extern int _test_and_clear_bit_le(int nr, volatile unsigned long * p);
|
||||||
|
extern int _test_and_change_bit_le(int nr, volatile unsigned long * p);
|
||||||
|
extern int _find_first_zero_bit_le(const void * p, unsigned size);
|
||||||
|
extern int _find_next_zero_bit_le(const void * p, int size, int offset);
|
||||||
|
extern int _find_first_bit_le(const unsigned long *p, unsigned size);
|
||||||
|
extern int _find_next_bit_le(const unsigned long *p, int size, int offset);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Big endian assembly bitops. nr = 0 -> byte 3 bit 0.
|
||||||
|
*/
|
||||||
|
extern void _set_bit_be(int nr, volatile unsigned long * p);
|
||||||
|
extern void _clear_bit_be(int nr, volatile unsigned long * p);
|
||||||
|
extern void _change_bit_be(int nr, volatile unsigned long * p);
|
||||||
|
extern int _test_and_set_bit_be(int nr, volatile unsigned long * p);
|
||||||
|
extern int _test_and_clear_bit_be(int nr, volatile unsigned long * p);
|
||||||
|
extern int _test_and_change_bit_be(int nr, volatile unsigned long * p);
|
||||||
|
extern int _find_first_zero_bit_be(const void * p, unsigned size);
|
||||||
|
extern int _find_next_zero_bit_be(const void * p, int size, int offset);
|
||||||
|
extern int _find_first_bit_be(const unsigned long *p, unsigned size);
|
||||||
|
extern int _find_next_bit_be(const unsigned long *p, int size, int offset);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The __* form of bitops are non-atomic and may be reordered.
|
||||||
|
*/
|
||||||
|
#define ATOMIC_BITOP_LE(name,nr,p) \
|
||||||
|
(__builtin_constant_p(nr) ? \
|
||||||
|
____atomic_##name(nr, p) : \
|
||||||
|
_##name##_le(nr,p))
|
||||||
|
|
||||||
|
#define ATOMIC_BITOP_BE(name,nr,p) \
|
||||||
|
(__builtin_constant_p(nr) ? \
|
||||||
|
____atomic_##name(nr, p) : \
|
||||||
|
_##name##_be(nr,p))
|
||||||
|
|
||||||
|
#define NONATOMIC_BITOP(name,nr,p) \
|
||||||
|
(____nonatomic_##name(nr, p))
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These are the little endian, atomic definitions.
|
||||||
|
*/
|
||||||
|
#define set_bit(nr,p) ATOMIC_BITOP_LE(set_bit,nr,p)
|
||||||
|
#define clear_bit(nr,p) ATOMIC_BITOP_LE(clear_bit,nr,p)
|
||||||
|
#define change_bit(nr,p) ATOMIC_BITOP_LE(change_bit,nr,p)
|
||||||
|
#define test_and_set_bit(nr,p) ATOMIC_BITOP_LE(test_and_set_bit,nr,p)
|
||||||
|
#define test_and_clear_bit(nr,p) ATOMIC_BITOP_LE(test_and_clear_bit,nr,p)
|
||||||
|
#define test_and_change_bit(nr,p) ATOMIC_BITOP_LE(test_and_change_bit,nr,p)
|
||||||
|
#define find_first_zero_bit(p,sz) _find_first_zero_bit_le(p,sz)
|
||||||
|
#define find_next_zero_bit(p,sz,off) _find_next_zero_bit_le(p,sz,off)
|
||||||
|
#define find_first_bit(p,sz) _find_first_bit_le(p,sz)
|
||||||
|
#define find_next_bit(p,sz,off) _find_next_bit_le(p,sz,off)
|
||||||
|
|
||||||
|
#define WORD_BITOFF_TO_LE(x) ((x))
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#include <asm-generic/bitops/ffz.h>
|
||||||
|
#include <asm-generic/bitops/__ffs.h>
|
||||||
|
#include <asm-generic/bitops/fls.h>
|
||||||
|
#include <asm-generic/bitops/ffs.h>
|
||||||
|
|
||||||
|
#include <asm-generic/bitops/fls64.h>
|
||||||
|
|
||||||
|
#include <asm-generic/bitops/sched.h>
|
||||||
|
#include <asm-generic/bitops/hweight.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BITS_PER_LONG 32
|
||||||
|
#define BITOP_MASK(nr) (1UL << ((nr) % BITS_PER_LONG))
|
||||||
|
#define BITOP_WORD(nr) ((nr) / BITS_PER_LONG)
|
||||||
|
|
||||||
|
static inline int test_bit(int nr, const volatile unsigned long *addr)
|
||||||
|
{
|
||||||
|
return 1UL & (addr[BITOP_WORD(nr)] >> (nr & (BITS_PER_LONG-1)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif /* _ARM_BITOPS_H */
|
7
firmware/include/asm/compiler.h
Normal file
7
firmware/include/asm/compiler.h
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#ifndef _ASM_COMPILER_H
|
||||||
|
#define _ASM_COMPILER_H
|
||||||
|
|
||||||
|
#define likely(x) __builtin_expect(!!(x), 1)
|
||||||
|
#define unlikely(x) __builtin_expect(!!(x), 0)
|
||||||
|
|
||||||
|
#endif
|
54
firmware/include/asm/ctype.h
Normal file
54
firmware/include/asm/ctype.h
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
#ifndef _LINUX_CTYPE_H
|
||||||
|
#define _LINUX_CTYPE_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* NOTE! This ctype does not handle EOF like the standard C
|
||||||
|
* library is required to.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define _U 0x01 /* upper */
|
||||||
|
#define _L 0x02 /* lower */
|
||||||
|
#define _D 0x04 /* digit */
|
||||||
|
#define _C 0x08 /* cntrl */
|
||||||
|
#define _P 0x10 /* punct */
|
||||||
|
#define _S 0x20 /* white space (space/lf/tab) */
|
||||||
|
#define _X 0x40 /* hex digit */
|
||||||
|
#define _SP 0x80 /* hard space (0x20) */
|
||||||
|
|
||||||
|
extern unsigned char _ctype[];
|
||||||
|
|
||||||
|
#define __ismask(x) (_ctype[(int)(unsigned char)(x)])
|
||||||
|
|
||||||
|
#define isalnum(c) ((__ismask(c)&(_U|_L|_D)) != 0)
|
||||||
|
#define isalpha(c) ((__ismask(c)&(_U|_L)) != 0)
|
||||||
|
#define iscntrl(c) ((__ismask(c)&(_C)) != 0)
|
||||||
|
#define isdigit(c) ((__ismask(c)&(_D)) != 0)
|
||||||
|
#define isgraph(c) ((__ismask(c)&(_P|_U|_L|_D)) != 0)
|
||||||
|
#define islower(c) ((__ismask(c)&(_L)) != 0)
|
||||||
|
#define isprint(c) ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
|
||||||
|
#define ispunct(c) ((__ismask(c)&(_P)) != 0)
|
||||||
|
#define isspace(c) ((__ismask(c)&(_S)) != 0)
|
||||||
|
#define isupper(c) ((__ismask(c)&(_U)) != 0)
|
||||||
|
#define isxdigit(c) ((__ismask(c)&(_D|_X)) != 0)
|
||||||
|
|
||||||
|
#define isascii(c) (((unsigned char)(c))<=0x7f)
|
||||||
|
#define toascii(c) (((unsigned char)(c))&0x7f)
|
||||||
|
|
||||||
|
static inline unsigned char __tolower(unsigned char c)
|
||||||
|
{
|
||||||
|
if (isupper(c))
|
||||||
|
c -= 'A'-'a';
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline unsigned char __toupper(unsigned char c)
|
||||||
|
{
|
||||||
|
if (islower(c))
|
||||||
|
c -= 'a'-'A';
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define tolower(c) __tolower(c)
|
||||||
|
#define toupper(c) __toupper(c)
|
||||||
|
|
||||||
|
#endif
|
48
firmware/include/asm/div64.h
Normal file
48
firmware/include/asm/div64.h
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#ifndef __ASM_ARM_DIV64
|
||||||
|
#define __ASM_ARM_DIV64
|
||||||
|
|
||||||
|
#include <asm/system.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The semantics of do_div() are:
|
||||||
|
*
|
||||||
|
* uint32_t do_div(uint64_t *n, uint32_t base)
|
||||||
|
* {
|
||||||
|
* uint32_t remainder = *n % base;
|
||||||
|
* *n = *n / base;
|
||||||
|
* return remainder;
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* In other words, a 64-bit dividend with a 32-bit divisor producing
|
||||||
|
* a 64-bit result and a 32-bit remainder. To accomplish this optimally
|
||||||
|
* we call a special __do_div64 helper with completely non standard
|
||||||
|
* calling convention for arguments and results (beware).
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __ARMEB__
|
||||||
|
#define __xh "r0"
|
||||||
|
#define __xl "r1"
|
||||||
|
#else
|
||||||
|
#define __xl "r0"
|
||||||
|
#define __xh "r1"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define do_div(n,base) \
|
||||||
|
({ \
|
||||||
|
register unsigned int __base asm("r4") = base; \
|
||||||
|
register unsigned long long __n asm("r0") = n; \
|
||||||
|
register unsigned long long __res asm("r2"); \
|
||||||
|
register unsigned int __rem asm(__xh); \
|
||||||
|
asm( __asmeq("%0", __xh) \
|
||||||
|
__asmeq("%1", "r2") \
|
||||||
|
__asmeq("%2", "r0") \
|
||||||
|
__asmeq("%3", "r4") \
|
||||||
|
"bl __do_div64" \
|
||||||
|
: "=r" (__rem), "=r" (__res) \
|
||||||
|
: "r" (__n), "r" (__base) \
|
||||||
|
: "ip", "lr", "cc"); \
|
||||||
|
n = __res; \
|
||||||
|
__rem; \
|
||||||
|
})
|
||||||
|
|
||||||
|
#endif
|
18
firmware/include/asm/linkage.h
Normal file
18
firmware/include/asm/linkage.h
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#ifndef __ASM_LINKAGE_H
|
||||||
|
#define __ASM_LINKAGE_H
|
||||||
|
|
||||||
|
/* asm-arm/linkage.h */
|
||||||
|
|
||||||
|
#define __ALIGN .align 0
|
||||||
|
#define __ALIGN_STR ".align 0"
|
||||||
|
|
||||||
|
/* linux/linkage.h */
|
||||||
|
|
||||||
|
#define ALIGN __ALIGN
|
||||||
|
|
||||||
|
#define ENTRY(name) \
|
||||||
|
.globl name; \
|
||||||
|
ALIGN; \
|
||||||
|
name:
|
||||||
|
|
||||||
|
#endif
|
128
firmware/include/asm/ptrace.h
Normal file
128
firmware/include/asm/ptrace.h
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
/*
|
||||||
|
* linux/include/asm-arm/ptrace.h
|
||||||
|
*
|
||||||
|
* Copyright (C) 1996-2003 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#ifndef __ASM_ARM_PTRACE_H
|
||||||
|
#define __ASM_ARM_PTRACE_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PSR bits
|
||||||
|
*/
|
||||||
|
#define USR26_MODE 0x00000000
|
||||||
|
#define FIQ26_MODE 0x00000001
|
||||||
|
#define IRQ26_MODE 0x00000002
|
||||||
|
#define SVC26_MODE 0x00000003
|
||||||
|
#define USR_MODE 0x00000010
|
||||||
|
#define FIQ_MODE 0x00000011
|
||||||
|
#define IRQ_MODE 0x00000012
|
||||||
|
#define SVC_MODE 0x00000013
|
||||||
|
#define ABT_MODE 0x00000017
|
||||||
|
#define UND_MODE 0x0000001b
|
||||||
|
#define SYSTEM_MODE 0x0000001f
|
||||||
|
#define MODE32_BIT 0x00000010
|
||||||
|
#define MODE_MASK 0x0000001f
|
||||||
|
#define PSR_T_BIT 0x00000020
|
||||||
|
#define PSR_F_BIT 0x00000040
|
||||||
|
#define PSR_I_BIT 0x00000080
|
||||||
|
#define PSR_J_BIT 0x01000000
|
||||||
|
#define PSR_Q_BIT 0x08000000
|
||||||
|
#define PSR_V_BIT 0x10000000
|
||||||
|
#define PSR_C_BIT 0x20000000
|
||||||
|
#define PSR_Z_BIT 0x40000000
|
||||||
|
#define PSR_N_BIT 0x80000000
|
||||||
|
#define PCMASK 0
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Groups of PSR bits
|
||||||
|
*/
|
||||||
|
#define PSR_f 0xff000000 /* Flags */
|
||||||
|
#define PSR_s 0x00ff0000 /* Status */
|
||||||
|
#define PSR_x 0x0000ff00 /* Extension */
|
||||||
|
#define PSR_c 0x000000ff /* Control */
|
||||||
|
|
||||||
|
#ifndef __ASSEMBLY__
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This struct defines the way the registers are stored on the
|
||||||
|
* stack during a system call. Note that sizeof(struct pt_regs)
|
||||||
|
* has to be a multiple of 8.
|
||||||
|
*/
|
||||||
|
struct pt_regs {
|
||||||
|
long uregs[18];
|
||||||
|
};
|
||||||
|
|
||||||
|
#define ARM_cpsr uregs[16]
|
||||||
|
#define ARM_pc uregs[15]
|
||||||
|
#define ARM_lr uregs[14]
|
||||||
|
#define ARM_sp uregs[13]
|
||||||
|
#define ARM_ip uregs[12]
|
||||||
|
#define ARM_fp uregs[11]
|
||||||
|
#define ARM_r10 uregs[10]
|
||||||
|
#define ARM_r9 uregs[9]
|
||||||
|
#define ARM_r8 uregs[8]
|
||||||
|
#define ARM_r7 uregs[7]
|
||||||
|
#define ARM_r6 uregs[6]
|
||||||
|
#define ARM_r5 uregs[5]
|
||||||
|
#define ARM_r4 uregs[4]
|
||||||
|
#define ARM_r3 uregs[3]
|
||||||
|
#define ARM_r2 uregs[2]
|
||||||
|
#define ARM_r1 uregs[1]
|
||||||
|
#define ARM_r0 uregs[0]
|
||||||
|
#define ARM_ORIG_r0 uregs[17]
|
||||||
|
|
||||||
|
#define user_mode(regs) \
|
||||||
|
(((regs)->ARM_cpsr & 0xf) == 0)
|
||||||
|
|
||||||
|
#ifdef CONFIG_ARM_THUMB
|
||||||
|
#define thumb_mode(regs) \
|
||||||
|
(((regs)->ARM_cpsr & PSR_T_BIT))
|
||||||
|
#else
|
||||||
|
#define thumb_mode(regs) (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define processor_mode(regs) \
|
||||||
|
((regs)->ARM_cpsr & MODE_MASK)
|
||||||
|
|
||||||
|
#define interrupts_enabled(regs) \
|
||||||
|
(!((regs)->ARM_cpsr & PSR_I_BIT))
|
||||||
|
|
||||||
|
#define fast_interrupts_enabled(regs) \
|
||||||
|
(!((regs)->ARM_cpsr & PSR_F_BIT))
|
||||||
|
|
||||||
|
#define condition_codes(regs) \
|
||||||
|
((regs)->ARM_cpsr & (PSR_V_BIT|PSR_C_BIT|PSR_Z_BIT|PSR_N_BIT))
|
||||||
|
|
||||||
|
/* Are the current registers suitable for user mode?
|
||||||
|
* (used to maintain security in signal handlers)
|
||||||
|
*/
|
||||||
|
static inline int valid_user_regs(struct pt_regs *regs)
|
||||||
|
{
|
||||||
|
if (user_mode(regs) &&
|
||||||
|
(regs->ARM_cpsr & (PSR_F_BIT|PSR_I_BIT)) == 0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force CPSR to something logical...
|
||||||
|
*/
|
||||||
|
regs->ARM_cpsr &= PSR_f | PSR_s | PSR_x | PSR_T_BIT | MODE32_BIT;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define pc_pointer(v) \
|
||||||
|
((v) & ~PCMASK)
|
||||||
|
|
||||||
|
#define instruction_pointer(regs) \
|
||||||
|
(pc_pointer((regs)->ARM_pc))
|
||||||
|
|
||||||
|
#define profile_pc(regs) instruction_pointer(regs)
|
||||||
|
|
||||||
|
#endif /* __ASSEMBLY__ */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
109
firmware/include/asm/system.h
Normal file
109
firmware/include/asm/system.h
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
#ifndef __ASM_ARM_SYSTEM_H
|
||||||
|
#define __ASM_ARM_SYSTEM_H
|
||||||
|
|
||||||
|
/* Generic ARM7TDMI (ARMv4T) synchronisation primitives, mostly
|
||||||
|
* taken from Linux kernel source, licensed under GPL */
|
||||||
|
|
||||||
|
#define local_irq_save(x) \
|
||||||
|
({ \
|
||||||
|
unsigned long temp; \
|
||||||
|
(void) (&temp == &x); \
|
||||||
|
__asm__ __volatile__( \
|
||||||
|
"mrs %0, cpsr @ local_irq_save\n" \
|
||||||
|
" orr %1, %0, #128\n" \
|
||||||
|
" msr cpsr_c, %1" \
|
||||||
|
: "=r" (x), "=r" (temp) \
|
||||||
|
: \
|
||||||
|
: "memory", "cc"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable IRQs
|
||||||
|
*/
|
||||||
|
#define local_irq_enable() \
|
||||||
|
({ \
|
||||||
|
unsigned long temp; \
|
||||||
|
__asm__ __volatile__( \
|
||||||
|
"mrs %0, cpsr @ local_irq_enable\n" \
|
||||||
|
" bic %0, %0, #128\n" \
|
||||||
|
" msr cpsr_c, %0" \
|
||||||
|
: "=r" (temp) \
|
||||||
|
: \
|
||||||
|
: "memory", "cc"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disable IRQs
|
||||||
|
*/
|
||||||
|
#define local_irq_disable() \
|
||||||
|
({ \
|
||||||
|
unsigned long temp; \
|
||||||
|
__asm__ __volatile__( \
|
||||||
|
"mrs %0, cpsr @ local_irq_disable\n" \
|
||||||
|
" orr %0, %0, #128\n" \
|
||||||
|
" msr cpsr_c, %0" \
|
||||||
|
: "=r" (temp) \
|
||||||
|
: \
|
||||||
|
: "memory", "cc"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable FIQs
|
||||||
|
*/
|
||||||
|
#define local_fiq_enable() \
|
||||||
|
({ \
|
||||||
|
unsigned long temp; \
|
||||||
|
__asm__ __volatile__( \
|
||||||
|
"mrs %0, cpsr @ stf\n" \
|
||||||
|
" bic %0, %0, #64\n" \
|
||||||
|
" msr cpsr_c, %0" \
|
||||||
|
: "=r" (temp) \
|
||||||
|
: \
|
||||||
|
: "memory", "cc"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Disable FIQs
|
||||||
|
*/
|
||||||
|
#define local_fiq_disable() \
|
||||||
|
({ \
|
||||||
|
unsigned long temp; \
|
||||||
|
__asm__ __volatile__( \
|
||||||
|
"mrs %0, cpsr @ clf\n" \
|
||||||
|
" orr %0, %0, #64\n" \
|
||||||
|
" msr cpsr_c, %0" \
|
||||||
|
: "=r" (temp) \
|
||||||
|
: \
|
||||||
|
: "memory", "cc"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Save the current interrupt enable state.
|
||||||
|
*/
|
||||||
|
#define local_save_flags(x) \
|
||||||
|
({ \
|
||||||
|
__asm__ __volatile__( \
|
||||||
|
"mrs %0, cpsr @ local_save_flags" \
|
||||||
|
: "=r" (x) : : "memory", "cc"); \
|
||||||
|
})
|
||||||
|
|
||||||
|
/*
|
||||||
|
* restore saved IRQ & FIQ state
|
||||||
|
*/
|
||||||
|
#define local_irq_restore(x) \
|
||||||
|
__asm__ __volatile__( \
|
||||||
|
"msr cpsr_c, %0 @ local_irq_restore\n" \
|
||||||
|
: \
|
||||||
|
: "r" (x) \
|
||||||
|
: "memory", "cc")
|
||||||
|
|
||||||
|
#define irqs_disabled() \
|
||||||
|
({ \
|
||||||
|
unsigned long flags; \
|
||||||
|
local_save_flags(flags); \
|
||||||
|
(int)(flags & PSR_I_BIT); \
|
||||||
|
})
|
||||||
|
|
||||||
|
#define __asmeq(x, y) ".ifnc " x "," y " ; .err ; .endif\n\t"
|
||||||
|
|
||||||
|
#endif
|
14
firmware/include/board.h
Normal file
14
firmware/include/board.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#ifndef __BOARD_H__
|
||||||
|
#define __BOARD_H__
|
||||||
|
|
||||||
|
#include <AT91SAM7.h>
|
||||||
|
#include <lib_AT91SAM7.h>
|
||||||
|
|
||||||
|
/*--------------*/
|
||||||
|
/* Master Clock */
|
||||||
|
/*--------------*/
|
||||||
|
#define EXT_OSC 18432000 // External Crystal Oscillator
|
||||||
|
#define MCK 47923200 // Resulting PLL CLock
|
||||||
|
#define ENVIRONMENT_SIZE ( AT91C_IFLASH_PAGE_SIZE )
|
||||||
|
|
||||||
|
#endif/*__BOARD_H__*/
|
271
firmware/include/cl_rc632.h
Normal file
271
firmware/include/cl_rc632.h
Normal file
@ -0,0 +1,271 @@
|
|||||||
|
/* Register definitions for Philips CL RC632 RFID Reader IC
|
||||||
|
*
|
||||||
|
* (C) 2005 Harald Welte <laforge@gnumonks.org>
|
||||||
|
*
|
||||||
|
* Licensed under GNU General Public License, Version 2
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _CLRC632_H
|
||||||
|
#define _CLRC632_H
|
||||||
|
|
||||||
|
enum rc632_registers {
|
||||||
|
RC632_REG_PAGE0 = 0x00,
|
||||||
|
RC632_REG_COMMAND = 0x01,
|
||||||
|
RC632_REG_FIFO_DATA = 0x02,
|
||||||
|
RC632_REG_PRIMARY_STATUS = 0x03,
|
||||||
|
RC632_REG_FIFO_LENGTH = 0x04,
|
||||||
|
RC632_REG_SECONDARY_STATUS = 0x05,
|
||||||
|
RC632_REG_INTERRUPT_EN = 0x06,
|
||||||
|
RC632_REG_INTERRUPT_RQ = 0x07,
|
||||||
|
|
||||||
|
RC632_REG_PAGE1 = 0x08,
|
||||||
|
RC632_REG_CONTROL = 0x09,
|
||||||
|
RC632_REG_ERROR_FLAG = 0x0a,
|
||||||
|
RC632_REG_COLL_POS = 0x0b,
|
||||||
|
RC632_REG_TIMER_VALUE = 0x0c,
|
||||||
|
RC632_REG_CRC_RESULT_LSB = 0x0d,
|
||||||
|
RC632_REG_CRC_RESULT_MSB = 0x0e,
|
||||||
|
RC632_REG_BIT_FRAMING = 0x0f,
|
||||||
|
|
||||||
|
RC632_REG_PAGE2 = 0x10,
|
||||||
|
RC632_REG_TX_CONTROL = 0x11,
|
||||||
|
RC632_REG_CW_CONDUCTANCE = 0x12,
|
||||||
|
RC632_REG_MOD_CONDUCTANCE = 0x13,
|
||||||
|
RC632_REG_CODER_CONTROL = 0x14,
|
||||||
|
RC632_REG_MOD_WIDTH = 0x15,
|
||||||
|
RC632_REG_MOD_WIDTH_SOF = 0x16,
|
||||||
|
RC632_REG_TYPE_B_FRAMING = 0x17,
|
||||||
|
|
||||||
|
RC632_REG_PAGE3 = 0x18,
|
||||||
|
RC632_REG_RX_CONTROL1 = 0x19,
|
||||||
|
RC632_REG_DECODER_CONTROL = 0x1a,
|
||||||
|
RC632_REG_BIT_PHASE = 0x1b,
|
||||||
|
RC632_REG_RX_THRESHOLD = 0x1c,
|
||||||
|
RC632_REG_BPSK_DEM_CONTROL = 0x1d,
|
||||||
|
RC632_REG_RX_CONTROL2 = 0x1e,
|
||||||
|
RC632_REG_CLOCK_Q_CONTROL = 0x1f,
|
||||||
|
|
||||||
|
RC632_REG_PAGE4 = 0x20,
|
||||||
|
RC632_REG_RX_WAIT = 0x21,
|
||||||
|
RC632_REG_CHANNEL_REDUNDANCY = 0x22,
|
||||||
|
RC632_REG_CRC_PRESET_LSB = 0x23,
|
||||||
|
RC632_REG_CRC_PRESET_MSB = 0x24,
|
||||||
|
RC632_REG_TIME_SLOT_PERIOD = 0x25,
|
||||||
|
RC632_REG_MFOUT_SELECT = 0x26,
|
||||||
|
RC632_REG_PRESET_27 = 0x27,
|
||||||
|
|
||||||
|
RC632_REG_PAGE5 = 0x28,
|
||||||
|
RC632_REG_FIFO_LEVEL = 0x29,
|
||||||
|
RC632_REG_TIMER_CLOCK = 0x2a,
|
||||||
|
RC632_REG_TIMER_CONTROL = 0x2b,
|
||||||
|
RC632_REG_TIMER_RELOAD = 0x2c,
|
||||||
|
RC632_REG_IRQ_PIN_CONFIG = 0x2d,
|
||||||
|
RC632_REG_PRESET_2E = 0x2e,
|
||||||
|
RC632_REG_PRESET_2F = 0x2f,
|
||||||
|
|
||||||
|
RC632_REG_PAGE6 = 0x30,
|
||||||
|
|
||||||
|
RC632_REG_PAGE7 = 0x38,
|
||||||
|
RC632_REG_TEST_ANA_SELECT = 0x3a,
|
||||||
|
RC632_REG_TEST_DIGI_SELECT = 0x3d,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_status {
|
||||||
|
RC632_STAT_LOALERT = 0x01,
|
||||||
|
RC632_STAT_HIALERT = 0x02,
|
||||||
|
RC632_STAT_ERR = 0x04,
|
||||||
|
RC632_STAT_IRQ = 0x08,
|
||||||
|
#define RC632_STAT_MODEM_MASK 0x70
|
||||||
|
RC632_STAT_MODEM_IDLE = 0x00,
|
||||||
|
RC632_STAT_MODEM_TXSOF = 0x10,
|
||||||
|
RC632_STAT_MODEM_TXDATA = 0x20,
|
||||||
|
RC632_STAT_MODEM_TXEOF = 0x30,
|
||||||
|
RC632_STAT_MODEM_GOTORX = 0x40,
|
||||||
|
RC632_STAT_MODEM_PREPARERX = 0x50,
|
||||||
|
RC632_STAT_MODEM_AWAITINGRX = 0x60,
|
||||||
|
RC632_STAT_MODEM_RECV = 0x70,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_command {
|
||||||
|
RC632_CMD_IDLE = 0x00,
|
||||||
|
RC632_CMD_WRITE_E2 = 0x01,
|
||||||
|
RC632_CMD_READ_E2 = 0x03,
|
||||||
|
RC632_CMD_LOAD_CONFIG = 0x07,
|
||||||
|
RC632_CMD_LOAD_KEY_E2 = 0x0b,
|
||||||
|
RC632_CMD_AUTHENT1 = 0x0c,
|
||||||
|
RC632_CMD_CALC_CRC = 0x12,
|
||||||
|
RC632_CMD_AUTHENT2 = 0x14,
|
||||||
|
RC632_CMD_RECEIVE = 0x16,
|
||||||
|
RC632_CMD_LOAD_KEY = 0x19,
|
||||||
|
RC632_CMD_TRANSMIT = 0x1a,
|
||||||
|
RC632_CMD_TRANSCEIVE = 0x1e,
|
||||||
|
RC632_CMD_STARTUP = 0x3f,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_interrupt {
|
||||||
|
RC632_INT_LOALERT = 0x01,
|
||||||
|
RC632_INT_HIALERT = 0x02,
|
||||||
|
RC632_INT_IDLE = 0x04,
|
||||||
|
RC632_INT_RX = 0x08,
|
||||||
|
RC632_INT_TX = 0x10,
|
||||||
|
RC632_INT_TIMER = 0x20,
|
||||||
|
RC632_INT_SET = 0x80,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_control {
|
||||||
|
RC632_CONTROL_FIFO_FLUSH = 0x01,
|
||||||
|
RC632_CONTROL_TIMER_START = 0x02,
|
||||||
|
RC632_CONTROL_TIMER_STOP = 0x04,
|
||||||
|
RC632_CONTROL_CRYPTO1_ON = 0x08,
|
||||||
|
RC632_CONTROL_POWERDOWN = 0x10,
|
||||||
|
RC632_CONTROL_STANDBY = 0x20,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_error_flag {
|
||||||
|
RC632_ERR_FLAG_COL_ERR = 0x01,
|
||||||
|
RC632_ERR_FLAG_PARITY_ERR = 0x02,
|
||||||
|
RC632_ERR_FLAG_FRAMING_ERR = 0x04,
|
||||||
|
RC632_ERR_FLAG_CRC_ERR = 0x08,
|
||||||
|
RC632_ERR_FLAG_FIFO_OVERFLOW = 0x10,
|
||||||
|
RC632_ERR_FLAG_ACCESS_ERR = 0x20,
|
||||||
|
RC632_ERR_FLAG_KEY_ERR = 0x40,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_tx_control {
|
||||||
|
RC632_TXCTRL_TX1_RF_EN = 0x01,
|
||||||
|
RC632_TXCTRL_TX2_RF_EN = 0x02,
|
||||||
|
RC632_TXCTRL_TX2_CW = 0x04,
|
||||||
|
RC632_TXCTRL_TX2_INV = 0x08,
|
||||||
|
RC632_TXCTRL_FORCE_100_ASK = 0x10,
|
||||||
|
|
||||||
|
RC632_TXCTRL_MOD_SRC_LOW = 0x00,
|
||||||
|
RC632_TXCTRL_MOD_SRC_HIGH = 0x20,
|
||||||
|
RC632_TXCTRL_MOD_SRC_INT = 0x40,
|
||||||
|
RC632_TXCTRL_MOD_SRC_MFIN = 0x60,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_coder_control {
|
||||||
|
/* bit 2-0 TXCoding */
|
||||||
|
#define RC632_CDRCTRL_TXCD_MASK 0x07
|
||||||
|
RC632_CDRCTRL_TXCD_NRZ = 0x00,
|
||||||
|
RC632_CDRCTRL_TXCD_14443A = 0x01,
|
||||||
|
RC632_CDRCTRL_TXCD_ICODE_STD = 0x04,
|
||||||
|
RC632_CDRCTRL_TXCD_ICODE_FAST = 0x05,
|
||||||
|
RC632_CDRCTRL_TXCD_15693_STD = 0x06,
|
||||||
|
RC632_CDRCTRL_TXCD_15693_FAST = 0x07,
|
||||||
|
|
||||||
|
/* bit5-3 CoderRate*/
|
||||||
|
#define RC632_CDRCTRL_RATE_MASK 0x38
|
||||||
|
RC632_CDRCTRL_RATE_848K = 0x00,
|
||||||
|
RC632_CDRCTRL_RATE_424K = 0x08,
|
||||||
|
RC632_CDRCTRL_RATE_212K = 0x10,
|
||||||
|
RC632_CDRCTRL_RATE_106K = 0x18,
|
||||||
|
RC632_CDRCTRL_RATE_14443B = 0x20,
|
||||||
|
RC632_CDRCTRL_RATE_15693 = 0x28,
|
||||||
|
RC632_CDRCTRL_RATE_ICODE_FAST = 0x30,
|
||||||
|
|
||||||
|
/* bit 7 SendOnePuls */
|
||||||
|
RC632_CDRCTRL_15693_EOF_PULSE = 0x80,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_erg_type_b_framing {
|
||||||
|
RC632_TBFRAMING_SOF_10L_2H = 0x00,
|
||||||
|
RC632_TBFRAMING_SOF_10L_3H = 0x01,
|
||||||
|
RC632_TBFRAMING_SOF_11L_2H = 0x02,
|
||||||
|
RC632_TBFRAMING_SOF_11L_3H = 0x03,
|
||||||
|
|
||||||
|
RC632_TBFRAMING_EOF_10 = 0x00,
|
||||||
|
RC632_TBFRAMING_EOF_11 = 0x20,
|
||||||
|
|
||||||
|
RC632_TBFRAMING_NO_TX_SOF = 0x80,
|
||||||
|
RC632_TBFRAMING_NO_TX_EOF = 0x40,
|
||||||
|
};
|
||||||
|
#define RC632_TBFRAMING_SPACE_SHIFT 2
|
||||||
|
#define RC632_TBFRAMING_SPACE_MASK 7
|
||||||
|
|
||||||
|
enum rc632_reg_rx_control1 {
|
||||||
|
RC632_RXCTRL1_GAIN_20DB = 0x00,
|
||||||
|
RC632_RXCTRL1_GAIN_24DB = 0x01,
|
||||||
|
RC632_RXCTRL1_GAIN_31DB = 0x02,
|
||||||
|
RC632_RXCTRL1_GAIN_35DB = 0x03,
|
||||||
|
|
||||||
|
RC632_RXCTRL1_LP_OFF = 0x04,
|
||||||
|
RC632_RXCTRL1_ISO15693 = 0x08,
|
||||||
|
RC632_RXCTRL1_ISO14443 = 0x10,
|
||||||
|
|
||||||
|
#define RC632_RXCTRL1_SUBCP_MASK 0xe0
|
||||||
|
RC632_RXCTRL1_SUBCP_1 = 0x00,
|
||||||
|
RC632_RXCTRL1_SUBCP_2 = 0x20,
|
||||||
|
RC632_RXCTRL1_SUBCP_4 = 0x40,
|
||||||
|
RC632_RXCTRL1_SUBCP_8 = 0x60,
|
||||||
|
RC632_RXCTRL1_SUBCP_16 = 0x80,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_decoder_control {
|
||||||
|
RC632_DECCTRL_MANCHESTER = 0x00,
|
||||||
|
RC632_DECCTRL_BPSK = 0x01,
|
||||||
|
|
||||||
|
RC632_DECCTRL_RX_INVERT = 0x04,
|
||||||
|
|
||||||
|
RC632_DECCTRL_RXFR_ICODE = 0x00,
|
||||||
|
RC632_DECCTRL_RXFR_14443A = 0x08,
|
||||||
|
RC632_DECCTRL_RXFR_15693 = 0x10,
|
||||||
|
RC632_DECCTRL_RXFR_14443B = 0x18,
|
||||||
|
|
||||||
|
RC632_DECCTRL_ZEROAFTERCOL = 0x20,
|
||||||
|
|
||||||
|
RC632_DECCTRL_RX_MULTIPLE = 0x40,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_bpsk_dem_control {
|
||||||
|
RC632_BPSKD_TAUB_SHIFT = 0x00,
|
||||||
|
RC632_BPSKD_TAUB_MASK = 0x03,
|
||||||
|
|
||||||
|
RC632_BPSKD_TAUD_SHIFT = 0x02,
|
||||||
|
RC632_BPSKD_TAUD_MASK = 0x03,
|
||||||
|
|
||||||
|
RC632_BPSKD_FILTER_AMP_DETECT = 0x10,
|
||||||
|
RC632_BPSKD_NO_RX_EOF = 0x20,
|
||||||
|
RC632_BPSKD_NO_RX_EGT = 0x40,
|
||||||
|
RC632_BPSKD_NO_RX_SOF = 0x80,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_rx_control2 {
|
||||||
|
RC632_RXCTRL2_DECSRC_LOW = 0x00,
|
||||||
|
RC632_RXCTRL2_DECSRC_INT = 0x01,
|
||||||
|
RC632_RXCTRL2_DECSRC_SUBC_MFIN = 0x10,
|
||||||
|
RC632_RXCTRL2_DECSRC_BASE_MFIN = 0x11,
|
||||||
|
|
||||||
|
RC632_RXCTRL2_AUTO_PD = 0x40,
|
||||||
|
RC632_RXCTRL2_CLK_I = 0x80,
|
||||||
|
RC632_RXCTRL2_CLK_Q = 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_channel_redundancy {
|
||||||
|
RC632_CR_PARITY_ENABLE = 0x01,
|
||||||
|
RC632_CR_PARITY_ODD = 0x02,
|
||||||
|
RC632_CR_TX_CRC_ENABLE = 0x04,
|
||||||
|
RC632_CR_RX_CRC_ENABLE = 0x08,
|
||||||
|
RC632_CR_CRC8 = 0x10,
|
||||||
|
RC632_CR_CRC3309 = 0x20,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_timer_control {
|
||||||
|
RC632_TMR_START_TX_BEGIN = 0x01,
|
||||||
|
RC632_TMR_START_TX_END = 0x02,
|
||||||
|
RC632_TMR_STOP_RX_BEGIN = 0x04,
|
||||||
|
RC632_TMR_STOP_RX_END = 0x08,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_irq_pin_cfg {
|
||||||
|
RC632_IRQCFG_CMOS = 0x01,
|
||||||
|
RC632_IRQCFG_INV = 0x02,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum rc632_reg_secondary_status {
|
||||||
|
RC632_SEC_ST_TMR_RUNNING = 0x80,
|
||||||
|
RC632_SEC_ST_E2_READY = 0x40,
|
||||||
|
RC632_SEC_ST_CRC_READY = 0x20,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
9
firmware/include/compile.h
Normal file
9
firmware/include/compile.h
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
#ifndef _COMPILE_H
|
||||||
|
#define _COMPILE_H
|
||||||
|
|
||||||
|
/* This file is auto generated */
|
||||||
|
#define COMPILE_DATE "20110510-160907"
|
||||||
|
#define COMPILE_BY "netz@BlubbFish"
|
||||||
|
#define COMPILE_SVNREV "495-unclean"
|
||||||
|
|
||||||
|
#endif /* _COMPILE_H */
|
3476
firmware/include/lib_AT91SAM7.h
Normal file
3476
firmware/include/lib_AT91SAM7.h
Normal file
File diff suppressed because it is too large
Load Diff
111
firmware/include/openpcd.h
Normal file
111
firmware/include/openpcd.h
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
#ifndef _OPENPCD_PROTO_H
|
||||||
|
#define _OPENPCD_PROTO_H
|
||||||
|
|
||||||
|
/* This header file describes the USB protocol of the OpenPCD RFID reader */
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
struct openpcd_hdr {
|
||||||
|
u_int8_t cmd; /* command. high nibble: class,
|
||||||
|
* low nibble: cmd */
|
||||||
|
u_int8_t flags;
|
||||||
|
u_int8_t reg; /* register */
|
||||||
|
u_int8_t val; /* value (in case of write *) */
|
||||||
|
u_int8_t data[0];
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
#define OPCD_REV_LEN 16
|
||||||
|
struct openpcd_compile_version {
|
||||||
|
char svnrev[OPCD_REV_LEN];
|
||||||
|
char by[OPCD_REV_LEN];
|
||||||
|
char date[OPCD_REV_LEN];
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
#define OPENPCD_FLAG_RESPOND 0x01 /* Response requested */
|
||||||
|
#define OPENPCD_FLAG_ERROR 0x80 /* An error occurred */
|
||||||
|
|
||||||
|
enum openpcd_cmd_class {
|
||||||
|
OPENPCD_CMD_CLS_GENERIC = 0x0,
|
||||||
|
/* PCD (reader) side */
|
||||||
|
OPENPCD_CMD_CLS_RC632 = 0x1,
|
||||||
|
//OPENPCD_CMD_CLS_LED = 0x2,
|
||||||
|
OPENPCD_CMD_CLS_SSC = 0x3,
|
||||||
|
OPENPCD_CMD_CLS_PWM = 0x4,
|
||||||
|
OPENPCD_CMD_CLS_ADC = 0x5,
|
||||||
|
OPENPCD_CMD_CLS_LIBRFID = 0x6,
|
||||||
|
OPENPCD_CMD_CLS_PRESENCE = 0x7,
|
||||||
|
/* PICC (transponder) side */
|
||||||
|
OPENPCD_CMD_CLS_PICC = 0xe,
|
||||||
|
|
||||||
|
OPENPCD_CMD_CLS_USBTEST = 0xf,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define OPENPCD_REG_MAX 0x3f
|
||||||
|
|
||||||
|
#define OPENPCD_CMD_CLS(x) (x >> 4)
|
||||||
|
#define OPENPCD_CMD(x) (x & 0xf)
|
||||||
|
|
||||||
|
#define OPENPCD_CLS2CMD(x) (x << 4)
|
||||||
|
|
||||||
|
/* Generic */
|
||||||
|
#define OPENPCD_CMD_GET_VERSION (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
|
||||||
|
#define OPENPCD_CMD_SET_LED (0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
|
||||||
|
#define OPENPCD_CMD_GET_SERIAL (0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
|
||||||
|
#define OPENPCD_CMD_GET_API_VERSION (0x4|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
|
||||||
|
#define OPENPCD_CMD_GET_ENVIRONMENT (0x5|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
|
||||||
|
#define OPENPCD_CMD_SET_ENVIRONMENT (0x6|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
|
||||||
|
#define OPENPCD_CMD_RESET (0x7|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_GENERIC))
|
||||||
|
|
||||||
|
/* CMD_CLS_RC632 */
|
||||||
|
#define OPENPCD_CMD_WRITE_REG (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_WRITE_FIFO (0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_WRITE_VFIFO (0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_REG_BITS_CLEAR (0x4|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_REG_BITS_SET (0x5|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_READ_REG (0x6|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_READ_FIFO (0x7|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_READ_VFIFO (0x8|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_DUMP_REGS (0x9|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_IRQ (0xa|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
#define OPENPCD_CMD_WRITE_REG_SET (0xb|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_RC632))
|
||||||
|
|
||||||
|
/* CMD_CLS_SSC */
|
||||||
|
#define OPENPCD_CMD_SSC_READ (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_SSC))
|
||||||
|
#define OPENPCD_CMD_SSC_WRITE (0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_SSC))
|
||||||
|
|
||||||
|
/* CMD_CLS_PWM */
|
||||||
|
#define OPENPCD_CMD_PWM_ENABLE (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
|
||||||
|
#define OPENPCD_CMD_PWM_DUTY_SET (0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
|
||||||
|
#define OPENPCD_CMD_PWM_DUTY_GET (0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
|
||||||
|
#define OPENPCD_CMD_PWM_FREQ_SET (0x4|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
|
||||||
|
#define OPENPCD_CMD_PWM_FREQ_GET (0x5|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PWM))
|
||||||
|
|
||||||
|
/* CMD_CLS_PICC */
|
||||||
|
#define OPENPCD_CMD_PICC_REG_WRITE (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PICC))
|
||||||
|
#define OPENPCD_CMD_PICC_REG_READ (0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PICC))
|
||||||
|
|
||||||
|
/* CMD_CLS_ADC */
|
||||||
|
#define OPENPCD_CMD_ADC_READ (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_ADC))
|
||||||
|
|
||||||
|
/* CMD_CLS_LIBRFID */
|
||||||
|
#define OPENPCD_CMD_LRFID_DETECT_IRQ (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_LIBRFID))
|
||||||
|
|
||||||
|
/* CMD_CLS_LIBRFID */
|
||||||
|
#define OPENPCD_CMD_PRESENCE_UID_GET (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_PRESENCE))
|
||||||
|
|
||||||
|
/* CMD_CLS_USBTEST */
|
||||||
|
#define OPENPCD_CMD_USBTEST_IN (0x1|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_USBTEST))
|
||||||
|
#define OPENPCD_CMD_USBTEST_OUT (0x2|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_USBTEST))
|
||||||
|
|
||||||
|
/* FIXME */
|
||||||
|
#define OPENPCD_CMD_PIO_IRQ (0x3|OPENPCD_CLS2CMD(OPENPCD_CMD_CLS_USBTEST))
|
||||||
|
|
||||||
|
|
||||||
|
#define OPENPCD_VENDOR_ID 0x16c0
|
||||||
|
#define OPENPCD_PRODUCT_ID 0x076b
|
||||||
|
#define OPENPICC_PRODUCT_ID 0x076c
|
||||||
|
#define OPENPCD_OUT_EP 0x01
|
||||||
|
#define OPENPCD_IN_EP 0x82
|
||||||
|
#define OPENPCD_IRQ_EP 0x83
|
||||||
|
|
||||||
|
#endif
|
31
firmware/include/openpicc.h
Normal file
31
firmware/include/openpicc.h
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#ifndef _OPENPICC_H
|
||||||
|
#define _OPENPICC_H
|
||||||
|
|
||||||
|
/* OpenPICC Register definition
|
||||||
|
* (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
enum openpicc_register {
|
||||||
|
OPICC_REG_MODE, /* operational mode */
|
||||||
|
OPICC_REG_ISO14443A_FDT_0, /* FDT (after 0) in carrier cycles */
|
||||||
|
OPICC_REG_ISO14443A_FDT_1, /* FDT (after 1) in carrier cycles */
|
||||||
|
OPICC_REG_BITCLK_PHASE_CORR, /* signed 8bit phase correction */
|
||||||
|
OPICC_REG_SPEED_RX,
|
||||||
|
OPICC_REG_SPEED_TX,
|
||||||
|
OPICC_REG_UID_PUPI, /* UID (14443A) / PUPI (14443B) */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum openpicc_reg_mode {
|
||||||
|
OPICC_MODE_14443A,
|
||||||
|
OPICC_MODE_14443B,
|
||||||
|
OPICC_MODE_LOWLEVEL, /* low-level bit-transceive mode TBD */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum openpicc_reg_speed {
|
||||||
|
OPICC_SPEED_14443_106K,
|
||||||
|
OPICC_SPEED_14443_212K,
|
||||||
|
OPICC_SPEED_14443_424K,
|
||||||
|
OPICC_SPEED_14443_848K,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* _OPENPICC_H */
|
47
firmware/include/openpicc_regs.h
Normal file
47
firmware/include/openpicc_regs.h
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
#ifndef _OPENPICC_STATE
|
||||||
|
#define _OPENPICC_STATE
|
||||||
|
|
||||||
|
/* according to ISO 14443-3(2000) 6.2 */
|
||||||
|
enum opicc_14443a_state {
|
||||||
|
ISO14443A_ST_POWEROFF,
|
||||||
|
ISO14443A_ST_IDLE,
|
||||||
|
ISO14443A_ST_READY,
|
||||||
|
ISO14443A_ST_ACTIVE,
|
||||||
|
ISO14443A_ST_HALT,
|
||||||
|
ISO14443A_ST_READY2,
|
||||||
|
ISO14443A_ST_ACTIVE2,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum opicc_reg_tx_control {
|
||||||
|
OPICC_REG_TX_BPSK = 0x01,
|
||||||
|
OPICC_REG_TX_MANCHESTER = 0x02,
|
||||||
|
OPICC_REG_TX_INTENSITY0 = 0x00,
|
||||||
|
OPICC_REG_TX_INTENSITY1 = 0x10,
|
||||||
|
OPICC_REG_TX_INTENSITY2 = 0x20,
|
||||||
|
OPICC_REG_TX_INTENSITY3 = 0x30,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum opicc_reg {
|
||||||
|
OPICC_REG_14443A_UIDLEN,/* Length of UID in bytes */
|
||||||
|
|
||||||
|
OPICC_REG_14443A_FDT0, /* Frame delay time if last bit 0 */
|
||||||
|
OPICC_REG_14443A_FDT1, /* Frame delay time if last bit 1 */
|
||||||
|
OPICC_REG_14443A_STATE, /* see 'enum opicc_14443a_state' */
|
||||||
|
OPICC_REG_14443A_ATQA, /* The ATQA template for 14443A */
|
||||||
|
|
||||||
|
OPICC_REG_RX_CLK_DIV, /* Clock divider for Rx sample clock */
|
||||||
|
OPICC_REG_RX_CLK_PHASE, /* Phase shift of Rx sample clock */
|
||||||
|
OPICC_REG_RX_COMP_LEVEL,/* Comparator level of Demodulator */
|
||||||
|
OPICC_REG_RX_CONTROL,
|
||||||
|
|
||||||
|
OPICC_REG_TX_CLK_DIV, /* Clock divider for Tx sample clock */
|
||||||
|
OPICC_REG_TX_CONTROL, /* see 'enum opicc_reg_tx_Control */
|
||||||
|
_OPICC_NUM_REGS,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum openpicc_14443a_sregs {
|
||||||
|
/* string 'registers' */
|
||||||
|
OPICC_REG_14443A_UID, /* The UID (4...10 bytes) */
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
550
firmware/include/usb_ch9.h
Normal file
550
firmware/include/usb_ch9.h
Normal file
@ -0,0 +1,550 @@
|
|||||||
|
/*
|
||||||
|
* This file holds USB constants and structures that are needed for USB
|
||||||
|
* device APIs. These are used by the USB device model, which is defined
|
||||||
|
* in chapter 9 of the USB 2.0 specification. Linux has several APIs in C
|
||||||
|
* that need these:
|
||||||
|
*
|
||||||
|
* - the master/host side Linux-USB kernel driver API;
|
||||||
|
* - the "usbfs" user space API; and
|
||||||
|
* - the Linux "gadget" slave/device/peripheral side driver API.
|
||||||
|
*
|
||||||
|
* USB 2.0 adds an additional "On The Go" (OTG) mode, which lets systems
|
||||||
|
* act either as a USB master/host or as a USB slave/device. That means
|
||||||
|
* the master and slave side APIs benefit from working well together.
|
||||||
|
*
|
||||||
|
* There's also "Wireless USB", using low power short range radios for
|
||||||
|
* peripheral interconnection but otherwise building on the USB framework.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __LINUX_USB_CH9_H
|
||||||
|
#define __LINUX_USB_CH9_H
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* CONTROL REQUEST SUPPORT */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB directions
|
||||||
|
*
|
||||||
|
* This bit flag is used in endpoint descriptors' bEndpointAddress field.
|
||||||
|
* It's also one of three fields in control requests bRequestType.
|
||||||
|
*/
|
||||||
|
#define USB_DIR_OUT 0 /* to device */
|
||||||
|
#define USB_DIR_IN 0x80 /* to host */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB types, the second of three bRequestType fields
|
||||||
|
*/
|
||||||
|
#define USB_TYPE_MASK (0x03 << 5)
|
||||||
|
#define USB_TYPE_STANDARD (0x00 << 5)
|
||||||
|
#define USB_TYPE_CLASS (0x01 << 5)
|
||||||
|
#define USB_TYPE_VENDOR (0x02 << 5)
|
||||||
|
#define USB_TYPE_RESERVED (0x03 << 5)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB recipients, the third of three bRequestType fields
|
||||||
|
*/
|
||||||
|
#define USB_RECIP_MASK 0x1f
|
||||||
|
#define USB_RECIP_DEVICE 0x00
|
||||||
|
#define USB_RECIP_INTERFACE 0x01
|
||||||
|
#define USB_RECIP_ENDPOINT 0x02
|
||||||
|
#define USB_RECIP_OTHER 0x03
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Standard requests, for the bRequest field of a SETUP packet.
|
||||||
|
*
|
||||||
|
* These are qualified by the bRequestType field, so that for example
|
||||||
|
* TYPE_CLASS or TYPE_VENDOR specific feature flags could be retrieved
|
||||||
|
* by a GET_STATUS request.
|
||||||
|
*/
|
||||||
|
#define USB_REQ_GET_STATUS 0x00
|
||||||
|
#define USB_REQ_CLEAR_FEATURE 0x01
|
||||||
|
#define USB_REQ_SET_FEATURE 0x03
|
||||||
|
#define USB_REQ_SET_ADDRESS 0x05
|
||||||
|
#define USB_REQ_GET_DESCRIPTOR 0x06
|
||||||
|
#define USB_REQ_SET_DESCRIPTOR 0x07
|
||||||
|
#define USB_REQ_GET_CONFIGURATION 0x08
|
||||||
|
#define USB_REQ_SET_CONFIGURATION 0x09
|
||||||
|
#define USB_REQ_GET_INTERFACE 0x0A
|
||||||
|
#define USB_REQ_SET_INTERFACE 0x0B
|
||||||
|
#define USB_REQ_SYNCH_FRAME 0x0C
|
||||||
|
|
||||||
|
#define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */
|
||||||
|
#define USB_REQ_GET_ENCRYPTION 0x0E
|
||||||
|
#define USB_REQ_SET_HANDSHAKE 0x0F
|
||||||
|
#define USB_REQ_GET_HANDSHAKE 0x10
|
||||||
|
#define USB_REQ_SET_CONNECTION 0x11
|
||||||
|
#define USB_REQ_SET_SECURITY_DATA 0x12
|
||||||
|
#define USB_REQ_GET_SECURITY_DATA 0x13
|
||||||
|
#define USB_REQ_SET_WUSB_DATA 0x14
|
||||||
|
#define USB_REQ_LOOPBACK_DATA_WRITE 0x15
|
||||||
|
#define USB_REQ_LOOPBACK_DATA_READ 0x16
|
||||||
|
#define USB_REQ_SET_INTERFACE_DS 0x17
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB feature flags are written using USB_REQ_{CLEAR,SET}_FEATURE, and
|
||||||
|
* are read as a bit array returned by USB_REQ_GET_STATUS. (So there
|
||||||
|
* are at most sixteen features of each type.)
|
||||||
|
*/
|
||||||
|
#define USB_DEVICE_SELF_POWERED 0 /* (read only) */
|
||||||
|
#define USB_DEVICE_REMOTE_WAKEUP 1 /* dev may initiate wakeup */
|
||||||
|
#define USB_DEVICE_TEST_MODE 2 /* (wired high speed only) */
|
||||||
|
#define USB_DEVICE_BATTERY 2 /* (wireless) */
|
||||||
|
#define USB_DEVICE_B_HNP_ENABLE 3 /* (otg) dev may initiate HNP */
|
||||||
|
#define USB_DEVICE_WUSB_DEVICE 3 /* (wireless)*/
|
||||||
|
#define USB_DEVICE_A_HNP_SUPPORT 4 /* (otg) RH port supports HNP */
|
||||||
|
#define USB_DEVICE_A_ALT_HNP_SUPPORT 5 /* (otg) other RH port does */
|
||||||
|
#define USB_DEVICE_DEBUG_MODE 6 /* (special devices only) */
|
||||||
|
|
||||||
|
#define USB_ENDPOINT_HALT 0 /* IN/OUT will STALL */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct usb_ctrlrequest - SETUP data for a USB device control request
|
||||||
|
* @bRequestType: matches the USB bmRequestType field
|
||||||
|
* @bRequest: matches the USB bRequest field
|
||||||
|
* @wValue: matches the USB wValue field (le16 byte order)
|
||||||
|
* @wIndex: matches the USB wIndex field (le16 byte order)
|
||||||
|
* @wLength: matches the USB wLength field (le16 byte order)
|
||||||
|
*
|
||||||
|
* This structure is used to send control requests to a USB device. It matches
|
||||||
|
* the different fields of the USB 2.0 Spec section 9.3, table 9-2. See the
|
||||||
|
* USB spec for a fuller description of the different fields, and what they are
|
||||||
|
* used for.
|
||||||
|
*
|
||||||
|
* Note that the driver for any interface can issue control requests.
|
||||||
|
* For most devices, interfaces don't coordinate with each other, so
|
||||||
|
* such requests may be made at any time.
|
||||||
|
*/
|
||||||
|
struct usb_ctrlrequest {
|
||||||
|
u_int8_t bRequestType;
|
||||||
|
u_int8_t bRequest;
|
||||||
|
u_int16_t wValue;
|
||||||
|
u_int16_t wIndex;
|
||||||
|
u_int16_t wLength;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* STANDARD DESCRIPTORS ... as returned by GET_DESCRIPTOR, or
|
||||||
|
* (rarely) accepted by SET_DESCRIPTOR.
|
||||||
|
*
|
||||||
|
* Note that all multi-byte values here are encoded in little endian
|
||||||
|
* byte order "on the wire". But when exposed through Linux-USB APIs,
|
||||||
|
* they've been converted to cpu byte order.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Descriptor types ... USB 2.0 spec table 9.5
|
||||||
|
*/
|
||||||
|
#define USB_DT_DEVICE 0x01
|
||||||
|
#define USB_DT_CONFIG 0x02
|
||||||
|
#define USB_DT_STRING 0x03
|
||||||
|
#define USB_DT_INTERFACE 0x04
|
||||||
|
#define USB_DT_ENDPOINT 0x05
|
||||||
|
#define USB_DT_DEVICE_QUALIFIER 0x06
|
||||||
|
#define USB_DT_OTHER_SPEED_CONFIG 0x07
|
||||||
|
#define USB_DT_INTERFACE_POWER 0x08
|
||||||
|
/* these are from a minor usb 2.0 revision (ECN) */
|
||||||
|
#define USB_DT_OTG 0x09
|
||||||
|
#define USB_DT_DEBUG 0x0a
|
||||||
|
#define USB_DT_INTERFACE_ASSOCIATION 0x0b
|
||||||
|
/* these are from the Wireless USB spec */
|
||||||
|
#define USB_DT_SECURITY 0x0c
|
||||||
|
#define USB_DT_KEY 0x0d
|
||||||
|
#define USB_DT_ENCRYPTION_TYPE 0x0e
|
||||||
|
#define USB_DT_BOS 0x0f
|
||||||
|
#define USB_DT_DEVICE_CAPABILITY 0x10
|
||||||
|
#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11
|
||||||
|
|
||||||
|
/* conventional codes for class-specific descriptors */
|
||||||
|
#define USB_DT_CS_DEVICE 0x21
|
||||||
|
#define USB_DT_CS_CONFIG 0x22
|
||||||
|
#define USB_DT_CS_STRING 0x23
|
||||||
|
#define USB_DT_CS_INTERFACE 0x24
|
||||||
|
#define USB_DT_CS_ENDPOINT 0x25
|
||||||
|
|
||||||
|
/* All standard descriptors have these 2 fields at the beginning */
|
||||||
|
struct usb_descriptor_header {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_DEVICE: Device descriptor */
|
||||||
|
struct usb_device_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int16_t bcdUSB;
|
||||||
|
u_int8_t bDeviceClass;
|
||||||
|
u_int8_t bDeviceSubClass;
|
||||||
|
u_int8_t bDeviceProtocol;
|
||||||
|
u_int8_t bMaxPacketSize0;
|
||||||
|
u_int16_t idVendor;
|
||||||
|
u_int16_t idProduct;
|
||||||
|
u_int16_t bcdDevice;
|
||||||
|
u_int8_t iManufacturer;
|
||||||
|
u_int8_t iProduct;
|
||||||
|
u_int8_t iSerialNumber;
|
||||||
|
u_int8_t bNumConfigurations;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
#define USB_DT_DEVICE_SIZE 18
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Device and/or Interface Class codes
|
||||||
|
* as found in bDeviceClass or bInterfaceClass
|
||||||
|
* and defined by www.usb.org documents
|
||||||
|
*/
|
||||||
|
#define USB_CLASS_PER_INTERFACE 0 /* for DeviceClass */
|
||||||
|
#define USB_CLASS_AUDIO 1
|
||||||
|
#define USB_CLASS_COMM 2
|
||||||
|
#define USB_CLASS_HID 3
|
||||||
|
#define USB_CLASS_PHYSICAL 5
|
||||||
|
#define USB_CLASS_STILL_IMAGE 6
|
||||||
|
#define USB_CLASS_PRINTER 7
|
||||||
|
#define USB_CLASS_MASS_STORAGE 8
|
||||||
|
#define USB_CLASS_HUB 9
|
||||||
|
#define USB_CLASS_CDC_DATA 0x0a
|
||||||
|
#define USB_CLASS_CSCID 0x0b /* chip+ smart card */
|
||||||
|
#define USB_CLASS_CONTENT_SEC 0x0d /* content security */
|
||||||
|
#define USB_CLASS_VIDEO 0x0e
|
||||||
|
#define USB_CLASS_WIRELESS_CONTROLLER 0xe0
|
||||||
|
#define USB_CLASS_APP_SPEC 0xfe
|
||||||
|
#define USB_CLASS_VENDOR_SPEC 0xff
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_CONFIG: Configuration descriptor information.
|
||||||
|
*
|
||||||
|
* USB_DT_OTHER_SPEED_CONFIG is the same descriptor, except that the
|
||||||
|
* descriptor type is different. Highspeed-capable devices can look
|
||||||
|
* different depending on what speed they're currently running. Only
|
||||||
|
* devices with a USB_DT_DEVICE_QUALIFIER have any OTHER_SPEED_CONFIG
|
||||||
|
* descriptors.
|
||||||
|
*/
|
||||||
|
struct usb_config_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int16_t wTotalLength;
|
||||||
|
u_int8_t bNumInterfaces;
|
||||||
|
u_int8_t bConfigurationValue;
|
||||||
|
u_int8_t iConfiguration;
|
||||||
|
u_int8_t bmAttributes;
|
||||||
|
u_int8_t bMaxPower;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
#define USB_DT_CONFIG_SIZE 9
|
||||||
|
|
||||||
|
/* from config descriptor bmAttributes */
|
||||||
|
#define USB_CONFIG_ATT_ONE (1 << 7) /* must be set */
|
||||||
|
#define USB_CONFIG_ATT_SELFPOWER (1 << 6) /* self powered */
|
||||||
|
#define USB_CONFIG_ATT_WAKEUP (1 << 5) /* can wakeup */
|
||||||
|
#define USB_CONFIG_ATT_BATTERY (1 << 4) /* battery powered */
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_STRING: String descriptor */
|
||||||
|
struct usb_string_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int16_t wData[0]; /* UTF-16LE encoded */
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
/* note that "string" zero is special, it holds language codes that
|
||||||
|
* the device supports, not Unicode characters.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_INTERFACE: Interface descriptor */
|
||||||
|
struct usb_interface_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int8_t bInterfaceNumber;
|
||||||
|
u_int8_t bAlternateSetting;
|
||||||
|
u_int8_t bNumEndpoints;
|
||||||
|
u_int8_t bInterfaceClass;
|
||||||
|
u_int8_t bInterfaceSubClass;
|
||||||
|
u_int8_t bInterfaceProtocol;
|
||||||
|
u_int8_t iInterface;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
#define USB_DT_INTERFACE_SIZE 9
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_ENDPOINT: Endpoint descriptor */
|
||||||
|
struct usb_endpoint_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int8_t bEndpointAddress;
|
||||||
|
u_int8_t bmAttributes;
|
||||||
|
u_int16_t wMaxPacketSize;
|
||||||
|
u_int8_t bInterval;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
#define USB_DT_ENDPOINT_SIZE 7
|
||||||
|
#define USB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Endpoints
|
||||||
|
*/
|
||||||
|
#define USB_ENDPOINT_NUMBER_MASK 0x0f /* in bEndpointAddress */
|
||||||
|
#define USB_ENDPOINT_DIR_MASK 0x80
|
||||||
|
|
||||||
|
#define USB_ENDPOINT_XFERTYPE_MASK 0x03 /* in bmAttributes */
|
||||||
|
#define USB_ENDPOINT_XFER_CONTROL 0
|
||||||
|
#define USB_ENDPOINT_XFER_ISOC 1
|
||||||
|
#define USB_ENDPOINT_XFER_BULK 2
|
||||||
|
#define USB_ENDPOINT_XFER_INT 3
|
||||||
|
#define USB_ENDPOINT_MAX_ADJUSTABLE 0x80
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_DEVICE_QUALIFIER: Device Qualifier descriptor */
|
||||||
|
struct usb_qualifier_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int16_t bcdUSB;
|
||||||
|
u_int8_t bDeviceClass;
|
||||||
|
u_int8_t bDeviceSubClass;
|
||||||
|
u_int8_t bDeviceProtocol;
|
||||||
|
u_int8_t bMaxPacketSize0;
|
||||||
|
u_int8_t bNumConfigurations;
|
||||||
|
u_int8_t bRESERVED;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_OTG (from OTG 1.0a supplement) */
|
||||||
|
struct usb_otg_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int8_t bmAttributes; /* support for HNP, SRP, etc */
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
/* from usb_otg_descriptor.bmAttributes */
|
||||||
|
#define USB_OTG_SRP (1 << 0)
|
||||||
|
#define USB_OTG_HNP (1 << 1) /* swap host/device roles */
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_DEBUG: for special highspeed devices, replacing serial console */
|
||||||
|
struct usb_debug_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
/* bulk endpoints with 8 byte maxpacket */
|
||||||
|
u_int8_t bDebugInEndpoint;
|
||||||
|
u_int8_t bDebugOutEndpoint;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_INTERFACE_ASSOCIATION: groups interfaces */
|
||||||
|
struct usb_interface_assoc_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int8_t bFirstInterface;
|
||||||
|
u_int8_t bInterfaceCount;
|
||||||
|
u_int8_t bFunctionClass;
|
||||||
|
u_int8_t bFunctionSubClass;
|
||||||
|
u_int8_t bFunctionProtocol;
|
||||||
|
u_int8_t iFunction;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_SECURITY: group of wireless security descriptors, including
|
||||||
|
* encryption types available for setting up a CC/association.
|
||||||
|
*/
|
||||||
|
struct usb_security_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int16_t wTotalLength;
|
||||||
|
u_int8_t bNumEncryptionTypes;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_KEY: used with {GET,SET}_SECURITY_DATA; only public keys
|
||||||
|
* may be retrieved.
|
||||||
|
*/
|
||||||
|
struct usb_key_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int8_t tTKID[3];
|
||||||
|
u_int8_t bReserved;
|
||||||
|
u_int8_t bKeyData[0];
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_ENCRYPTION_TYPE: bundled in DT_SECURITY groups */
|
||||||
|
struct usb_encryption_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int8_t bEncryptionType;
|
||||||
|
#define USB_ENC_TYPE_UNSECURE 0
|
||||||
|
#define USB_ENC_TYPE_WIRED 1 /* non-wireless mode */
|
||||||
|
#define USB_ENC_TYPE_CCM_1 2 /* aes128/cbc session */
|
||||||
|
#define USB_ENC_TYPE_RSA_1 3 /* rsa3072/sha1 auth */
|
||||||
|
u_int8_t bEncryptionValue; /* use in SET_ENCRYPTION */
|
||||||
|
u_int8_t bAuthKeyIndex;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_BOS: group of wireless capabilities */
|
||||||
|
struct usb_bos_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int16_t wTotalLength;
|
||||||
|
u_int8_t bNumDeviceCaps;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_DEVICE_CAPABILITY: grouped with BOS */
|
||||||
|
struct usb_dev_cap_header {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
u_int8_t bDevCapabilityType;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define USB_CAP_TYPE_WIRELESS_USB 1
|
||||||
|
|
||||||
|
struct usb_wireless_cap_descriptor { /* Ultra Wide Band */
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
u_int8_t bDevCapabilityType;
|
||||||
|
|
||||||
|
u_int8_t bmAttributes;
|
||||||
|
#define USB_WIRELESS_P2P_DRD (1 << 1)
|
||||||
|
#define USB_WIRELESS_BEACON_MASK (3 << 2)
|
||||||
|
#define USB_WIRELESS_BEACON_SELF (1 << 2)
|
||||||
|
#define USB_WIRELESS_BEACON_DIRECTED (2 << 2)
|
||||||
|
#define USB_WIRELESS_BEACON_NONE (3 << 2)
|
||||||
|
u_int16_t wPHYRates; /* bit rates, Mbps */
|
||||||
|
#define USB_WIRELESS_PHY_53 (1 << 0) /* always set */
|
||||||
|
#define USB_WIRELESS_PHY_80 (1 << 1)
|
||||||
|
#define USB_WIRELESS_PHY_107 (1 << 2) /* always set */
|
||||||
|
#define USB_WIRELESS_PHY_160 (1 << 3)
|
||||||
|
#define USB_WIRELESS_PHY_200 (1 << 4) /* always set */
|
||||||
|
#define USB_WIRELESS_PHY_320 (1 << 5)
|
||||||
|
#define USB_WIRELESS_PHY_400 (1 << 6)
|
||||||
|
#define USB_WIRELESS_PHY_480 (1 << 7)
|
||||||
|
u_int8_t bmTFITXPowerInfo; /* TFI power levels */
|
||||||
|
u_int8_t bmFFITXPowerInfo; /* FFI power levels */
|
||||||
|
u_int16_t bmBandGroup;
|
||||||
|
u_int8_t bReserved;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_DT_WIRELESS_ENDPOINT_COMP: companion descriptor associated with
|
||||||
|
* each endpoint descriptor for a wireless device
|
||||||
|
*/
|
||||||
|
struct usb_wireless_ep_comp_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
|
||||||
|
u_int8_t bMaxBurst;
|
||||||
|
u_int8_t bMaxSequence;
|
||||||
|
u_int16_t wMaxStreamDelay;
|
||||||
|
u_int16_t wOverTheAirPacketSize;
|
||||||
|
u_int8_t bOverTheAirInterval;
|
||||||
|
u_int8_t bmCompAttributes;
|
||||||
|
#define USB_ENDPOINT_SWITCH_MASK 0x03 /* in bmCompAttributes */
|
||||||
|
#define USB_ENDPOINT_SWITCH_NO 0
|
||||||
|
#define USB_ENDPOINT_SWITCH_SWITCH 1
|
||||||
|
#define USB_ENDPOINT_SWITCH_SCALE 2
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_REQ_SET_HANDSHAKE is a four-way handshake used between a wireless
|
||||||
|
* host and a device for connection set up, mutual authentication, and
|
||||||
|
* exchanging short lived session keys. The handshake depends on a CC.
|
||||||
|
*/
|
||||||
|
struct usb_handshake {
|
||||||
|
u_int8_t bMessageNumber;
|
||||||
|
u_int8_t bStatus;
|
||||||
|
u_int8_t tTKID[3];
|
||||||
|
u_int8_t bReserved;
|
||||||
|
u_int8_t CDID[16];
|
||||||
|
u_int8_t nonce[16];
|
||||||
|
u_int8_t MIC[8];
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB_REQ_SET_CONNECTION modifies or revokes a connection context (CC).
|
||||||
|
* A CC may also be set up using non-wireless secure channels (including
|
||||||
|
* wired USB!), and some devices may support CCs with multiple hosts.
|
||||||
|
*/
|
||||||
|
struct usb_connection_context {
|
||||||
|
u_int8_t CHID[16]; /* persistent host id */
|
||||||
|
u_int8_t CDID[16]; /* device id (unique w/in host context) */
|
||||||
|
u_int8_t CK[16]; /* connection key */
|
||||||
|
};
|
||||||
|
|
||||||
|
/*-------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* USB 2.0 defines three speeds, here's how Linux identifies them */
|
||||||
|
|
||||||
|
enum usb_device_speed {
|
||||||
|
USB_SPEED_UNKNOWN = 0, /* enumerating */
|
||||||
|
USB_SPEED_LOW, USB_SPEED_FULL, /* usb 1.1 */
|
||||||
|
USB_SPEED_HIGH, /* usb 2.0 */
|
||||||
|
USB_SPEED_VARIABLE, /* wireless (usb 2.5) */
|
||||||
|
};
|
||||||
|
|
||||||
|
enum usb_device_state {
|
||||||
|
/* NOTATTACHED isn't in the USB spec, and this state acts
|
||||||
|
* the same as ATTACHED ... but it's clearer this way.
|
||||||
|
*/
|
||||||
|
USB_STATE_NOTATTACHED = 0,
|
||||||
|
|
||||||
|
/* chapter 9 and authentication (wireless) device states */
|
||||||
|
USB_STATE_ATTACHED,
|
||||||
|
USB_STATE_POWERED, /* wired */
|
||||||
|
USB_STATE_UNAUTHENTICATED, /* auth */
|
||||||
|
USB_STATE_RECONNECTING, /* auth */
|
||||||
|
USB_STATE_DEFAULT, /* limited function */
|
||||||
|
USB_STATE_ADDRESS,
|
||||||
|
USB_STATE_CONFIGURED, /* most functions */
|
||||||
|
|
||||||
|
USB_STATE_SUSPENDED
|
||||||
|
|
||||||
|
/* NOTE: there are actually four different SUSPENDED
|
||||||
|
* states, returning to POWERED, DEFAULT, ADDRESS, or
|
||||||
|
* CONFIGURED respectively when SOF tokens flow again.
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* __LINUX_USB_CH9_H */
|
81
firmware/include/usb_dfu.h
Normal file
81
firmware/include/usb_dfu.h
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
#ifndef _USB_DFU_H
|
||||||
|
#define _USB_DFU_H
|
||||||
|
/* USB Device Firmware Update Implementation for OpenPCD
|
||||||
|
* (C) 2006 by Harald Welte <hwelte@hmw-consulting.de>
|
||||||
|
*
|
||||||
|
* Protocol definitions for USB DFU
|
||||||
|
*
|
||||||
|
* This ought to be compliant to the USB DFU Spec 1.0 as available from
|
||||||
|
* http://www.usb.org/developers/devclass_docs/usbdfu10.pdf
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
#define USB_DT_DFU 0x21
|
||||||
|
|
||||||
|
struct usb_dfu_func_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
u_int8_t bmAttributes;
|
||||||
|
#define USB_DFU_CAN_DOWNLOAD (1 << 0)
|
||||||
|
#define USB_DFU_CAN_UPLOAD (1 << 1)
|
||||||
|
#define USB_DFU_MANIFEST_TOL (1 << 2)
|
||||||
|
#define USB_DFU_WILL_DETACH (1 << 3)
|
||||||
|
u_int16_t wDetachTimeOut;
|
||||||
|
u_int16_t wTransferSize;
|
||||||
|
u_int16_t bcdDFUVersion;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
#define USB_DT_DFU_SIZE 9
|
||||||
|
|
||||||
|
#define USB_TYPE_DFU (USB_TYPE_CLASS|USB_RECIP_INTERFACE)
|
||||||
|
|
||||||
|
/* DFU class-specific requests (Section 3, DFU Rev 1.1) */
|
||||||
|
#define USB_REQ_DFU_DETACH 0x00
|
||||||
|
#define USB_REQ_DFU_DNLOAD 0x01
|
||||||
|
#define USB_REQ_DFU_UPLOAD 0x02
|
||||||
|
#define USB_REQ_DFU_GETSTATUS 0x03
|
||||||
|
#define USB_REQ_DFU_CLRSTATUS 0x04
|
||||||
|
#define USB_REQ_DFU_GETSTATE 0x05
|
||||||
|
#define USB_REQ_DFU_ABORT 0x06
|
||||||
|
|
||||||
|
struct dfu_status {
|
||||||
|
u_int8_t bStatus;
|
||||||
|
u_int8_t bwPollTimeout[3];
|
||||||
|
u_int8_t bState;
|
||||||
|
u_int8_t iString;
|
||||||
|
} __attribute__((packed));
|
||||||
|
|
||||||
|
#define DFU_STATUS_OK 0x00
|
||||||
|
#define DFU_STATUS_errTARGET 0x01
|
||||||
|
#define DFU_STATUS_errFILE 0x02
|
||||||
|
#define DFU_STATUS_errWRITE 0x03
|
||||||
|
#define DFU_STATUS_errERASE 0x04
|
||||||
|
#define DFU_STATUS_errCHECK_ERASED 0x05
|
||||||
|
#define DFU_STATUS_errPROG 0x06
|
||||||
|
#define DFU_STATUS_errVERIFY 0x07
|
||||||
|
#define DFU_STATUS_errADDRESS 0x08
|
||||||
|
#define DFU_STATUS_errNOTDONE 0x09
|
||||||
|
#define DFU_STATUS_errFIRMWARE 0x0a
|
||||||
|
#define DFU_STATUS_errVENDOR 0x0b
|
||||||
|
#define DFU_STATUS_errUSBR 0x0c
|
||||||
|
#define DFU_STATUS_errPOR 0x0d
|
||||||
|
#define DFU_STATUS_errUNKNOWN 0x0e
|
||||||
|
#define DFU_STATUS_errSTALLEDPKT 0x0f
|
||||||
|
|
||||||
|
enum dfu_state {
|
||||||
|
DFU_STATE_appIDLE = 0,
|
||||||
|
DFU_STATE_appDETACH = 1,
|
||||||
|
DFU_STATE_dfuIDLE = 2,
|
||||||
|
DFU_STATE_dfuDNLOAD_SYNC = 3,
|
||||||
|
DFU_STATE_dfuDNBUSY = 4,
|
||||||
|
DFU_STATE_dfuDNLOAD_IDLE = 5,
|
||||||
|
DFU_STATE_dfuMANIFEST_SYNC = 6,
|
||||||
|
DFU_STATE_dfuMANIFEST = 7,
|
||||||
|
DFU_STATE_dfuMANIFEST_WAIT_RST = 8,
|
||||||
|
DFU_STATE_dfuUPLOAD_IDLE = 9,
|
||||||
|
DFU_STATE_dfuERROR = 10,
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* _USB_DFU_H */
|
236
firmware/include/usb_hid.h
Normal file
236
firmware/include/usb_hid.h
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
#ifndef _USB_HID_H
|
||||||
|
#define _USB_HID_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
*
|
||||||
|
* Portions of <linux/hid.h>:
|
||||||
|
* Copyright (c) 1999 Andreas Gal
|
||||||
|
* Copyright (c) 2000-2001 Vojtech Pavlik
|
||||||
|
* Copyright (c) 2006-2007 Jiri Kosina
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB HID (Human Interface Device) interface class code
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define USB_INTERFACE_CLASS_HID 3
|
||||||
|
|
||||||
|
/*
|
||||||
|
* USB HID interface subclass and protocol codes
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define USB_INTERFACE_SUBCLASS_BOOT 1
|
||||||
|
#define USB_INTERFACE_PROTOCOL_KEYBOARD 1
|
||||||
|
#define USB_INTERFACE_PROTOCOL_MOUSE 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID class requests
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_REQ_GET_REPORT 0x01
|
||||||
|
#define HID_REQ_GET_IDLE 0x02
|
||||||
|
#define HID_REQ_GET_PROTOCOL 0x03
|
||||||
|
#define HID_REQ_SET_REPORT 0x09
|
||||||
|
#define HID_REQ_SET_IDLE 0x0A
|
||||||
|
#define HID_REQ_SET_PROTOCOL 0x0B
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID class descriptor types
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_DT_HID (USB_TYPE_CLASS | 0x01)
|
||||||
|
#define HID_DT_REPORT (USB_TYPE_CLASS | 0x02)
|
||||||
|
#define HID_DT_PHYSICAL (USB_TYPE_CLASS | 0x03)
|
||||||
|
|
||||||
|
#define HID_MAX_DESCRIPTOR_SIZE 4096
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report item format
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_ITEM_FORMAT_SHORT 0
|
||||||
|
#define HID_ITEM_FORMAT_LONG 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Special tag indicating long items
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_ITEM_TAG_LONG 15
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report descriptor item type (prefix bit 2,3)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_ITEM_TYPE_MAIN 0
|
||||||
|
#define HID_ITEM_TYPE_GLOBAL 1
|
||||||
|
#define HID_ITEM_TYPE_LOCAL 2
|
||||||
|
#define HID_ITEM_TYPE_RESERVED 3
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report descriptor main item tags
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_MAIN_ITEM_TAG_INPUT 8
|
||||||
|
#define HID_MAIN_ITEM_TAG_OUTPUT 9
|
||||||
|
#define HID_MAIN_ITEM_TAG_FEATURE 11
|
||||||
|
#define HID_MAIN_ITEM_TAG_BEGIN_COLLECTION 10
|
||||||
|
#define HID_MAIN_ITEM_TAG_END_COLLECTION 12
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report descriptor main item contents
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_MAIN_ITEM_CONSTANT 0x001
|
||||||
|
#define HID_MAIN_ITEM_VARIABLE 0x002
|
||||||
|
#define HID_MAIN_ITEM_RELATIVE 0x004
|
||||||
|
#define HID_MAIN_ITEM_WRAP 0x008
|
||||||
|
#define HID_MAIN_ITEM_NONLINEAR 0x010
|
||||||
|
#define HID_MAIN_ITEM_NO_PREFERRED 0x020
|
||||||
|
#define HID_MAIN_ITEM_NULL_STATE 0x040
|
||||||
|
#define HID_MAIN_ITEM_VOLATILE 0x080
|
||||||
|
#define HID_MAIN_ITEM_BUFFERED_BYTE 0x100
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report descriptor collection item types
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_COLLECTION_PHYSICAL 0
|
||||||
|
#define HID_COLLECTION_APPLICATION 1
|
||||||
|
#define HID_COLLECTION_LOGICAL 2
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report descriptor global item tags
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_USAGE_PAGE 0
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MINIMUM 1
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_LOGICAL_MAXIMUM 2
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MINIMUM 3
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_PHYSICAL_MAXIMUM 4
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_UNIT_EXPONENT 5
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_UNIT 6
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_REPORT_SIZE 7
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_REPORT_ID 8
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_REPORT_COUNT 9
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_PUSH 10
|
||||||
|
#define HID_GLOBAL_ITEM_TAG_POP 11
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report descriptor local item tags
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_LOCAL_ITEM_TAG_USAGE 0
|
||||||
|
#define HID_LOCAL_ITEM_TAG_USAGE_MINIMUM 1
|
||||||
|
#define HID_LOCAL_ITEM_TAG_USAGE_MAXIMUM 2
|
||||||
|
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_INDEX 3
|
||||||
|
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MINIMUM 4
|
||||||
|
#define HID_LOCAL_ITEM_TAG_DESIGNATOR_MAXIMUM 5
|
||||||
|
#define HID_LOCAL_ITEM_TAG_STRING_INDEX 7
|
||||||
|
#define HID_LOCAL_ITEM_TAG_STRING_MINIMUM 8
|
||||||
|
#define HID_LOCAL_ITEM_TAG_STRING_MAXIMUM 9
|
||||||
|
#define HID_LOCAL_ITEM_TAG_DELIMITER 10
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID usage tables
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_USAGE_PAGE 0xffff0000
|
||||||
|
|
||||||
|
#define HID_UP_UNDEFINED 0x00000000
|
||||||
|
#define HID_UP_GENDESK 0x00010000
|
||||||
|
#define HID_UP_SIMULATION 0x00020000
|
||||||
|
#define HID_UP_KEYBOARD 0x00070000
|
||||||
|
#define HID_UP_LED 0x00080000
|
||||||
|
#define HID_UP_BUTTON 0x00090000
|
||||||
|
#define HID_UP_ORDINAL 0x000a0000
|
||||||
|
#define HID_UP_CONSUMER 0x000c0000
|
||||||
|
#define HID_UP_DIGITIZER 0x000d0000
|
||||||
|
#define HID_UP_PID 0x000f0000
|
||||||
|
#define HID_UP_HPVENDOR 0xff7f0000
|
||||||
|
#define HID_UP_MSVENDOR 0xff000000
|
||||||
|
#define HID_UP_CUSTOM 0x00ff0000
|
||||||
|
#define HID_UP_LOGIVENDOR 0xffbc0000
|
||||||
|
|
||||||
|
#define HID_USAGE 0x0000ffff
|
||||||
|
|
||||||
|
#define HID_GD_POINTER 0x00010001
|
||||||
|
#define HID_GD_MOUSE 0x00010002
|
||||||
|
#define HID_GD_JOYSTICK 0x00010004
|
||||||
|
#define HID_GD_GAMEPAD 0x00010005
|
||||||
|
#define HID_GD_KEYBOARD 0x00010006
|
||||||
|
#define HID_GD_KEYPAD 0x00010007
|
||||||
|
#define HID_GD_MULTIAXIS 0x00010008
|
||||||
|
#define HID_GD_X 0x00010030
|
||||||
|
#define HID_GD_Y 0x00010031
|
||||||
|
#define HID_GD_Z 0x00010032
|
||||||
|
#define HID_GD_RX 0x00010033
|
||||||
|
#define HID_GD_RY 0x00010034
|
||||||
|
#define HID_GD_RZ 0x00010035
|
||||||
|
#define HID_GD_SLIDER 0x00010036
|
||||||
|
#define HID_GD_DIAL 0x00010037
|
||||||
|
#define HID_GD_WHEEL 0x00010038
|
||||||
|
#define HID_GD_HATSWITCH 0x00010039
|
||||||
|
#define HID_GD_BUFFER 0x0001003a
|
||||||
|
#define HID_GD_BYTECOUNT 0x0001003b
|
||||||
|
#define HID_GD_MOTION 0x0001003c
|
||||||
|
#define HID_GD_START 0x0001003d
|
||||||
|
#define HID_GD_SELECT 0x0001003e
|
||||||
|
#define HID_GD_VX 0x00010040
|
||||||
|
#define HID_GD_VY 0x00010041
|
||||||
|
#define HID_GD_VZ 0x00010042
|
||||||
|
#define HID_GD_VBRX 0x00010043
|
||||||
|
#define HID_GD_VBRY 0x00010044
|
||||||
|
#define HID_GD_VBRZ 0x00010045
|
||||||
|
#define HID_GD_VNO 0x00010046
|
||||||
|
#define HID_GD_FEATURE 0x00010047
|
||||||
|
#define HID_GD_UP 0x00010090
|
||||||
|
#define HID_GD_DOWN 0x00010091
|
||||||
|
#define HID_GD_RIGHT 0x00010092
|
||||||
|
#define HID_GD_LEFT 0x00010093
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HID report types --- Ouch! HID spec says 1 2 3!
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define HID_INPUT_REPORT 0
|
||||||
|
#define HID_OUTPUT_REPORT 1
|
||||||
|
#define HID_FEATURE_REPORT 2
|
||||||
|
|
||||||
|
struct usb_hid_class_descriptor {
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
u_int16_t wDescriptorLength;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct usb_hid_descriptor {
|
||||||
|
u_int8_t bLength;
|
||||||
|
u_int8_t bDescriptorType;
|
||||||
|
u_int16_t bcdHID;
|
||||||
|
u_int8_t bCountryCode;
|
||||||
|
u_int8_t bNumDescriptors;
|
||||||
|
|
||||||
|
struct hid_class_descriptor desc[1];
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
/* Applications from HID Usage Tables 4/8/99 Version 1.1 */
|
||||||
|
/* We ignore a few input applications that are not widely used */
|
||||||
|
#define IS_INPUT_APPLICATION(a) (((a >= 0x00010000) && (a <= 0x00010008)) || (a == 0x00010080) || (a == 0x000c0001))
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
33
firmware/lib/bitops.h
Normal file
33
firmware/lib/bitops.h
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
.macro bitop, instr
|
||||||
|
and r2, r0, #7
|
||||||
|
mov r3, #1
|
||||||
|
mov r3, r3, lsl r2
|
||||||
|
save_and_disable_irqs ip
|
||||||
|
ldrb r2, [r1, r0, lsr #3]
|
||||||
|
\instr r2, r2, r3
|
||||||
|
strb r2, [r1, r0, lsr #3]
|
||||||
|
restore_irqs ip
|
||||||
|
mov pc, lr
|
||||||
|
.endm
|
||||||
|
|
||||||
|
/**
|
||||||
|
* testop - implement a test_and_xxx_bit operation.
|
||||||
|
* @instr: operational instruction
|
||||||
|
* @store: store instruction
|
||||||
|
*
|
||||||
|
* Note: we can trivially conditionalise the store instruction
|
||||||
|
* to avoid dirting the data cache.
|
||||||
|
*/
|
||||||
|
.macro testop, instr, store
|
||||||
|
add r1, r1, r0, lsr #3
|
||||||
|
and r3, r0, #7
|
||||||
|
mov r0, #1
|
||||||
|
save_and_disable_irqs ip
|
||||||
|
ldrb r2, [r1]
|
||||||
|
tst r2, r0, lsl r3
|
||||||
|
\instr r2, r2, r0, lsl r3
|
||||||
|
\store r2, [r1]
|
||||||
|
restore_irqs ip
|
||||||
|
moveq r0, #0
|
||||||
|
mov pc, lr
|
||||||
|
.endm
|
21
firmware/lib/changebit.S
Normal file
21
firmware/lib/changebit.S
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/changebit.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 1995-1996 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
#include "bitops.h"
|
||||||
|
.text
|
||||||
|
|
||||||
|
/* Purpose : Function to change a bit
|
||||||
|
* Prototype: int change_bit(int bit, void *addr)
|
||||||
|
*/
|
||||||
|
ENTRY(_change_bit_be)
|
||||||
|
eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
ENTRY(_change_bit_le)
|
||||||
|
bitop eor
|
169
firmware/lib/changebit.lst
Normal file
169
firmware/lib/changebit.lst
Normal file
@ -0,0 +1,169 @@
|
|||||||
|
1 # 1 "lib/changebit.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/changebit.S
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1995-1996 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 */
|
||||||
|
10 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
11 #include <asm/assembler.h>
|
||||||
|
1 /*
|
||||||
|
2 * linux/include/asm-arm/assembler.h
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1996-2000 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 *
|
||||||
|
10 * This file contains arm architecture specific defines
|
||||||
|
11 * for the different processors.
|
||||||
|
12 *
|
||||||
|
13 * Do not include any C declarations in this file - it is included by
|
||||||
|
14 * assembler source.
|
||||||
|
15 */
|
||||||
|
16 #ifndef __ASSEMBLY__
|
||||||
|
17 #error "Only include this from assembly code"
|
||||||
|
18 #endif
|
||||||
|
19
|
||||||
|
20 #include <asm/ptrace.h>
|
||||||
|
1 /*
|
||||||
|
21
|
||||||
|
22 #define pull lsl
|
||||||
|
23 #define push lsr
|
||||||
|
24 #define get_byte_0 lsr #24
|
||||||
|
25 #define get_byte_1 lsr #16
|
||||||
|
26 #define get_byte_2 lsr #8
|
||||||
|
27 #define get_byte_3 lsl #0
|
||||||
|
28 #define put_byte_0 lsl #24
|
||||||
|
29 #define put_byte_1 lsl #16
|
||||||
|
30 #define put_byte_2 lsl #8
|
||||||
|
31 #define put_byte_3 lsl #0
|
||||||
|
32
|
||||||
|
33 #define PLD(code...)
|
||||||
|
34
|
||||||
|
35 #define MODE_USR USR_MODE
|
||||||
|
36 #define MODE_FIQ FIQ_MODE
|
||||||
|
37 #define MODE_IRQ IRQ_MODE
|
||||||
|
38 #define MODE_SVC SVC_MODE
|
||||||
|
39
|
||||||
|
40 #define DEFAULT_FIQ MODE_FIQ
|
||||||
|
41
|
||||||
|
42 /*
|
||||||
|
43 * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
44 */
|
||||||
|
45 #ifdef __STDC__
|
||||||
|
46 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
47 ldm##cond base,reglist
|
||||||
|
48 #else
|
||||||
|
49 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
50 ldm/**/cond base,reglist
|
||||||
|
51 #endif
|
||||||
|
52
|
||||||
|
53 /*
|
||||||
|
54 * Build a return instruction for this processor type.
|
||||||
|
55 */
|
||||||
|
56 #define RETINSTR(instr, regs...)\
|
||||||
|
57 instr regs
|
||||||
|
58
|
||||||
|
59 /*
|
||||||
|
60 * Enable and disable interrupts
|
||||||
|
61 */
|
||||||
|
62 .macro disable_irq
|
||||||
|
63 msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
64 .endm
|
||||||
|
65
|
||||||
|
66 .macro enable_irq
|
||||||
|
67 msr cpsr_c, #SVC_MODE
|
||||||
|
68 .endm
|
||||||
|
69
|
||||||
|
70 /*
|
||||||
|
71 * Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
72 * assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
73 */
|
||||||
|
74 .macro save_and_disable_irqs, oldcpsr
|
||||||
|
75 mrs \oldcpsr, cpsr
|
||||||
|
76 disable_irq
|
||||||
|
77 .endm
|
||||||
|
78
|
||||||
|
79 /*
|
||||||
|
80 * Restore interrupt state previously stored in a register. We don't
|
||||||
|
81 * guarantee that this will preserve the flags.
|
||||||
|
82 */
|
||||||
|
83 .macro restore_irqs, oldcpsr
|
||||||
|
84 msr cpsr_c, \oldcpsr
|
||||||
|
85 .endm
|
||||||
|
86
|
||||||
|
87 /*
|
||||||
|
88 * These two are used to save LR/restore PC over a user-based access.
|
||||||
|
89 * The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
90 * architecture, we can safely ignore this requirement.
|
||||||
|
91 */
|
||||||
|
92 .macro save_lr
|
||||||
|
93 .endm
|
||||||
|
94
|
||||||
|
95 .macro restore_pc
|
||||||
|
96 mov pc, lr
|
||||||
|
97 .endm
|
||||||
|
98 ...
|
||||||
|
12 #include "bitops.h"
|
||||||
|
1 .macro bitop, instr
|
||||||
|
2 and r2, r0, #7
|
||||||
|
3 mov r3, #1
|
||||||
|
4 mov r3, r3, lsl r2
|
||||||
|
5 save_and_disable_irqs ip
|
||||||
|
6 ldrb r2, [r1, r0, lsr #3]
|
||||||
|
7 \instr r2, r2, r3
|
||||||
|
8 strb r2, [r1, r0, lsr #3]
|
||||||
|
9 restore_irqs ip
|
||||||
|
10 mov pc, lr
|
||||||
|
11 .endm
|
||||||
|
12
|
||||||
|
13 /**
|
||||||
|
14 * testop - implement a test_and_xxx_bit operation.
|
||||||
|
15 * @instr: operational instruction
|
||||||
|
16 * @store: store instruction
|
||||||
|
17 *
|
||||||
|
18 * Note: we can trivially conditionalise the store instruction
|
||||||
|
19 * to avoid dirting the data cache.
|
||||||
|
20 */
|
||||||
|
21 .macro testop, instr, store
|
||||||
|
22 add r1, r1, r0, lsr #3
|
||||||
|
23 and r3, r0, #7
|
||||||
|
24 mov r0, #1
|
||||||
|
25 save_and_disable_irqs ip
|
||||||
|
26 ldrb r2, [r1]
|
||||||
|
27 tst r2, r0, lsl r3
|
||||||
|
28 \instr r2, r2, r0, lsl r3
|
||||||
|
29 \store r2, [r1]
|
||||||
|
30 restore_irqs ip
|
||||||
|
31 moveq r0, #0
|
||||||
|
32 mov pc, lr
|
||||||
|
33 .endm
|
||||||
|
34 ...
|
||||||
|
13 .text
|
||||||
|
14
|
||||||
|
15 /* Purpose : Function to change a bit
|
||||||
|
16 * Prototype: int change_bit(int bit, void *addr)
|
||||||
|
17 */
|
||||||
|
18 ENTRY(_change_bit_be)
|
||||||
|
19 0000 180020E2 eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
20 ENTRY(_change_bit_le)
|
||||||
|
21 0004 072000E2 bitop eor
|
||||||
|
21 0130A0E3
|
||||||
|
21 1332A0E1
|
||||||
|
21 00C00FE1
|
||||||
|
21 93F021E3
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/changebit.S:18 .text:00000000 _change_bit_be
|
||||||
|
lib/changebit.S:18 .text:00000000 $a
|
||||||
|
lib/changebit.S:20 .text:00000004 _change_bit_le
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
22
firmware/lib/clearbit.S
Normal file
22
firmware/lib/clearbit.S
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/clearbit.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 1995-1996 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
#include "bitops.h"
|
||||||
|
.text
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Purpose : Function to clear a bit
|
||||||
|
* Prototype: int clear_bit(int bit, void *addr)
|
||||||
|
*/
|
||||||
|
ENTRY(_clear_bit_be)
|
||||||
|
eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
ENTRY(_clear_bit_le)
|
||||||
|
bitop bic
|
170
firmware/lib/clearbit.lst
Normal file
170
firmware/lib/clearbit.lst
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
1 # 1 "lib/clearbit.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/clearbit.S
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1995-1996 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 */
|
||||||
|
10 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
11 #include <asm/assembler.h>
|
||||||
|
1 /*
|
||||||
|
2 * linux/include/asm-arm/assembler.h
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1996-2000 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 *
|
||||||
|
10 * This file contains arm architecture specific defines
|
||||||
|
11 * for the different processors.
|
||||||
|
12 *
|
||||||
|
13 * Do not include any C declarations in this file - it is included by
|
||||||
|
14 * assembler source.
|
||||||
|
15 */
|
||||||
|
16 #ifndef __ASSEMBLY__
|
||||||
|
17 #error "Only include this from assembly code"
|
||||||
|
18 #endif
|
||||||
|
19
|
||||||
|
20 #include <asm/ptrace.h>
|
||||||
|
1 /*
|
||||||
|
21
|
||||||
|
22 #define pull lsl
|
||||||
|
23 #define push lsr
|
||||||
|
24 #define get_byte_0 lsr #24
|
||||||
|
25 #define get_byte_1 lsr #16
|
||||||
|
26 #define get_byte_2 lsr #8
|
||||||
|
27 #define get_byte_3 lsl #0
|
||||||
|
28 #define put_byte_0 lsl #24
|
||||||
|
29 #define put_byte_1 lsl #16
|
||||||
|
30 #define put_byte_2 lsl #8
|
||||||
|
31 #define put_byte_3 lsl #0
|
||||||
|
32
|
||||||
|
33 #define PLD(code...)
|
||||||
|
34
|
||||||
|
35 #define MODE_USR USR_MODE
|
||||||
|
36 #define MODE_FIQ FIQ_MODE
|
||||||
|
37 #define MODE_IRQ IRQ_MODE
|
||||||
|
38 #define MODE_SVC SVC_MODE
|
||||||
|
39
|
||||||
|
40 #define DEFAULT_FIQ MODE_FIQ
|
||||||
|
41
|
||||||
|
42 /*
|
||||||
|
43 * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
44 */
|
||||||
|
45 #ifdef __STDC__
|
||||||
|
46 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
47 ldm##cond base,reglist
|
||||||
|
48 #else
|
||||||
|
49 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
50 ldm/**/cond base,reglist
|
||||||
|
51 #endif
|
||||||
|
52
|
||||||
|
53 /*
|
||||||
|
54 * Build a return instruction for this processor type.
|
||||||
|
55 */
|
||||||
|
56 #define RETINSTR(instr, regs...)\
|
||||||
|
57 instr regs
|
||||||
|
58
|
||||||
|
59 /*
|
||||||
|
60 * Enable and disable interrupts
|
||||||
|
61 */
|
||||||
|
62 .macro disable_irq
|
||||||
|
63 msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
64 .endm
|
||||||
|
65
|
||||||
|
66 .macro enable_irq
|
||||||
|
67 msr cpsr_c, #SVC_MODE
|
||||||
|
68 .endm
|
||||||
|
69
|
||||||
|
70 /*
|
||||||
|
71 * Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
72 * assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
73 */
|
||||||
|
74 .macro save_and_disable_irqs, oldcpsr
|
||||||
|
75 mrs \oldcpsr, cpsr
|
||||||
|
76 disable_irq
|
||||||
|
77 .endm
|
||||||
|
78
|
||||||
|
79 /*
|
||||||
|
80 * Restore interrupt state previously stored in a register. We don't
|
||||||
|
81 * guarantee that this will preserve the flags.
|
||||||
|
82 */
|
||||||
|
83 .macro restore_irqs, oldcpsr
|
||||||
|
84 msr cpsr_c, \oldcpsr
|
||||||
|
85 .endm
|
||||||
|
86
|
||||||
|
87 /*
|
||||||
|
88 * These two are used to save LR/restore PC over a user-based access.
|
||||||
|
89 * The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
90 * architecture, we can safely ignore this requirement.
|
||||||
|
91 */
|
||||||
|
92 .macro save_lr
|
||||||
|
93 .endm
|
||||||
|
94
|
||||||
|
95 .macro restore_pc
|
||||||
|
96 mov pc, lr
|
||||||
|
97 .endm
|
||||||
|
98 ...
|
||||||
|
12 #include "bitops.h"
|
||||||
|
1 .macro bitop, instr
|
||||||
|
2 and r2, r0, #7
|
||||||
|
3 mov r3, #1
|
||||||
|
4 mov r3, r3, lsl r2
|
||||||
|
5 save_and_disable_irqs ip
|
||||||
|
6 ldrb r2, [r1, r0, lsr #3]
|
||||||
|
7 \instr r2, r2, r3
|
||||||
|
8 strb r2, [r1, r0, lsr #3]
|
||||||
|
9 restore_irqs ip
|
||||||
|
10 mov pc, lr
|
||||||
|
11 .endm
|
||||||
|
12
|
||||||
|
13 /**
|
||||||
|
14 * testop - implement a test_and_xxx_bit operation.
|
||||||
|
15 * @instr: operational instruction
|
||||||
|
16 * @store: store instruction
|
||||||
|
17 *
|
||||||
|
18 * Note: we can trivially conditionalise the store instruction
|
||||||
|
19 * to avoid dirting the data cache.
|
||||||
|
20 */
|
||||||
|
21 .macro testop, instr, store
|
||||||
|
22 add r1, r1, r0, lsr #3
|
||||||
|
23 and r3, r0, #7
|
||||||
|
24 mov r0, #1
|
||||||
|
25 save_and_disable_irqs ip
|
||||||
|
26 ldrb r2, [r1]
|
||||||
|
27 tst r2, r0, lsl r3
|
||||||
|
28 \instr r2, r2, r0, lsl r3
|
||||||
|
29 \store r2, [r1]
|
||||||
|
30 restore_irqs ip
|
||||||
|
31 moveq r0, #0
|
||||||
|
32 mov pc, lr
|
||||||
|
33 .endm
|
||||||
|
34 ...
|
||||||
|
13 .text
|
||||||
|
14
|
||||||
|
15 /*
|
||||||
|
16 * Purpose : Function to clear a bit
|
||||||
|
17 * Prototype: int clear_bit(int bit, void *addr)
|
||||||
|
18 */
|
||||||
|
19 ENTRY(_clear_bit_be)
|
||||||
|
20 0000 180020E2 eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
21 ENTRY(_clear_bit_le)
|
||||||
|
22 0004 072000E2 bitop bic
|
||||||
|
22 0130A0E3
|
||||||
|
22 1332A0E1
|
||||||
|
22 00C00FE1
|
||||||
|
22 93F021E3
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/clearbit.S:19 .text:00000000 _clear_bit_be
|
||||||
|
lib/clearbit.S:19 .text:00000000 $a
|
||||||
|
lib/clearbit.S:21 .text:00000004 _clear_bit_le
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
255
firmware/lib/copy_template.S
Normal file
255
firmware/lib/copy_template.S
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/copy_template.s
|
||||||
|
*
|
||||||
|
* Code template for optimized memory copy functions
|
||||||
|
*
|
||||||
|
* Author: Nicolas Pitre
|
||||||
|
* Created: Sep 28, 2005
|
||||||
|
* Copyright: MontaVista Software, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This can be used to enable code to cacheline align the source pointer.
|
||||||
|
* Experiments on tested architectures (StrongARM and XScale) didn't show
|
||||||
|
* this a worthwhile thing to do. That might be different in the future.
|
||||||
|
*/
|
||||||
|
//#define CALGN(code...) code
|
||||||
|
#define CALGN(code...)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Theory of operation
|
||||||
|
* -------------------
|
||||||
|
*
|
||||||
|
* This file provides the core code for a forward memory copy used in
|
||||||
|
* the implementation of memcopy(), copy_to_user() and copy_from_user().
|
||||||
|
*
|
||||||
|
* The including file must define the following accessor macros
|
||||||
|
* according to the need of the given function:
|
||||||
|
*
|
||||||
|
* ldr1w ptr reg abort
|
||||||
|
*
|
||||||
|
* This loads one word from 'ptr', stores it in 'reg' and increments
|
||||||
|
* 'ptr' to the next word. The 'abort' argument is used for fixup tables.
|
||||||
|
*
|
||||||
|
* ldr4w ptr reg1 reg2 reg3 reg4 abort
|
||||||
|
* ldr8w ptr, reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
|
||||||
|
*
|
||||||
|
* This loads four or eight words starting from 'ptr', stores them
|
||||||
|
* in provided registers and increments 'ptr' past those words.
|
||||||
|
* The'abort' argument is used for fixup tables.
|
||||||
|
*
|
||||||
|
* ldr1b ptr reg cond abort
|
||||||
|
*
|
||||||
|
* Similar to ldr1w, but it loads a byte and increments 'ptr' one byte.
|
||||||
|
* It also must apply the condition code if provided, otherwise the
|
||||||
|
* "al" condition is assumed by default.
|
||||||
|
*
|
||||||
|
* str1w ptr reg abort
|
||||||
|
* str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
|
||||||
|
* str1b ptr reg cond abort
|
||||||
|
*
|
||||||
|
* Same as their ldr* counterparts, but data is stored to 'ptr' location
|
||||||
|
* rather than being loaded.
|
||||||
|
*
|
||||||
|
* enter reg1 reg2
|
||||||
|
*
|
||||||
|
* Preserve the provided registers on the stack plus any additional
|
||||||
|
* data as needed by the implementation including this code. Called
|
||||||
|
* upon code entry.
|
||||||
|
*
|
||||||
|
* exit reg1 reg2
|
||||||
|
*
|
||||||
|
* Restore registers with the values previously saved with the
|
||||||
|
* 'preserv' macro. Called upon code termination.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
enter r4, lr
|
||||||
|
|
||||||
|
subs r2, r2, #4
|
||||||
|
blt 8f
|
||||||
|
ands ip, r0, #3
|
||||||
|
PLD( pld [r1, #0] )
|
||||||
|
bne 9f
|
||||||
|
ands ip, r1, #3
|
||||||
|
bne 10f
|
||||||
|
|
||||||
|
1: subs r2, r2, #(28)
|
||||||
|
stmfd sp!, {r5 - r8}
|
||||||
|
blt 5f
|
||||||
|
|
||||||
|
CALGN( ands ip, r1, #31 )
|
||||||
|
CALGN( rsb r3, ip, #32 )
|
||||||
|
CALGN( sbcnes r4, r3, r2 ) @ C is always set here
|
||||||
|
CALGN( bcs 2f )
|
||||||
|
CALGN( adr r4, 6f )
|
||||||
|
CALGN( subs r2, r2, r3 ) @ C gets set
|
||||||
|
CALGN( add pc, r4, ip )
|
||||||
|
|
||||||
|
PLD( pld [r1, #0] )
|
||||||
|
2: PLD( subs r2, r2, #96 )
|
||||||
|
PLD( pld [r1, #28] )
|
||||||
|
PLD( blt 4f )
|
||||||
|
PLD( pld [r1, #60] )
|
||||||
|
PLD( pld [r1, #92] )
|
||||||
|
|
||||||
|
3: PLD( pld [r1, #124] )
|
||||||
|
4: ldr8w r1, r3, r4, r5, r6, r7, r8, ip, lr, abort=20f
|
||||||
|
subs r2, r2, #32
|
||||||
|
str8w r0, r3, r4, r5, r6, r7, r8, ip, lr, abort=20f
|
||||||
|
bge 3b
|
||||||
|
PLD( cmn r2, #96 )
|
||||||
|
PLD( bge 4b )
|
||||||
|
|
||||||
|
5: ands ip, r2, #28
|
||||||
|
rsb ip, ip, #32
|
||||||
|
addne pc, pc, ip @ C is always clear here
|
||||||
|
b 7f
|
||||||
|
6: nop
|
||||||
|
ldr1w r1, r3, abort=20f
|
||||||
|
ldr1w r1, r4, abort=20f
|
||||||
|
ldr1w r1, r5, abort=20f
|
||||||
|
ldr1w r1, r6, abort=20f
|
||||||
|
ldr1w r1, r7, abort=20f
|
||||||
|
ldr1w r1, r8, abort=20f
|
||||||
|
ldr1w r1, lr, abort=20f
|
||||||
|
|
||||||
|
add pc, pc, ip
|
||||||
|
nop
|
||||||
|
nop
|
||||||
|
str1w r0, r3, abort=20f
|
||||||
|
str1w r0, r4, abort=20f
|
||||||
|
str1w r0, r5, abort=20f
|
||||||
|
str1w r0, r6, abort=20f
|
||||||
|
str1w r0, r7, abort=20f
|
||||||
|
str1w r0, r8, abort=20f
|
||||||
|
str1w r0, lr, abort=20f
|
||||||
|
|
||||||
|
CALGN( bcs 2b )
|
||||||
|
|
||||||
|
7: ldmfd sp!, {r5 - r8}
|
||||||
|
|
||||||
|
8: movs r2, r2, lsl #31
|
||||||
|
ldr1b r1, r3, ne, abort=21f
|
||||||
|
ldr1b r1, r4, cs, abort=21f
|
||||||
|
ldr1b r1, ip, cs, abort=21f
|
||||||
|
str1b r0, r3, ne, abort=21f
|
||||||
|
str1b r0, r4, cs, abort=21f
|
||||||
|
str1b r0, ip, cs, abort=21f
|
||||||
|
|
||||||
|
exit r4, pc
|
||||||
|
|
||||||
|
9: rsb ip, ip, #4
|
||||||
|
cmp ip, #2
|
||||||
|
ldr1b r1, r3, gt, abort=21f
|
||||||
|
ldr1b r1, r4, ge, abort=21f
|
||||||
|
ldr1b r1, lr, abort=21f
|
||||||
|
str1b r0, r3, gt, abort=21f
|
||||||
|
str1b r0, r4, ge, abort=21f
|
||||||
|
subs r2, r2, ip
|
||||||
|
str1b r0, lr, abort=21f
|
||||||
|
blt 8b
|
||||||
|
ands ip, r1, #3
|
||||||
|
beq 1b
|
||||||
|
|
||||||
|
10: bic r1, r1, #3
|
||||||
|
cmp ip, #2
|
||||||
|
ldr1w r1, lr, abort=21f
|
||||||
|
beq 17f
|
||||||
|
bgt 18f
|
||||||
|
|
||||||
|
|
||||||
|
.macro forward_copy_shift pull push
|
||||||
|
|
||||||
|
subs r2, r2, #28
|
||||||
|
blt 14f
|
||||||
|
|
||||||
|
CALGN( ands ip, r1, #31 )
|
||||||
|
CALGN( rsb ip, ip, #32 )
|
||||||
|
CALGN( sbcnes r4, ip, r2 ) @ C is always set here
|
||||||
|
CALGN( subcc r2, r2, ip )
|
||||||
|
CALGN( bcc 15f )
|
||||||
|
|
||||||
|
11: stmfd sp!, {r5 - r9}
|
||||||
|
|
||||||
|
PLD( pld [r1, #0] )
|
||||||
|
PLD( subs r2, r2, #96 )
|
||||||
|
PLD( pld [r1, #28] )
|
||||||
|
PLD( blt 13f )
|
||||||
|
PLD( pld [r1, #60] )
|
||||||
|
PLD( pld [r1, #92] )
|
||||||
|
|
||||||
|
12: PLD( pld [r1, #124] )
|
||||||
|
13: ldr4w r1, r4, r5, r6, r7, abort=19f
|
||||||
|
mov r3, lr, pull #\pull
|
||||||
|
subs r2, r2, #32
|
||||||
|
ldr4w r1, r8, r9, ip, lr, abort=19f
|
||||||
|
orr r3, r3, r4, push #\push
|
||||||
|
mov r4, r4, pull #\pull
|
||||||
|
orr r4, r4, r5, push #\push
|
||||||
|
mov r5, r5, pull #\pull
|
||||||
|
orr r5, r5, r6, push #\push
|
||||||
|
mov r6, r6, pull #\pull
|
||||||
|
orr r6, r6, r7, push #\push
|
||||||
|
mov r7, r7, pull #\pull
|
||||||
|
orr r7, r7, r8, push #\push
|
||||||
|
mov r8, r8, pull #\pull
|
||||||
|
orr r8, r8, r9, push #\push
|
||||||
|
mov r9, r9, pull #\pull
|
||||||
|
orr r9, r9, ip, push #\push
|
||||||
|
mov ip, ip, pull #\pull
|
||||||
|
orr ip, ip, lr, push #\push
|
||||||
|
str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f
|
||||||
|
bge 12b
|
||||||
|
PLD( cmn r2, #96 )
|
||||||
|
PLD( bge 13b )
|
||||||
|
|
||||||
|
ldmfd sp!, {r5 - r9}
|
||||||
|
|
||||||
|
14: ands ip, r2, #28
|
||||||
|
beq 16f
|
||||||
|
|
||||||
|
15: mov r3, lr, pull #\pull
|
||||||
|
ldr1w r1, lr, abort=21f
|
||||||
|
subs ip, ip, #4
|
||||||
|
orr r3, r3, lr, push #\push
|
||||||
|
str1w r0, r3, abort=21f
|
||||||
|
bgt 15b
|
||||||
|
CALGN( cmp r2, #0 )
|
||||||
|
CALGN( bge 11b )
|
||||||
|
|
||||||
|
16: sub r1, r1, #(\push / 8)
|
||||||
|
b 8b
|
||||||
|
|
||||||
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
forward_copy_shift pull=8 push=24
|
||||||
|
|
||||||
|
17: forward_copy_shift pull=16 push=16
|
||||||
|
|
||||||
|
18: forward_copy_shift pull=24 push=8
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Abort preamble and completion macros.
|
||||||
|
* If a fixup handler is required then those macros must surround it.
|
||||||
|
* It is assumed that the fixup code will handle the private part of
|
||||||
|
* the exit macro.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.macro copy_abort_preamble
|
||||||
|
19: ldmfd sp!, {r5 - r9}
|
||||||
|
b 21f
|
||||||
|
20: ldmfd sp!, {r5 - r8}
|
||||||
|
21:
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro copy_abort_end
|
||||||
|
ldmfd sp!, {r4, pc}
|
||||||
|
.endm
|
||||||
|
|
34
firmware/lib/ctype.c
Normal file
34
firmware/lib/ctype.c
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
* linux/lib/ctype.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <asm/ctype.h>
|
||||||
|
|
||||||
|
unsigned char _ctype[] = {
|
||||||
|
_C,_C,_C,_C,_C,_C,_C,_C, /* 0-7 */
|
||||||
|
_C,_C|_S,_C|_S,_C|_S,_C|_S,_C|_S,_C,_C, /* 8-15 */
|
||||||
|
_C,_C,_C,_C,_C,_C,_C,_C, /* 16-23 */
|
||||||
|
_C,_C,_C,_C,_C,_C,_C,_C, /* 24-31 */
|
||||||
|
_S|_SP,_P,_P,_P,_P,_P,_P,_P, /* 32-39 */
|
||||||
|
_P,_P,_P,_P,_P,_P,_P,_P, /* 40-47 */
|
||||||
|
_D,_D,_D,_D,_D,_D,_D,_D, /* 48-55 */
|
||||||
|
_D,_D,_P,_P,_P,_P,_P,_P, /* 56-63 */
|
||||||
|
_P,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U|_X,_U, /* 64-71 */
|
||||||
|
_U,_U,_U,_U,_U,_U,_U,_U, /* 72-79 */
|
||||||
|
_U,_U,_U,_U,_U,_U,_U,_U, /* 80-87 */
|
||||||
|
_U,_U,_U,_P,_P,_P,_P,_P, /* 88-95 */
|
||||||
|
_P,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L|_X,_L, /* 96-103 */
|
||||||
|
_L,_L,_L,_L,_L,_L,_L,_L, /* 104-111 */
|
||||||
|
_L,_L,_L,_L,_L,_L,_L,_L, /* 112-119 */
|
||||||
|
_L,_L,_L,_P,_P,_P,_P,_C, /* 120-127 */
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 128-143 */
|
||||||
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 144-159 */
|
||||||
|
_S|_SP,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P, /* 160-175 */
|
||||||
|
_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P,_P, /* 176-191 */
|
||||||
|
_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U,_U, /* 192-207 */
|
||||||
|
_U,_U,_U,_U,_U,_U,_U,_P,_U,_U,_U,_U,_U,_U,_U,_L, /* 208-223 */
|
||||||
|
_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L,_L, /* 224-239 */
|
||||||
|
_L,_L,_L,_L,_L,_L,_L,_P,_L,_L,_L,_L,_L,_L,_L,_L}; /* 240-255 */
|
||||||
|
|
281
firmware/lib/ctype.lst
Normal file
281
firmware/lib/ctype.lst
Normal file
@ -0,0 +1,281 @@
|
|||||||
|
1 .cpu arm7tdmi
|
||||||
|
2 .fpu softvfp
|
||||||
|
3 .eabi_attribute 20, 1
|
||||||
|
4 .eabi_attribute 21, 1
|
||||||
|
5 .eabi_attribute 23, 3
|
||||||
|
6 .eabi_attribute 24, 1
|
||||||
|
7 .eabi_attribute 25, 1
|
||||||
|
8 .eabi_attribute 26, 1
|
||||||
|
9 .eabi_attribute 30, 4
|
||||||
|
10 .eabi_attribute 18, 4
|
||||||
|
11 .file "ctype.c"
|
||||||
|
19 .Ltext0:
|
||||||
|
20 .cfi_sections .debug_frame
|
||||||
|
21 .global _ctype
|
||||||
|
22 .data
|
||||||
|
25 _ctype:
|
||||||
|
26 0000 08 .byte 8
|
||||||
|
27 0001 08 .byte 8
|
||||||
|
28 0002 08 .byte 8
|
||||||
|
29 0003 08 .byte 8
|
||||||
|
30 0004 08 .byte 8
|
||||||
|
31 0005 08 .byte 8
|
||||||
|
32 0006 08 .byte 8
|
||||||
|
33 0007 08 .byte 8
|
||||||
|
34 0008 08 .byte 8
|
||||||
|
35 0009 28 .byte 40
|
||||||
|
36 000a 28 .byte 40
|
||||||
|
37 000b 28 .byte 40
|
||||||
|
38 000c 28 .byte 40
|
||||||
|
39 000d 28 .byte 40
|
||||||
|
40 000e 08 .byte 8
|
||||||
|
41 000f 08 .byte 8
|
||||||
|
42 0010 08 .byte 8
|
||||||
|
43 0011 08 .byte 8
|
||||||
|
44 0012 08 .byte 8
|
||||||
|
45 0013 08 .byte 8
|
||||||
|
46 0014 08 .byte 8
|
||||||
|
47 0015 08 .byte 8
|
||||||
|
48 0016 08 .byte 8
|
||||||
|
49 0017 08 .byte 8
|
||||||
|
50 0018 08 .byte 8
|
||||||
|
51 0019 08 .byte 8
|
||||||
|
52 001a 08 .byte 8
|
||||||
|
53 001b 08 .byte 8
|
||||||
|
54 001c 08 .byte 8
|
||||||
|
55 001d 08 .byte 8
|
||||||
|
56 001e 08 .byte 8
|
||||||
|
57 001f 08 .byte 8
|
||||||
|
58 0020 A0 .byte -96
|
||||||
|
59 0021 10 .byte 16
|
||||||
|
60 0022 10 .byte 16
|
||||||
|
61 0023 10 .byte 16
|
||||||
|
62 0024 10 .byte 16
|
||||||
|
63 0025 10 .byte 16
|
||||||
|
64 0026 10 .byte 16
|
||||||
|
65 0027 10 .byte 16
|
||||||
|
66 0028 10 .byte 16
|
||||||
|
67 0029 10 .byte 16
|
||||||
|
68 002a 10 .byte 16
|
||||||
|
69 002b 10 .byte 16
|
||||||
|
70 002c 10 .byte 16
|
||||||
|
71 002d 10 .byte 16
|
||||||
|
72 002e 10 .byte 16
|
||||||
|
73 002f 10 .byte 16
|
||||||
|
74 0030 04 .byte 4
|
||||||
|
75 0031 04 .byte 4
|
||||||
|
76 0032 04 .byte 4
|
||||||
|
77 0033 04 .byte 4
|
||||||
|
78 0034 04 .byte 4
|
||||||
|
79 0035 04 .byte 4
|
||||||
|
80 0036 04 .byte 4
|
||||||
|
81 0037 04 .byte 4
|
||||||
|
82 0038 04 .byte 4
|
||||||
|
83 0039 04 .byte 4
|
||||||
|
84 003a 10 .byte 16
|
||||||
|
85 003b 10 .byte 16
|
||||||
|
86 003c 10 .byte 16
|
||||||
|
87 003d 10 .byte 16
|
||||||
|
88 003e 10 .byte 16
|
||||||
|
89 003f 10 .byte 16
|
||||||
|
90 0040 10 .byte 16
|
||||||
|
91 0041 41 .byte 65
|
||||||
|
92 0042 41 .byte 65
|
||||||
|
93 0043 41 .byte 65
|
||||||
|
94 0044 41 .byte 65
|
||||||
|
95 0045 41 .byte 65
|
||||||
|
96 0046 41 .byte 65
|
||||||
|
97 0047 01 .byte 1
|
||||||
|
98 0048 01 .byte 1
|
||||||
|
99 0049 01 .byte 1
|
||||||
|
100 004a 01 .byte 1
|
||||||
|
101 004b 01 .byte 1
|
||||||
|
102 004c 01 .byte 1
|
||||||
|
103 004d 01 .byte 1
|
||||||
|
104 004e 01 .byte 1
|
||||||
|
105 004f 01 .byte 1
|
||||||
|
106 0050 01 .byte 1
|
||||||
|
107 0051 01 .byte 1
|
||||||
|
108 0052 01 .byte 1
|
||||||
|
109 0053 01 .byte 1
|
||||||
|
110 0054 01 .byte 1
|
||||||
|
111 0055 01 .byte 1
|
||||||
|
112 0056 01 .byte 1
|
||||||
|
113 0057 01 .byte 1
|
||||||
|
114 0058 01 .byte 1
|
||||||
|
115 0059 01 .byte 1
|
||||||
|
116 005a 01 .byte 1
|
||||||
|
117 005b 10 .byte 16
|
||||||
|
118 005c 10 .byte 16
|
||||||
|
119 005d 10 .byte 16
|
||||||
|
120 005e 10 .byte 16
|
||||||
|
121 005f 10 .byte 16
|
||||||
|
122 0060 10 .byte 16
|
||||||
|
123 0061 42 .byte 66
|
||||||
|
124 0062 42 .byte 66
|
||||||
|
125 0063 42 .byte 66
|
||||||
|
126 0064 42 .byte 66
|
||||||
|
127 0065 42 .byte 66
|
||||||
|
128 0066 42 .byte 66
|
||||||
|
129 0067 02 .byte 2
|
||||||
|
130 0068 02 .byte 2
|
||||||
|
131 0069 02 .byte 2
|
||||||
|
132 006a 02 .byte 2
|
||||||
|
133 006b 02 .byte 2
|
||||||
|
134 006c 02 .byte 2
|
||||||
|
135 006d 02 .byte 2
|
||||||
|
136 006e 02 .byte 2
|
||||||
|
137 006f 02 .byte 2
|
||||||
|
138 0070 02 .byte 2
|
||||||
|
139 0071 02 .byte 2
|
||||||
|
140 0072 02 .byte 2
|
||||||
|
141 0073 02 .byte 2
|
||||||
|
142 0074 02 .byte 2
|
||||||
|
143 0075 02 .byte 2
|
||||||
|
144 0076 02 .byte 2
|
||||||
|
145 0077 02 .byte 2
|
||||||
|
146 0078 02 .byte 2
|
||||||
|
147 0079 02 .byte 2
|
||||||
|
148 007a 02 .byte 2
|
||||||
|
149 007b 10 .byte 16
|
||||||
|
150 007c 10 .byte 16
|
||||||
|
151 007d 10 .byte 16
|
||||||
|
152 007e 10 .byte 16
|
||||||
|
153 007f 08 .byte 8
|
||||||
|
154 0080 00 .byte 0
|
||||||
|
155 0081 00 .byte 0
|
||||||
|
156 0082 00 .byte 0
|
||||||
|
157 0083 00 .byte 0
|
||||||
|
158 0084 00 .byte 0
|
||||||
|
159 0085 00 .byte 0
|
||||||
|
160 0086 00 .byte 0
|
||||||
|
161 0087 00 .byte 0
|
||||||
|
162 0088 00 .byte 0
|
||||||
|
163 0089 00 .byte 0
|
||||||
|
164 008a 00 .byte 0
|
||||||
|
165 008b 00 .byte 0
|
||||||
|
166 008c 00 .byte 0
|
||||||
|
167 008d 00 .byte 0
|
||||||
|
168 008e 00 .byte 0
|
||||||
|
169 008f 00 .byte 0
|
||||||
|
170 0090 00 .byte 0
|
||||||
|
171 0091 00 .byte 0
|
||||||
|
172 0092 00 .byte 0
|
||||||
|
173 0093 00 .byte 0
|
||||||
|
174 0094 00 .byte 0
|
||||||
|
175 0095 00 .byte 0
|
||||||
|
176 0096 00 .byte 0
|
||||||
|
177 0097 00 .byte 0
|
||||||
|
178 0098 00 .byte 0
|
||||||
|
179 0099 00 .byte 0
|
||||||
|
180 009a 00 .byte 0
|
||||||
|
181 009b 00 .byte 0
|
||||||
|
182 009c 00 .byte 0
|
||||||
|
183 009d 00 .byte 0
|
||||||
|
184 009e 00 .byte 0
|
||||||
|
185 009f 00 .byte 0
|
||||||
|
186 00a0 A0 .byte -96
|
||||||
|
187 00a1 10 .byte 16
|
||||||
|
188 00a2 10 .byte 16
|
||||||
|
189 00a3 10 .byte 16
|
||||||
|
190 00a4 10 .byte 16
|
||||||
|
191 00a5 10 .byte 16
|
||||||
|
192 00a6 10 .byte 16
|
||||||
|
193 00a7 10 .byte 16
|
||||||
|
194 00a8 10 .byte 16
|
||||||
|
195 00a9 10 .byte 16
|
||||||
|
196 00aa 10 .byte 16
|
||||||
|
197 00ab 10 .byte 16
|
||||||
|
198 00ac 10 .byte 16
|
||||||
|
199 00ad 10 .byte 16
|
||||||
|
200 00ae 10 .byte 16
|
||||||
|
201 00af 10 .byte 16
|
||||||
|
202 00b0 10 .byte 16
|
||||||
|
203 00b1 10 .byte 16
|
||||||
|
204 00b2 10 .byte 16
|
||||||
|
205 00b3 10 .byte 16
|
||||||
|
206 00b4 10 .byte 16
|
||||||
|
207 00b5 10 .byte 16
|
||||||
|
208 00b6 10 .byte 16
|
||||||
|
209 00b7 10 .byte 16
|
||||||
|
210 00b8 10 .byte 16
|
||||||
|
211 00b9 10 .byte 16
|
||||||
|
212 00ba 10 .byte 16
|
||||||
|
213 00bb 10 .byte 16
|
||||||
|
214 00bc 10 .byte 16
|
||||||
|
215 00bd 10 .byte 16
|
||||||
|
216 00be 10 .byte 16
|
||||||
|
217 00bf 10 .byte 16
|
||||||
|
218 00c0 01 .byte 1
|
||||||
|
219 00c1 01 .byte 1
|
||||||
|
220 00c2 01 .byte 1
|
||||||
|
221 00c3 01 .byte 1
|
||||||
|
222 00c4 01 .byte 1
|
||||||
|
223 00c5 01 .byte 1
|
||||||
|
224 00c6 01 .byte 1
|
||||||
|
225 00c7 01 .byte 1
|
||||||
|
226 00c8 01 .byte 1
|
||||||
|
227 00c9 01 .byte 1
|
||||||
|
228 00ca 01 .byte 1
|
||||||
|
229 00cb 01 .byte 1
|
||||||
|
230 00cc 01 .byte 1
|
||||||
|
231 00cd 01 .byte 1
|
||||||
|
232 00ce 01 .byte 1
|
||||||
|
233 00cf 01 .byte 1
|
||||||
|
234 00d0 01 .byte 1
|
||||||
|
235 00d1 01 .byte 1
|
||||||
|
236 00d2 01 .byte 1
|
||||||
|
237 00d3 01 .byte 1
|
||||||
|
238 00d4 01 .byte 1
|
||||||
|
239 00d5 01 .byte 1
|
||||||
|
240 00d6 01 .byte 1
|
||||||
|
241 00d7 10 .byte 16
|
||||||
|
242 00d8 01 .byte 1
|
||||||
|
243 00d9 01 .byte 1
|
||||||
|
244 00da 01 .byte 1
|
||||||
|
245 00db 01 .byte 1
|
||||||
|
246 00dc 01 .byte 1
|
||||||
|
247 00dd 01 .byte 1
|
||||||
|
248 00de 01 .byte 1
|
||||||
|
249 00df 02 .byte 2
|
||||||
|
250 00e0 02 .byte 2
|
||||||
|
251 00e1 02 .byte 2
|
||||||
|
252 00e2 02 .byte 2
|
||||||
|
253 00e3 02 .byte 2
|
||||||
|
254 00e4 02 .byte 2
|
||||||
|
255 00e5 02 .byte 2
|
||||||
|
256 00e6 02 .byte 2
|
||||||
|
257 00e7 02 .byte 2
|
||||||
|
258 00e8 02 .byte 2
|
||||||
|
259 00e9 02 .byte 2
|
||||||
|
260 00ea 02 .byte 2
|
||||||
|
261 00eb 02 .byte 2
|
||||||
|
262 00ec 02 .byte 2
|
||||||
|
263 00ed 02 .byte 2
|
||||||
|
264 00ee 02 .byte 2
|
||||||
|
265 00ef 02 .byte 2
|
||||||
|
266 00f0 02 .byte 2
|
||||||
|
267 00f1 02 .byte 2
|
||||||
|
268 00f2 02 .byte 2
|
||||||
|
269 00f3 02 .byte 2
|
||||||
|
270 00f4 02 .byte 2
|
||||||
|
271 00f5 02 .byte 2
|
||||||
|
272 00f6 02 .byte 2
|
||||||
|
273 00f7 10 .byte 16
|
||||||
|
274 00f8 02 .byte 2
|
||||||
|
275 00f9 02 .byte 2
|
||||||
|
276 00fa 02 .byte 2
|
||||||
|
277 00fb 02 .byte 2
|
||||||
|
278 00fc 02 .byte 2
|
||||||
|
279 00fd 02 .byte 2
|
||||||
|
280 00fe 02 .byte 2
|
||||||
|
281 00ff 02 .byte 2
|
||||||
|
282 .text
|
||||||
|
283 .Letext0:
|
||||||
|
284 .file 1 "include/asm/ctype.h"
|
||||||
|
285 .file 2 "lib/ctype.c"
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
*ABS*:00000000 ctype.c
|
||||||
|
C:\Users\netz\AppData\Local\Temp\cc1cqvvg.s:25 .data:00000000 _ctype
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
200
firmware/lib/div64.S
Normal file
200
firmware/lib/div64.S
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/div64.S
|
||||||
|
*
|
||||||
|
* Optimized computation of 64-bit dividend / 32-bit divisor
|
||||||
|
*
|
||||||
|
* Author: Nicolas Pitre
|
||||||
|
* Created: Oct 5, 2003
|
||||||
|
* Copyright: Monta Vista Software, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
|
||||||
|
#ifdef __ARMEB__
|
||||||
|
#define xh r0
|
||||||
|
#define xl r1
|
||||||
|
#define yh r2
|
||||||
|
#define yl r3
|
||||||
|
#else
|
||||||
|
#define xl r0
|
||||||
|
#define xh r1
|
||||||
|
#define yl r2
|
||||||
|
#define yh r3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* __do_div64: perform a division with 64-bit dividend and 32-bit divisor.
|
||||||
|
*
|
||||||
|
* Note: Calling convention is totally non standard for optimal code.
|
||||||
|
* This is meant to be used by do_div() from include/asm/div64.h only.
|
||||||
|
*
|
||||||
|
* Input parameters:
|
||||||
|
* xh-xl = dividend (clobbered)
|
||||||
|
* r4 = divisor (preserved)
|
||||||
|
*
|
||||||
|
* Output values:
|
||||||
|
* yh-yl = result
|
||||||
|
* xh = remainder
|
||||||
|
*
|
||||||
|
* Clobbered regs: xl, ip
|
||||||
|
*/
|
||||||
|
|
||||||
|
ENTRY(__do_div64)
|
||||||
|
|
||||||
|
@ Test for easy paths first.
|
||||||
|
subs ip, r4, #1
|
||||||
|
bls 9f @ divisor is 0 or 1
|
||||||
|
tst ip, r4
|
||||||
|
beq 8f @ divisor is power of 2
|
||||||
|
|
||||||
|
@ See if we need to handle upper 32-bit result.
|
||||||
|
cmp xh, r4
|
||||||
|
mov yh, #0
|
||||||
|
blo 3f
|
||||||
|
|
||||||
|
@ Align divisor with upper part of dividend.
|
||||||
|
@ The aligned divisor is stored in yl preserving the original.
|
||||||
|
@ The bit position is stored in ip.
|
||||||
|
|
||||||
|
#if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
|
||||||
|
clz yl, r4
|
||||||
|
clz ip, xh
|
||||||
|
sub yl, yl, ip
|
||||||
|
mov ip, #1
|
||||||
|
mov ip, ip, lsl yl
|
||||||
|
mov yl, r4, lsl yl
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
mov yl, r4
|
||||||
|
mov ip, #1
|
||||||
|
1: cmp yl, #0x80000000
|
||||||
|
cmpcc yl, xh
|
||||||
|
movcc yl, yl, lsl #1
|
||||||
|
movcc ip, ip, lsl #1
|
||||||
|
bcc 1b
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@ The division loop for needed upper bit positions.
|
||||||
|
@ Break out early if dividend reaches 0.
|
||||||
|
2: cmp xh, yl
|
||||||
|
orrcs yh, yh, ip
|
||||||
|
subcss xh, xh, yl
|
||||||
|
movnes ip, ip, lsr #1
|
||||||
|
mov yl, yl, lsr #1
|
||||||
|
bne 2b
|
||||||
|
|
||||||
|
@ See if we need to handle lower 32-bit result.
|
||||||
|
3: cmp xh, #0
|
||||||
|
mov yl, #0
|
||||||
|
cmpeq xl, r4
|
||||||
|
movlo xh, xl
|
||||||
|
movlo pc, lr
|
||||||
|
|
||||||
|
@ The division loop for lower bit positions.
|
||||||
|
@ Here we shift remainer bits leftwards rather than moving the
|
||||||
|
@ divisor for comparisons, considering the carry-out bit as well.
|
||||||
|
mov ip, #0x80000000
|
||||||
|
4: movs xl, xl, lsl #1
|
||||||
|
adcs xh, xh, xh
|
||||||
|
beq 6f
|
||||||
|
cmpcc xh, r4
|
||||||
|
5: orrcs yl, yl, ip
|
||||||
|
subcs xh, xh, r4
|
||||||
|
movs ip, ip, lsr #1
|
||||||
|
bne 4b
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
@ The top part of remainder became zero. If carry is set
|
||||||
|
@ (the 33th bit) this is a false positive so resume the loop.
|
||||||
|
@ Otherwise, if lower part is also null then we are done.
|
||||||
|
6: bcs 5b
|
||||||
|
cmp xl, #0
|
||||||
|
moveq pc, lr
|
||||||
|
|
||||||
|
@ We still have remainer bits in the low part. Bring them up.
|
||||||
|
|
||||||
|
#if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
|
||||||
|
clz xh, xl @ we know xh is zero here so...
|
||||||
|
add xh, xh, #1
|
||||||
|
mov xl, xl, lsl xh
|
||||||
|
mov ip, ip, lsr xh
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
7: movs xl, xl, lsl #1
|
||||||
|
mov ip, ip, lsr #1
|
||||||
|
bcc 7b
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@ Current remainder is now 1. It is worthless to compare with
|
||||||
|
@ divisor at this point since divisor can not be smaller than 3 here.
|
||||||
|
@ If possible, branch for another shift in the division loop.
|
||||||
|
@ If no bit position left then we are done.
|
||||||
|
movs ip, ip, lsr #1
|
||||||
|
mov xh, #1
|
||||||
|
bne 4b
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
8: @ Division by a power of 2: determine what that divisor order is
|
||||||
|
@ then simply shift values around
|
||||||
|
|
||||||
|
#if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
|
||||||
|
clz ip, r4
|
||||||
|
rsb ip, ip, #31
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
mov yl, r4
|
||||||
|
cmp r4, #(1 << 16)
|
||||||
|
mov ip, #0
|
||||||
|
movhs yl, yl, lsr #16
|
||||||
|
movhs ip, #16
|
||||||
|
|
||||||
|
cmp yl, #(1 << 8)
|
||||||
|
movhs yl, yl, lsr #8
|
||||||
|
addhs ip, ip, #8
|
||||||
|
|
||||||
|
cmp yl, #(1 << 4)
|
||||||
|
movhs yl, yl, lsr #4
|
||||||
|
addhs ip, ip, #4
|
||||||
|
|
||||||
|
cmp yl, #(1 << 2)
|
||||||
|
addhi ip, ip, #3
|
||||||
|
addls ip, ip, yl, lsr #1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
mov yh, xh, lsr ip
|
||||||
|
mov yl, xl, lsr ip
|
||||||
|
rsb ip, ip, #32
|
||||||
|
orr yl, yl, xh, lsl ip
|
||||||
|
mov xh, xl, lsl ip
|
||||||
|
mov xh, xh, lsr ip
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
@ eq -> division by 1: obvious enough...
|
||||||
|
9: moveq yl, xl
|
||||||
|
moveq yh, xh
|
||||||
|
moveq xh, #0
|
||||||
|
moveq pc, lr
|
||||||
|
|
||||||
|
@ Division by 0:
|
||||||
|
str lr, [sp, #-8]!
|
||||||
|
bl __div0
|
||||||
|
|
||||||
|
@ as wrong as it could be...
|
||||||
|
mov yl, #0
|
||||||
|
mov yh, #0
|
||||||
|
mov xh, #0
|
||||||
|
ldr pc, [sp], #8
|
||||||
|
|
210
firmware/lib/div64.lst
Normal file
210
firmware/lib/div64.lst
Normal file
@ -0,0 +1,210 @@
|
|||||||
|
1 # 1 "lib/div64.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/div64.S
|
||||||
|
3 *
|
||||||
|
4 * Optimized computation of 64-bit dividend / 32-bit divisor
|
||||||
|
5 *
|
||||||
|
6 * Author: Nicolas Pitre
|
||||||
|
7 * Created: Oct 5, 2003
|
||||||
|
8 * Copyright: Monta Vista Software, Inc.
|
||||||
|
9 *
|
||||||
|
10 * This program is free software; you can redistribute it and/or modify
|
||||||
|
11 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
12 * published by the Free Software Foundation.
|
||||||
|
13 */
|
||||||
|
14
|
||||||
|
15 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
16
|
||||||
|
17 #ifdef __ARMEB__
|
||||||
|
18 #define xh r0
|
||||||
|
19 #define xl r1
|
||||||
|
20 #define yh r2
|
||||||
|
21 #define yl r3
|
||||||
|
22 #else
|
||||||
|
23 #define xl r0
|
||||||
|
24 #define xh r1
|
||||||
|
25 #define yl r2
|
||||||
|
26 #define yh r3
|
||||||
|
27 #endif
|
||||||
|
28
|
||||||
|
29 /*
|
||||||
|
30 * __do_div64: perform a division with 64-bit dividend and 32-bit divisor.
|
||||||
|
31 *
|
||||||
|
32 * Note: Calling convention is totally non standard for optimal code.
|
||||||
|
33 * This is meant to be used by do_div() from include/asm/div64.h only.
|
||||||
|
34 *
|
||||||
|
35 * Input parameters:
|
||||||
|
36 * xh-xl = dividend (clobbered)
|
||||||
|
37 * r4 = divisor (preserved)
|
||||||
|
38 *
|
||||||
|
39 * Output values:
|
||||||
|
40 * yh-yl = result
|
||||||
|
41 * xh = remainder
|
||||||
|
42 *
|
||||||
|
43 * Clobbered regs: xl, ip
|
||||||
|
44 */
|
||||||
|
45
|
||||||
|
46 ENTRY(__do_div64)
|
||||||
|
47
|
||||||
|
48 @ Test for easy paths first.
|
||||||
|
49 0000 01C054E2 subs ip, r4, #1
|
||||||
|
50 0004 3F00009A bls 9f @ divisor is 0 or 1
|
||||||
|
51 0008 04001CE1 tst ip, r4
|
||||||
|
52 000c 2800000A beq 8f @ divisor is power of 2
|
||||||
|
53
|
||||||
|
54 @ See if we need to handle upper 32-bit result.
|
||||||
|
55 0010 040051E1 cmp xh, r4
|
||||||
|
56 0014 0030A0E3 mov yh, #0
|
||||||
|
57 0018 0C00003A blo 3f
|
||||||
|
58
|
||||||
|
59 @ Align divisor with upper part of dividend.
|
||||||
|
60 @ The aligned divisor is stored in yl preserving the original.
|
||||||
|
61 @ The bit position is stored in ip.
|
||||||
|
62
|
||||||
|
63 #if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
64
|
||||||
|
65 clz yl, r4
|
||||||
|
66 clz ip, xh
|
||||||
|
67 sub yl, yl, ip
|
||||||
|
68 mov ip, #1
|
||||||
|
69 mov ip, ip, lsl yl
|
||||||
|
70 mov yl, r4, lsl yl
|
||||||
|
71
|
||||||
|
72 #else
|
||||||
|
73
|
||||||
|
74 001c 0420A0E1 mov yl, r4
|
||||||
|
75 0020 01C0A0E3 mov ip, #1
|
||||||
|
76 0024 020152E3 1: cmp yl, #0x80000000
|
||||||
|
77 0028 01005231 cmpcc yl, xh
|
||||||
|
78 002c 8220A031 movcc yl, yl, lsl #1
|
||||||
|
79 0030 8CC0A031 movcc ip, ip, lsl #1
|
||||||
|
80 0034 FAFFFF3A bcc 1b
|
||||||
|
81
|
||||||
|
82 #endif
|
||||||
|
83
|
||||||
|
84 @ The division loop for needed upper bit positions.
|
||||||
|
85 @ Break out early if dividend reaches 0.
|
||||||
|
86 0038 020051E1 2: cmp xh, yl
|
||||||
|
87 003c 0C308321 orrcs yh, yh, ip
|
||||||
|
88 0040 02105120 subcss xh, xh, yl
|
||||||
|
89 0044 ACC0B011 movnes ip, ip, lsr #1
|
||||||
|
90 0048 A220A0E1 mov yl, yl, lsr #1
|
||||||
|
91 004c F9FFFF1A bne 2b
|
||||||
|
92
|
||||||
|
93 @ See if we need to handle lower 32-bit result.
|
||||||
|
94 0050 000051E3 3: cmp xh, #0
|
||||||
|
95 0054 0020A0E3 mov yl, #0
|
||||||
|
96 0058 04005001 cmpeq xl, r4
|
||||||
|
97 005c 0010A031 movlo xh, xl
|
||||||
|
98 0060 0EF0A031 movlo pc, lr
|
||||||
|
99
|
||||||
|
100 @ The division loop for lower bit positions.
|
||||||
|
101 @ Here we shift remainer bits leftwards rather than moving the
|
||||||
|
102 @ divisor for comparisons, considering the carry-out bit as well.
|
||||||
|
103 0064 02C1A0E3 mov ip, #0x80000000
|
||||||
|
104 0068 8000B0E1 4: movs xl, xl, lsl #1
|
||||||
|
105 006c 0110B1E0 adcs xh, xh, xh
|
||||||
|
106 0070 0500000A beq 6f
|
||||||
|
107 0074 04005131 cmpcc xh, r4
|
||||||
|
108 0078 0C208221 5: orrcs yl, yl, ip
|
||||||
|
109 007c 04104120 subcs xh, xh, r4
|
||||||
|
110 0080 ACC0B0E1 movs ip, ip, lsr #1
|
||||||
|
111 0084 F7FFFF1A bne 4b
|
||||||
|
112 0088 0EF0A0E1 mov pc, lr
|
||||||
|
113
|
||||||
|
114 @ The top part of remainder became zero. If carry is set
|
||||||
|
115 @ (the 33th bit) this is a false positive so resume the loop.
|
||||||
|
116 @ Otherwise, if lower part is also null then we are done.
|
||||||
|
117 008c F9FFFF2A 6: bcs 5b
|
||||||
|
118 0090 000050E3 cmp xl, #0
|
||||||
|
119 0094 0EF0A001 moveq pc, lr
|
||||||
|
120
|
||||||
|
121 @ We still have remainer bits in the low part. Bring them up.
|
||||||
|
122
|
||||||
|
123 #if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
124
|
||||||
|
125 clz xh, xl @ we know xh is zero here so...
|
||||||
|
126 add xh, xh, #1
|
||||||
|
127 mov xl, xl, lsl xh
|
||||||
|
128 mov ip, ip, lsr xh
|
||||||
|
129
|
||||||
|
130 #else
|
||||||
|
131
|
||||||
|
132 0098 8000B0E1 7: movs xl, xl, lsl #1
|
||||||
|
133 009c ACC0A0E1 mov ip, ip, lsr #1
|
||||||
|
134 00a0 FCFFFF3A bcc 7b
|
||||||
|
135
|
||||||
|
136 #endif
|
||||||
|
137
|
||||||
|
138 @ Current remainder is now 1. It is worthless to compare with
|
||||||
|
139 @ divisor at this point since divisor can not be smaller than 3 here.
|
||||||
|
140 @ If possible, branch for another shift in the division loop.
|
||||||
|
141 @ If no bit position left then we are done.
|
||||||
|
142 00a4 ACC0B0E1 movs ip, ip, lsr #1
|
||||||
|
143 00a8 0110A0E3 mov xh, #1
|
||||||
|
144 00ac EDFFFF1A bne 4b
|
||||||
|
145 00b0 0EF0A0E1 mov pc, lr
|
||||||
|
146
|
||||||
|
147 8: @ Division by a power of 2: determine what that divisor order is
|
||||||
|
148 @ then simply shift values around
|
||||||
|
149
|
||||||
|
150 #if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
151
|
||||||
|
152 clz ip, r4
|
||||||
|
153 rsb ip, ip, #31
|
||||||
|
154
|
||||||
|
155 #else
|
||||||
|
156
|
||||||
|
157 00b4 0420A0E1 mov yl, r4
|
||||||
|
158 00b8 010854E3 cmp r4, #(1 << 16)
|
||||||
|
159 00bc 00C0A0E3 mov ip, #0
|
||||||
|
160 00c0 2228A021 movhs yl, yl, lsr #16
|
||||||
|
161 00c4 10C0A023 movhs ip, #16
|
||||||
|
162
|
||||||
|
163 00c8 010C52E3 cmp yl, #(1 << 8)
|
||||||
|
164 00cc 2224A021 movhs yl, yl, lsr #8
|
||||||
|
165 00d0 08C08C22 addhs ip, ip, #8
|
||||||
|
166
|
||||||
|
167 00d4 100052E3 cmp yl, #(1 << 4)
|
||||||
|
168 00d8 2222A021 movhs yl, yl, lsr #4
|
||||||
|
169 00dc 04C08C22 addhs ip, ip, #4
|
||||||
|
170
|
||||||
|
171 00e0 040052E3 cmp yl, #(1 << 2)
|
||||||
|
172 00e4 03C08C82 addhi ip, ip, #3
|
||||||
|
173 00e8 A2C08C90 addls ip, ip, yl, lsr #1
|
||||||
|
174
|
||||||
|
175 #endif
|
||||||
|
176
|
||||||
|
177 00ec 313CA0E1 mov yh, xh, lsr ip
|
||||||
|
178 00f0 302CA0E1 mov yl, xl, lsr ip
|
||||||
|
179 00f4 20C06CE2 rsb ip, ip, #32
|
||||||
|
180 00f8 112C82E1 orr yl, yl, xh, lsl ip
|
||||||
|
181 00fc 101CA0E1 mov xh, xl, lsl ip
|
||||||
|
182 0100 311CA0E1 mov xh, xh, lsr ip
|
||||||
|
183 0104 0EF0A0E1 mov pc, lr
|
||||||
|
184
|
||||||
|
185 @ eq -> division by 1: obvious enough...
|
||||||
|
186 0108 0020A001 9: moveq yl, xl
|
||||||
|
187 010c 0130A001 moveq yh, xh
|
||||||
|
188 0110 0010A003 moveq xh, #0
|
||||||
|
189 0114 0EF0A001 moveq pc, lr
|
||||||
|
190
|
||||||
|
191 @ Division by 0:
|
||||||
|
192 0118 08E02DE5 str lr, [sp, #-8]!
|
||||||
|
193 011c FEFFFFEB bl __div0
|
||||||
|
194
|
||||||
|
195 @ as wrong as it could be...
|
||||||
|
196 0120 0020A0E3 mov yl, #0
|
||||||
|
197 0124 0030A0E3 mov yh, #0
|
||||||
|
198 0128 0010A0E3 mov xh, #0
|
||||||
|
199 012c 08F09DE4 ldr pc, [sp], #8
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/div64.S:46 .text:00000000 __do_div64
|
||||||
|
lib/div64.S:46 .text:00000000 $a
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
UNDEFINED SYMBOLS
|
||||||
|
__div0
|
338
firmware/lib/lib1funcs.S
Normal file
338
firmware/lib/lib1funcs.S
Normal file
@ -0,0 +1,338 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/lib1funcs.S: Optimized ARM division routines
|
||||||
|
*
|
||||||
|
* Author: Nicolas Pitre <nico@cam.org>
|
||||||
|
* - contributed to gcc-3.4 on Sep 30, 2003
|
||||||
|
* - adapted for the Linux kernel on Oct 2, 2003
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Copyright 1995, 1996, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is free software; you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by the
|
||||||
|
Free Software Foundation; either version 2, or (at your option) any
|
||||||
|
later version.
|
||||||
|
|
||||||
|
In addition to the permissions in the GNU General Public License, the
|
||||||
|
Free Software Foundation gives you unlimited permission to link the
|
||||||
|
compiled version of this file into combinations with other programs,
|
||||||
|
and to distribute those combinations without any restriction coming
|
||||||
|
from the use of this file. (The General Public License restrictions
|
||||||
|
do apply in other respects; for example, they cover modification of
|
||||||
|
the file, and distribution when not linked into a combine
|
||||||
|
executable.)
|
||||||
|
|
||||||
|
This file is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; see the file COPYING. If not, write to
|
||||||
|
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||||
|
Boston, MA 02111-1307, USA. */
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
|
||||||
|
|
||||||
|
.macro ARM_DIV_BODY dividend, divisor, result, curbit
|
||||||
|
|
||||||
|
#if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
|
||||||
|
clz \curbit, \divisor
|
||||||
|
clz \result, \dividend
|
||||||
|
sub \result, \curbit, \result
|
||||||
|
mov \curbit, #1
|
||||||
|
mov \divisor, \divisor, lsl \result
|
||||||
|
mov \curbit, \curbit, lsl \result
|
||||||
|
mov \result, #0
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
@ Initially shift the divisor left 3 bits if possible,
|
||||||
|
@ set curbit accordingly. This allows for curbit to be located
|
||||||
|
@ at the left end of each 4 bit nibbles in the division loop
|
||||||
|
@ to save one loop in most cases.
|
||||||
|
tst \divisor, #0xe0000000
|
||||||
|
moveq \divisor, \divisor, lsl #3
|
||||||
|
moveq \curbit, #8
|
||||||
|
movne \curbit, #1
|
||||||
|
|
||||||
|
@ Unless the divisor is very big, shift it up in multiples of
|
||||||
|
@ four bits, since this is the amount of unwinding in the main
|
||||||
|
@ division loop. Continue shifting until the divisor is
|
||||||
|
@ larger than the dividend.
|
||||||
|
1: cmp \divisor, #0x10000000
|
||||||
|
cmplo \divisor, \dividend
|
||||||
|
movlo \divisor, \divisor, lsl #4
|
||||||
|
movlo \curbit, \curbit, lsl #4
|
||||||
|
blo 1b
|
||||||
|
|
||||||
|
@ For very big divisors, we must shift it a bit at a time, or
|
||||||
|
@ we will be in danger of overflowing.
|
||||||
|
1: cmp \divisor, #0x80000000
|
||||||
|
cmplo \divisor, \dividend
|
||||||
|
movlo \divisor, \divisor, lsl #1
|
||||||
|
movlo \curbit, \curbit, lsl #1
|
||||||
|
blo 1b
|
||||||
|
|
||||||
|
mov \result, #0
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@ Division loop
|
||||||
|
1: cmp \dividend, \divisor
|
||||||
|
subhs \dividend, \dividend, \divisor
|
||||||
|
orrhs \result, \result, \curbit
|
||||||
|
cmp \dividend, \divisor, lsr #1
|
||||||
|
subhs \dividend, \dividend, \divisor, lsr #1
|
||||||
|
orrhs \result, \result, \curbit, lsr #1
|
||||||
|
cmp \dividend, \divisor, lsr #2
|
||||||
|
subhs \dividend, \dividend, \divisor, lsr #2
|
||||||
|
orrhs \result, \result, \curbit, lsr #2
|
||||||
|
cmp \dividend, \divisor, lsr #3
|
||||||
|
subhs \dividend, \dividend, \divisor, lsr #3
|
||||||
|
orrhs \result, \result, \curbit, lsr #3
|
||||||
|
cmp \dividend, #0 @ Early termination?
|
||||||
|
movnes \curbit, \curbit, lsr #4 @ No, any more bits to do?
|
||||||
|
movne \divisor, \divisor, lsr #4
|
||||||
|
bne 1b
|
||||||
|
|
||||||
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
.macro ARM_DIV2_ORDER divisor, order
|
||||||
|
|
||||||
|
#if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
|
||||||
|
clz \order, \divisor
|
||||||
|
rsb \order, \order, #31
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
cmp \divisor, #(1 << 16)
|
||||||
|
movhs \divisor, \divisor, lsr #16
|
||||||
|
movhs \order, #16
|
||||||
|
movlo \order, #0
|
||||||
|
|
||||||
|
cmp \divisor, #(1 << 8)
|
||||||
|
movhs \divisor, \divisor, lsr #8
|
||||||
|
addhs \order, \order, #8
|
||||||
|
|
||||||
|
cmp \divisor, #(1 << 4)
|
||||||
|
movhs \divisor, \divisor, lsr #4
|
||||||
|
addhs \order, \order, #4
|
||||||
|
|
||||||
|
cmp \divisor, #(1 << 2)
|
||||||
|
addhi \order, \order, #3
|
||||||
|
addls \order, \order, \divisor, lsr #1
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
.macro ARM_MOD_BODY dividend, divisor, order, spare
|
||||||
|
|
||||||
|
#if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
|
||||||
|
clz \order, \divisor
|
||||||
|
clz \spare, \dividend
|
||||||
|
sub \order, \order, \spare
|
||||||
|
mov \divisor, \divisor, lsl \order
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
mov \order, #0
|
||||||
|
|
||||||
|
@ Unless the divisor is very big, shift it up in multiples of
|
||||||
|
@ four bits, since this is the amount of unwinding in the main
|
||||||
|
@ division loop. Continue shifting until the divisor is
|
||||||
|
@ larger than the dividend.
|
||||||
|
1: cmp \divisor, #0x10000000
|
||||||
|
cmplo \divisor, \dividend
|
||||||
|
movlo \divisor, \divisor, lsl #4
|
||||||
|
addlo \order, \order, #4
|
||||||
|
blo 1b
|
||||||
|
|
||||||
|
@ For very big divisors, we must shift it a bit at a time, or
|
||||||
|
@ we will be in danger of overflowing.
|
||||||
|
1: cmp \divisor, #0x80000000
|
||||||
|
cmplo \divisor, \dividend
|
||||||
|
movlo \divisor, \divisor, lsl #1
|
||||||
|
addlo \order, \order, #1
|
||||||
|
blo 1b
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@ Perform all needed substractions to keep only the reminder.
|
||||||
|
@ Do comparisons in batch of 4 first.
|
||||||
|
subs \order, \order, #3 @ yes, 3 is intended here
|
||||||
|
blt 2f
|
||||||
|
|
||||||
|
1: cmp \dividend, \divisor
|
||||||
|
subhs \dividend, \dividend, \divisor
|
||||||
|
cmp \dividend, \divisor, lsr #1
|
||||||
|
subhs \dividend, \dividend, \divisor, lsr #1
|
||||||
|
cmp \dividend, \divisor, lsr #2
|
||||||
|
subhs \dividend, \dividend, \divisor, lsr #2
|
||||||
|
cmp \dividend, \divisor, lsr #3
|
||||||
|
subhs \dividend, \dividend, \divisor, lsr #3
|
||||||
|
cmp \dividend, #1
|
||||||
|
mov \divisor, \divisor, lsr #4
|
||||||
|
subges \order, \order, #4
|
||||||
|
bge 1b
|
||||||
|
|
||||||
|
tst \order, #3
|
||||||
|
teqne \dividend, #0
|
||||||
|
beq 5f
|
||||||
|
|
||||||
|
@ Either 1, 2 or 3 comparison/substractions are left.
|
||||||
|
2: cmn \order, #2
|
||||||
|
blt 4f
|
||||||
|
beq 3f
|
||||||
|
cmp \dividend, \divisor
|
||||||
|
subhs \dividend, \dividend, \divisor
|
||||||
|
mov \divisor, \divisor, lsr #1
|
||||||
|
3: cmp \dividend, \divisor
|
||||||
|
subhs \dividend, \dividend, \divisor
|
||||||
|
mov \divisor, \divisor, lsr #1
|
||||||
|
4: cmp \dividend, \divisor
|
||||||
|
subhs \dividend, \dividend, \divisor
|
||||||
|
5:
|
||||||
|
.endm
|
||||||
|
|
||||||
|
|
||||||
|
/*ENTRY(__udivsi3)
|
||||||
|
ENTRY(__aeabi_uidiv)
|
||||||
|
|
||||||
|
subs r2, r1, #1
|
||||||
|
moveq pc, lr
|
||||||
|
bcc Ldiv0
|
||||||
|
cmp r0, r1
|
||||||
|
bls 11f
|
||||||
|
tst r1, r2
|
||||||
|
beq 12f
|
||||||
|
|
||||||
|
ARM_DIV_BODY r0, r1, r2, r3
|
||||||
|
|
||||||
|
mov r0, r2
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
11: moveq r0, #1
|
||||||
|
movne r0, #0
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
12: ARM_DIV2_ORDER r1, r2
|
||||||
|
|
||||||
|
mov r0, r0, lsr r2
|
||||||
|
mov pc, lr
|
||||||
|
*/
|
||||||
|
|
||||||
|
ENTRY(__umodsi3)
|
||||||
|
|
||||||
|
subs r2, r1, #1 @ compare divisor with 1
|
||||||
|
bcc Ldiv0
|
||||||
|
cmpne r0, r1 @ compare dividend with divisor
|
||||||
|
moveq r0, #0
|
||||||
|
tsthi r1, r2 @ see if divisor is power of 2
|
||||||
|
andeq r0, r0, r2
|
||||||
|
movls pc, lr
|
||||||
|
|
||||||
|
ARM_MOD_BODY r0, r1, r2, r3
|
||||||
|
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
|
||||||
|
ENTRY(__divsi3)
|
||||||
|
ENTRY(__aeabi_idiv)
|
||||||
|
|
||||||
|
cmp r1, #0
|
||||||
|
eor ip, r0, r1 @ save the sign of the result.
|
||||||
|
beq Ldiv0
|
||||||
|
rsbmi r1, r1, #0 @ loops below use unsigned.
|
||||||
|
subs r2, r1, #1 @ division by 1 or -1 ?
|
||||||
|
beq 10f
|
||||||
|
movs r3, r0
|
||||||
|
rsbmi r3, r0, #0 @ positive dividend value
|
||||||
|
cmp r3, r1
|
||||||
|
bls 11f
|
||||||
|
tst r1, r2 @ divisor is power of 2 ?
|
||||||
|
beq 12f
|
||||||
|
|
||||||
|
ARM_DIV_BODY r3, r1, r0, r2
|
||||||
|
|
||||||
|
cmp ip, #0
|
||||||
|
rsbmi r0, r0, #0
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
10: teq ip, r0 @ same sign ?
|
||||||
|
rsbmi r0, r0, #0
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
11: movlo r0, #0
|
||||||
|
moveq r0, ip, asr #31
|
||||||
|
orreq r0, r0, #1
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
12: ARM_DIV2_ORDER r1, r2
|
||||||
|
|
||||||
|
cmp ip, #0
|
||||||
|
mov r0, r3, lsr r2
|
||||||
|
rsbmi r0, r0, #0
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
|
||||||
|
ENTRY(__modsi3)
|
||||||
|
|
||||||
|
cmp r1, #0
|
||||||
|
beq Ldiv0
|
||||||
|
rsbmi r1, r1, #0 @ loops below use unsigned.
|
||||||
|
movs ip, r0 @ preserve sign of dividend
|
||||||
|
rsbmi r0, r0, #0 @ if negative make positive
|
||||||
|
subs r2, r1, #1 @ compare divisor with 1
|
||||||
|
cmpne r0, r1 @ compare dividend with divisor
|
||||||
|
moveq r0, #0
|
||||||
|
tsthi r1, r2 @ see if divisor is power of 2
|
||||||
|
andeq r0, r0, r2
|
||||||
|
bls 10f
|
||||||
|
|
||||||
|
ARM_MOD_BODY r0, r1, r2, r3
|
||||||
|
|
||||||
|
10: cmp ip, #0
|
||||||
|
rsbmi r0, r0, #0
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
#ifdef CONFIG_AEABI
|
||||||
|
|
||||||
|
ENTRY(__aeabi_uidivmod)
|
||||||
|
|
||||||
|
stmfd sp!, {r0, r1, ip, lr}
|
||||||
|
bl __aeabi_uidiv
|
||||||
|
ldmfd sp!, {r1, r2, ip, lr}
|
||||||
|
mul r3, r0, r2
|
||||||
|
sub r1, r1, r3
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
ENTRY(__aeabi_idivmod)
|
||||||
|
|
||||||
|
stmfd sp!, {r0, r1, ip, lr}
|
||||||
|
bl __aeabi_idiv
|
||||||
|
ldmfd sp!, {r1, r2, ip, lr}
|
||||||
|
mul r3, r0, r2
|
||||||
|
sub r1, r1, r3
|
||||||
|
mov pc, lr
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Ldiv0:
|
||||||
|
|
||||||
|
str lr, [sp, #-8]!
|
||||||
|
bl __div0
|
||||||
|
mov r0, #0 @ About as wrong as it could be.
|
||||||
|
ldr pc, [sp], #8
|
||||||
|
|
||||||
|
ENTRY(__div0)
|
||||||
|
mov pc, lr
|
452
firmware/lib/lib1funcs.lst
Normal file
452
firmware/lib/lib1funcs.lst
Normal file
@ -0,0 +1,452 @@
|
|||||||
|
1 # 1 "lib/lib1funcs.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/lib1funcs.S: Optimized ARM division routines
|
||||||
|
3 *
|
||||||
|
4 * Author: Nicolas Pitre <nico@cam.org>
|
||||||
|
5 * - contributed to gcc-3.4 on Sep 30, 2003
|
||||||
|
6 * - adapted for the Linux kernel on Oct 2, 2003
|
||||||
|
7 */
|
||||||
|
8
|
||||||
|
9 /* Copyright 1995, 1996, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
|
||||||
|
10
|
||||||
|
11 This file is free software; you can redistribute it and/or modify it
|
||||||
|
12 under the terms of the GNU General Public License as published by the
|
||||||
|
13 Free Software Foundation; either version 2, or (at your option) any
|
||||||
|
14 later version.
|
||||||
|
15
|
||||||
|
16 In addition to the permissions in the GNU General Public License, the
|
||||||
|
17 Free Software Foundation gives you unlimited permission to link the
|
||||||
|
18 compiled version of this file into combinations with other programs,
|
||||||
|
19 and to distribute those combinations without any restriction coming
|
||||||
|
20 from the use of this file. (The General Public License restrictions
|
||||||
|
21 do apply in other respects; for example, they cover modification of
|
||||||
|
22 the file, and distribution when not linked into a combine
|
||||||
|
23 executable.)
|
||||||
|
24
|
||||||
|
25 This file is distributed in the hope that it will be useful, but
|
||||||
|
26 WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
27 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
28 General Public License for more details.
|
||||||
|
29
|
||||||
|
30 You should have received a copy of the GNU General Public License
|
||||||
|
31 along with this program; see the file COPYING. If not, write to
|
||||||
|
32 the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||||
|
33 Boston, MA 02111-1307, USA. */
|
||||||
|
34
|
||||||
|
35
|
||||||
|
36 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
37 #include <asm/assembler.h>
|
||||||
|
1 /*
|
||||||
|
2 * linux/include/asm-arm/assembler.h
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1996-2000 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 *
|
||||||
|
10 * This file contains arm architecture specific defines
|
||||||
|
11 * for the different processors.
|
||||||
|
12 *
|
||||||
|
13 * Do not include any C declarations in this file - it is included by
|
||||||
|
14 * assembler source.
|
||||||
|
15 */
|
||||||
|
16 #ifndef __ASSEMBLY__
|
||||||
|
17 #error "Only include this from assembly code"
|
||||||
|
18 #endif
|
||||||
|
19
|
||||||
|
20 #include <asm/ptrace.h>
|
||||||
|
1 /*
|
||||||
|
21
|
||||||
|
22 #define pull lsl
|
||||||
|
23 #define push lsr
|
||||||
|
24 #define get_byte_0 lsr #24
|
||||||
|
25 #define get_byte_1 lsr #16
|
||||||
|
26 #define get_byte_2 lsr #8
|
||||||
|
27 #define get_byte_3 lsl #0
|
||||||
|
28 #define put_byte_0 lsl #24
|
||||||
|
29 #define put_byte_1 lsl #16
|
||||||
|
30 #define put_byte_2 lsl #8
|
||||||
|
31 #define put_byte_3 lsl #0
|
||||||
|
32
|
||||||
|
33 #define PLD(code...)
|
||||||
|
34
|
||||||
|
35 #define MODE_USR USR_MODE
|
||||||
|
36 #define MODE_FIQ FIQ_MODE
|
||||||
|
37 #define MODE_IRQ IRQ_MODE
|
||||||
|
38 #define MODE_SVC SVC_MODE
|
||||||
|
39
|
||||||
|
40 #define DEFAULT_FIQ MODE_FIQ
|
||||||
|
41
|
||||||
|
42 /*
|
||||||
|
43 * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
44 */
|
||||||
|
45 #ifdef __STDC__
|
||||||
|
46 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
47 ldm##cond base,reglist
|
||||||
|
48 #else
|
||||||
|
49 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
50 ldm/**/cond base,reglist
|
||||||
|
51 #endif
|
||||||
|
52
|
||||||
|
53 /*
|
||||||
|
54 * Build a return instruction for this processor type.
|
||||||
|
55 */
|
||||||
|
56 #define RETINSTR(instr, regs...)\
|
||||||
|
57 instr regs
|
||||||
|
58
|
||||||
|
59 /*
|
||||||
|
60 * Enable and disable interrupts
|
||||||
|
61 */
|
||||||
|
62 .macro disable_irq
|
||||||
|
63 msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
64 .endm
|
||||||
|
65
|
||||||
|
66 .macro enable_irq
|
||||||
|
67 msr cpsr_c, #SVC_MODE
|
||||||
|
68 .endm
|
||||||
|
69
|
||||||
|
70 /*
|
||||||
|
71 * Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
72 * assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
73 */
|
||||||
|
74 .macro save_and_disable_irqs, oldcpsr
|
||||||
|
75 mrs \oldcpsr, cpsr
|
||||||
|
76 disable_irq
|
||||||
|
77 .endm
|
||||||
|
78
|
||||||
|
79 /*
|
||||||
|
80 * Restore interrupt state previously stored in a register. We don't
|
||||||
|
81 * guarantee that this will preserve the flags.
|
||||||
|
82 */
|
||||||
|
83 .macro restore_irqs, oldcpsr
|
||||||
|
84 msr cpsr_c, \oldcpsr
|
||||||
|
85 .endm
|
||||||
|
86
|
||||||
|
87 /*
|
||||||
|
88 * These two are used to save LR/restore PC over a user-based access.
|
||||||
|
89 * The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
90 * architecture, we can safely ignore this requirement.
|
||||||
|
91 */
|
||||||
|
92 .macro save_lr
|
||||||
|
93 .endm
|
||||||
|
94
|
||||||
|
95 .macro restore_pc
|
||||||
|
96 mov pc, lr
|
||||||
|
97 .endm
|
||||||
|
98 ...
|
||||||
|
38
|
||||||
|
39
|
||||||
|
40 .macro ARM_DIV_BODY dividend, divisor, result, curbit
|
||||||
|
41
|
||||||
|
42 #if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
43
|
||||||
|
44 clz \curbit, \divisor
|
||||||
|
45 clz \result, \dividend
|
||||||
|
46 sub \result, \curbit, \result
|
||||||
|
47 mov \curbit, #1
|
||||||
|
48 mov \divisor, \divisor, lsl \result
|
||||||
|
49 mov \curbit, \curbit, lsl \result
|
||||||
|
50 mov \result, #0
|
||||||
|
51
|
||||||
|
52 #else
|
||||||
|
53
|
||||||
|
54 @ Initially shift the divisor left 3 bits if possible,
|
||||||
|
55 @ set curbit accordingly. This allows for curbit to be located
|
||||||
|
56 @ at the left end of each 4 bit nibbles in the division loop
|
||||||
|
57 @ to save one loop in most cases.
|
||||||
|
58 tst \divisor, #0xe0000000
|
||||||
|
59 moveq \divisor, \divisor, lsl #3
|
||||||
|
60 moveq \curbit, #8
|
||||||
|
61 movne \curbit, #1
|
||||||
|
62
|
||||||
|
63 @ Unless the divisor is very big, shift it up in multiples of
|
||||||
|
64 @ four bits, since this is the amount of unwinding in the main
|
||||||
|
65 @ division loop. Continue shifting until the divisor is
|
||||||
|
66 @ larger than the dividend.
|
||||||
|
67 1: cmp \divisor, #0x10000000
|
||||||
|
68 cmplo \divisor, \dividend
|
||||||
|
69 movlo \divisor, \divisor, lsl #4
|
||||||
|
70 movlo \curbit, \curbit, lsl #4
|
||||||
|
71 blo 1b
|
||||||
|
72
|
||||||
|
73 @ For very big divisors, we must shift it a bit at a time, or
|
||||||
|
74 @ we will be in danger of overflowing.
|
||||||
|
75 1: cmp \divisor, #0x80000000
|
||||||
|
76 cmplo \divisor, \dividend
|
||||||
|
77 movlo \divisor, \divisor, lsl #1
|
||||||
|
78 movlo \curbit, \curbit, lsl #1
|
||||||
|
79 blo 1b
|
||||||
|
80
|
||||||
|
81 mov \result, #0
|
||||||
|
82
|
||||||
|
83 #endif
|
||||||
|
84
|
||||||
|
85 @ Division loop
|
||||||
|
86 1: cmp \dividend, \divisor
|
||||||
|
87 subhs \dividend, \dividend, \divisor
|
||||||
|
88 orrhs \result, \result, \curbit
|
||||||
|
89 cmp \dividend, \divisor, lsr #1
|
||||||
|
90 subhs \dividend, \dividend, \divisor, lsr #1
|
||||||
|
91 orrhs \result, \result, \curbit, lsr #1
|
||||||
|
92 cmp \dividend, \divisor, lsr #2
|
||||||
|
93 subhs \dividend, \dividend, \divisor, lsr #2
|
||||||
|
94 orrhs \result, \result, \curbit, lsr #2
|
||||||
|
95 cmp \dividend, \divisor, lsr #3
|
||||||
|
96 subhs \dividend, \dividend, \divisor, lsr #3
|
||||||
|
97 orrhs \result, \result, \curbit, lsr #3
|
||||||
|
98 cmp \dividend, #0 @ Early termination?
|
||||||
|
99 movnes \curbit, \curbit, lsr #4 @ No, any more bits to do?
|
||||||
|
100 movne \divisor, \divisor, lsr #4
|
||||||
|
101 bne 1b
|
||||||
|
102
|
||||||
|
103 .endm
|
||||||
|
104
|
||||||
|
105
|
||||||
|
106 .macro ARM_DIV2_ORDER divisor, order
|
||||||
|
107
|
||||||
|
108 #if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
109
|
||||||
|
110 clz \order, \divisor
|
||||||
|
111 rsb \order, \order, #31
|
||||||
|
112
|
||||||
|
113 #else
|
||||||
|
114
|
||||||
|
115 cmp \divisor, #(1 << 16)
|
||||||
|
116 movhs \divisor, \divisor, lsr #16
|
||||||
|
117 movhs \order, #16
|
||||||
|
118 movlo \order, #0
|
||||||
|
119
|
||||||
|
120 cmp \divisor, #(1 << 8)
|
||||||
|
121 movhs \divisor, \divisor, lsr #8
|
||||||
|
122 addhs \order, \order, #8
|
||||||
|
123
|
||||||
|
124 cmp \divisor, #(1 << 4)
|
||||||
|
125 movhs \divisor, \divisor, lsr #4
|
||||||
|
126 addhs \order, \order, #4
|
||||||
|
127
|
||||||
|
128 cmp \divisor, #(1 << 2)
|
||||||
|
129 addhi \order, \order, #3
|
||||||
|
130 addls \order, \order, \divisor, lsr #1
|
||||||
|
131
|
||||||
|
132 #endif
|
||||||
|
133
|
||||||
|
134 .endm
|
||||||
|
135
|
||||||
|
136
|
||||||
|
137 .macro ARM_MOD_BODY dividend, divisor, order, spare
|
||||||
|
138
|
||||||
|
139 #if __LINUX_ARM_ARCH__ >= 5
|
||||||
|
140
|
||||||
|
141 clz \order, \divisor
|
||||||
|
142 clz \spare, \dividend
|
||||||
|
143 sub \order, \order, \spare
|
||||||
|
144 mov \divisor, \divisor, lsl \order
|
||||||
|
145
|
||||||
|
146 #else
|
||||||
|
147
|
||||||
|
148 mov \order, #0
|
||||||
|
149
|
||||||
|
150 @ Unless the divisor is very big, shift it up in multiples of
|
||||||
|
151 @ four bits, since this is the amount of unwinding in the main
|
||||||
|
152 @ division loop. Continue shifting until the divisor is
|
||||||
|
153 @ larger than the dividend.
|
||||||
|
154 1: cmp \divisor, #0x10000000
|
||||||
|
155 cmplo \divisor, \dividend
|
||||||
|
156 movlo \divisor, \divisor, lsl #4
|
||||||
|
157 addlo \order, \order, #4
|
||||||
|
158 blo 1b
|
||||||
|
159
|
||||||
|
160 @ For very big divisors, we must shift it a bit at a time, or
|
||||||
|
161 @ we will be in danger of overflowing.
|
||||||
|
162 1: cmp \divisor, #0x80000000
|
||||||
|
163 cmplo \divisor, \dividend
|
||||||
|
164 movlo \divisor, \divisor, lsl #1
|
||||||
|
165 addlo \order, \order, #1
|
||||||
|
166 blo 1b
|
||||||
|
167
|
||||||
|
168 #endif
|
||||||
|
169
|
||||||
|
170 @ Perform all needed substractions to keep only the reminder.
|
||||||
|
171 @ Do comparisons in batch of 4 first.
|
||||||
|
172 subs \order, \order, #3 @ yes, 3 is intended here
|
||||||
|
173 blt 2f
|
||||||
|
174
|
||||||
|
175 1: cmp \dividend, \divisor
|
||||||
|
176 subhs \dividend, \dividend, \divisor
|
||||||
|
177 cmp \dividend, \divisor, lsr #1
|
||||||
|
178 subhs \dividend, \dividend, \divisor, lsr #1
|
||||||
|
179 cmp \dividend, \divisor, lsr #2
|
||||||
|
180 subhs \dividend, \dividend, \divisor, lsr #2
|
||||||
|
181 cmp \dividend, \divisor, lsr #3
|
||||||
|
182 subhs \dividend, \dividend, \divisor, lsr #3
|
||||||
|
183 cmp \dividend, #1
|
||||||
|
184 mov \divisor, \divisor, lsr #4
|
||||||
|
185 subges \order, \order, #4
|
||||||
|
186 bge 1b
|
||||||
|
187
|
||||||
|
188 tst \order, #3
|
||||||
|
189 teqne \dividend, #0
|
||||||
|
190 beq 5f
|
||||||
|
191
|
||||||
|
192 @ Either 1, 2 or 3 comparison/substractions are left.
|
||||||
|
193 2: cmn \order, #2
|
||||||
|
194 blt 4f
|
||||||
|
195 beq 3f
|
||||||
|
196 cmp \dividend, \divisor
|
||||||
|
197 subhs \dividend, \dividend, \divisor
|
||||||
|
198 mov \divisor, \divisor, lsr #1
|
||||||
|
199 3: cmp \dividend, \divisor
|
||||||
|
200 subhs \dividend, \dividend, \divisor
|
||||||
|
201 mov \divisor, \divisor, lsr #1
|
||||||
|
202 4: cmp \dividend, \divisor
|
||||||
|
203 subhs \dividend, \dividend, \divisor
|
||||||
|
204 5:
|
||||||
|
205 .endm
|
||||||
|
206
|
||||||
|
207
|
||||||
|
208 /*ENTRY(__udivsi3)
|
||||||
|
209 ENTRY(__aeabi_uidiv)
|
||||||
|
210
|
||||||
|
211 subs r2, r1, #1
|
||||||
|
212 moveq pc, lr
|
||||||
|
213 bcc Ldiv0
|
||||||
|
214 cmp r0, r1
|
||||||
|
215 bls 11f
|
||||||
|
216 tst r1, r2
|
||||||
|
217 beq 12f
|
||||||
|
218
|
||||||
|
219 ARM_DIV_BODY r0, r1, r2, r3
|
||||||
|
220
|
||||||
|
221 mov r0, r2
|
||||||
|
222 mov pc, lr
|
||||||
|
223
|
||||||
|
224 11: moveq r0, #1
|
||||||
|
225 movne r0, #0
|
||||||
|
226 mov pc, lr
|
||||||
|
227
|
||||||
|
228 12: ARM_DIV2_ORDER r1, r2
|
||||||
|
229
|
||||||
|
230 mov r0, r0, lsr r2
|
||||||
|
231 mov pc, lr
|
||||||
|
232 */
|
||||||
|
233
|
||||||
|
234 ENTRY(__umodsi3)
|
||||||
|
235
|
||||||
|
236 0000 012051E2 subs r2, r1, #1 @ compare divisor with 1
|
||||||
|
237 0004 A700003A bcc Ldiv0
|
||||||
|
238 0008 01005011 cmpne r0, r1 @ compare dividend with divisor
|
||||||
|
239 000c 0000A003 moveq r0, #0
|
||||||
|
240 0010 02001181 tsthi r1, r2 @ see if divisor is power of 2
|
||||||
|
241 0014 02000000 andeq r0, r0, r2
|
||||||
|
242 0018 0EF0A091 movls pc, lr
|
||||||
|
243
|
||||||
|
244 ARM_MOD_BODY r0, r1, r2, r3
|
||||||
|
245
|
||||||
|
246 00b8 0EF0A0E1 mov pc, lr
|
||||||
|
247
|
||||||
|
248
|
||||||
|
249 ENTRY(__divsi3)
|
||||||
|
250 ENTRY(__aeabi_idiv)
|
||||||
|
251
|
||||||
|
252 00bc 000051E3 cmp r1, #0
|
||||||
|
253 00c0 01C020E0 eor ip, r0, r1 @ save the sign of the result.
|
||||||
|
254 00c4 7700000A beq Ldiv0
|
||||||
|
255 00c8 00106142 rsbmi r1, r1, #0 @ loops below use unsigned.
|
||||||
|
256 00cc 012051E2 subs r2, r1, #1 @ division by 1 or -1 ?
|
||||||
|
257 00d0 2700000A beq 10f
|
||||||
|
258 00d4 0030B0E1 movs r3, r0
|
||||||
|
259 00d8 00306042 rsbmi r3, r0, #0 @ positive dividend value
|
||||||
|
260 00dc 010053E1 cmp r3, r1
|
||||||
|
261 00e0 2600009A bls 11f
|
||||||
|
262 00e4 020011E1 tst r1, r2 @ divisor is power of 2 ?
|
||||||
|
263 00e8 2800000A beq 12f
|
||||||
|
264
|
||||||
|
265 ARM_DIV_BODY r3, r1, r0, r2
|
||||||
|
266
|
||||||
|
267 0168 00005CE3 cmp ip, #0
|
||||||
|
268 016c 00006042 rsbmi r0, r0, #0
|
||||||
|
269 0170 0EF0A0E1 mov pc, lr
|
||||||
|
270
|
||||||
|
271 0174 00003CE1 10: teq ip, r0 @ same sign ?
|
||||||
|
272 0178 00006042 rsbmi r0, r0, #0
|
||||||
|
273 017c 0EF0A0E1 mov pc, lr
|
||||||
|
274
|
||||||
|
275 0180 0000A033 11: movlo r0, #0
|
||||||
|
276 0184 CC0FA001 moveq r0, ip, asr #31
|
||||||
|
277 0188 01008003 orreq r0, r0, #1
|
||||||
|
278 018c 0EF0A0E1 mov pc, lr
|
||||||
|
279
|
||||||
|
280 12: ARM_DIV2_ORDER r1, r2
|
||||||
|
281
|
||||||
|
282 01c4 00005CE3 cmp ip, #0
|
||||||
|
283 01c8 3302A0E1 mov r0, r3, lsr r2
|
||||||
|
284 01cc 00006042 rsbmi r0, r0, #0
|
||||||
|
285 01d0 0EF0A0E1 mov pc, lr
|
||||||
|
286
|
||||||
|
287
|
||||||
|
288 ENTRY(__modsi3)
|
||||||
|
289
|
||||||
|
290 01d4 000051E3 cmp r1, #0
|
||||||
|
291 01d8 3200000A beq Ldiv0
|
||||||
|
292 01dc 00106142 rsbmi r1, r1, #0 @ loops below use unsigned.
|
||||||
|
293 01e0 00C0B0E1 movs ip, r0 @ preserve sign of dividend
|
||||||
|
294 01e4 00006042 rsbmi r0, r0, #0 @ if negative make positive
|
||||||
|
295 01e8 012051E2 subs r2, r1, #1 @ compare divisor with 1
|
||||||
|
296 01ec 01005011 cmpne r0, r1 @ compare dividend with divisor
|
||||||
|
297 01f0 0000A003 moveq r0, #0
|
||||||
|
298 01f4 02001181 tsthi r1, r2 @ see if divisor is power of 2
|
||||||
|
299 01f8 02000000 andeq r0, r0, r2
|
||||||
|
300 01fc 2600009A bls 10f
|
||||||
|
301
|
||||||
|
302 ARM_MOD_BODY r0, r1, r2, r3
|
||||||
|
303
|
||||||
|
304 029c 00005CE3 10: cmp ip, #0
|
||||||
|
305 02a0 00006042 rsbmi r0, r0, #0
|
||||||
|
306 02a4 0EF0A0E1 mov pc, lr
|
||||||
|
307
|
||||||
|
308 #ifdef CONFIG_AEABI
|
||||||
|
309
|
||||||
|
310 ENTRY(__aeabi_uidivmod)
|
||||||
|
311
|
||||||
|
312 stmfd sp!, {r0, r1, ip, lr}
|
||||||
|
313 bl __aeabi_uidiv
|
||||||
|
314 ldmfd sp!, {r1, r2, ip, lr}
|
||||||
|
315 mul r3, r0, r2
|
||||||
|
316 sub r1, r1, r3
|
||||||
|
317 mov pc, lr
|
||||||
|
318
|
||||||
|
319 ENTRY(__aeabi_idivmod)
|
||||||
|
320
|
||||||
|
321 stmfd sp!, {r0, r1, ip, lr}
|
||||||
|
322 bl __aeabi_idiv
|
||||||
|
323 ldmfd sp!, {r1, r2, ip, lr}
|
||||||
|
324 mul r3, r0, r2
|
||||||
|
325 sub r1, r1, r3
|
||||||
|
326 mov pc, lr
|
||||||
|
327
|
||||||
|
328 #endif
|
||||||
|
329
|
||||||
|
330 Ldiv0:
|
||||||
|
331
|
||||||
|
332 02a8 08E02DE5 str lr, [sp, #-8]!
|
||||||
|
333 02ac FEFFFFEB bl __div0
|
||||||
|
334 02b0 0000A0E3 mov r0, #0 @ About as wrong as it could be.
|
||||||
|
335 02b4 08F09DE4 ldr pc, [sp], #8
|
||||||
|
336
|
||||||
|
337 ENTRY(__div0)
|
||||||
|
338 02b8 0EF0A0E1 mov pc, lr
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/lib1funcs.S:234 .text:00000000 __umodsi3
|
||||||
|
lib/lib1funcs.S:234 .text:00000000 $a
|
||||||
|
lib/lib1funcs.S:330 .text:000002a8 Ldiv0
|
||||||
|
lib/lib1funcs.S:249 .text:000000bc __divsi3
|
||||||
|
lib/lib1funcs.S:250 .text:000000bc __aeabi_idiv
|
||||||
|
lib/lib1funcs.S:288 .text:000001d4 __modsi3
|
||||||
|
lib/lib1funcs.S:337 .text:000002b8 __div0
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
405
firmware/lib/lib_AT91SAM7.c
Normal file
405
firmware/lib/lib_AT91SAM7.c
Normal file
@ -0,0 +1,405 @@
|
|||||||
|
//* ----------------------------------------------------------------------------
|
||||||
|
//* ATMEL Microcontroller Software Support - ROUSSET -
|
||||||
|
//* ----------------------------------------------------------------------------
|
||||||
|
//* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
|
||||||
|
//* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
|
//* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
|
||||||
|
//* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||||
|
//* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
//* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||||
|
//* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||||
|
//* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||||
|
//* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||||
|
//* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
//* ----------------------------------------------------------------------------
|
||||||
|
//* File Name : lib_AT91SAM7S64.h
|
||||||
|
//* Object : AT91SAM7S64 inlined functions
|
||||||
|
//* Generated : AT91 SW Application Group 08/30/2005 (15:52:59)
|
||||||
|
//*
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <include/AT91SAM7.h>
|
||||||
|
#include <include/lib_AT91SAM7.h>
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_AIC_ConfigureIt
|
||||||
|
//* \brief Interrupt Handler Initialization
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
unsigned int AT91F_AIC_ConfigureIt (
|
||||||
|
AT91PS_AIC pAic, // \arg pointer to the AIC registers
|
||||||
|
unsigned int irq_id, // \arg interrupt number to initialize
|
||||||
|
unsigned int priority, // \arg priority to give to the interrupt
|
||||||
|
unsigned int src_type, // \arg activation and sense of activation
|
||||||
|
void (*newHandler) () ) // \arg address of the interrupt handler
|
||||||
|
{
|
||||||
|
unsigned int oldHandler;
|
||||||
|
unsigned int mask ;
|
||||||
|
|
||||||
|
oldHandler = pAic->AIC_SVR[irq_id];
|
||||||
|
|
||||||
|
mask = 0x1 << irq_id ;
|
||||||
|
//* Disable the interrupt on the interrupt controller
|
||||||
|
pAic->AIC_IDCR = mask ;
|
||||||
|
//* Save the interrupt handler routine pointer and the interrupt priority
|
||||||
|
pAic->AIC_SVR[irq_id] = (unsigned int) newHandler ;
|
||||||
|
//* Store the Source Mode Register
|
||||||
|
pAic->AIC_SMR[irq_id] = src_type | priority ;
|
||||||
|
//* Clear the interrupt on the interrupt controller
|
||||||
|
pAic->AIC_ICCR = mask ;
|
||||||
|
|
||||||
|
return oldHandler;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_AIC_SetExceptionVector
|
||||||
|
//* \brief Configure vector handler
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
unsigned int AT91F_AIC_SetExceptionVector (
|
||||||
|
unsigned int *pVector, // \arg pointer to the AIC registers
|
||||||
|
void (*Handler) () ) // \arg Interrupt Handler
|
||||||
|
{
|
||||||
|
unsigned int oldVector = *pVector;
|
||||||
|
|
||||||
|
if ((unsigned int) Handler == (unsigned int) AT91C_AIC_BRANCH_OPCODE)
|
||||||
|
*pVector = (unsigned int) AT91C_AIC_BRANCH_OPCODE;
|
||||||
|
else
|
||||||
|
*pVector = (((((unsigned int) Handler) - ((unsigned int) pVector) - 0x8) >> 2) & 0x00FFFFFF) | 0xEA000000;
|
||||||
|
|
||||||
|
return oldVector;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_AIC_Open
|
||||||
|
//* \brief Set exception vectors and AIC registers to default values
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_AIC_Open(
|
||||||
|
AT91PS_AIC pAic, // \arg pointer to the AIC registers
|
||||||
|
void (*IrqHandler) (), // \arg Default IRQ vector exception
|
||||||
|
void (*FiqHandler) (), // \arg Default FIQ vector exception
|
||||||
|
void (*DefaultHandler) (), // \arg Default Handler set in ISR
|
||||||
|
void (*SpuriousHandler) (), // \arg Default Spurious Handler
|
||||||
|
unsigned int protectMode) // \arg Debug Control Register
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
// Disable all interrupts and set IVR to the default handler
|
||||||
|
for (i = 0; i < 32; ++i) {
|
||||||
|
AT91F_AIC_DisableIt(pAic, i);
|
||||||
|
AT91F_AIC_ConfigureIt(pAic, i, AT91C_AIC_PRIOR_LOWEST, AT91C_AIC_SRCTYPE_HIGH_LEVEL, DefaultHandler);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the IRQ exception vector
|
||||||
|
AT91F_AIC_SetExceptionVector((unsigned int *) 0x18, IrqHandler);
|
||||||
|
// Set the Fast Interrupt exception vector
|
||||||
|
AT91F_AIC_SetExceptionVector((unsigned int *) 0x1C, FiqHandler);
|
||||||
|
|
||||||
|
pAic->AIC_SPU = (unsigned int) SpuriousHandler;
|
||||||
|
pAic->AIC_DCR = protectMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_PDC_Open
|
||||||
|
//* \brief Open PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_PDC_Open(AT91PS_PDC pPDC) // \arg pointer to a PDC controller
|
||||||
|
{
|
||||||
|
//* Disable the RX and TX PDC transfer requests
|
||||||
|
AT91F_PDC_DisableRx(pPDC);
|
||||||
|
AT91F_PDC_DisableTx(pPDC);
|
||||||
|
|
||||||
|
//* Reset all Counter register Next buffer first
|
||||||
|
AT91F_PDC_SetNextTx(pPDC, NULL, 0);
|
||||||
|
AT91F_PDC_SetNextRx(pPDC, NULL, 0);
|
||||||
|
AT91F_PDC_SetTx(pPDC, NULL, 0);
|
||||||
|
AT91F_PDC_SetRx(pPDC, NULL, 0);
|
||||||
|
|
||||||
|
//* Enable the RX and TX PDC transfer requests
|
||||||
|
AT91F_PDC_EnableRx(pPDC);
|
||||||
|
AT91F_PDC_EnableTx(pPDC);
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_PDC_Close
|
||||||
|
//* \brief Close PDC: disable TX and RX reset transfer descriptors
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_PDC_Close(AT91PS_PDC pPDC) // \arg pointer to a PDC controller
|
||||||
|
{
|
||||||
|
//* Disable the RX and TX PDC transfer requests
|
||||||
|
AT91F_PDC_DisableRx(pPDC);
|
||||||
|
AT91F_PDC_DisableTx(pPDC);
|
||||||
|
|
||||||
|
//* Reset all Counter register Next buffer first
|
||||||
|
AT91F_PDC_SetNextTx(pPDC, NULL, 0);
|
||||||
|
AT91F_PDC_SetNextRx(pPDC, NULL, 0);
|
||||||
|
AT91F_PDC_SetTx(pPDC, NULL, 0);
|
||||||
|
AT91F_PDC_SetRx(pPDC, NULL, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_PDC_SendFrame
|
||||||
|
//* \brief Close PDC: disable TX and RX reset transfer descriptors
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
unsigned int AT91F_PDC_SendFrame(
|
||||||
|
AT91PS_PDC pPDC,
|
||||||
|
const unsigned char *pBuffer,
|
||||||
|
unsigned int szBuffer,
|
||||||
|
const unsigned char *pNextBuffer,
|
||||||
|
unsigned int szNextBuffer )
|
||||||
|
{
|
||||||
|
if (AT91F_PDC_IsTxEmpty(pPDC)) {
|
||||||
|
//* Buffer and next buffer can be initialized
|
||||||
|
AT91F_PDC_SetTx(pPDC, pBuffer, szBuffer);
|
||||||
|
AT91F_PDC_SetNextTx(pPDC, pNextBuffer, szNextBuffer);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
else if (AT91F_PDC_IsNextTxEmpty(pPDC)) {
|
||||||
|
//* Only one buffer can be initialized
|
||||||
|
AT91F_PDC_SetNextTx(pPDC, pBuffer, szBuffer);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//* All buffer are in use...
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_PDC_ReceiveFrame
|
||||||
|
//* \brief Close PDC: disable TX and RX reset transfer descriptors
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
unsigned int AT91F_PDC_ReceiveFrame (
|
||||||
|
AT91PS_PDC pPDC,
|
||||||
|
unsigned char *pBuffer,
|
||||||
|
unsigned int szBuffer,
|
||||||
|
unsigned char *pNextBuffer,
|
||||||
|
unsigned int szNextBuffer )
|
||||||
|
{
|
||||||
|
if (AT91F_PDC_IsRxEmpty(pPDC)) {
|
||||||
|
//* Buffer and next buffer can be initialized
|
||||||
|
AT91F_PDC_SetRx(pPDC, pBuffer, szBuffer);
|
||||||
|
AT91F_PDC_SetNextRx(pPDC, pNextBuffer, szNextBuffer);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
else if (AT91F_PDC_IsNextRxEmpty(pPDC)) {
|
||||||
|
//* Only one buffer can be initialized
|
||||||
|
AT91F_PDC_SetNextRx(pPDC, pBuffer, szBuffer);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//* All buffer are in use...
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//*------------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_PMC_GetMasterClock
|
||||||
|
//* \brief Return master clock in Hz which correponds to processor clock for ARM7
|
||||||
|
//*------------------------------------------------------------------------------
|
||||||
|
unsigned int AT91F_PMC_GetMasterClock (
|
||||||
|
AT91PS_PMC pPMC, // \arg pointer to PMC controller
|
||||||
|
AT91PS_CKGR pCKGR, // \arg pointer to CKGR controller
|
||||||
|
unsigned int slowClock) // \arg slowClock in Hz
|
||||||
|
{
|
||||||
|
unsigned int reg = pPMC->PMC_MCKR;
|
||||||
|
unsigned int prescaler = (1 << ((reg & AT91C_PMC_PRES) >> 2));
|
||||||
|
unsigned int pllDivider, pllMultiplier;
|
||||||
|
|
||||||
|
switch (reg & AT91C_PMC_CSS) {
|
||||||
|
case AT91C_PMC_CSS_SLOW_CLK: // Slow clock selected
|
||||||
|
return slowClock / prescaler;
|
||||||
|
case AT91C_PMC_CSS_MAIN_CLK: // Main clock is selected
|
||||||
|
return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / prescaler;
|
||||||
|
case AT91C_PMC_CSS_PLL_CLK: // PLLB clock is selected
|
||||||
|
reg = pCKGR->CKGR_PLLR;
|
||||||
|
pllDivider = (reg & AT91C_CKGR_DIV);
|
||||||
|
pllMultiplier = ((reg & AT91C_CKGR_MUL) >> 16) + 1;
|
||||||
|
return AT91F_CKGR_GetMainClock(pCKGR, slowClock) / pllDivider * pllMultiplier / prescaler;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*--------------------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_RTT_ReadValue()
|
||||||
|
//* \brief Read the RTT value
|
||||||
|
//*--------------------------------------------------------------------------------------
|
||||||
|
unsigned int AT91F_RTTReadValue(AT91PS_RTTC pRTTC)
|
||||||
|
{
|
||||||
|
register volatile unsigned int val1,val2;
|
||||||
|
do
|
||||||
|
{
|
||||||
|
val1 = pRTTC->RTTC_RTVR;
|
||||||
|
val2 = pRTTC->RTTC_RTVR;
|
||||||
|
}
|
||||||
|
while(val1 != val2);
|
||||||
|
return(val1);
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_SPI_Close
|
||||||
|
//* \brief Close SPI: disable IT disable transfert, close PDC
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_SPI_Close(AT91PS_SPI pSPI) // \arg pointer to a SPI controller
|
||||||
|
{
|
||||||
|
//* Reset all the Chip Select register
|
||||||
|
pSPI->SPI_CSR[0] = 0 ;
|
||||||
|
pSPI->SPI_CSR[1] = 0 ;
|
||||||
|
pSPI->SPI_CSR[2] = 0 ;
|
||||||
|
pSPI->SPI_CSR[3] = 0 ;
|
||||||
|
|
||||||
|
//* Reset the SPI mode
|
||||||
|
pSPI->SPI_MR = 0 ;
|
||||||
|
|
||||||
|
//* Disable all interrupts
|
||||||
|
pSPI->SPI_IDR = 0xFFFFFFFF ;
|
||||||
|
|
||||||
|
//* Abort the Peripheral Data Transfers
|
||||||
|
AT91F_PDC_Close((AT91PS_PDC) &(pSPI->SPI_RPR));
|
||||||
|
|
||||||
|
//* Disable receiver and transmitter and stop any activity immediately
|
||||||
|
pSPI->SPI_CR = AT91C_SPI_SPIDIS;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_ADC_CfgTimings
|
||||||
|
//* \brief Configure the different necessary timings of the ADC controller
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_ADC_CfgTimings (
|
||||||
|
AT91PS_ADC pADC, // pointer to a ADC controller
|
||||||
|
unsigned int mck_clock, // in MHz
|
||||||
|
unsigned int adc_clock, // in MHz
|
||||||
|
unsigned int startup_time, // in us
|
||||||
|
unsigned int sample_and_hold_time) // in ns
|
||||||
|
{
|
||||||
|
unsigned int prescal,startup,shtim;
|
||||||
|
|
||||||
|
prescal = mck_clock/(2*adc_clock) - 1;
|
||||||
|
startup = adc_clock*startup_time/8 - 1;
|
||||||
|
shtim = adc_clock*sample_and_hold_time/1000 - 1;
|
||||||
|
|
||||||
|
//* Write to the MR register
|
||||||
|
pADC->ADC_MR = ( (prescal<<8) & AT91C_ADC_PRESCAL) | ( (startup<<16) & AT91C_ADC_STARTUP) | ( (shtim<<24) & AT91C_ADC_SHTIM);
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_SSC_SetBaudrate
|
||||||
|
//* \brief Set the baudrate according to the CPU clock
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_SSC_SetBaudrate (
|
||||||
|
AT91PS_SSC pSSC, // \arg pointer to a SSC controller
|
||||||
|
unsigned int mainClock, // \arg peripheral clock
|
||||||
|
unsigned int speed) // \arg SSC baudrate
|
||||||
|
{
|
||||||
|
unsigned int baud_value;
|
||||||
|
//* Define the baud rate divisor register
|
||||||
|
if (speed == 0)
|
||||||
|
baud_value = 0;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
baud_value = (unsigned int) (mainClock * 10)/(2*speed);
|
||||||
|
if ((baud_value % 10) >= 5)
|
||||||
|
baud_value = (baud_value / 10) + 1;
|
||||||
|
else
|
||||||
|
baud_value /= 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
pSSC->SSC_CMR = baud_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_SSC_Configure
|
||||||
|
//* \brief Configure SSC
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_SSC_Configure (
|
||||||
|
AT91PS_SSC pSSC, // \arg pointer to a SSC controller
|
||||||
|
unsigned int syst_clock, // \arg System Clock Frequency
|
||||||
|
unsigned int baud_rate, // \arg Expected Baud Rate Frequency
|
||||||
|
unsigned int clock_rx, // \arg Receiver Clock Parameters
|
||||||
|
unsigned int mode_rx, // \arg mode Register to be programmed
|
||||||
|
unsigned int clock_tx, // \arg Transmitter Clock Parameters
|
||||||
|
unsigned int mode_tx) // \arg mode Register to be programmed
|
||||||
|
{
|
||||||
|
//* Disable interrupts
|
||||||
|
pSSC->SSC_IDR = (unsigned int) -1;
|
||||||
|
|
||||||
|
//* Reset receiver and transmitter
|
||||||
|
pSSC->SSC_CR = AT91C_SSC_SWRST | AT91C_SSC_RXDIS | AT91C_SSC_TXDIS ;
|
||||||
|
|
||||||
|
//* Define the Clock Mode Register
|
||||||
|
AT91F_SSC_SetBaudrate(pSSC, syst_clock, baud_rate);
|
||||||
|
|
||||||
|
//* Write the Receive Clock Mode Register
|
||||||
|
pSSC->SSC_RCMR = clock_rx;
|
||||||
|
|
||||||
|
//* Write the Transmit Clock Mode Register
|
||||||
|
pSSC->SSC_TCMR = clock_tx;
|
||||||
|
|
||||||
|
//* Write the Receive Frame Mode Register
|
||||||
|
pSSC->SSC_RFMR = mode_rx;
|
||||||
|
|
||||||
|
//* Write the Transmit Frame Mode Register
|
||||||
|
pSSC->SSC_TFMR = mode_tx;
|
||||||
|
|
||||||
|
//* Clear Transmit and Receive Counters
|
||||||
|
AT91F_PDC_Open((AT91PS_PDC) &(pSSC->SSC_RPR));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_US_Configure
|
||||||
|
//* \brief Configure USART
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_US_Configure (
|
||||||
|
AT91PS_USART pUSART, // \arg pointer to a USART controller
|
||||||
|
unsigned int mainClock, // \arg peripheral clock
|
||||||
|
unsigned int mode , // \arg mode Register to be programmed
|
||||||
|
unsigned int baudRate , // \arg baudrate to be programmed
|
||||||
|
unsigned int timeguard ) // \arg timeguard to be programmed
|
||||||
|
{
|
||||||
|
//* Disable interrupts
|
||||||
|
pUSART->US_IDR = (unsigned int) -1;
|
||||||
|
|
||||||
|
//* Reset receiver and transmitter
|
||||||
|
pUSART->US_CR = AT91C_US_RSTRX | AT91C_US_RSTTX | AT91C_US_RXDIS | AT91C_US_TXDIS ;
|
||||||
|
|
||||||
|
//* Define the baud rate divisor register
|
||||||
|
AT91F_US_SetBaudrate(pUSART, mainClock, baudRate);
|
||||||
|
|
||||||
|
//* Write the Timeguard Register
|
||||||
|
AT91F_US_SetTimeguard(pUSART, timeguard);
|
||||||
|
|
||||||
|
//* Clear Transmit and Receive Counters
|
||||||
|
AT91F_PDC_Open((AT91PS_PDC) &(pUSART->US_RPR));
|
||||||
|
|
||||||
|
//* Define the USART mode
|
||||||
|
pUSART->US_MR = mode ;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
//* \fn AT91F_US_Close
|
||||||
|
//* \brief Close USART: disable IT disable receiver and transmitter, close PDC
|
||||||
|
//*----------------------------------------------------------------------------
|
||||||
|
void AT91F_US_Close(AT91PS_USART pUSART) // \arg pointer to a USART controller
|
||||||
|
{
|
||||||
|
//* Reset the baud rate divisor register
|
||||||
|
pUSART->US_BRGR = 0 ;
|
||||||
|
|
||||||
|
//* Reset the USART mode
|
||||||
|
pUSART->US_MR = 0 ;
|
||||||
|
|
||||||
|
//* Reset the Timeguard Register
|
||||||
|
pUSART->US_TTGR = 0;
|
||||||
|
|
||||||
|
//* Disable all interrupts
|
||||||
|
pUSART->US_IDR = 0xFFFFFFFF ;
|
||||||
|
|
||||||
|
//* Abort the Peripheral Data Transfers
|
||||||
|
AT91F_PDC_Close((AT91PS_PDC) &(pUSART->US_RPR));
|
||||||
|
|
||||||
|
//* Disable receiver and transmitter and stop any activity immediately
|
||||||
|
pUSART->US_CR = AT91C_US_TXDIS | AT91C_US_RXDIS | AT91C_US_RSTTX | AT91C_US_RSTRX ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
3888
firmware/lib/lib_AT91SAM7.lst
Normal file
3888
firmware/lib/lib_AT91SAM7.lst
Normal file
File diff suppressed because it is too large
Load Diff
59
firmware/lib/memcpy.S
Normal file
59
firmware/lib/memcpy.S
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/memcpy.S
|
||||||
|
*
|
||||||
|
* Author: Nicolas Pitre
|
||||||
|
* Created: Sep 28, 2005
|
||||||
|
* Copyright: MontaVista Software, Inc.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
|
||||||
|
.macro ldr1w ptr reg abort
|
||||||
|
ldr \reg, [\ptr], #4
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro ldr4w ptr reg1 reg2 reg3 reg4 abort
|
||||||
|
ldmia \ptr!, {\reg1, \reg2, \reg3, \reg4}
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro ldr8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
|
||||||
|
ldmia \ptr!, {\reg1, \reg2, \reg3, \reg4, \reg5, \reg6, \reg7, \reg8}
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro ldr1b ptr reg cond=al abort
|
||||||
|
ldr\cond\()b \reg, [\ptr], #1
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro str1w ptr reg abort
|
||||||
|
str \reg, [\ptr], #4
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
|
||||||
|
stmia \ptr!, {\reg1, \reg2, \reg3, \reg4, \reg5, \reg6, \reg7, \reg8}
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro str1b ptr reg cond=al abort
|
||||||
|
str\cond\()b \reg, [\ptr], #1
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro enter reg1 reg2
|
||||||
|
stmdb sp!, {r0, \reg1, \reg2}
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.macro exit reg1 reg2
|
||||||
|
ldmfd sp!, {r0, \reg1, \reg2}
|
||||||
|
.endm
|
||||||
|
|
||||||
|
.text
|
||||||
|
|
||||||
|
/* Prototype: void *memcpy(void *dest, const void *src, size_t n); */
|
||||||
|
|
||||||
|
ENTRY(memcpy)
|
||||||
|
|
||||||
|
#include "copy_template.S"
|
||||||
|
|
80
firmware/lib/memset.S
Normal file
80
firmware/lib/memset.S
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/memset.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 1995-2000 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*
|
||||||
|
* ASM optimised string functions
|
||||||
|
*/
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
|
||||||
|
.text
|
||||||
|
.align 5
|
||||||
|
.word 0
|
||||||
|
|
||||||
|
1: subs r2, r2, #4 @ 1 do we have enough
|
||||||
|
blt 5f @ 1 bytes to align with?
|
||||||
|
cmp r3, #2 @ 1
|
||||||
|
strltb r1, [r0], #1 @ 1
|
||||||
|
strleb r1, [r0], #1 @ 1
|
||||||
|
strb r1, [r0], #1 @ 1
|
||||||
|
add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
|
||||||
|
/*
|
||||||
|
* The pointer is now aligned and the length is adjusted. Try doing the
|
||||||
|
* memzero again.
|
||||||
|
*/
|
||||||
|
|
||||||
|
ENTRY(memset)
|
||||||
|
ands r3, r0, #3 @ 1 unaligned?
|
||||||
|
bne 1b @ 1
|
||||||
|
/*
|
||||||
|
* we know that the pointer in r0 is aligned to a word boundary.
|
||||||
|
*/
|
||||||
|
orr r1, r1, r1, lsl #8
|
||||||
|
orr r1, r1, r1, lsl #16
|
||||||
|
mov r3, r1
|
||||||
|
cmp r2, #16
|
||||||
|
blt 4f
|
||||||
|
/*
|
||||||
|
* We need an extra register for this loop - save the return address and
|
||||||
|
* use the LR
|
||||||
|
*/
|
||||||
|
str lr, [sp, #-4]!
|
||||||
|
mov ip, r1
|
||||||
|
mov lr, r1
|
||||||
|
|
||||||
|
2: subs r2, r2, #64
|
||||||
|
stmgeia r0!, {r1, r3, ip, lr} @ 64 bytes at a time.
|
||||||
|
stmgeia r0!, {r1, r3, ip, lr}
|
||||||
|
stmgeia r0!, {r1, r3, ip, lr}
|
||||||
|
stmgeia r0!, {r1, r3, ip, lr}
|
||||||
|
bgt 2b
|
||||||
|
LOADREGS(eqfd, sp!, {pc}) @ Now <64 bytes to go.
|
||||||
|
/*
|
||||||
|
* No need to correct the count; we're only testing bits from now on
|
||||||
|
*/
|
||||||
|
tst r2, #32
|
||||||
|
stmneia r0!, {r1, r3, ip, lr}
|
||||||
|
stmneia r0!, {r1, r3, ip, lr}
|
||||||
|
tst r2, #16
|
||||||
|
stmneia r0!, {r1, r3, ip, lr}
|
||||||
|
ldr lr, [sp], #4
|
||||||
|
|
||||||
|
4: tst r2, #8
|
||||||
|
stmneia r0!, {r1, r3}
|
||||||
|
tst r2, #4
|
||||||
|
strne r1, [r0], #4
|
||||||
|
/*
|
||||||
|
* When we get here, we've got less than 4 bytes to zero. We
|
||||||
|
* may have an unaligned pointer as well.
|
||||||
|
*/
|
||||||
|
5: tst r2, #2
|
||||||
|
strneb r1, [r0], #1
|
||||||
|
strneb r1, [r0], #1
|
||||||
|
tst r2, #1
|
||||||
|
strneb r1, [r0], #1
|
||||||
|
RETINSTR(mov,pc,lr)
|
22
firmware/lib/setbit.S
Normal file
22
firmware/lib/setbit.S
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/setbit.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 1995-1996 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
#include "bitops.h"
|
||||||
|
.text
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Purpose : Function to set a bit
|
||||||
|
* Prototype: int set_bit(int bit, void *addr)
|
||||||
|
*/
|
||||||
|
ENTRY(_set_bit_be)
|
||||||
|
eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
ENTRY(_set_bit_le)
|
||||||
|
bitop orr
|
170
firmware/lib/setbit.lst
Normal file
170
firmware/lib/setbit.lst
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
1 # 1 "lib/setbit.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/setbit.S
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1995-1996 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 */
|
||||||
|
10 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
11 #include <asm/assembler.h>
|
||||||
|
1 /*
|
||||||
|
2 * linux/include/asm-arm/assembler.h
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1996-2000 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 *
|
||||||
|
10 * This file contains arm architecture specific defines
|
||||||
|
11 * for the different processors.
|
||||||
|
12 *
|
||||||
|
13 * Do not include any C declarations in this file - it is included by
|
||||||
|
14 * assembler source.
|
||||||
|
15 */
|
||||||
|
16 #ifndef __ASSEMBLY__
|
||||||
|
17 #error "Only include this from assembly code"
|
||||||
|
18 #endif
|
||||||
|
19
|
||||||
|
20 #include <asm/ptrace.h>
|
||||||
|
1 /*
|
||||||
|
21
|
||||||
|
22 #define pull lsl
|
||||||
|
23 #define push lsr
|
||||||
|
24 #define get_byte_0 lsr #24
|
||||||
|
25 #define get_byte_1 lsr #16
|
||||||
|
26 #define get_byte_2 lsr #8
|
||||||
|
27 #define get_byte_3 lsl #0
|
||||||
|
28 #define put_byte_0 lsl #24
|
||||||
|
29 #define put_byte_1 lsl #16
|
||||||
|
30 #define put_byte_2 lsl #8
|
||||||
|
31 #define put_byte_3 lsl #0
|
||||||
|
32
|
||||||
|
33 #define PLD(code...)
|
||||||
|
34
|
||||||
|
35 #define MODE_USR USR_MODE
|
||||||
|
36 #define MODE_FIQ FIQ_MODE
|
||||||
|
37 #define MODE_IRQ IRQ_MODE
|
||||||
|
38 #define MODE_SVC SVC_MODE
|
||||||
|
39
|
||||||
|
40 #define DEFAULT_FIQ MODE_FIQ
|
||||||
|
41
|
||||||
|
42 /*
|
||||||
|
43 * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
44 */
|
||||||
|
45 #ifdef __STDC__
|
||||||
|
46 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
47 ldm##cond base,reglist
|
||||||
|
48 #else
|
||||||
|
49 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
50 ldm/**/cond base,reglist
|
||||||
|
51 #endif
|
||||||
|
52
|
||||||
|
53 /*
|
||||||
|
54 * Build a return instruction for this processor type.
|
||||||
|
55 */
|
||||||
|
56 #define RETINSTR(instr, regs...)\
|
||||||
|
57 instr regs
|
||||||
|
58
|
||||||
|
59 /*
|
||||||
|
60 * Enable and disable interrupts
|
||||||
|
61 */
|
||||||
|
62 .macro disable_irq
|
||||||
|
63 msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
64 .endm
|
||||||
|
65
|
||||||
|
66 .macro enable_irq
|
||||||
|
67 msr cpsr_c, #SVC_MODE
|
||||||
|
68 .endm
|
||||||
|
69
|
||||||
|
70 /*
|
||||||
|
71 * Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
72 * assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
73 */
|
||||||
|
74 .macro save_and_disable_irqs, oldcpsr
|
||||||
|
75 mrs \oldcpsr, cpsr
|
||||||
|
76 disable_irq
|
||||||
|
77 .endm
|
||||||
|
78
|
||||||
|
79 /*
|
||||||
|
80 * Restore interrupt state previously stored in a register. We don't
|
||||||
|
81 * guarantee that this will preserve the flags.
|
||||||
|
82 */
|
||||||
|
83 .macro restore_irqs, oldcpsr
|
||||||
|
84 msr cpsr_c, \oldcpsr
|
||||||
|
85 .endm
|
||||||
|
86
|
||||||
|
87 /*
|
||||||
|
88 * These two are used to save LR/restore PC over a user-based access.
|
||||||
|
89 * The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
90 * architecture, we can safely ignore this requirement.
|
||||||
|
91 */
|
||||||
|
92 .macro save_lr
|
||||||
|
93 .endm
|
||||||
|
94
|
||||||
|
95 .macro restore_pc
|
||||||
|
96 mov pc, lr
|
||||||
|
97 .endm
|
||||||
|
98 ...
|
||||||
|
12 #include "bitops.h"
|
||||||
|
1 .macro bitop, instr
|
||||||
|
2 and r2, r0, #7
|
||||||
|
3 mov r3, #1
|
||||||
|
4 mov r3, r3, lsl r2
|
||||||
|
5 save_and_disable_irqs ip
|
||||||
|
6 ldrb r2, [r1, r0, lsr #3]
|
||||||
|
7 \instr r2, r2, r3
|
||||||
|
8 strb r2, [r1, r0, lsr #3]
|
||||||
|
9 restore_irqs ip
|
||||||
|
10 mov pc, lr
|
||||||
|
11 .endm
|
||||||
|
12
|
||||||
|
13 /**
|
||||||
|
14 * testop - implement a test_and_xxx_bit operation.
|
||||||
|
15 * @instr: operational instruction
|
||||||
|
16 * @store: store instruction
|
||||||
|
17 *
|
||||||
|
18 * Note: we can trivially conditionalise the store instruction
|
||||||
|
19 * to avoid dirting the data cache.
|
||||||
|
20 */
|
||||||
|
21 .macro testop, instr, store
|
||||||
|
22 add r1, r1, r0, lsr #3
|
||||||
|
23 and r3, r0, #7
|
||||||
|
24 mov r0, #1
|
||||||
|
25 save_and_disable_irqs ip
|
||||||
|
26 ldrb r2, [r1]
|
||||||
|
27 tst r2, r0, lsl r3
|
||||||
|
28 \instr r2, r2, r0, lsl r3
|
||||||
|
29 \store r2, [r1]
|
||||||
|
30 restore_irqs ip
|
||||||
|
31 moveq r0, #0
|
||||||
|
32 mov pc, lr
|
||||||
|
33 .endm
|
||||||
|
34 ...
|
||||||
|
13 .text
|
||||||
|
14
|
||||||
|
15 /*
|
||||||
|
16 * Purpose : Function to set a bit
|
||||||
|
17 * Prototype: int set_bit(int bit, void *addr)
|
||||||
|
18 */
|
||||||
|
19 ENTRY(_set_bit_be)
|
||||||
|
20 0000 180020E2 eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
21 ENTRY(_set_bit_le)
|
||||||
|
22 0004 072000E2 bitop orr
|
||||||
|
22 0130A0E3
|
||||||
|
22 1332A0E1
|
||||||
|
22 00C00FE1
|
||||||
|
22 93F021E3
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/setbit.S:19 .text:00000000 _set_bit_be
|
||||||
|
lib/setbit.S:19 .text:00000000 $a
|
||||||
|
lib/setbit.S:21 .text:00000004 _set_bit_le
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
41
firmware/lib/string.c
Normal file
41
firmware/lib/string.c
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
* linux/lib/string.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* stupid library routines.. The optimized versions should generally be found
|
||||||
|
* as inline code in <asm-xx/string.h>
|
||||||
|
*
|
||||||
|
* These are buggy as well..
|
||||||
|
*
|
||||||
|
* * Fri Jun 25 1999, Ingo Oeser <ioe@informatik.tu-chemnitz.de>
|
||||||
|
* - Added strsep() which will replace strtok() soon (because strsep() is
|
||||||
|
* reentrant and should be faster). Use only strsep() in new code, please.
|
||||||
|
*
|
||||||
|
* * Sat Feb 09 2002, Jason Thomas <jason@topic.com.au>,
|
||||||
|
* Matthew Hawkins <matt@mh.dropbear.id.au>
|
||||||
|
* - Kissed strtok() goodbye
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <asm/ctype.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __HAVE_ARCH_STRNLEN
|
||||||
|
/**
|
||||||
|
* strnlen - Find the length of a length-limited string
|
||||||
|
* @s: The string to be sized
|
||||||
|
* @count: The maximum number of bytes to search
|
||||||
|
*/
|
||||||
|
size_t strnlen(const char *s, size_t count)
|
||||||
|
{
|
||||||
|
const char *sc;
|
||||||
|
|
||||||
|
for (sc = s; count-- && *sc != '\0'; ++sc)
|
||||||
|
/* nothing */;
|
||||||
|
return sc - s;
|
||||||
|
}
|
||||||
|
#endif
|
94
firmware/lib/string.lst
Normal file
94
firmware/lib/string.lst
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
1 .cpu arm7tdmi
|
||||||
|
2 .fpu softvfp
|
||||||
|
3 .eabi_attribute 20, 1
|
||||||
|
4 .eabi_attribute 21, 1
|
||||||
|
5 .eabi_attribute 23, 3
|
||||||
|
6 .eabi_attribute 24, 1
|
||||||
|
7 .eabi_attribute 25, 1
|
||||||
|
8 .eabi_attribute 26, 1
|
||||||
|
9 .eabi_attribute 30, 4
|
||||||
|
10 .eabi_attribute 18, 4
|
||||||
|
11 .file "string.c"
|
||||||
|
19 .Ltext0:
|
||||||
|
20 .cfi_sections .debug_frame
|
||||||
|
21 .align 2
|
||||||
|
22 .global strnlen
|
||||||
|
24 strnlen:
|
||||||
|
25 .LFB2:
|
||||||
|
26 .file 1 "lib/string.c"
|
||||||
|
1:lib/string.c **** /*
|
||||||
|
2:lib/string.c **** * linux/lib/string.c
|
||||||
|
3:lib/string.c **** *
|
||||||
|
4:lib/string.c **** * Copyright (C) 1991, 1992 Linus Torvalds
|
||||||
|
5:lib/string.c **** */
|
||||||
|
6:lib/string.c ****
|
||||||
|
7:lib/string.c **** /*
|
||||||
|
8:lib/string.c **** * stupid library routines.. The optimized versions should generally be found
|
||||||
|
9:lib/string.c **** * as inline code in <asm-xx/string.h>
|
||||||
|
10:lib/string.c **** *
|
||||||
|
11:lib/string.c **** * These are buggy as well..
|
||||||
|
12:lib/string.c **** *
|
||||||
|
13:lib/string.c **** * * Fri Jun 25 1999, Ingo Oeser <ioe@informatik.tu-chemnitz.de>
|
||||||
|
14:lib/string.c **** * - Added strsep() which will replace strtok() soon (because strsep() is
|
||||||
|
15:lib/string.c **** * reentrant and should be faster). Use only strsep() in new code, please.
|
||||||
|
16:lib/string.c **** *
|
||||||
|
17:lib/string.c **** * * Sat Feb 09 2002, Jason Thomas <jason@topic.com.au>,
|
||||||
|
18:lib/string.c **** * Matthew Hawkins <matt@mh.dropbear.id.au>
|
||||||
|
19:lib/string.c **** * - Kissed strtok() goodbye
|
||||||
|
20:lib/string.c **** */
|
||||||
|
21:lib/string.c ****
|
||||||
|
22:lib/string.c **** #include <sys/types.h>
|
||||||
|
23:lib/string.c **** #include <string.h>
|
||||||
|
24:lib/string.c **** #include <asm/ctype.h>
|
||||||
|
25:lib/string.c ****
|
||||||
|
26:lib/string.c ****
|
||||||
|
27:lib/string.c **** #ifndef __HAVE_ARCH_STRNLEN
|
||||||
|
28:lib/string.c **** /**
|
||||||
|
29:lib/string.c **** * strnlen - Find the length of a length-limited string
|
||||||
|
30:lib/string.c **** * @s: The string to be sized
|
||||||
|
31:lib/string.c **** * @count: The maximum number of bytes to search
|
||||||
|
32:lib/string.c **** */
|
||||||
|
33:lib/string.c **** size_t strnlen(const char *s, size_t count)
|
||||||
|
34:lib/string.c **** {
|
||||||
|
27 .loc 1 34 0
|
||||||
|
28 .cfi_startproc
|
||||||
|
29 @ Function supports interworking.
|
||||||
|
30 @ args = 0, pretend = 0, frame = 0
|
||||||
|
31 @ frame_needed = 0, uses_anonymous_args = 0
|
||||||
|
32 @ link register save eliminated.
|
||||||
|
33 .LVL0:
|
||||||
|
34 .loc 1 34 0
|
||||||
|
35 0000 0030A0E1 mov r3, r0
|
||||||
|
36 .LVL1:
|
||||||
|
37 .L3:
|
||||||
|
35:lib/string.c **** const char *sc;
|
||||||
|
36:lib/string.c ****
|
||||||
|
37:lib/string.c **** for (sc = s; count-- && *sc != '\0'; ++sc)
|
||||||
|
38 .loc 1 37 0 discriminator 1
|
||||||
|
39 0004 011051E2 subs r1, r1, #1
|
||||||
|
40 0008 0320A0E1 mov r2, r3
|
||||||
|
41 .LVL2:
|
||||||
|
42 000c 0200003A bcc .L2
|
||||||
|
43 .loc 1 37 0 is_stmt 0 discriminator 2
|
||||||
|
44 0010 01C0D3E4 ldrb ip, [r3], #1 @ zero_extendqisi2
|
||||||
|
45 .LVL3:
|
||||||
|
46 0014 00005CE3 cmp ip, #0
|
||||||
|
47 0018 F9FFFF1A bne .L3
|
||||||
|
48 .L2:
|
||||||
|
38:lib/string.c **** /* nothing */;
|
||||||
|
39:lib/string.c **** return sc - s;
|
||||||
|
40:lib/string.c **** }
|
||||||
|
49 .loc 1 40 0 is_stmt 1
|
||||||
|
50 001c 020060E0 rsb r0, r0, r2
|
||||||
|
51 .LVL4:
|
||||||
|
52 0020 1EFF2FE1 bx lr
|
||||||
|
53 .cfi_endproc
|
||||||
|
54 .LFE2:
|
||||||
|
56 .Letext0:
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
*ABS*:00000000 string.c
|
||||||
|
C:\Users\netz\AppData\Local\Temp\cc4Ne3c1.s:21 .text:00000000 $a
|
||||||
|
C:\Users\netz\AppData\Local\Temp\cc4Ne3c1.s:24 .text:00000000 strnlen
|
||||||
|
.debug_frame:00000010 $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
18
firmware/lib/testchangebit.S
Normal file
18
firmware/lib/testchangebit.S
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/testchangebit.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 1995-1996 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
#include "bitops.h"
|
||||||
|
.text
|
||||||
|
|
||||||
|
ENTRY(_test_and_change_bit_be)
|
||||||
|
eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
ENTRY(_test_and_change_bit_le)
|
||||||
|
testop eor, strb
|
166
firmware/lib/testchangebit.lst
Normal file
166
firmware/lib/testchangebit.lst
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
1 # 1 "lib/testchangebit.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/testchangebit.S
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1995-1996 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 */
|
||||||
|
10 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
11 #include <asm/assembler.h>
|
||||||
|
1 /*
|
||||||
|
2 * linux/include/asm-arm/assembler.h
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1996-2000 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 *
|
||||||
|
10 * This file contains arm architecture specific defines
|
||||||
|
11 * for the different processors.
|
||||||
|
12 *
|
||||||
|
13 * Do not include any C declarations in this file - it is included by
|
||||||
|
14 * assembler source.
|
||||||
|
15 */
|
||||||
|
16 #ifndef __ASSEMBLY__
|
||||||
|
17 #error "Only include this from assembly code"
|
||||||
|
18 #endif
|
||||||
|
19
|
||||||
|
20 #include <asm/ptrace.h>
|
||||||
|
1 /*
|
||||||
|
21
|
||||||
|
22 #define pull lsl
|
||||||
|
23 #define push lsr
|
||||||
|
24 #define get_byte_0 lsr #24
|
||||||
|
25 #define get_byte_1 lsr #16
|
||||||
|
26 #define get_byte_2 lsr #8
|
||||||
|
27 #define get_byte_3 lsl #0
|
||||||
|
28 #define put_byte_0 lsl #24
|
||||||
|
29 #define put_byte_1 lsl #16
|
||||||
|
30 #define put_byte_2 lsl #8
|
||||||
|
31 #define put_byte_3 lsl #0
|
||||||
|
32
|
||||||
|
33 #define PLD(code...)
|
||||||
|
34
|
||||||
|
35 #define MODE_USR USR_MODE
|
||||||
|
36 #define MODE_FIQ FIQ_MODE
|
||||||
|
37 #define MODE_IRQ IRQ_MODE
|
||||||
|
38 #define MODE_SVC SVC_MODE
|
||||||
|
39
|
||||||
|
40 #define DEFAULT_FIQ MODE_FIQ
|
||||||
|
41
|
||||||
|
42 /*
|
||||||
|
43 * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
44 */
|
||||||
|
45 #ifdef __STDC__
|
||||||
|
46 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
47 ldm##cond base,reglist
|
||||||
|
48 #else
|
||||||
|
49 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
50 ldm/**/cond base,reglist
|
||||||
|
51 #endif
|
||||||
|
52
|
||||||
|
53 /*
|
||||||
|
54 * Build a return instruction for this processor type.
|
||||||
|
55 */
|
||||||
|
56 #define RETINSTR(instr, regs...)\
|
||||||
|
57 instr regs
|
||||||
|
58
|
||||||
|
59 /*
|
||||||
|
60 * Enable and disable interrupts
|
||||||
|
61 */
|
||||||
|
62 .macro disable_irq
|
||||||
|
63 msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
64 .endm
|
||||||
|
65
|
||||||
|
66 .macro enable_irq
|
||||||
|
67 msr cpsr_c, #SVC_MODE
|
||||||
|
68 .endm
|
||||||
|
69
|
||||||
|
70 /*
|
||||||
|
71 * Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
72 * assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
73 */
|
||||||
|
74 .macro save_and_disable_irqs, oldcpsr
|
||||||
|
75 mrs \oldcpsr, cpsr
|
||||||
|
76 disable_irq
|
||||||
|
77 .endm
|
||||||
|
78
|
||||||
|
79 /*
|
||||||
|
80 * Restore interrupt state previously stored in a register. We don't
|
||||||
|
81 * guarantee that this will preserve the flags.
|
||||||
|
82 */
|
||||||
|
83 .macro restore_irqs, oldcpsr
|
||||||
|
84 msr cpsr_c, \oldcpsr
|
||||||
|
85 .endm
|
||||||
|
86
|
||||||
|
87 /*
|
||||||
|
88 * These two are used to save LR/restore PC over a user-based access.
|
||||||
|
89 * The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
90 * architecture, we can safely ignore this requirement.
|
||||||
|
91 */
|
||||||
|
92 .macro save_lr
|
||||||
|
93 .endm
|
||||||
|
94
|
||||||
|
95 .macro restore_pc
|
||||||
|
96 mov pc, lr
|
||||||
|
97 .endm
|
||||||
|
98 ...
|
||||||
|
12 #include "bitops.h"
|
||||||
|
1 .macro bitop, instr
|
||||||
|
2 and r2, r0, #7
|
||||||
|
3 mov r3, #1
|
||||||
|
4 mov r3, r3, lsl r2
|
||||||
|
5 save_and_disable_irqs ip
|
||||||
|
6 ldrb r2, [r1, r0, lsr #3]
|
||||||
|
7 \instr r2, r2, r3
|
||||||
|
8 strb r2, [r1, r0, lsr #3]
|
||||||
|
9 restore_irqs ip
|
||||||
|
10 mov pc, lr
|
||||||
|
11 .endm
|
||||||
|
12
|
||||||
|
13 /**
|
||||||
|
14 * testop - implement a test_and_xxx_bit operation.
|
||||||
|
15 * @instr: operational instruction
|
||||||
|
16 * @store: store instruction
|
||||||
|
17 *
|
||||||
|
18 * Note: we can trivially conditionalise the store instruction
|
||||||
|
19 * to avoid dirting the data cache.
|
||||||
|
20 */
|
||||||
|
21 .macro testop, instr, store
|
||||||
|
22 add r1, r1, r0, lsr #3
|
||||||
|
23 and r3, r0, #7
|
||||||
|
24 mov r0, #1
|
||||||
|
25 save_and_disable_irqs ip
|
||||||
|
26 ldrb r2, [r1]
|
||||||
|
27 tst r2, r0, lsl r3
|
||||||
|
28 \instr r2, r2, r0, lsl r3
|
||||||
|
29 \store r2, [r1]
|
||||||
|
30 restore_irqs ip
|
||||||
|
31 moveq r0, #0
|
||||||
|
32 mov pc, lr
|
||||||
|
33 .endm
|
||||||
|
34 ...
|
||||||
|
13 .text
|
||||||
|
14
|
||||||
|
15 ENTRY(_test_and_change_bit_be)
|
||||||
|
16 0000 180020E2 eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
17 ENTRY(_test_and_change_bit_le)
|
||||||
|
18 0004 A01181E0 testop eor, strb
|
||||||
|
18 073000E2
|
||||||
|
18 0100A0E3
|
||||||
|
18 00C00FE1
|
||||||
|
18 93F021E3
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/testchangebit.S:15 .text:00000000 _test_and_change_bit_be
|
||||||
|
lib/testchangebit.S:15 .text:00000000 $a
|
||||||
|
lib/testchangebit.S:17 .text:00000004 _test_and_change_bit_le
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
18
firmware/lib/testclearbit.S
Normal file
18
firmware/lib/testclearbit.S
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/testclearbit.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 1995-1996 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
#include "bitops.h"
|
||||||
|
.text
|
||||||
|
|
||||||
|
ENTRY(_test_and_clear_bit_be)
|
||||||
|
eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
ENTRY(_test_and_clear_bit_le)
|
||||||
|
testop bicne, strneb
|
166
firmware/lib/testclearbit.lst
Normal file
166
firmware/lib/testclearbit.lst
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
1 # 1 "lib/testclearbit.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/testclearbit.S
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1995-1996 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 */
|
||||||
|
10 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
11 #include <asm/assembler.h>
|
||||||
|
1 /*
|
||||||
|
2 * linux/include/asm-arm/assembler.h
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1996-2000 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 *
|
||||||
|
10 * This file contains arm architecture specific defines
|
||||||
|
11 * for the different processors.
|
||||||
|
12 *
|
||||||
|
13 * Do not include any C declarations in this file - it is included by
|
||||||
|
14 * assembler source.
|
||||||
|
15 */
|
||||||
|
16 #ifndef __ASSEMBLY__
|
||||||
|
17 #error "Only include this from assembly code"
|
||||||
|
18 #endif
|
||||||
|
19
|
||||||
|
20 #include <asm/ptrace.h>
|
||||||
|
1 /*
|
||||||
|
21
|
||||||
|
22 #define pull lsl
|
||||||
|
23 #define push lsr
|
||||||
|
24 #define get_byte_0 lsr #24
|
||||||
|
25 #define get_byte_1 lsr #16
|
||||||
|
26 #define get_byte_2 lsr #8
|
||||||
|
27 #define get_byte_3 lsl #0
|
||||||
|
28 #define put_byte_0 lsl #24
|
||||||
|
29 #define put_byte_1 lsl #16
|
||||||
|
30 #define put_byte_2 lsl #8
|
||||||
|
31 #define put_byte_3 lsl #0
|
||||||
|
32
|
||||||
|
33 #define PLD(code...)
|
||||||
|
34
|
||||||
|
35 #define MODE_USR USR_MODE
|
||||||
|
36 #define MODE_FIQ FIQ_MODE
|
||||||
|
37 #define MODE_IRQ IRQ_MODE
|
||||||
|
38 #define MODE_SVC SVC_MODE
|
||||||
|
39
|
||||||
|
40 #define DEFAULT_FIQ MODE_FIQ
|
||||||
|
41
|
||||||
|
42 /*
|
||||||
|
43 * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
44 */
|
||||||
|
45 #ifdef __STDC__
|
||||||
|
46 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
47 ldm##cond base,reglist
|
||||||
|
48 #else
|
||||||
|
49 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
50 ldm/**/cond base,reglist
|
||||||
|
51 #endif
|
||||||
|
52
|
||||||
|
53 /*
|
||||||
|
54 * Build a return instruction for this processor type.
|
||||||
|
55 */
|
||||||
|
56 #define RETINSTR(instr, regs...)\
|
||||||
|
57 instr regs
|
||||||
|
58
|
||||||
|
59 /*
|
||||||
|
60 * Enable and disable interrupts
|
||||||
|
61 */
|
||||||
|
62 .macro disable_irq
|
||||||
|
63 msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
64 .endm
|
||||||
|
65
|
||||||
|
66 .macro enable_irq
|
||||||
|
67 msr cpsr_c, #SVC_MODE
|
||||||
|
68 .endm
|
||||||
|
69
|
||||||
|
70 /*
|
||||||
|
71 * Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
72 * assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
73 */
|
||||||
|
74 .macro save_and_disable_irqs, oldcpsr
|
||||||
|
75 mrs \oldcpsr, cpsr
|
||||||
|
76 disable_irq
|
||||||
|
77 .endm
|
||||||
|
78
|
||||||
|
79 /*
|
||||||
|
80 * Restore interrupt state previously stored in a register. We don't
|
||||||
|
81 * guarantee that this will preserve the flags.
|
||||||
|
82 */
|
||||||
|
83 .macro restore_irqs, oldcpsr
|
||||||
|
84 msr cpsr_c, \oldcpsr
|
||||||
|
85 .endm
|
||||||
|
86
|
||||||
|
87 /*
|
||||||
|
88 * These two are used to save LR/restore PC over a user-based access.
|
||||||
|
89 * The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
90 * architecture, we can safely ignore this requirement.
|
||||||
|
91 */
|
||||||
|
92 .macro save_lr
|
||||||
|
93 .endm
|
||||||
|
94
|
||||||
|
95 .macro restore_pc
|
||||||
|
96 mov pc, lr
|
||||||
|
97 .endm
|
||||||
|
98 ...
|
||||||
|
12 #include "bitops.h"
|
||||||
|
1 .macro bitop, instr
|
||||||
|
2 and r2, r0, #7
|
||||||
|
3 mov r3, #1
|
||||||
|
4 mov r3, r3, lsl r2
|
||||||
|
5 save_and_disable_irqs ip
|
||||||
|
6 ldrb r2, [r1, r0, lsr #3]
|
||||||
|
7 \instr r2, r2, r3
|
||||||
|
8 strb r2, [r1, r0, lsr #3]
|
||||||
|
9 restore_irqs ip
|
||||||
|
10 mov pc, lr
|
||||||
|
11 .endm
|
||||||
|
12
|
||||||
|
13 /**
|
||||||
|
14 * testop - implement a test_and_xxx_bit operation.
|
||||||
|
15 * @instr: operational instruction
|
||||||
|
16 * @store: store instruction
|
||||||
|
17 *
|
||||||
|
18 * Note: we can trivially conditionalise the store instruction
|
||||||
|
19 * to avoid dirting the data cache.
|
||||||
|
20 */
|
||||||
|
21 .macro testop, instr, store
|
||||||
|
22 add r1, r1, r0, lsr #3
|
||||||
|
23 and r3, r0, #7
|
||||||
|
24 mov r0, #1
|
||||||
|
25 save_and_disable_irqs ip
|
||||||
|
26 ldrb r2, [r1]
|
||||||
|
27 tst r2, r0, lsl r3
|
||||||
|
28 \instr r2, r2, r0, lsl r3
|
||||||
|
29 \store r2, [r1]
|
||||||
|
30 restore_irqs ip
|
||||||
|
31 moveq r0, #0
|
||||||
|
32 mov pc, lr
|
||||||
|
33 .endm
|
||||||
|
34 ...
|
||||||
|
13 .text
|
||||||
|
14
|
||||||
|
15 ENTRY(_test_and_clear_bit_be)
|
||||||
|
16 0000 180020E2 eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
17 ENTRY(_test_and_clear_bit_le)
|
||||||
|
18 0004 A01181E0 testop bicne, strneb
|
||||||
|
18 073000E2
|
||||||
|
18 0100A0E3
|
||||||
|
18 00C00FE1
|
||||||
|
18 93F021E3
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/testclearbit.S:15 .text:00000000 _test_and_clear_bit_be
|
||||||
|
lib/testclearbit.S:15 .text:00000000 $a
|
||||||
|
lib/testclearbit.S:17 .text:00000004 _test_and_clear_bit_le
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
18
firmware/lib/testsetbit.S
Normal file
18
firmware/lib/testsetbit.S
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* linux/arch/arm/lib/testsetbit.S
|
||||||
|
*
|
||||||
|
* Copyright (C) 1995-1996 Russell King
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
#include <asm/linkage.h>
|
||||||
|
#include <asm/assembler.h>
|
||||||
|
#include "bitops.h"
|
||||||
|
.text
|
||||||
|
|
||||||
|
ENTRY(_test_and_set_bit_be)
|
||||||
|
eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
ENTRY(_test_and_set_bit_le)
|
||||||
|
testop orreq, streqb
|
166
firmware/lib/testsetbit.lst
Normal file
166
firmware/lib/testsetbit.lst
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
1 # 1 "lib/testsetbit.S"
|
||||||
|
1 /*
|
||||||
|
0
|
||||||
|
0
|
||||||
|
2 * linux/arch/arm/lib/testsetbit.S
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1995-1996 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 */
|
||||||
|
10 #include <asm/linkage.h>
|
||||||
|
1 #ifndef __ASM_LINKAGE_H
|
||||||
|
11 #include <asm/assembler.h>
|
||||||
|
1 /*
|
||||||
|
2 * linux/include/asm-arm/assembler.h
|
||||||
|
3 *
|
||||||
|
4 * Copyright (C) 1996-2000 Russell King
|
||||||
|
5 *
|
||||||
|
6 * This program is free software; you can redistribute it and/or modify
|
||||||
|
7 * it under the terms of the GNU General Public License version 2 as
|
||||||
|
8 * published by the Free Software Foundation.
|
||||||
|
9 *
|
||||||
|
10 * This file contains arm architecture specific defines
|
||||||
|
11 * for the different processors.
|
||||||
|
12 *
|
||||||
|
13 * Do not include any C declarations in this file - it is included by
|
||||||
|
14 * assembler source.
|
||||||
|
15 */
|
||||||
|
16 #ifndef __ASSEMBLY__
|
||||||
|
17 #error "Only include this from assembly code"
|
||||||
|
18 #endif
|
||||||
|
19
|
||||||
|
20 #include <asm/ptrace.h>
|
||||||
|
1 /*
|
||||||
|
21
|
||||||
|
22 #define pull lsl
|
||||||
|
23 #define push lsr
|
||||||
|
24 #define get_byte_0 lsr #24
|
||||||
|
25 #define get_byte_1 lsr #16
|
||||||
|
26 #define get_byte_2 lsr #8
|
||||||
|
27 #define get_byte_3 lsl #0
|
||||||
|
28 #define put_byte_0 lsl #24
|
||||||
|
29 #define put_byte_1 lsl #16
|
||||||
|
30 #define put_byte_2 lsl #8
|
||||||
|
31 #define put_byte_3 lsl #0
|
||||||
|
32
|
||||||
|
33 #define PLD(code...)
|
||||||
|
34
|
||||||
|
35 #define MODE_USR USR_MODE
|
||||||
|
36 #define MODE_FIQ FIQ_MODE
|
||||||
|
37 #define MODE_IRQ IRQ_MODE
|
||||||
|
38 #define MODE_SVC SVC_MODE
|
||||||
|
39
|
||||||
|
40 #define DEFAULT_FIQ MODE_FIQ
|
||||||
|
41
|
||||||
|
42 /*
|
||||||
|
43 * LOADREGS - ldm with PC in register list (eg, ldmfd sp!, {pc})
|
||||||
|
44 */
|
||||||
|
45 #ifdef __STDC__
|
||||||
|
46 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
47 ldm##cond base,reglist
|
||||||
|
48 #else
|
||||||
|
49 #define LOADREGS(cond, base, reglist...)\
|
||||||
|
50 ldm/**/cond base,reglist
|
||||||
|
51 #endif
|
||||||
|
52
|
||||||
|
53 /*
|
||||||
|
54 * Build a return instruction for this processor type.
|
||||||
|
55 */
|
||||||
|
56 #define RETINSTR(instr, regs...)\
|
||||||
|
57 instr regs
|
||||||
|
58
|
||||||
|
59 /*
|
||||||
|
60 * Enable and disable interrupts
|
||||||
|
61 */
|
||||||
|
62 .macro disable_irq
|
||||||
|
63 msr cpsr_c, #PSR_I_BIT | SVC_MODE
|
||||||
|
64 .endm
|
||||||
|
65
|
||||||
|
66 .macro enable_irq
|
||||||
|
67 msr cpsr_c, #SVC_MODE
|
||||||
|
68 .endm
|
||||||
|
69
|
||||||
|
70 /*
|
||||||
|
71 * Save the current IRQ state and disable IRQs. Note that this macro
|
||||||
|
72 * assumes FIQs are enabled, and that the processor is in SVC mode.
|
||||||
|
73 */
|
||||||
|
74 .macro save_and_disable_irqs, oldcpsr
|
||||||
|
75 mrs \oldcpsr, cpsr
|
||||||
|
76 disable_irq
|
||||||
|
77 .endm
|
||||||
|
78
|
||||||
|
79 /*
|
||||||
|
80 * Restore interrupt state previously stored in a register. We don't
|
||||||
|
81 * guarantee that this will preserve the flags.
|
||||||
|
82 */
|
||||||
|
83 .macro restore_irqs, oldcpsr
|
||||||
|
84 msr cpsr_c, \oldcpsr
|
||||||
|
85 .endm
|
||||||
|
86
|
||||||
|
87 /*
|
||||||
|
88 * These two are used to save LR/restore PC over a user-based access.
|
||||||
|
89 * The old 26-bit architecture requires that we do. On 32-bit
|
||||||
|
90 * architecture, we can safely ignore this requirement.
|
||||||
|
91 */
|
||||||
|
92 .macro save_lr
|
||||||
|
93 .endm
|
||||||
|
94
|
||||||
|
95 .macro restore_pc
|
||||||
|
96 mov pc, lr
|
||||||
|
97 .endm
|
||||||
|
98 ...
|
||||||
|
12 #include "bitops.h"
|
||||||
|
1 .macro bitop, instr
|
||||||
|
2 and r2, r0, #7
|
||||||
|
3 mov r3, #1
|
||||||
|
4 mov r3, r3, lsl r2
|
||||||
|
5 save_and_disable_irqs ip
|
||||||
|
6 ldrb r2, [r1, r0, lsr #3]
|
||||||
|
7 \instr r2, r2, r3
|
||||||
|
8 strb r2, [r1, r0, lsr #3]
|
||||||
|
9 restore_irqs ip
|
||||||
|
10 mov pc, lr
|
||||||
|
11 .endm
|
||||||
|
12
|
||||||
|
13 /**
|
||||||
|
14 * testop - implement a test_and_xxx_bit operation.
|
||||||
|
15 * @instr: operational instruction
|
||||||
|
16 * @store: store instruction
|
||||||
|
17 *
|
||||||
|
18 * Note: we can trivially conditionalise the store instruction
|
||||||
|
19 * to avoid dirting the data cache.
|
||||||
|
20 */
|
||||||
|
21 .macro testop, instr, store
|
||||||
|
22 add r1, r1, r0, lsr #3
|
||||||
|
23 and r3, r0, #7
|
||||||
|
24 mov r0, #1
|
||||||
|
25 save_and_disable_irqs ip
|
||||||
|
26 ldrb r2, [r1]
|
||||||
|
27 tst r2, r0, lsl r3
|
||||||
|
28 \instr r2, r2, r0, lsl r3
|
||||||
|
29 \store r2, [r1]
|
||||||
|
30 restore_irqs ip
|
||||||
|
31 moveq r0, #0
|
||||||
|
32 mov pc, lr
|
||||||
|
33 .endm
|
||||||
|
34 ...
|
||||||
|
13 .text
|
||||||
|
14
|
||||||
|
15 ENTRY(_test_and_set_bit_be)
|
||||||
|
16 0000 180020E2 eor r0, r0, #0x18 @ big endian byte ordering
|
||||||
|
17 ENTRY(_test_and_set_bit_le)
|
||||||
|
18 0004 A01181E0 testop orreq, streqb
|
||||||
|
18 073000E2
|
||||||
|
18 0100A0E3
|
||||||
|
18 00C00FE1
|
||||||
|
18 93F021E3
|
||||||
|
DEFINED SYMBOLS
|
||||||
|
lib/testsetbit.S:15 .text:00000000 _test_and_set_bit_be
|
||||||
|
lib/testsetbit.S:15 .text:00000000 $a
|
||||||
|
lib/testsetbit.S:17 .text:00000004 _test_and_set_bit_le
|
||||||
|
.debug_aranges:0000000c $d
|
||||||
|
|
||||||
|
NO UNDEFINED SYMBOLS
|
831
firmware/lib/vsprintf.c
Normal file
831
firmware/lib/vsprintf.c
Normal file
@ -0,0 +1,831 @@
|
|||||||
|
/*
|
||||||
|
* linux/lib/vsprintf.c
|
||||||
|
*
|
||||||
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* vsprintf.c -- Lars Wirzenius & Linus Torvalds. */
|
||||||
|
/*
|
||||||
|
* Wirzenius wrote this portably, Torvalds fucked it up :-)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fri Jul 13 2001 Crutcher Dunnavant <crutcher+kernel@datastacks.com>
|
||||||
|
* - changed to provide snprintf and vsnprintf functions
|
||||||
|
* So Feb 1 16:51:32 CET 2004 Juergen Quade <quade@hsnr.de>
|
||||||
|
* - scnprintf and vscnprintf
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <asm/ctype.h>
|
||||||
|
|
||||||
|
#include <asm/div64.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* simple_strtoul - convert a string to an unsigned long
|
||||||
|
* @cp: The start of the string
|
||||||
|
* @endp: A pointer to the end of the parsed string will be placed here
|
||||||
|
* @base: The number base to use
|
||||||
|
*/
|
||||||
|
unsigned long simple_strtoul(const char *cp,char **endp,unsigned int base)
|
||||||
|
{
|
||||||
|
unsigned long result = 0,value;
|
||||||
|
|
||||||
|
if (!base) {
|
||||||
|
base = 10;
|
||||||
|
if (*cp == '0') {
|
||||||
|
base = 8;
|
||||||
|
cp++;
|
||||||
|
if ((toupper(*cp) == 'X') && isxdigit(cp[1])) {
|
||||||
|
cp++;
|
||||||
|
base = 16;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (base == 16) {
|
||||||
|
if (cp[0] == '0' && toupper(cp[1]) == 'X')
|
||||||
|
cp += 2;
|
||||||
|
}
|
||||||
|
while (isxdigit(*cp) &&
|
||||||
|
(value = isdigit(*cp) ? *cp-'0' : toupper(*cp)-'A'+10) < base) {
|
||||||
|
result = result*base + value;
|
||||||
|
cp++;
|
||||||
|
}
|
||||||
|
if (endp)
|
||||||
|
*endp = (char *)cp;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* simple_strtol - convert a string to a signed long
|
||||||
|
* @cp: The start of the string
|
||||||
|
* @endp: A pointer to the end of the parsed string will be placed here
|
||||||
|
* @base: The number base to use
|
||||||
|
*/
|
||||||
|
long simple_strtol(const char *cp,char **endp,unsigned int base)
|
||||||
|
{
|
||||||
|
if(*cp=='-')
|
||||||
|
return -simple_strtoul(cp+1,endp,base);
|
||||||
|
return simple_strtoul(cp,endp,base);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* simple_strtoull - convert a string to an unsigned long long
|
||||||
|
* @cp: The start of the string
|
||||||
|
* @endp: A pointer to the end of the parsed string will be placed here
|
||||||
|
* @base: The number base to use
|
||||||
|
*/
|
||||||
|
unsigned long long simple_strtoull(const char *cp,char **endp,unsigned int base)
|
||||||
|
{
|
||||||
|
unsigned long long result = 0,value;
|
||||||
|
|
||||||
|
if (!base) {
|
||||||
|
base = 10;
|
||||||
|
if (*cp == '0') {
|
||||||
|
base = 8;
|
||||||
|
cp++;
|
||||||
|
if ((toupper(*cp) == 'X') && isxdigit(cp[1])) {
|
||||||
|
cp++;
|
||||||
|
base = 16;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (base == 16) {
|
||||||
|
if (cp[0] == '0' && toupper(cp[1]) == 'X')
|
||||||
|
cp += 2;
|
||||||
|
}
|
||||||
|
while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp)
|
||||||
|
? toupper(*cp) : *cp)-'A'+10) < base) {
|
||||||
|
result = result*base + value;
|
||||||
|
cp++;
|
||||||
|
}
|
||||||
|
if (endp)
|
||||||
|
*endp = (char *)cp;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* simple_strtoll - convert a string to a signed long long
|
||||||
|
* @cp: The start of the string
|
||||||
|
* @endp: A pointer to the end of the parsed string will be placed here
|
||||||
|
* @base: The number base to use
|
||||||
|
*/
|
||||||
|
long long simple_strtoll(const char *cp,char **endp,unsigned int base)
|
||||||
|
{
|
||||||
|
if(*cp=='-')
|
||||||
|
return -simple_strtoull(cp+1,endp,base);
|
||||||
|
return simple_strtoull(cp,endp,base);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int skip_atoi(const char **s)
|
||||||
|
{
|
||||||
|
int i=0;
|
||||||
|
|
||||||
|
while (isdigit(**s))
|
||||||
|
i = i*10 + *((*s)++) - '0';
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define ZEROPAD 1 /* pad with zero */
|
||||||
|
#define SIGN 2 /* unsigned/signed long */
|
||||||
|
#define PLUS 4 /* show plus */
|
||||||
|
#define SPACE 8 /* space if plus */
|
||||||
|
#define LEFT 16 /* left justified */
|
||||||
|
#define SPECIAL 32 /* 0x */
|
||||||
|
#define LARGE 64 /* use 'ABCDEF' instead of 'abcdef' */
|
||||||
|
|
||||||
|
static char * number(char * buf, char * end, unsigned long long num, int base, int size, int precision, int type)
|
||||||
|
{
|
||||||
|
char c,sign,tmp[66];
|
||||||
|
const char *digits;
|
||||||
|
static const char small_digits[] = "0123456789abcdefghijklmnopqrstuvwxyz";
|
||||||
|
static const char large_digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||||
|
int i;
|
||||||
|
|
||||||
|
digits = (type & LARGE) ? large_digits : small_digits;
|
||||||
|
if (type & LEFT)
|
||||||
|
type &= ~ZEROPAD;
|
||||||
|
if (base < 2 || base > 36)
|
||||||
|
return NULL;
|
||||||
|
c = (type & ZEROPAD) ? '0' : ' ';
|
||||||
|
sign = 0;
|
||||||
|
if (type & SIGN) {
|
||||||
|
if ((signed long long) num < 0) {
|
||||||
|
sign = '-';
|
||||||
|
num = - (signed long long) num;
|
||||||
|
size--;
|
||||||
|
} else if (type & PLUS) {
|
||||||
|
sign = '+';
|
||||||
|
size--;
|
||||||
|
} else if (type & SPACE) {
|
||||||
|
sign = ' ';
|
||||||
|
size--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (type & SPECIAL) {
|
||||||
|
if (base == 16)
|
||||||
|
size -= 2;
|
||||||
|
else if (base == 8)
|
||||||
|
size--;
|
||||||
|
}
|
||||||
|
i = 0;
|
||||||
|
if (num == 0)
|
||||||
|
tmp[i++]='0';
|
||||||
|
else while (num != 0)
|
||||||
|
tmp[i++] = digits[do_div(num,base)];
|
||||||
|
if (i > precision)
|
||||||
|
precision = i;
|
||||||
|
size -= precision;
|
||||||
|
if (!(type&(ZEROPAD+LEFT))) {
|
||||||
|
while(size-->0) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = ' ';
|
||||||
|
++buf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (sign) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = sign;
|
||||||
|
++buf;
|
||||||
|
}
|
||||||
|
if (type & SPECIAL) {
|
||||||
|
if (base==8) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = '0';
|
||||||
|
++buf;
|
||||||
|
} else if (base==16) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = '0';
|
||||||
|
++buf;
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = digits[33];
|
||||||
|
++buf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!(type & LEFT)) {
|
||||||
|
while (size-- > 0) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = c;
|
||||||
|
++buf;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (i < precision--) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = '0';
|
||||||
|
++buf;
|
||||||
|
}
|
||||||
|
while (i-- > 0) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = tmp[i];
|
||||||
|
++buf;
|
||||||
|
}
|
||||||
|
while (size-- > 0) {
|
||||||
|
if (buf <= end)
|
||||||
|
*buf = ' ';
|
||||||
|
++buf;
|
||||||
|
}
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vsnprintf - Format a string and place it in a buffer
|
||||||
|
* @buf: The buffer to place the result into
|
||||||
|
* @size: The size of the buffer, including the trailing null space
|
||||||
|
* @fmt: The format string to use
|
||||||
|
* @args: Arguments for the format string
|
||||||
|
*
|
||||||
|
* The return value is the number of characters which would
|
||||||
|
* be generated for the given input, excluding the trailing
|
||||||
|
* '\0', as per ISO C99. If you want to have the exact
|
||||||
|
* number of characters written into @buf as return value
|
||||||
|
* (not including the trailing '\0'), use vscnprintf. If the
|
||||||
|
* return is greater than or equal to @size, the resulting
|
||||||
|
* string is truncated.
|
||||||
|
*
|
||||||
|
* Call this function if you are already dealing with a va_list.
|
||||||
|
* You probably want snprintf instead.
|
||||||
|
*/
|
||||||
|
int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
unsigned long long num;
|
||||||
|
int i, base;
|
||||||
|
char *str, *end, c;
|
||||||
|
const char *s;
|
||||||
|
|
||||||
|
int flags; /* flags to number() */
|
||||||
|
|
||||||
|
int field_width; /* width of output field */
|
||||||
|
int precision; /* min. # of digits for integers; max
|
||||||
|
number of chars for from string */
|
||||||
|
int qualifier; /* 'h', 'l', or 'L' for integer fields */
|
||||||
|
/* 'z' support added 23/7/1999 S.H. */
|
||||||
|
/* 'z' changed to 'Z' --davidm 1/25/99 */
|
||||||
|
/* 't' added for ptrdiff_t */
|
||||||
|
|
||||||
|
/* Reject out-of-range values early */
|
||||||
|
if ((int) size < 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
str = buf;
|
||||||
|
end = buf + size - 1;
|
||||||
|
|
||||||
|
if (end < buf - 1) {
|
||||||
|
end = ((void *) -1);
|
||||||
|
size = end - buf + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; *fmt ; ++fmt) {
|
||||||
|
if (*fmt != '%') {
|
||||||
|
if (str <= end)
|
||||||
|
*str = *fmt;
|
||||||
|
++str;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* process flags */
|
||||||
|
flags = 0;
|
||||||
|
repeat:
|
||||||
|
++fmt; /* this also skips first '%' */
|
||||||
|
switch (*fmt) {
|
||||||
|
case '-': flags |= LEFT; goto repeat;
|
||||||
|
case '+': flags |= PLUS; goto repeat;
|
||||||
|
case ' ': flags |= SPACE; goto repeat;
|
||||||
|
case '#': flags |= SPECIAL; goto repeat;
|
||||||
|
case '0': flags |= ZEROPAD; goto repeat;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* get field width */
|
||||||
|
field_width = -1;
|
||||||
|
if (isdigit(*fmt))
|
||||||
|
field_width = skip_atoi(&fmt);
|
||||||
|
else if (*fmt == '*') {
|
||||||
|
++fmt;
|
||||||
|
/* it's the next argument */
|
||||||
|
field_width = va_arg(args, int);
|
||||||
|
if (field_width < 0) {
|
||||||
|
field_width = -field_width;
|
||||||
|
flags |= LEFT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* get the precision */
|
||||||
|
precision = -1;
|
||||||
|
if (*fmt == '.') {
|
||||||
|
++fmt;
|
||||||
|
if (isdigit(*fmt))
|
||||||
|
precision = skip_atoi(&fmt);
|
||||||
|
else if (*fmt == '*') {
|
||||||
|
++fmt;
|
||||||
|
/* it's the next argument */
|
||||||
|
precision = va_arg(args, int);
|
||||||
|
}
|
||||||
|
if (precision < 0)
|
||||||
|
precision = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* get the conversion qualifier */
|
||||||
|
qualifier = -1;
|
||||||
|
if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' ||
|
||||||
|
*fmt =='Z' || *fmt == 'z' || *fmt == 't') {
|
||||||
|
qualifier = *fmt;
|
||||||
|
++fmt;
|
||||||
|
if (qualifier == 'l' && *fmt == 'l') {
|
||||||
|
qualifier = 'L';
|
||||||
|
++fmt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* default base */
|
||||||
|
base = 10;
|
||||||
|
|
||||||
|
switch (*fmt) {
|
||||||
|
case 'c':
|
||||||
|
if (!(flags & LEFT)) {
|
||||||
|
while (--field_width > 0) {
|
||||||
|
if (str <= end)
|
||||||
|
*str = ' ';
|
||||||
|
++str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
c = (unsigned char) va_arg(args, int);
|
||||||
|
if (str <= end)
|
||||||
|
*str = c;
|
||||||
|
++str;
|
||||||
|
while (--field_width > 0) {
|
||||||
|
if (str <= end)
|
||||||
|
*str = ' ';
|
||||||
|
++str;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case 's':
|
||||||
|
s = va_arg(args, char *);
|
||||||
|
|
||||||
|
len = strnlen(s, precision);
|
||||||
|
|
||||||
|
if (!(flags & LEFT)) {
|
||||||
|
while (len < field_width--) {
|
||||||
|
if (str <= end)
|
||||||
|
*str = ' ';
|
||||||
|
++str;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (i = 0; i < len; ++i) {
|
||||||
|
if (str <= end)
|
||||||
|
*str = *s;
|
||||||
|
++str; ++s;
|
||||||
|
}
|
||||||
|
while (len < field_width--) {
|
||||||
|
if (str <= end)
|
||||||
|
*str = ' ';
|
||||||
|
++str;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case 'p':
|
||||||
|
if (field_width == -1) {
|
||||||
|
field_width = 2*sizeof(void *);
|
||||||
|
flags |= ZEROPAD;
|
||||||
|
}
|
||||||
|
str = number(str, end,
|
||||||
|
(unsigned long) va_arg(args, void *),
|
||||||
|
16, field_width, precision, flags);
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
|
case 'n':
|
||||||
|
/* FIXME:
|
||||||
|
* What does C99 say about the overflow case here? */
|
||||||
|
if (qualifier == 'l') {
|
||||||
|
long * ip = va_arg(args, long *);
|
||||||
|
*ip = (str - buf);
|
||||||
|
} else if (qualifier == 'Z' || qualifier == 'z') {
|
||||||
|
size_t * ip = va_arg(args, size_t *);
|
||||||
|
*ip = (str - buf);
|
||||||
|
} else {
|
||||||
|
int * ip = va_arg(args, int *);
|
||||||
|
*ip = (str - buf);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
|
||||||
|
case '%':
|
||||||
|
if (str <= end)
|
||||||
|
*str = '%';
|
||||||
|
++str;
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* integer number formats - set up the flags and "break" */
|
||||||
|
case 'o':
|
||||||
|
base = 8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'X':
|
||||||
|
flags |= LARGE;
|
||||||
|
case 'x':
|
||||||
|
base = 16;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'd':
|
||||||
|
case 'i':
|
||||||
|
flags |= SIGN;
|
||||||
|
case 'u':
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
if (str <= end)
|
||||||
|
*str = '%';
|
||||||
|
++str;
|
||||||
|
if (*fmt) {
|
||||||
|
if (str <= end)
|
||||||
|
*str = *fmt;
|
||||||
|
++str;
|
||||||
|
} else {
|
||||||
|
--fmt;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (qualifier == 'L')
|
||||||
|
num = va_arg(args, long long);
|
||||||
|
else if (qualifier == 'l') {
|
||||||
|
num = va_arg(args, unsigned long);
|
||||||
|
if (flags & SIGN)
|
||||||
|
num = (signed long) num;
|
||||||
|
} else if (qualifier == 'Z' || qualifier == 'z') {
|
||||||
|
num = va_arg(args, size_t);
|
||||||
|
} else if (qualifier == 't') {
|
||||||
|
num = va_arg(args, ptrdiff_t);
|
||||||
|
} else if (qualifier == 'h') {
|
||||||
|
num = (unsigned short) va_arg(args, int);
|
||||||
|
if (flags & SIGN)
|
||||||
|
num = (signed short) num;
|
||||||
|
} else {
|
||||||
|
num = va_arg(args, unsigned int);
|
||||||
|
if (flags & SIGN)
|
||||||
|
num = (signed int) num;
|
||||||
|
}
|
||||||
|
str = number(str, end, num, base,
|
||||||
|
field_width, precision, flags);
|
||||||
|
}
|
||||||
|
if (str <= end)
|
||||||
|
*str = '\0';
|
||||||
|
else if (size > 0)
|
||||||
|
/* don't write out a null byte if the buf size is zero */
|
||||||
|
*end = '\0';
|
||||||
|
/* the trailing null byte doesn't count towards the total
|
||||||
|
* ++str;
|
||||||
|
*/
|
||||||
|
return str-buf;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vscnprintf - Format a string and place it in a buffer
|
||||||
|
* @buf: The buffer to place the result into
|
||||||
|
* @size: The size of the buffer, including the trailing null space
|
||||||
|
* @fmt: The format string to use
|
||||||
|
* @args: Arguments for the format string
|
||||||
|
*
|
||||||
|
* The return value is the number of characters which have been written into
|
||||||
|
* the @buf not including the trailing '\0'. If @size is <= 0 the function
|
||||||
|
* returns 0.
|
||||||
|
*
|
||||||
|
* Call this function if you are already dealing with a va_list.
|
||||||
|
* You probably want scnprintf instead.
|
||||||
|
*/
|
||||||
|
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
i=vsnprintf(buf,size,fmt,args);
|
||||||
|
return (i >= size) ? (size - 1) : i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* snprintf - Format a string and place it in a buffer
|
||||||
|
* @buf: The buffer to place the result into
|
||||||
|
* @size: The size of the buffer, including the trailing null space
|
||||||
|
* @fmt: The format string to use
|
||||||
|
* @...: Arguments for the format string
|
||||||
|
*
|
||||||
|
* The return value is the number of characters which would be
|
||||||
|
* generated for the given input, excluding the trailing null,
|
||||||
|
* as per ISO C99. If the return is greater than or equal to
|
||||||
|
* @size, the resulting string is truncated.
|
||||||
|
*/
|
||||||
|
int snprintf(char * buf, size_t size, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
va_start(args, fmt);
|
||||||
|
i=vsnprintf(buf,size,fmt,args);
|
||||||
|
va_end(args);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* scnprintf - Format a string and place it in a buffer
|
||||||
|
* @buf: The buffer to place the result into
|
||||||
|
* @size: The size of the buffer, including the trailing null space
|
||||||
|
* @fmt: The format string to use
|
||||||
|
* @...: Arguments for the format string
|
||||||
|
*
|
||||||
|
* The return value is the number of characters written into @buf not including
|
||||||
|
* the trailing '\0'. If @size is <= 0 the function returns 0. If the return is
|
||||||
|
* greater than or equal to @size, the resulting string is truncated.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int scnprintf(char * buf, size_t size, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
unsigned int i;
|
||||||
|
|
||||||
|
va_start(args, fmt);
|
||||||
|
i = vsnprintf(buf, size, fmt, args);
|
||||||
|
va_end(args);
|
||||||
|
return (i >= size) ? (size - 1) : i;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vsprintf - Format a string and place it in a buffer
|
||||||
|
* @buf: The buffer to place the result into
|
||||||
|
* @fmt: The format string to use
|
||||||
|
* @args: Arguments for the format string
|
||||||
|
*
|
||||||
|
* The function returns the number of characters written
|
||||||
|
* into @buf. Use vsnprintf or vscnprintf in order to avoid
|
||||||
|
* buffer overflows.
|
||||||
|
*
|
||||||
|
* Call this function if you are already dealing with a va_list.
|
||||||
|
* You probably want sprintf instead.
|
||||||
|
*/
|
||||||
|
int vsprintf(char *buf, const char *fmt, va_list args)
|
||||||
|
{
|
||||||
|
return vsnprintf(buf, INT_MAX, fmt, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sprintf - Format a string and place it in a buffer
|
||||||
|
* @buf: The buffer to place the result into
|
||||||
|
* @fmt: The format string to use
|
||||||
|
* @...: Arguments for the format string
|
||||||
|
*
|
||||||
|
* The function returns the number of characters written
|
||||||
|
* into @buf. Use snprintf or scnprintf in order to avoid
|
||||||
|
* buffer overflows.
|
||||||
|
*/
|
||||||
|
int sprintf(char * buf, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
va_start(args, fmt);
|
||||||
|
i=vsnprintf(buf, INT_MAX, fmt, args);
|
||||||
|
va_end(args);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* vsscanf - Unformat a buffer into a list of arguments
|
||||||
|
* @buf: input buffer
|
||||||
|
* @fmt: format of buffer
|
||||||
|
* @args: arguments
|
||||||
|
*/
|
||||||
|
int vsscanf(const char * buf, const char * fmt, va_list args)
|
||||||
|
{
|
||||||
|
const char *str = buf;
|
||||||
|
char *next;
|
||||||
|
char digit;
|
||||||
|
int num = 0;
|
||||||
|
int qualifier;
|
||||||
|
int base;
|
||||||
|
int field_width;
|
||||||
|
int is_sign = 0;
|
||||||
|
|
||||||
|
while(*fmt && *str) {
|
||||||
|
/* skip any white space in format */
|
||||||
|
/* white space in format matchs any amount of
|
||||||
|
* white space, including none, in the input.
|
||||||
|
*/
|
||||||
|
if (isspace(*fmt)) {
|
||||||
|
while (isspace(*fmt))
|
||||||
|
++fmt;
|
||||||
|
while (isspace(*str))
|
||||||
|
++str;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* anything that is not a conversion must match exactly */
|
||||||
|
if (*fmt != '%' && *fmt) {
|
||||||
|
if (*fmt++ != *str++)
|
||||||
|
break;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!*fmt)
|
||||||
|
break;
|
||||||
|
++fmt;
|
||||||
|
|
||||||
|
/* skip this conversion.
|
||||||
|
* advance both strings to next white space
|
||||||
|
*/
|
||||||
|
if (*fmt == '*') {
|
||||||
|
while (!isspace(*fmt) && *fmt)
|
||||||
|
fmt++;
|
||||||
|
while (!isspace(*str) && *str)
|
||||||
|
str++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* get field width */
|
||||||
|
field_width = -1;
|
||||||
|
if (isdigit(*fmt))
|
||||||
|
field_width = skip_atoi(&fmt);
|
||||||
|
|
||||||
|
/* get conversion qualifier */
|
||||||
|
qualifier = -1;
|
||||||
|
if (*fmt == 'h' || *fmt == 'l' || *fmt == 'L' ||
|
||||||
|
*fmt == 'Z' || *fmt == 'z') {
|
||||||
|
qualifier = *fmt++;
|
||||||
|
if (qualifier == *fmt) {
|
||||||
|
if (qualifier == 'h') {
|
||||||
|
qualifier = 'H';
|
||||||
|
fmt++;
|
||||||
|
} else if (qualifier == 'l') {
|
||||||
|
qualifier = 'L';
|
||||||
|
fmt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
base = 10;
|
||||||
|
is_sign = 0;
|
||||||
|
|
||||||
|
if (!*fmt || !*str)
|
||||||
|
break;
|
||||||
|
|
||||||
|
switch(*fmt++) {
|
||||||
|
case 'c':
|
||||||
|
{
|
||||||
|
char *s = (char *) va_arg(args,char*);
|
||||||
|
if (field_width == -1)
|
||||||
|
field_width = 1;
|
||||||
|
do {
|
||||||
|
*s++ = *str++;
|
||||||
|
} while (--field_width > 0 && *str);
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
case 's':
|
||||||
|
{
|
||||||
|
char *s = (char *) va_arg(args, char *);
|
||||||
|
if(field_width == -1)
|
||||||
|
field_width = INT_MAX;
|
||||||
|
/* first, skip leading white space in buffer */
|
||||||
|
while (isspace(*str))
|
||||||
|
str++;
|
||||||
|
|
||||||
|
/* now copy until next white space */
|
||||||
|
while (*str && !isspace(*str) && field_width--) {
|
||||||
|
*s++ = *str++;
|
||||||
|
}
|
||||||
|
*s = '\0';
|
||||||
|
num++;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
case 'n':
|
||||||
|
/* return number of characters read so far */
|
||||||
|
{
|
||||||
|
int *i = (int *)va_arg(args,int*);
|
||||||
|
*i = str - buf;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
case 'o':
|
||||||
|
base = 8;
|
||||||
|
break;
|
||||||
|
case 'x':
|
||||||
|
case 'X':
|
||||||
|
base = 16;
|
||||||
|
break;
|
||||||
|
case 'i':
|
||||||
|
base = 0;
|
||||||
|
case 'd':
|
||||||
|
is_sign = 1;
|
||||||
|
case 'u':
|
||||||
|
break;
|
||||||
|
case '%':
|
||||||
|
/* looking for '%' in str */
|
||||||
|
if (*str++ != '%')
|
||||||
|
return num;
|
||||||
|
continue;
|
||||||
|
default:
|
||||||
|
/* invalid format; stop here */
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* have some sort of integer conversion.
|
||||||
|
* first, skip white space in buffer.
|
||||||
|
*/
|
||||||
|
while (isspace(*str))
|
||||||
|
str++;
|
||||||
|
|
||||||
|
digit = *str;
|
||||||
|
if (is_sign && digit == '-')
|
||||||
|
digit = *(str + 1);
|
||||||
|
|
||||||
|
if (!digit
|
||||||
|
|| (base == 16 && !isxdigit(digit))
|
||||||
|
|| (base == 10 && !isdigit(digit))
|
||||||
|
|| (base == 8 && (!isdigit(digit) || digit > '7'))
|
||||||
|
|| (base == 0 && !isdigit(digit)))
|
||||||
|
break;
|
||||||
|
|
||||||
|
switch(qualifier) {
|
||||||
|
case 'H': /* that's 'hh' in format */
|
||||||
|
if (is_sign) {
|
||||||
|
signed char *s = (signed char *) va_arg(args,signed char *);
|
||||||
|
*s = (signed char) simple_strtol(str,&next,base);
|
||||||
|
} else {
|
||||||
|
unsigned char *s = (unsigned char *) va_arg(args, unsigned char *);
|
||||||
|
*s = (unsigned char) simple_strtoul(str, &next, base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
if (is_sign) {
|
||||||
|
short *s = (short *) va_arg(args,short *);
|
||||||
|
*s = (short) simple_strtol(str,&next,base);
|
||||||
|
} else {
|
||||||
|
unsigned short *s = (unsigned short *) va_arg(args, unsigned short *);
|
||||||
|
*s = (unsigned short) simple_strtoul(str, &next, base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'l':
|
||||||
|
if (is_sign) {
|
||||||
|
long *l = (long *) va_arg(args,long *);
|
||||||
|
*l = simple_strtol(str,&next,base);
|
||||||
|
} else {
|
||||||
|
unsigned long *l = (unsigned long*) va_arg(args,unsigned long*);
|
||||||
|
*l = simple_strtoul(str,&next,base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'L':
|
||||||
|
if (is_sign) {
|
||||||
|
long long *l = (long long*) va_arg(args,long long *);
|
||||||
|
*l = simple_strtoll(str,&next,base);
|
||||||
|
} else {
|
||||||
|
unsigned long long *l = (unsigned long long*) va_arg(args,unsigned long long*);
|
||||||
|
*l = simple_strtoull(str,&next,base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'Z':
|
||||||
|
case 'z':
|
||||||
|
{
|
||||||
|
size_t *s = (size_t*) va_arg(args,size_t*);
|
||||||
|
*s = (size_t) simple_strtoul(str,&next,base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (is_sign) {
|
||||||
|
int *i = (int *) va_arg(args, int*);
|
||||||
|
*i = (int) simple_strtol(str,&next,base);
|
||||||
|
} else {
|
||||||
|
unsigned int *i = (unsigned int*) va_arg(args, unsigned int*);
|
||||||
|
*i = (unsigned int) simple_strtoul(str,&next,base);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
num++;
|
||||||
|
|
||||||
|
if (!next)
|
||||||
|
break;
|
||||||
|
str = next;
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* sscanf - Unformat a buffer into a list of arguments
|
||||||
|
* @buf: input buffer
|
||||||
|
* @fmt: formatting of buffer
|
||||||
|
* @...: resulting arguments
|
||||||
|
*/
|
||||||
|
int sscanf(const char * buf, const char * fmt, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
va_start(args,fmt);
|
||||||
|
i = vsscanf(buf,fmt,args);
|
||||||
|
va_end(args);
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
|
3471
firmware/lib/vsprintf.lst
Normal file
3471
firmware/lib/vsprintf.lst
Normal file
File diff suppressed because it is too large
Load Diff
96
firmware/link/AT91SAM7S128-ROM-sam7dfu-app.ld
Normal file
96
firmware/link/AT91SAM7S128-ROM-sam7dfu-app.ld
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
/* Memory Definitions */
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
/* reserve 1K config area on top of flash */
|
||||||
|
FLASH (rx) : ORIGIN = 0x00104000, LENGTH = (0x00020000 - 0x4000 - 0x400)
|
||||||
|
DATA (rw) : ORIGIN = 0x00200028, LENGTH = (0x00008000 - 0x28)
|
||||||
|
STACK (rw) : ORIGIN = 0x00208000, LENGTH = 0x00000000
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Section Definitions */
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0x00000000;
|
||||||
|
/* first section is .text which is used for code */
|
||||||
|
.text 0x00104000: AT ( 0x00000000 ) {
|
||||||
|
src/start/Cstartup_app.o (.text)
|
||||||
|
* (.text)
|
||||||
|
* (.rodata*)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
_etext = . ;
|
||||||
|
PROVIDE (etext = .);
|
||||||
|
|
||||||
|
/* 0x00200000 ... */
|
||||||
|
.data 0x00200028: AT ( ADDR(.text) + SIZEOF(.text) - ADDR(.text) ) {
|
||||||
|
_data = . ;
|
||||||
|
* (.fastrun)
|
||||||
|
* (.data)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
_edata = . ;
|
||||||
|
PROVIDE (edata = .);
|
||||||
|
|
||||||
|
/* .bss section which is used for uninitialized data */
|
||||||
|
.bss : {
|
||||||
|
__bss_start = . ;
|
||||||
|
__bss_start__ = . ;
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_end__ = . ;
|
||||||
|
__bss_end__ = . ;
|
||||||
|
|
||||||
|
PROVIDE (main = .);
|
||||||
|
|
||||||
|
_end = . ;
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.int_data : {
|
||||||
|
*(.internal_ram_top)
|
||||||
|
} >STACK
|
||||||
|
|
||||||
|
PROVIDE (end = .);
|
||||||
|
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
/* DWARF debug sections.
|
||||||
|
Symbols in the DWARF debugging sections are relative to the beginning
|
||||||
|
of the section so we begin them at 0. */
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
|
||||||
|
}
|
114
firmware/link/AT91SAM7S128-ROM-sam7dfu-dfu.ld
Normal file
114
firmware/link/AT91SAM7S128-ROM-sam7dfu-dfu.ld
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
/* Memory Definitions */
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00004000
|
||||||
|
DATA (rw) : ORIGIN = 0x00200000, LENGTH = 0x00008000
|
||||||
|
STACK (rw) : ORIGIN = 0x00208000, LENGTH = 0x00000000
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Section Definitions */
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0x00000000;
|
||||||
|
/* first section is .text which is used for code */
|
||||||
|
.text 0x00000000: AT ( 0x00000000 ) {
|
||||||
|
* (.reset)
|
||||||
|
* (.text)
|
||||||
|
* (.rodata*)
|
||||||
|
/* * (.dfu.functab) */ /* for debugging */
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
_etext = . ;
|
||||||
|
PROVIDE (etext = .);
|
||||||
|
|
||||||
|
.data.shared (0x00200020): AT (LOADADDR(.text) + SIZEOF(.text)) {
|
||||||
|
_data_shared = . ;
|
||||||
|
* (.data.shared)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
_edata_shared = . ;
|
||||||
|
_data_flash = LOADADDR(.data.shared) + SIZEOF(.data.shared);
|
||||||
|
|
||||||
|
/* 0x00200000 ... */
|
||||||
|
.data (0x00200000 + SIZEOF(.text)): AT
|
||||||
|
( LOADADDR(.text) + SIZEOF(.text) + SIZEOF(.data.shared)) {
|
||||||
|
_data = . ;
|
||||||
|
* (.vectram)
|
||||||
|
* (.data)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
_edata = . ;
|
||||||
|
PROVIDE (edata = .);
|
||||||
|
|
||||||
|
/* dfu.functab addresses are valid as long as DFU is in flash, i.e.
|
||||||
|
* only while application calls those functions. Once executing in
|
||||||
|
* DFU mode, we are re-located to ram */
|
||||||
|
.dfu.functab 0x00003fd0: AT ( ADDR(.dfu.functab) - ADDR(.text) ) {
|
||||||
|
*(.dfu.functab)
|
||||||
|
. = ALIGN(4096);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
|
||||||
|
/* .bss section which is used for uninitialized data */
|
||||||
|
.bss : {
|
||||||
|
__bss_start = . ;
|
||||||
|
__bss_start__ = . ;
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_end__ = . ;
|
||||||
|
__bss_end__ = . ;
|
||||||
|
|
||||||
|
PROVIDE (main = .);
|
||||||
|
|
||||||
|
_end = . ;
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.int_data : {
|
||||||
|
*(.internal_ram_top)
|
||||||
|
} >STACK
|
||||||
|
|
||||||
|
PROVIDE (end = .);
|
||||||
|
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
/* DWARF debug sections.
|
||||||
|
Symbols in the DWARF debugging sections are relative to the beginning
|
||||||
|
of the section so we begin them at 0. */
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
|
||||||
|
}
|
96
firmware/link/AT91SAM7S256-ROM-sam7dfu-app.ld
Normal file
96
firmware/link/AT91SAM7S256-ROM-sam7dfu-app.ld
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
/* Memory Definitions */
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
/* reserve 1K config area on top of flash */
|
||||||
|
FLASH (rx) : ORIGIN = 0x00104000, LENGTH = (0x00040000 - 0x4000 - 0x400)
|
||||||
|
DATA (rw) : ORIGIN = 0x00200028, LENGTH = (0x00010000 - 0x28)
|
||||||
|
STACK (rw) : ORIGIN = 0x00210000, LENGTH = 0x00000000
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Section Definitions */
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0x00000000;
|
||||||
|
/* first section is .text which is used for code */
|
||||||
|
.text 0x00104000: AT ( 0x00000000 ) {
|
||||||
|
src/start/Cstartup_app.o (.text)
|
||||||
|
* (.text)
|
||||||
|
* (.rodata*)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
_etext = . ;
|
||||||
|
PROVIDE (etext = .);
|
||||||
|
|
||||||
|
/* 0x00200000 ... */
|
||||||
|
.data 0x00200028: AT ( ADDR(.text) + SIZEOF(.text) - ADDR(.text) ) {
|
||||||
|
_data = . ;
|
||||||
|
* (.fastrun)
|
||||||
|
* (.data)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
_edata = . ;
|
||||||
|
PROVIDE (edata = .);
|
||||||
|
|
||||||
|
/* .bss section which is used for uninitialized data */
|
||||||
|
.bss : {
|
||||||
|
__bss_start = . ;
|
||||||
|
__bss_start__ = . ;
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_end__ = . ;
|
||||||
|
__bss_end__ = . ;
|
||||||
|
|
||||||
|
PROVIDE (main = .);
|
||||||
|
|
||||||
|
_end = . ;
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.int_data : {
|
||||||
|
*(.internal_ram_top)
|
||||||
|
} >STACK
|
||||||
|
|
||||||
|
PROVIDE (end = .);
|
||||||
|
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
/* DWARF debug sections.
|
||||||
|
Symbols in the DWARF debugging sections are relative to the beginning
|
||||||
|
of the section so we begin them at 0. */
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
|
||||||
|
}
|
114
firmware/link/AT91SAM7S256-ROM-sam7dfu-dfu.ld
Normal file
114
firmware/link/AT91SAM7S256-ROM-sam7dfu-dfu.ld
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
/* Memory Definitions */
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x00004000
|
||||||
|
DATA (rw) : ORIGIN = 0x00200000, LENGTH = 0x00010000
|
||||||
|
STACK (rw) : ORIGIN = 0x00210000, LENGTH = 0x00000000
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Section Definitions */
|
||||||
|
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
. = 0x00000000;
|
||||||
|
/* first section is .text which is used for code */
|
||||||
|
.text 0x00000000: AT ( 0x00000000 ) {
|
||||||
|
* (.reset)
|
||||||
|
* (.text)
|
||||||
|
* (.rodata*)
|
||||||
|
/* * (.dfu.functab) */ /* for debugging */
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
_etext = . ;
|
||||||
|
PROVIDE (etext = .);
|
||||||
|
|
||||||
|
.data.shared (0x00200020): AT (LOADADDR(.text) + SIZEOF(.text)) {
|
||||||
|
_data_shared = . ;
|
||||||
|
* (.data.shared)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
_edata_shared = . ;
|
||||||
|
_data_flash = LOADADDR(.data.shared) + SIZEOF(.data.shared);
|
||||||
|
|
||||||
|
/* 0x00200000 ... */
|
||||||
|
.data (0x00200000 + SIZEOF(.text)): AT ( LOADADDR(.text) + SIZEOF(.text) + SIZEOF(.data.shared)) {
|
||||||
|
_data = . ;
|
||||||
|
* (.vectram)
|
||||||
|
* (.data)
|
||||||
|
. = ALIGN(4);
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
_edata = . ;
|
||||||
|
PROVIDE (edata = .);
|
||||||
|
|
||||||
|
/* dfu.functab addresses are valid as long as DFU is in flash, i.e.
|
||||||
|
* only while application calls those functions. Once executing in
|
||||||
|
* DFU mode, we are re-located to ram */
|
||||||
|
.dfu.functab 0x00003fd0: AT ( ADDR(.dfu.functab) - ADDR(.text) ) {
|
||||||
|
*(.dfu.functab)
|
||||||
|
. = ALIGN(4096);
|
||||||
|
} >FLASH
|
||||||
|
|
||||||
|
|
||||||
|
/* .bss section which is used for uninitialized data */
|
||||||
|
.bss : {
|
||||||
|
__bss_start = . ;
|
||||||
|
__bss_start__ = . ;
|
||||||
|
*(.bss)
|
||||||
|
*(COMMON)
|
||||||
|
} >DATA
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
__bss_end__ = . ;
|
||||||
|
__bss_end__ = . ;
|
||||||
|
|
||||||
|
PROVIDE (main = .);
|
||||||
|
|
||||||
|
_end = . ;
|
||||||
|
|
||||||
|
. = ALIGN(4);
|
||||||
|
.int_data : {
|
||||||
|
*(.internal_ram_top)
|
||||||
|
} >STACK
|
||||||
|
|
||||||
|
PROVIDE (end = .);
|
||||||
|
|
||||||
|
/* Stabs debugging sections. */
|
||||||
|
.stab 0 : { *(.stab) }
|
||||||
|
.stabstr 0 : { *(.stabstr) }
|
||||||
|
.stab.excl 0 : { *(.stab.excl) }
|
||||||
|
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||||
|
.stab.index 0 : { *(.stab.index) }
|
||||||
|
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||||
|
.comment 0 : { *(.comment) }
|
||||||
|
/* DWARF debug sections.
|
||||||
|
Symbols in the DWARF debugging sections are relative to the beginning
|
||||||
|
of the section so we begin them at 0. */
|
||||||
|
/* DWARF 1 */
|
||||||
|
.debug 0 : { *(.debug) }
|
||||||
|
.line 0 : { *(.line) }
|
||||||
|
/* GNU DWARF 1 extensions */
|
||||||
|
.debug_srcinfo 0 : { *(.debug_srcinfo) }
|
||||||
|
.debug_sfnames 0 : { *(.debug_sfnames) }
|
||||||
|
/* DWARF 1.1 and DWARF 2 */
|
||||||
|
.debug_aranges 0 : { *(.debug_aranges) }
|
||||||
|
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||||
|
/* DWARF 2 */
|
||||||
|
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
|
||||||
|
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||||
|
.debug_line 0 : { *(.debug_line) }
|
||||||
|
.debug_frame 0 : { *(.debug_frame) }
|
||||||
|
.debug_str 0 : { *(.debug_str) }
|
||||||
|
.debug_loc 0 : { *(.debug_loc) }
|
||||||
|
.debug_macinfo 0 : { *(.debug_macinfo) }
|
||||||
|
/* SGI/MIPS DWARF 2 extensions */
|
||||||
|
.debug_weaknames 0 : { *(.debug_weaknames) }
|
||||||
|
.debug_funcnames 0 : { *(.debug_funcnames) }
|
||||||
|
.debug_typenames 0 : { *(.debug_typenames) }
|
||||||
|
.debug_varnames 0 : { *(.debug_varnames) }
|
||||||
|
|
||||||
|
}
|
BIN
firmware/main_dumbreader.bin
Normal file
BIN
firmware/main_dumbreader.bin
Normal file
Binary file not shown.
BIN
firmware/main_dumbreader.elf
Normal file
BIN
firmware/main_dumbreader.elf
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user