<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="http://codenaschen.de/tichyblog/rss.php" rel="self" type="application/rss+xml" />
    <title>codenaschen.de</title>
    <link>http://codenaschen.de/tichyblog/</link>
    <description>very low frequency tech blogging</description>
    <language>en</language>
    <copyright>krater (Andreas Schuler)</copyright>
    <dc:creator>krater (Andreas Schuler)</dc:creator>
    <pubDate>Sun, 20 May 2012 5:07:52 +0200</pubDate>
    <item>
      <title><![CDATA[Linux on a XUPv2 FPGA Board]]></title>
      <description><![CDATA[<p>Since some days, i try to install a toolchain consisting of</p>
<ul>
<li>Xilinx Embedded Development Kit 8.1</li>
<li>Xilinx ISE 8.1</li>
<li>Xilinx USB Cable Driver and</li>
<li>crosstool-ng-1.6.1</li>
</ul>
<p>on my Debian Squeeze Linux with 2.6.37.3 Kernel. I ran in some ugly linux typical problems, from these i want to show my solutions, to safe me and other people time for the next installation.</p>
<p>But first, some links to tutorials and projects that will help you to syntesize, build, install and use your FPGA linux on a XUPv2 Pro board with the use of one PowerPC core.</p>
<ul>
<li><a href="http://www.xilinx.com/support/download/index.htm">[1] Xilinx Download Center, for EDK,ISE and Service Packs</a></li>
<li><a href="http://www.xilinx.com/univ/xupv2p.html">[2] XUPV2P demo projects and Base System Builder</a></li>
<li><a href="http://www.aclevername.com/articles/linux-xilinx-tutorial/index.html">[3] The best tutorial for running Linux on a FPGA i ever seen</a></li>
<li><a href="http://getglitched.com/?page_id=285">[4] A shortened copy&amp;paste of this tutorial</a></li>
<li><a href="http://www.rmdir.de/~michael/xilinx/">[5] Xilinx USB Cable Driver</a> &amp; <a href="https://wiki.kip.uni-heidelberg.de/KIPwiki/index.php/Xilinx-USB-Treiber">[6] Installation tutorial (german)</a></li>
<li><a href="http://www.fpgadeveloper.com/tag/xupv2p">[7] Programming tutorials for XUPv2</a></li>
</ul>
<p>I installed all the Xilinx things in /opt/xilinx/ , maybee you must change some paths to your paths.</p>
<p>&nbsp;</p>
<h3>Problem 1:</h3>
<p>You have created a new project in EDK with the Base System Builder Wizard, but when you try to synthesize it, all runs perfect, but finally you get a "Build Failed" without any explaination.</p>
<p><strong>Solution:</strong> Its a upper/lower case problem in the code. Simply install Xilinx ISE 8.1 <strong>SP3</strong>.</p>
<p>&nbsp;</p>
<h3>Problem 2:</h3>
<p>You want to build the test applications generated from Base System Builder Wizard and got a error like "Can't find gmake".</p>
<p><strong>Solution:</strong> ln -s /usr/bin/make /usr/bin/gmake should help.</p>
<p>&nbsp;</p>
<h3>Problem 3:</h3>
<p>You run into problems when you want to install the Jungo USB Driver for the Xilinx USB Cable.</p>
<p><strong>Solution:</strong> The Jungo driver doesn't works with Kernel &gt;2.6.18. Use the open source cable driver linked above[5].</p>
<p>&nbsp;</p>
<h3>Problem 4:</h3>
<p>You tried this driver and he doesn't found your cable.</p>
<p><strong>Solution:</strong> Maybee you forgot to install the new cable firmware. Follow the instructions from [6](see Firmware). If this not helps, maybee you've a different udev version. Try to use this code here for you /etc/udev/rules.d/xusbdfwu.rules :</p>
<p>iATTRS{idVendor}=="03fd", ATTRS{idProduct}=="0008", SYMLINK+="windrvr6"<br />SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd",ATTRS{idProduct}=="0007", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode"<br />SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd",ATTRS{idProduct}=="0009", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode"<br />SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd",ATTRS{idProduct}=="000b", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode"<br />SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd",ATTRS{idProduct}=="000d", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode"<br />SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="03fd",ATTRS{idProduct}=="000f", RUN+="/sbin/fxload -v -t fx2 -I /usr/share/xusbdfwu.hex -D $tempnode"<br />ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="03fd", MODE="666"</p>
<h3>&nbsp;</h3>
<h3>Problem 5:</h3>
<p>You started impact, tried to initialize the JTAG chain, and impact needed 10 minutes to update the programmer firmware. Then you tried again and got some dynamic linker error messages.</p>
<p><strong>Solution:</strong> Maybee you messed up your environment variables. Try first to restart your shell, then maybee the hole system, before you dig deeper in your linux.</p>
<p>&nbsp;</p>
<h3>Problem 6:</h3>
<p>crosstool-ng stops by downloading a file. Mostly one of the debugger-packs.</p>
<p><strong>Solution:</strong> Download the tarball manually and copy it to the path where crosstool-ng saves the tarballs.<br />On my system, this path was "/opt/crosstool-ng-1.6.1/.build/tarballs/".You can download the debugger files here: <a href="http://ftp.gnu.org/gnu/gdb/">gdb</a>, <a href="http://sourceforge.net/projects/duma/files/duma/2.5.15/duma_2_5_15.tar.gz/download">duma</a></p>
<h3>&nbsp;</h3>
<h3>Problem 7:</h3>
<p>Compiling TestApp_Memory drops the following lines:</p>
<p>./ppc405_0/lib//libxil.a(xil_printf.o)(.text+0x58)</p>
<div>: In function `padding':<br />/cygdrive/d/Project/kernel3/ppc405_0/libsrc/standalone_v1_00_a/src/xil_printf.c:50: undefined reference to `outbyte'<br />./ppc405_0/lib//libxil.a(xil_printf.o)(.text+0x178): In function `outnum':<br />/cygdrive/d/Project/kernel3/ppc405_0/libsrc/standalone_v1_00_a/src/xil_printf.c:111: undefined reference to `outbyte'<br />./ppc405_0/lib//libxil.a(xil_printf.o)(.text+0x260): In function `xil_printf':<br />/cygdrive/d/Project/kernel3/ppc405_0/libsrc/standalone_v1_00_a/src/xil_printf.c:228: undefined reference to `outbyte'<br />./ppc405_0/lib//libxil.a(xil_printf.o)(.text+0x3a4):/cygdrive/d/Project/kernel3/ppc405_0/libsrc/standalone_v1_00_a/src/xil_printf.c:228: undefined reference to `outbyte'<br />./ppc405_0/lib//libxil.a(xil_printf.o)(.text+0x3dc):/cygdrive/d/Project/kernel3/ppc405_0/libsrc/standalone_v1_00_a/src/xil_printf.c:228: undefined reference to `outbyte'<br />./ppc405_0/lib//libxil.a(xil_printf.o)(.text+0x48c):/cygdrive/d/Project/kernel3/ppc405_0/libsrc/standalone_v1_00_a/src/xil_printf.c:66: more undefined references to `outbyte' follow<br />collect2: ld returned 1 exit status<br />make: *** [TestApp_Memory/executable.elf] Error 1</div>
<div><strong>Solution: </strong>Set the interface for stdin/stdout in Software-&gt;Plattform Settings-&gt;OS and Library.</div>
<h3>Problem 8:</h3>
<p>Compiling the kernel ends with:</p>
<p>DTC: dts-&gt;dtb&nbsp; on file "arch/powerpc/boot/dts/virtex405-mine.dts"<br />ERROR (duplicate_label): Duplicate label 'DDR_512MB_64Mx64_rank2_row13_col10_cl2_5' on /memory@10000000 and /memory@0<br />ERROR: Input tree has errors, aborting (use -f to force output)<br />make[1]: *** [arch/powerpc/boot/virtex405-mine.dtb] Error 2<br />make: *** [simpleImage.virtex405-mine] Error 2</p>
<p><strong>Solution:</strong> Simply delete the lines:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DDR_512MB_64Mx64_rank2_row13_col10_cl2_5: memory@10000000 {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; device_type = "memory";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reg = &lt; <strong>0x10000000</strong> 0x10000000 &gt;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } ;</p>
<p>from your "arch/powerpc/boot/dts/virtex405-mine.dts".</p>
<p>&nbsp;</p>
<h3>Problem 9:</h3>
<p>You try to load a reference design from the xilinx website with EDK newer than 7.1 and get the following error:</p>
<p>Reving up design to EDK 8.1...ERROR:MDT - Unrecoverable error(s) were encountered while updating your project</p>
<p><strong>Solution:</strong> This problem happens because of the a hardcoded libname. In my case, I missed libdb-4.1.so. I symlinked a newer version with:</p>
<p>ln -s /usr/lib/libdb-4.2.so /usr/lib/libdb-4.1.so</p>
<p>and all worked like a charm.</p>
<p>to be continued...</p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=12_Linux on XILINX virtex-2 pro XUPv2 FPGA PowerPC Board ]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=12_Linux on XILINX virtex-2 pro XUPv2 FPGA PowerPC Board ]]></guid>
      <pubDate>Thu, 03 May 2012 3:44:27 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[tichyBlog 1.0 released]]></title>
      <description><![CDATA[<p>If you want a small and simple software that fits exactly your needs, it's often better to write your own, as to test tousands of existing softwares and to realize, that there is nothing that can satisfy you completly. Thats the reason why i wrote tichyBlog. I know, with publishing the source, i only increase the number of softwares that you can test to realize too, that you should write your own. But maybee you can use my source as a startpoint.</p>
<h2>Features</h2>
<ul>
<li>Blogging software specialized for low frequency blogging</li>
<li>Simple CMS functions</li>
<li>Included WYSIWYG Editor</li>
<li>Full configurable over templates</li>
<li>Resource-Efficient</li>
<li>No need for SQL-Server because using SQLite</li>
<li>Logging and statistic functions</li>
<li>Not used any framework, to make the source as small and simple as possible</li>
<li>GPL v2 licensed</li>
</ul>
<h2>Integrated Software</h2>
<ul>
<li><a title="TinyMCE" href="/tichyblog/admin/tinymce.moxiecode.com">TinyMCE</a></li>
<li>TinyMCE picture plugin</li>
<li><a title="phpLiteAdmin" href="http://code.google.com/p/phpliteadmin/">phpLiteAdmin</a></li>
<li><a title="access logger" href="/tichyblog/index.php?action=blog&amp;entry=5_PHP+Access+Log+And+Statistic+Class">accesslogger</a></li>
</ul>
<h2>Todo</h2>
<ul>
<li>Limit displayed articles</li>
<li>Function to delete files from the server</li>
<li>Some more statistic things</li>
<li>Show changes in menu without delay</li>
<li>Add possibility to comment articles</li>
<li>Human readable date in article editor</li>
</ul>
<h2>Source Code</h2>
<p>You will find it on <a title="Github Site" href="https://github.com/krater/logaccess" target="_blank">my github site</a> or checkout the recent version with</p>
<p><strong>git clone&nbsp;git://github.com/krater/tichyblog.git</strong></p>
<p><br /><br /></p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=3_tichyBlog 1.0 tiny little small blogging cms software php]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=3_tichyBlog 1.0 tiny little small blogging cms software php]]></guid>
      <pubDate>Fri, 06 Apr 2012 1:23:23 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Rigol Homebrew 4 All]]></title>
      <description><![CDATA[<p>Hi People !</p>
<p>Some time ago, I managed it to start my own software on a Rigol scope. I wrote some lines of code and manually patched the firmware at the right place to start it at the right time. It was hard and time-consuming to develop software in this way, because you have to flash the firmware again and again and again until it works as it should. The fear that your next manual manipulated firmware update will brick your device was always there.</p>
<p>This can't be the way for the masses, either for a big open source community...</p>
<p>To solve this problem, I developed a toolchain that makes it possible to build your own software, link it against the installed firmware, upload and start it in the normal operation of the oscilloscope. Its just need one time to flash a patched firmware that enhances the serial interfaces with some read/write and call functions.</p>
<p>I started a wiki to collect all the work thats done on the Rigol devices with focus to reverse engineering and homebrew programming. You will find it at <a href="http://rigolwiki.codenaschen.de">http://rigolwiki.codenaschen.de</a>. There is the source code of the toolchain and some little installation howto's.</p>
<p>To show you a little example of what's actually possible with the toolchain, I recorded this little video...</p>
<p>&nbsp;</p>
<p><iframe style="display: block; margin-left: auto; margin-right: auto;" src="http://www.youtube-nocookie.com/embed/vepLEhrALzo?hd=1" frameborder="0" width="420" height="315"></iframe></p>
<p>&nbsp;</p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=10_Rigol DS1052e Homebrew 4 All]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=10_Rigol DS1052e Homebrew 4 All]]></guid>
      <pubDate>Sat, 31 Dec 2011 0:53:50 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Three Rigol DS1xxx Firmware Secrets]]></title>
      <description><![CDATA[<p>Here i show you some partly useful and interesting hidden functions that i found by reverse engineering the Rigol DS1xxx Firmware file. It's only tested for version 2.05 of DS1052E and DS1102D firmware.</p>
<p><strong><span style="color: #ff0000;">I advise you to don't try it at any other version, maybee it could destroy your scope!</span></strong></p>
<p>&nbsp;</p>
<h2>Secret 1: Recovering the Key Lock Code and Unlocking</h2>
<p>If you locked your Rigol with the key lock function from the utilities menu and forgot the code, you can simply type the command</p>
<p><strong>:info:keys? (alt+numblock 0+numblock 1+numblock 0)</strong></p>
<p>to the serial console of your scope. As result you get the six digit code to unlock it.</p>
<p>&nbsp;</p>
<h2>Secret 2: Lock and Unlock AUTO-Key</h2>
<p>You can lock and unlock the AUTO-Key by putting a file with the name <strong>AUTO_KEY_Lock&amp;Unlock.RGL</strong> to your USB stick and plug it in your Rigol DS1xxx scope. The file consists of the text <br /><strong>RigolTechnologies,Inc.2005Ds1000.Theprogramemadebygongguiqiang,huangzhenandzhaocaiyun.</strong><br />bytewise xor'ed with 0x19. I don't know why this function exists, but i suppose a development function or a little easter egg.</p>
<p>If you want to try it out, you can download the file <a href="/files/AUTO_KEY_Lock&amp;Unlock.RGL">here</a>.</p>
<p>&nbsp;</p>
<h2>Secret 3: Key Combinations</h2>
<p>If you want more infos about firmware and hardware version, you can type</p>
<p><strong>CH1,CH1,CH2,CH2,MATH</strong></p>
<p>at the Utility-&gt;System Information.<strong> </strong>Another combination is<strong></strong></p>
<p><strong>TRIGGER MENU,ACQUIRE,ACQUIRE,UTILITY,MEASURE,STORAGE,CURSOR,CH1,CH1,REF,TRIGGER MENU</strong></p>
<p>at the same screen. What happens is.....nothing.....<br />Okay, not really nothing, it happens the same as when you send <strong>:info:systemservice on</strong> to the serial console, but i seen no difference between systemservice on or off. Maybee someone else knows more (?)</p>
<p>I found a third key combination but i don't know from where you must use it. I don't know what it does, so maybee you should be careful.</p>
<p><strong>50%,STORAGE,DISPLAY,MEASURE,CH1,REF,MATH,AUTO</strong></p>
<p><strong><br /></strong></p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=8_Three Rigol DS1052E DS1102E Firmware Secrets ]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=8_Three Rigol DS1052E DS1102E Firmware Secrets ]]></guid>
      <pubDate>Tue, 08 Nov 2011 21:52:49 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Very First Rigol DS1052 Homebrew]]></title>
      <description><![CDATA[<p>I'm proud to present you my first "Hello World" application on the Rigol DS1052E! So far as i know, it's the very first homebrew software on a rigol oscilloscope :)<br /><br />&nbsp;</p>
<p><iframe style="display: block; margin-left: auto; margin-right: auto;" src="http://www.youtube.com/embed/aXvhq6YqQK0" frameborder="0" width="420" height="315"></iframe></p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" src="/tichyblog/images/DSC00029.png" alt="" width="400" height="300" /></p>
<p><br />I reverse engineered some pieces of the firmware and replaced the code thats used to execute the ":FFT" console command with my own "Hello World!". Flashed this new firmware to the scope and started it with the serial console.<br /><br />It's only a few lines of code:</p>
<table style="display: block; background-color: #cccccc;" border="0" align="left">
<tbody>
<tr>
<td>
<p>.equ show_info_str,0x3AF80</p>
<p>.org 0xB7D7A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #startaddress in firmware 02.05.02<br />StartHomebrewCode:<br /><br /># Display Hello World<br />R0.L = Hello<br />R0.H = Hello<br />CALL show_info_str&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #call to display function<br /><br />lp:<br />JUMP lp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #endless loop, if we jump back to the system<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #the message flashs only some milliseconds on the screen</p>
<p>Hello:<br />.ascii "Hello World ! :)"</p>
<p><br /><br />.org 0xB7EB6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #end of :FFT command, last byte we can use<br />FFT_End: UNLINK</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Next step is to find a free position in the RAM to upload and execute homebrew software over the serial port.</p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=7_Very First Rigol DS1052 Oscilloscope Homebrew]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=7_Very First Rigol DS1052 Oscilloscope Homebrew]]></guid>
      <pubDate>Thu, 22 Sep 2011 23:37:14 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Rigol RGL Firmware Update Loader]]></title>
      <description><![CDATA[<p>The most problems i had with reverse engeineering the software of the rigol DS1052 scope was that i didn't know on which address the code from firmware updates should be loaded. <br />But last tuesday i got a mail with sourcecode for a RGL firmware file loader from ThomasVlad.<br />I added it to the IDA Blackfin Plugin repository on github.</p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=6_Rigol RGL Firmware Update Loader DS1052e]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=6_Rigol RGL Firmware Update Loader DS1052e]]></guid>
      <pubDate>Fri, 09 Sep 2011 1:37:39 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[WindowBuster]]></title>
      <description><![CDATA[<p>Long times ago, as i suddenly understood the MS Windows messaging system, i build a little tool to play around with the windows from running applications. You can play around with the window settings, change text, etc...<br />I think, a video is worth a thousand words...</p>
<p>&nbsp;</p>
<p><iframe style="display: block; margin-left: auto; margin-right: auto;" src="http://www.youtube-nocookie.com/embed/cVCrUNGJjGU?hd=1" frameborder="0" width="640" height="510"></iframe></p>
<p>&nbsp;</p>
<p>Later, i found out that it's a nice tool to open some disabled functions from stupid programmed shareware tools ;D<br />I don't want that this nice tool will rot away some more years on my harddisc. So here is the source for it.</p>
<p>Grab it from <a title="Github Site" href="https://github.com/krater/logaccess" target="_blank">my github site</a> or checkout the recent version with</p>
<p><strong>git clone&nbsp;git://github.com/krater/WindowBuster.git<br /><br /></strong></p>
<p><span style="color: #ff0000;"><strong>Attention !</strong></span> It's pre Alpha ! I only did play around with the possibilities. It was never planned as productive software. Press the wrong button to the wrong time and it will crash.</p>
<p>Have Fun !</p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=4_WindowBuster]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=4_WindowBuster]]></guid>
      <pubDate>Thu, 08 Sep 2011 17:34:31 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[PHP Access Log And Statistic Class]]></title>
      <description><![CDATA[<p>Here you find a simple and easy to use class that can be added to PHP websites to log and display user activities. I use it in the most of my websites, in this one too. To add it, it needs only some lines of code and through the usage of sqlite, no database access.</p>
<h2>Source Code</h2>
<p>Grab it from <a title="Github Site" href="https://github.com/krater/logaccess" target="_blank">my github site</a> or checkout the recent version with</p>
<p><strong>git clone&nbsp;git://github.com/krater/logaccess.git</strong></p>
<h2>Usage</h2>
<p>Add the lines:</p>
<pre>include "logaccess.php"; <br />logaccess::log([logfile],[event]);</pre>
<p><br />to your index.php or any other file from where the access shall be logged. Replace [logfile] with a filename like "access.log" and [event] with a number to distinguish between different events. The most people simply can insert 1. Do not use 0. This should then look like this:</p>
<pre>logaccess::log("access.log",1);</pre>
<p>Add the lines:</p>
<pre> .bar {<br /> background-color:#738f14;<br /> border:1px solid #839f24;<br /> line-height:14px;<br /> }<br /><br /> .barlabel {<br /> margin:-16px 0 0 0;<br /> line-height:16px;<br /> white-space:pre;<br /> vertical-align: middle;<br /> }</pre>
<p><br />to your CSS file and change the colors for your need. Now your Website has logging support. To show the logged informations, you can use this functions:</p>
<pre>logaccess::display_requests([logfile],[event],[starttime],[endtime];<br />logaccess::display_referers([logfile],[event],[displayfull],[starttime],[endtime]);<br />logaccess::display_useragents([logfile],[event],[starttime],[endtime]);<br />logaccess::display_systems([logfile],[event],[starttime],[endtime]);<br />logaccess::display_hosts([logfile],[event],[starttime],[endtime]);<br /><br /></pre>
<p>Remember to include the logaccess.php in your file.</p>
<p>&nbsp;</p>
<table border="1">
<tbody>
<tr>
<td>
<p><strong>Paramter</strong></p>
</td>
<td><strong>Usage</strong></td>
</tr>
<tr>
<td>logfile</td>
<td>the filename of the logfile</td>
</tr>
<tr>
<td>event</td>
<td>the event id you used in the log() call. If you want all events, use 0</td>
</tr>
<tr>
<td>starttime</td>
<td>unixtime of the first event that should be shown if you don't want to filter for starttime use 0 or leave empty</td>
</tr>
<tr>
<td>endtime</td>
<td>unixtime of the last event that should be shown if you don't want to filter for stoptime leave empty</td>
</tr>
<tr>
<td valign="top">displayfull</td>
<td>1=display complete referer url<br /> 0=display only referrer domain</td>
</tr>
</tbody>
</table>
<h2>&nbsp;</h2>
<h2>Preview</h2>
<p>When all things are working, it could look like this:</p>
<p><img title="Statistic Example" src="/tichyblog/images/logging.PNG" alt="Statistic Example" width="629" height="660" /></p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=5_PHP Access Log And Statistic Class]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=5_PHP Access Log And Statistic Class]]></guid>
      <pubDate>Mon, 01 Aug 2011 9:24:23 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Blackfin Processor Plugin for IDA Pro]]></title>
      <description><![CDATA[<p>Last month i buyed a Rigol DS1052e digital memory oscilloscope. I read that there is a easy way to patch it from 50MHz to 100MHz bandwith by sending some simple commands to his serial interface. Unfortunately i got a newer firmware version where this 'feature' was deactivated. And there was no known way to patch it. So i got the idea to reverse engineer the scope.</p>
<p>A firmware image was found fastly, but to find a Blackfin disassembler was a real problem. The only one i found was objdump from the Blackfin toolchain. Because i don't want to struggle myself by grepping through a huge textfile, i had to write my own disassembler.</p>
<p>Because IDA Pro from hexworks is one of the best reverse engineering tools on the market, i decided to write a processor plugin for it. My plugin is based upon the 'Simply Python Byte Code Module' from <a title="cseagle@gmail.com" href="mailto:cseagle@gmail.com" target="_blank">Chris Eagle</a> and the Blackfin disassemler part of libopcodes.</p>
<p><strong>Update:</strong> In the meantime there exists a possibility to downgrade the oscilloscope and patch it, but i didn't tried it yet.</p>
<h2>Features</h2>
<ul>
<li>Disassemble Blackfin instructions...obviously...</li>
<li>Syntax highlighting</li>
<li>Code-/Data- references</li>
<li>Memory Mapped Register adresses for ADSP-BF53x/ADSP-BF56x</li>
</ul>
<p>&nbsp;</p>
<h2>Todos and Known Bugs</h2>
<ul>
<li>Function frame sizes are sometimes wrong</li>
<li>Add known function starts/ends</li>
<li>Some coloring problems</li>
<li>LOOP references missing</li>
<li>Offset references missing</li>
<li>Add DMA registers for BF561</li>
</ul>
<p>&nbsp;</p>
<h2>Source Code</h2>
<p>You can find the source code on <a title="Github Site" href="https://github.com/krater/" target="_blank">my github site</a>.<br />You can checkout the recent code with</p>
<p><strong>git clone git://github.com/krater/Blackfin-IDA-Pro-Plugin.git</strong></p>
<p>or download the tarball direct over <a title="https://github.com/krater/Blackfin-IDA-Pro-Plugin/tarball/idabfin-1.0" href="https://github.com/krater/Blackfin-IDA-Pro-Plugin/tarball/idabfin-1.0" target="_blank">https://github.com/krater/Blackfin-IDA-Pro-Plugin/tarball/idabfin-1.0</a></p>
<p>Feel free to contact me for feedback and questions at andreas(at)schulerdev.de.</p>
<p>&nbsp;</p>
<h2>License</h2>
<p>This code is released under the terms of the GNU GENERAL PUBLIC LICENSE Version 2</p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=1_Blackfin Disassembler Processor IDA Pro Plugin]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=1_Blackfin Disassembler Processor IDA Pro Plugin]]></guid>
      <pubDate>Sat, 23 Apr 2011 21:18:31 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Hello World !]]></title>
      <description><![CDATA[<p>Hello World !<br />This is my new blog. From now on i'm going to write about the hardware and software projects i work on.<br />Have fun with reading.</p>]]></description>
      <link><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=2_Hello World !]]></link>
      <dc:creator>Author</dc:creator>
      <guid><![CDATA[http://codenaschen.de/tichyblog/?action=blog&entry=2_Hello World !]]></guid>
      <pubDate>Sat, 02 Apr 2011 1:04:09 +0200</pubDate>
    </item>
  </channel>
</rss>


