<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>Twisted world of Esden &#187; Computerworld</title>
	<atom:link href="http://www.esden.net/blog/category/computerworld/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.esden.net/blog</link>
	<description>My small window to the world...</description>
	<lastBuildDate>Thu, 15 Sep 2011 00:47:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/de/</creativeCommons:license>		<item>
		<title>How to build arm gnu gcc toolchain for Mac OS X [Updated 8x]</title>
		<link>http://www.esden.net/blog/2009/02/26/how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/</link>
		<comments>http://www.esden.net/blog/2009/02/26/how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 15:58:45 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Computerworld]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Open-BLDC]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/?p=131</guid>
		<description><![CDATA[Hi!
[Edit: This HOWTO is mostly outdated now because of the script summon-arm-toolchain I have created together with Uwe. You can find it here at GitHub. A short description on the usage of the script can be found in the Open-BLDC wiki.]
As I decided to use the STM32 for open-bldc and ordered an Olimex H103 evaluation [...]]]></description>
			<content:encoded><![CDATA[<p>Hi!</p>
<p>[Edit: This HOWTO is mostly outdated now because of the script summon-arm-toolchain I have created together with <a href="http://www.hermann-uwe.de">Uwe</a>. You can find it <a href="http://github.com/esden/summon-arm-toolchain/tree/master">here</a> at <a href="http://github.com">GitHub</a>. A short description on the usage of the script can be found in the <a href="https://open-bldc.org/wiki/Building_ARM_Toolchain">Open-BLDC</a> wiki.]</p>
<p>As I decided to use the <a href="http://www.st.com/mcu/inchtml.php?fdir=pages&#038;fnam=stm32">STM32</a> for <a href="http://open-bldc.esden.net">open-bldc</a> and ordered an <a href="http://www.olimex.com">Olimex</a> <a href="http://www.olimex.com/dev/stm32-h103.html">H103</a> evaluation board. I had to build the toolchain for it. This controller is an ARM Cortex-M3 and needs a GCC version beyond 4.3 because there the support was added.</p>
<p>There is a pretty good <a href="http://eluaproject.dreamhosters.com/en/Building_GCC_for_Cortex">HowTo</a> on <a href="http://eluaproject.dreamhosters.com/">eLua</a>. But as I decided to use the newest versions of the tools some things changed and I decided to write my own HowTo. And here it goes!</p>
<p>I am using <a href="http://www.macports.org/">macports</a> on my mac, so the howto is based on that. You need to install additionally <strong>gmp</strong> and <strong>mpfr</strong>. It is needed so that gcc can be compiled. I also use for most of the stuff I use <strong>stow</strong>. The toolchain cannot be installed using stow because of the softlinks it creates. You cane install it using macports too. </p>
<p><strong>Sources:</strong></p>
<p>Now you will need the following:</p>
<ul>
<li>
binutils: <a href="http://ftp.gnu.org/gnu/binutils/binutils-2.19.1.tar.bz2">http://ftp.gnu.org/gnu/binutils/binutils-2.19.1.tar.bz2</a>
</li>
<li>
gcc: <a href="http://gcc.cybermirror.org/releases/gcc-4.3.3/gcc-4.3.3.tar.bz2">http://gcc.cybermirror.org/releases/gcc-4.3.3/gcc-4.3.3.tar.bz2</a>
</li>
<li>
newlib: <a href="ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz">ftp://sources.redhat.com/pub/newlib/newlib-1.17.0.tar.gz</a>
</li>
<li>
libusb: <a href="http://sourceforge.net/project/showfiles.php?group_id=1674&#038;package_id=1632&#038;release_id=398442">http://sourceforge.net/project/showfiles.php?group_id=1674&#038;package_id=1632&#038;release_id=398442</a>
</li>
<li>
libftdi: <a href="http://www.intra2net.com/en/developer/libftdi/download/libftdi-0.15.tar.gz">http://www.intra2net.com/en/developer/libftdi/download/libftdi-0.15.tar.gz</a>
</li>
<li>
openocd: I am using svn version of openocd. The revision I tested was 1382. So to get it you need to run <code>> svn co -R 1382 svn://svn.berlios.de/openocd/trunk openocd-svn</code>
</li>
<li>
insight: The versions that I tested for now all had infinite loop bug. Will update that later when I found the right solution.
</li>
</ul>
<p><strong>Compiling binutils:</strong></p>
<p>I store everything that I build by myself in /opt/mine directory. I added it to my path and other relevant environment variables just as I did with /opt/local (the macports install directory). The toolchain needs its own directory. I call it /opt/mine/arm-none-eabi to distinguish it from other arm toolchains that I have on my machine.</p>
<p>I need to add another note here. I chose to use the arm-none-eabi target. This way the toolchain builds Version 4 EABI binaries instead of GNU EABI. I am not 100% sure what the difference is. (Please enlighten me here) But if I understand it correctly the Version 4 EABI is the ARM standarized EABI and not the GNU version of the EABI. But as stated before I am not really sure about that.</p>
<p><code><br />
> tar xfvj binutils-2.19.1.tar.bz2<br />
> cd binutils-2.19.1<br />
> mkdir build<br />
> cd build<br />
> ../configure --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls<br />
> make<br />
> sudo make install<br />
> cd ../..<br />
</code></p>
<p>Now you should also add the toolchain bin directory to your PATH so that the further steps can find the binutils binaries.</p>
<p><code><br />
> export PATH=/opt/mine/arm-none-eabi/bin:$PATH<br />
</code></p>
<p><strong>Building GCC bootstrap:</strong></p>
<p>GCC needs the newlib to build all of it&#8217;s libraries but newlib needs gcc to build. This chicken and egg problem can be solved by building GCC without libraries first, then building newlib and finally building GCC it it&#8217;s full form.</p>
<p><code><br />
> tar xfvj gcc-4.3.3.tar.bz2<br />
> cd gcc-4.3.3<br />
> mkdir build<br />
> cd build<br />
> ../configure --with-libiconv-prefix=/opt/local --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --enable-languages="c" --with-newlib --without-headers --disable-shared --with-gnu-as --with-gnu-ld --with-gmp=/opt/local --with-mpfr=/opt/local<br />
> make all-gcc<br />
> sudo make install-gcc<br />
> cd ../..<br />
</code></p>
<p>I have to comment here on some options used. Somehow the configure of gcc is not able to find gmp and mpfr by itself. Because they are installed in nonstandard directories when you look at a linux system. That is why you have to help it by providing &#8211;with-gmp and &#8211;with-mpfr. In the case of libiconv you have to add &#8211;with-libiconv. Not adding this option does not break the configure but introduces problems in the build process.</p>
<p><strong>Building newlib:</strong></p>
<p>Now that we have binutils and a basic gcc install we can build newlib. This one is pretty streightforward. </p>
<p>[EDIT This section should be obsolete! The patch does not even apply to the newlib-1.17.0 sorry] <del datetime="2009-03-04T18:57:39+00:00">Still you will probably need a patch that deals with makeinfo being not found by configure. I found it in <a href="http://osdir.com/ml/comp.gcc.cross-compiling.arm/2008-06/msg00017.html">a post on comp.gcc.cross-compiling.arm</a>. But I offer the patch <a href="http://www.esden.net/content/embedded/newlib-1.14.0-missing-makeinfo.patch">here</a> for download and your conveniance.</del></p>
<p><code><br />
> tar xfvz newlib-1.17.0.tar.gz<br />
> cd newlib-1.17.0<br />
> patch -p1 -i ../newlib-1.14.0-missing-makeinfo.patch     # the patch will yield a warning because it is for an older version of newlib but should apply<br />
> mkdir build<br />
> cd build<br />
> ../configure --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --with-gnu-as --with-gnu-ld --disable-nls<br />
> make<br />
> sudo make install<br />
> cd ../..<br />
</code></p>
<p><strong>Building GCC:</strong></p>
<p>This should be simple now. We build the full GCC version.</p>
<p><code><br />
> cd gcc-4.3.3/build<br />
> rm -rf *                       # clean up everything it makes stuff safer ^^<br />
> ../configure --with-libiconv-prefix=/opt/local --target=arm-none-eabi --prefix=/opt/mine/arm-none-eabi --enable-interwork --enable-multilib --enable-languages="c" --with-newlib --disable-shared --with-gnu-as --with-gnu-ld --with-gmp=/opt/local --with-mpfr=/opt/local<br />
> make<br />
> sudo make install<br />
> cd ../..<br />
</code></p>
<p><strong>Building libusb:</strong><br />
This library and the following libftdi is needed for jtagkey-tiny support in openocd.</p>
<p><code><br />
> tar xfvz libusb-0.1.12.tar.gz<br />
> cd libusb-0.1.12<br />
> mkdir build<br />
> cd build<br />
> ../configure --prefix=/opt/mine/DIR/libusb-0.1.12<br />
> make<br />
> sudo make install<br />
> sudo -s<br />
> cd /opt/mine/DIR<br />
> stow libusb-0.1.12<br />
> exit<br />
> cd ../..<br />
</code></p>
<p><strong>Building libftdi:</strong></p>
<p><code><br />
> tar xfvz libftdi-0.15.tar.gz<br />
> cd libftdi-0.15<br />
> mkdir build<br />
> cd build<br />
> ../configure --prefix=/opt/mine/DIR/libftdi-0.15<br />
> make<br />
> sudo make install<br />
> sudo -s<br />
> cd /opt/mine/DIR<br />
> stow libftdi-0.15<br />
> exit<br />
> cd ../..<br />
</code></p>
<p><strong>Building openocd:</strong></p>
<p>I am using the <a href="http://www.amontec.com/jtagkey-tiny.shtml">jtagkey-tiny</a> from <a href="http://www.amontec.com/">Amontec</a>, and <a href="http://www.embedded-projects.net/index.php?page_id=165">usbprog</a>. If you are using something else the options to configure will need enabling the other device. </p>
<p><code><br />
> cd openocd-svn<br />
> mkdir build<br />
> cd build<br />
> ../configure --prefix=/opt/mine/DIR/openocd-svn --enable-ft2232_libftdi --enable-usbprog<br />
> make<br />
> sudo make install<br />
> sudo -s<br />
> cd /opt/mine/DIR<br />
> stow openocd-svn<br />
> exit<br />
> cd ../..<br />
</code></p>
<p><strong>Building insight/gdb:</strong></p>
<p>Well I still have some problems here. I will update the post as soon as I find a solution here.</p>
<p><strong>Compiling and flashing an example program:</strong></p>
<p>Openocd supplied config file for jtagkey-tiny has an error in my case. On my machine the jtagkey-tiny appears as &#8220;Amontec JTAGkey&#8221; and not &#8220;Amontec JTAGkey A&#8221;. You have to edit <code>/opt/mine/lib/openocd/interface/jtagkey-tiny.cfg</code> and change the line <code>ft2232_device_desc "Amontec JTAGkey A"</code> to <code>ft2232_device_desc "Amontec JTAGkey"</code>.</p>
<p>Now you can download <a href="http://www.esden.net/content/embedded/stm32-blink.tar.bz2">stm32-blink.tar.bz2</a> that I cleaned up a bit. It is based on the <a href="http://www.olimex.com/dev/stm32-h103.html">example blink project</a> from Olimex.</p>
<p>The example project from Olimex uses parts of the Firmware Library from <a href="http://www.st.com">ST</a>. The documentation and the library itself can be found and downloaded <a href="http://www.st.com/mcu/modules.php?name=mcu&#038;file=familiesdocs&#038;fam=110&#038;doc=76">here</a>. You have to be careful though, the library has a very wierd license that is probably problematic when used in open source projects. I assume that the strange license may pose also problems when used in closed source projects too. But I am not a lawyer so do not kill me if I am wrong. :)</p>
<p><code><br />
> tar xfvj stm32-blink.tar.bz2<br />
> cd stm32-blink<br />
> make<br />
</code></p>
<p>Next step is to start openocd. You should start opencd in the stm32-blink directory so that later openocd can find the binary you will be uploading.</p>
<p><code><br />
> openocd -f /opt/mine/lib/openocd/interface/jtagkey-tiny.cfg -f /opt/mine/lib/openocd/target/stm32.cfg<br />
</code></p>
<p>Now open a new terminal and run the following commands to flash the stm32-blink binary.</p>
<p><code><br />
> telnet localhost 4444<br />
> halt<br />
> flash write_image erase stm_h103_blink_rom.bin 0x08000000<br />
> resume 0x08000000<br />
</code></p>
<p>Now the diode on the stm32-h103 board should start to blink happily! :)</p>
<p><strong>Notes and links:</strong></p>
<p>Here I gathered some additional links that may be usefull:</p>
<ul>
<li>
<a href="http://www.st.com/mcu/modules.php?name=mcu&#038;file=familiesdocs&#038;fam=110&#038;doc=60">STM32 Reference Manual</a>
</li>
<li>
<a href="http://www.st.com/mcu/modules.php?name=mcu&#038;file=familiesdocs&#038;fam=110&#038;doc=76">STM32 Firmware Library and it&#8217;s Documentation</a>
</li>
<li>
<a href="http://www.olimex.com/dev/stm32-h103.html">Olimex STM32-H103 Board Site</a>
</li>
</ul>
<p><strong>Disclamers:</strong></p>
<p>I hope this tutorial is useful. If I made any mistakes feel free to write a comment to this post. I will try to update it if something changes and/or needs to be corrected.</p>
<p>Cheers Esden</p>
<p>Updates: </p>
<ul>
<li>
Fixed link to stm32-blink.tar.bz2
</li>
<li>
Changed links to source packages to real links.
</li>
<li>
Added newlib patch for missing makeinfo
</li>
<li>
Added some additional links. For example to the ST Firmware Library and it&#8217;s documentation.
</li>
<li>
Added link to the Reference manual of STM32.
</li>
<li>
Removed the newlib patch section.
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2009/02/26/how-to-build-arm-gnu-gcc-toolchain-for-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Ok &#8230; back again</title>
		<link>http://www.esden.net/blog/2008/12/13/ok-back-again/</link>
		<comments>http://www.esden.net/blog/2008/12/13/ok-back-again/#comments</comments>
		<pubDate>Sat, 13 Dec 2008 04:03:00 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Computerworld]]></category>
		<category><![CDATA[ELCO]]></category>
		<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Open-BLDC]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2008/12/13/ok-back-again/</guid>
		<description><![CDATA[It is really time that I write something here. It is nearly one year since I last posted something here. But I was doing some things in the mean time. ^^
First of all I finished my Diploma at the University of applied sciences in Rosenheim. Now I am working at the computer science chair of [...]]]></description>
			<content:encoded><![CDATA[<p>It is really time that I write something here. It is nearly one year since I last posted something here. But I was doing some things in the mean time. ^^</p>
<p>First of all I finished my Diploma at the University of applied sciences in Rosenheim. Now I am working at the <a href="http://www9.cs.tum.edu">computer science chair of Prof. Radig</a>. The name of the chair is &#8220;Image Understanding and Knowledge-Based Systems&#8221; it somehow sounds cool. ^^</p>
<p>But basicly I get payed for programming Common Lisp. My work now involves getting the high level systems running on the real Robot. Till now all the high level planning stuff was only running in simulation.</p>
<p>In my short free time I started the <a href="http://elco.esden.net">ELCO Project</a> which should become a framework for developing Lisp based software for Embedded systems. But I have to write a more elaborate article on that topic.</p>
<p>And the last thing for today. I just released my first shot on the schematics of a really Open source <a href="http://en.wikipedia.org/wiki/Brushless_DC_electric_motor">Brushless Drive</a> Controller. You can find the eagle schematic (yes I know eagle is not open but the open source alternatives just suck!) in a git repository on <a href="http://www.github.com/esden/open-bldc">GitHub</a>.</p>
<p>I also can only encourage you to subscribe me on <a href="http://identi.ca/esden">identi.ca</a>. I am posting bit more frequently there. ^^</p>
<p>Cheers everyone!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2008/12/13/ok-back-again/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>cl-opengl-thomas mac os x bindings with native GLUT.framework</title>
		<link>http://www.esden.net/blog/2007/12/31/cl-opengl-thomas-mac-os-x-bindings-with-native-glutframework/</link>
		<comments>http://www.esden.net/blog/2007/12/31/cl-opengl-thomas-mac-os-x-bindings-with-native-glutframework/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 16:12:54 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2007/12/31/cl-opengl-thomas-mac-os-x-bindings-with-native-glutframework/</guid>
		<description><![CDATA[I got the information that the branch I used in the previous version is an older one and that I should migrate to the so called thomas branch.
So I did it and now it seems that all examples are working. Ok &#8230; the varray example is not working. It somehow is not willing to compile [...]]]></description>
			<content:encoded><![CDATA[<p>I got the information that the branch I used in the previous version is an older one and that I should migrate to the so called thomas branch.</p>
<p>So I did it and now it seems that all examples are working. Ok &#8230; the varray example is not working. It somehow is not willing to compile for me and I am too lazy to look into this problem. (perhaps next time)</p>
<p>You can get it <a href="http://www.esden.net/content/lisp/cl-mac-native-opengl-thomas-0.1.tar.bz2">here</a>.</p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2007/12/31/cl-opengl-thomas-mac-os-x-bindings-with-native-glutframework/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>cl-opengl mac os x bindings with native GLUT.framework</title>
		<link>http://www.esden.net/blog/2007/12/30/cl-opengl-mac-os-x-bindings-with-native-glutframework/</link>
		<comments>http://www.esden.net/blog/2007/12/30/cl-opengl-mac-os-x-bindings-with-native-glutframework/#comments</comments>
		<pubDate>Sun, 30 Dec 2007 15:32:20 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2007/12/30/cl-opengl-mac-os-x-bindings-with-native-glutframework/</guid>
		<description><![CDATA[I have adapted the cl-opengl bindings so that it runs with the GLUT bundle that is being shipped with mac os x.
Most examples seem to work. The ones that do not work need a more complicated fixing. But the API should run correctly. (I hope so &#8482;)
You can get the first version here.
I will try [...]]]></description>
			<content:encoded><![CDATA[<p>I have adapted the cl-opengl bindings so that it runs with the GLUT bundle that is being shipped with mac os x.</p>
<p>Most examples seem to work. The ones that do not work need a more complicated fixing. But the API should run correctly. (I hope so &#8482;)</p>
<p>You can get the first version <a href="http://www.esden.net/content/lisp/cl-mac-native-opengl-0.1.tar.bz2">here</a>.</p>
<p>I will try to continue testing and fixing the bindings. I i do so there will probably be also a repository for it. Who knows &#8230; ^^</p>
<p>I have tested it with sbcl 1.0.12 on a Leopard driven MacBook Pro.</p>
<p>Have fun</p>
<p>P.S. Greetings from 24c3 ^^</p>
<p>P.P.S &#8230; I made a screenshot that is attempting to proove that it is really working: <a href="http://www.esden.net/content/lisp/cl-mac-native-opengl-0.1.png">shot</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2007/12/30/cl-opengl-mac-os-x-bindings-with-native-glutframework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apple and their Support</title>
		<link>http://www.esden.net/blog/2007/02/13/apple-and-their-support/</link>
		<comments>http://www.esden.net/blog/2007/02/13/apple-and-their-support/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 11:59:47 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Computerworld]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2007/02/13/apple-and-their-support/</guid>
		<description><![CDATA[After a long time finally a new entry here.
Some time ago I owned a Powerbook 15&#8243;. This one had a problem with its second ram slot. It was not detected by the system. I called Apple Care but they were not willing to fix that. I really was upset about that because it was a [...]]]></description>
			<content:encoded><![CDATA[<p>After a long time finally a new entry here.</p>
<p>Some time ago I owned a Powerbook 15&#8243;. This one had a problem with its second ram slot. It was not detected by the system. I called Apple Care but they were not willing to fix that. I really was upset about that because it was a known problem. Still the serial number of my Powerbook was not in the range Apple considered affected by that problem. &gt;_&lt; Now I have a MacBook Pro 17&#8243; and some days ago my battery grew to its double size. Yes just like the one in this article <a href="http://gizmodo.com/gadgets/laptops/macbook-pro-batteries-are-inflating-222468.php">here</a>. I realized that only because my touch pad button was not clicking anymore and when I put my hand near the touch pad it triggered the button. Searching the web showed the article at Gizmodo above. I looked at the back of my laptop and was shocked.</p>
<p>Yesterday I called <a href="http://www.equinux.de">Equinux</a> and asked what can be done. They checked my Serial number and said that I should bring my laptop over. So directly after work I went there and without much asking they took my battery and said that they will replace it. (That is something that I was not expecting after my experiances with my Powerbook.) </p>
<p>As I was already there I pointed out a little cosmetic problem I had. The band underneath the keyboard weared off and lost its matt look just some weeks after I got my Macbook. (I will post a picture of it later.) They also said with no hesitation that they will replace the whole top if I want to. The problem I have is that I need my laptop all the time for my work so I can not leave it even for a day for fixing. So they said that they will make a appointment with me so I can come over and the technician will replace it in one hour. That is what I call service.</p>
<p>Now they showed me that Apple can also have a very good support as long as you have a guarantee coverage on your hardware. I can only say that I am very happy that I bought Apple Care along with the MacBook. That will save me lots of money and annoyance in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2007/02/13/apple-and-their-support/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Installing cl-opengl on Mac OS X</title>
		<link>http://www.esden.net/blog/2006/09/18/installing-cl-opengl-on-mac-os-x/</link>
		<comments>http://www.esden.net/blog/2006/09/18/installing-cl-opengl-on-mac-os-x/#comments</comments>
		<pubDate>Mon, 18 Sep 2006 13:57:56 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2006/09/18/installing-cl-opengl-on-mac-os-x/</guid>
		<description><![CDATA[Ok I am back with one more rant on Lisp.
Because of an idea I have, that is not yet ripe for decision, I was trying to get a graphics library that is portable and has a Common Lisp binding. Finally I got stuck on opengl and cl-opengl binding. I had a hard time getting it [...]]]></description>
			<content:encoded><![CDATA[<p>Ok I am back with one more rant on Lisp.</p>
<p>Because of an idea I have, that is not yet ripe for decision, I was trying to get a graphics library that is portable and has a Common Lisp binding. Finally I got stuck on opengl and <a href="http://common-lisp.net/project/cl-opengl/">cl-opengl</a> binding. I had a hard time getting it to run on Mac OS X so I tried it on Linux first where it worked out of the box. It is pretty nice even if making a mistake sometimes kills your lisp.</p>
<p>To install cl-opengl you need a Common Lisp implementation (I use <a href="http://sbcl.sourceforge.net/">sbcl</a>), <a href="http://common-lisp.net/project/cffi/">cffi</a> (I used cffi 0.9.1), an opengl library (I used the one shipping with Mac OS X) and GLUT (I used <a href="http://openglut.sourceforge.net/">OpenGLUT</a> but more on that later).</p>
<p>First I tried to get cl-opengl running with the native Mac OS X GLUT implementation but it did not work. I found information on the cl-opengl list that you need <a href="http://freeglut.sourceforge.net/">FreeGLUT</a>. The problem with FreeGLUT is that it does not compile on Mac because of some joistick problems.</p>
<p>So&#8230; get the source <a href="http://sourceforge.net/project/showfiles.php?group_id=104013">tarball</a> of OpenGLUT.</p>
<p>Untar it and run &#8220;CPPFLAGS=&#8221;-I/usr/X11R6/include&#8221; ./configure&#8221;. You need the CPPFLAGS variable because otherwise the build system will not find the right opengl headers.</p>
<p>Now run make and make install. In my case I added the option &#8211;prefix=/opt/mine to configure to not taint the running system with self compiled stuff.</p>
<p>Finally you should end up with OpenGLUT libraries.</p>
<p>Now download cl-opengl (probably using darcs &#8220;darcs get http://www.common-lisp.net/project/cl-opengl/darcs/cl-opengl/&#8221;)</p>
<p>Link the .asd files to your sbcl systems directory:<br />
# ln -s ~/cl-opengl/*.asd ~/.sbcl/systems</p>
<p>The problem with OpenGLUT is that it uses X11 to create windows. So you have to start the Mac OS X X11 server and start sbcl in the xterm within X11.<br />
After starting sbcl you can run at the repl the following:<br />
* (asdf:operate &#8216;asdf:load-op &#8216;cl-glut-examples)</p>
<p>That should compile and load the cl-opengl cl-glut and cl-glu bindings and also cl-glut-examples.</p>
<p>Now you should be able to test it running:<br />
* (cl-glut-examples:gears)</p>
<p>on the sbcl repl.</p>
<p><b>Conclusion:</b></p>
<p>cl-opengl binding is really nice. It still needs work so that it catches all errors that may occur. Doing something unpredicted with opengl may cause your lisp process to crash.<br />
It also requires at least FreeGLUT that is not willing to compile on Mac OS X but that is understandable because GLUT itself misses some features that are required to create really dynamic applications what is what you want. OpenGLUT does compile on Mac OS X but seems to be pretty old (2005 last release) and just like FreeGLUT requires X11. That is really nasty. I do not want X11 :(</p>
<p>It is usable it is pretty nice but there still is a lot to do! I will for sure dive more into that stuff and try to fix at least some of the problems I found.</p>
<p>But nonetheless thanks OpenGLUT and cl-opengl guys for your fine work! Now I can finally create some nice graphical stuff! Woot!</p>
<p>One more thing&#8230; the cl-glut-examples:gears demo gives the following frame rates on my MacBook Pro:<br />
23857 frames in 5.0 seconds = 4771.400 FPS<br />
24407 frames in 5.0 seconds = 4881.400 FPS<br />
24316 frames in 5.0 seconds = 4863.200 FPS<br />
24293 frames in 5.0 seconds = 4858.600 FPS</p>
<p>I think it is amazing! Tell me what framerates you get! ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2006/09/18/installing-cl-opengl-on-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Lisp Machines</title>
		<link>http://www.esden.net/blog/2006/08/29/lisp-machines/</link>
		<comments>http://www.esden.net/blog/2006/08/29/lisp-machines/#comments</comments>
		<pubDate>Tue, 29 Aug 2006 13:04:51 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Computerworld]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2006/08/29/lisp-machines/</guid>
		<description><![CDATA[Some days ago I watched some Lisp Machine Videos. These films show what it was like to use a lisp machine and code on it.
I really have to admit that I was not surprised to see what wonderful ideas the guys had back then. Current OS&#8217;s still have a long way to go to incorporate [...]]]></description>
			<content:encoded><![CDATA[<p>Some days ago I watched some <a href="http://www.cliki.net/Lisp%20Machine%20Videos">Lisp Machine Videos</a>. These films show what it was like to use a lisp machine and code on it.</p>
<p>I really have to admit that I was not surprised to see what wonderful ideas the guys had back then. Current OS&#8217;s still have a long way to go to incorporate (copy) the functionality you had 20 years ago in LispM Operating systems like <a href="http://en.wikipedia.org/wiki/Genera">Genera</a>. Apple as always is on the front line of incorporating this old stuff. For example <a href="http://www.apple.com/macosx/leopard/timemachine.html">Time Machine</a>. The new feature that will be there in Leopard (the next version of Mac OS X). The idea of easily going back in time and looking at your files was there 20 year ago.</p>
<p>Still as I now know Time Machine is still far away from the idea the LispM developers had. There you had a filesystem that had versioning built in. You can tell you do not save files just like that. You save patches to your files. That is somehow comparable to having SVN as your filesystem. Just a bit more sophisticated.</p>
<p>Sure that is not the only thing. There are tons of others. Like objects that are mouse sensitive depending on what you are doing. Accessing the displayed object structures that are behind that what you see. And many more&#8230;</p>
<p>I do not want to let myself get carried away too much. The condensed idea I wanted to share with you is the following. Genera is amazing. And if you think that any currently known OS is cool then you know nothing. And if you think that Java and Eclipse are cool then you live in the stone age in the matter of knowledge.</p>
<p>Sit down, learn lisp. It may hurt at first, but the freedom is worth it. Others had to pay their lives for freedom and you only have to learn.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2006/08/29/lisp-machines/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flashing M16C and R8C under Linux and Mac OS X</title>
		<link>http://www.esden.net/blog/2006/08/04/flashing-m16c-and-r8c-under-linux-and-mac-os-x/</link>
		<comments>http://www.esden.net/blog/2006/08/04/flashing-m16c-and-r8c-under-linux-and-mac-os-x/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 08:45:12 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Embedded]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2006/08/04/flashing-m16c-and-r8c-under-linux-and-mac-os-x/</guid>
		<description><![CDATA[Yesterday and the day before Uwe and I were trying to flash an R8C and alternatively an M16C under Linux. We were finally successful using the Flasher from Thomas Fischl. You have to be careful to get the one on his site not the original from Lost In The Ether. The original seems to be [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday and the day before <a href="http://www.uwe-hermann.de">Uwe</a> and I were trying to flash an <a href="http://en.wikipedia.org/wiki/R8C">R8C</a> and alternatively an <a href="http://en.wikipedia.org/wiki/M16C">M16C</a> under Linux. We were finally successful using the <a href="http://www.fischl.de/thomas/elektronik/r8c/r8c_flasher.html">Flasher from Thomas Fischl</a>. You have to be careful to get the one on his site not the original from <a href="http://www.lostintheether.net">Lost In The Ether</a>. The original seems to be somewhat broken.</p>
<p>Still there are some points you should be careful about. First of all the image you want to flash has to be for R8C or M16C respectively. The problem is that the addresses contained in the images have different order (endianes) depending on the chip. The sample srecord image contained in the tarball from Fischl is for _M16C_ and _NOT_ R8C.</p>
<p>Next thing is you should try to use a real hardware serial interface if you get problems with a serial to usb converter. We found out that even if the converter contains a prolific usb to serial chip it does not mean that it will work. We have two cables here and we know that Sitecom works.</p>
<p>We will probably write a patch for the flasher program containing some additional documentation and some checks and timeouts. The checks should validate the addresses one wants to flash are valid for the chip, and the program should timeout if it does not get data back from the chip during flashing. At least that is our TODO.</p>
<p>More information to come. ;)</p>
<p>[Update] Added some links.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2006/08/04/flashing-m16c-and-r8c-under-linux-and-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lisp Interpreter in Java Script</title>
		<link>http://www.esden.net/blog/2006/07/17/lisp-interpreter-in-java-stcript/</link>
		<comments>http://www.esden.net/blog/2006/07/17/lisp-interpreter-in-java-stcript/#comments</comments>
		<pubDate>Mon, 17 Jul 2006 21:55:50 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Computerworld]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2006/07/17/lisp-interpreter-in-java-stcript/</guid>
		<description><![CDATA[Today I found something pretty nice a Lisp interpreter in Java Script.
I came to it through logowiki. I found it pretty amazing that you can run the example programs you have in your wiki. So I asked google about it.
The interpreter lacks some functionality like defun, defmacro and so on but I think it would [...]]]></description>
			<content:encoded><![CDATA[<p>Today I found something pretty nice a <a href="http://www.joeganley.com/code/jslisp.html">Lisp interpreter in Java Script</a>.</p>
<p>I came to it through <a href="http://www.logowiki.net/">logowiki</a>. I found it pretty amazing that you can run the example programs you have in your wiki. So I asked google about it.</p>
<p>The interpreter lacks some functionality like defun, defmacro and so on but I think it would be a nice base for creating logowiki like interpreter. I have not read the source yet but I think it may be a nice way to show someone how to create a simple lisp interpreter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2006/07/17/lisp-interpreter-in-java-stcript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lisp in Todays Embedded World Investigation</title>
		<link>http://www.esden.net/blog/2006/07/15/lisp-in-todays-embedded-world-investigation/</link>
		<comments>http://www.esden.net/blog/2006/07/15/lisp-in-todays-embedded-world-investigation/#comments</comments>
		<pubDate>Sat, 15 Jul 2006 15:53:04 +0000</pubDate>
		<dc:creator>esden</dc:creator>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[Lisp]]></category>

		<guid isPermaLink="false">http://www.esden.net/blog/2006/07/15/lisp-in-todays-embedded-world-investigation/</guid>
		<description><![CDATA[I continued my reading about Lisp and also searched the Web a bit more for anything related to Embedded Systems. I think that this is a pretty sad story.
I heard from a friend that I missed ecls in my last post. He said that it is possible to compile Lisp to C with it and [...]]]></description>
			<content:encoded><![CDATA[<p>I continued my reading about Lisp and also searched the Web a bit more for anything related to Embedded Systems. I think that this is a pretty sad story.</p>
<p>I heard from a friend that I missed <a href="http://ecls.sourceforge.net/">ecls</a> in my last post. He said that it is possible to compile Lisp to C with it and then you can crosscompile the resulting C source to any architecture you like. But that simply does not feel right. That is only a hack. You miss the things you want the most (beside Lisp itself) REPL and with it the integrated inspector and debugger just like the profiler and tracer. Also you miss binary upload of functions. Think for yourself. If you do not have that things does development with lisp feel like it should? If you ask me it does not. </p>
<p>So I searched further. I knew that there was someone who developed the triple L, Mars and Venus. I did not know what it exactly was but I knew that it was a lisp development environment for embedded systems. </p>
<p>Looking more in depth in to that, I had to realize that the only thing that exists is the paper <a href="http://www.cs.cmu.edu/~chuck/pubpg/LUV-1995.html">L &#8211; A Common Lisp for Embedded Systems</a> (pdf format is <a href="http://www.cs.cmu.edu/~chuck/pubpg/luv95.pdf">here</a>) by Rodney A. Brooks and Charles Rosenberg. This paper is telling a beautiful story about a development system that would be the thing one would like to have. But you can not get it anywhere! On the page of <a href="http://www.cs.cmu.edu/~chuck/resumepg/resume.shtml">Charles Rosenberg</a> you find the pointer that the company IS Robots (that was developing L, Mars and Venus) is now <a href="http://www.irobot.com/">iRobot</a> (yes the <a href="http://en.wikipedia.org/wiki/Roomba">Roomba</a> guys). Searching their site does not say anything about lisp though.</p>
<p>The only other person bringing iRobot together with Lisp is <a href="http://lemonodor.com">Lemindor</a> I have not read all his posts yet but he does not really say anything that helps me neither.</p>
<p>I also asked about the topic in #lisp on freenode but it seems that the overall opinion is that everyone is brewing his own Lisp if he/her wants to use lisp on embedded system.</p>
<p>That is really bad news. I was hoping that there will be something I will be able to base on. The only solution that I see now is to take some common lisp implementation  and port it to some embedded system. And when it works start changing it and splitting in parts so that it fits development on embedded systems. (you do not really want the compiler on your embedded system normally an interpreter is enough)</p>
<p>That somehow sounds pretty big and heavy. :(</p>
<p>The second solution would be to start with a small Lisp implementation by oneself. When you read Paul Graham&#8217;s article <a href="http://www.paulgraham.com/rootsoflisp.html">Roots of Lisp</a> you get the feeling that it can not be that hard. But still I think that is probably a false feeling. But if I had the power and money to hire some people that are bright enough I think I would attack that. I even know some people that are bright and that would be able to create such thing but none of them would want to invest their time in such a project when they do not get money for that. So there is high possibility that Lisp on embedded systems will remain a dream. :(</p>
]]></content:encoded>
			<wfw:commentRss>http://www.esden.net/blog/2006/07/15/lisp-in-todays-embedded-world-investigation/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

