On Sunday 07 January 2007 17:40, David Anderson wrote: > On 1/5/07, Charles Manning <[EMAIL PROTECTED]> wrote: > > I have been using gnuarm.org based stuff for ages and most things are > > pretty good. I've used this in a few products over the last 3-4 years. I > > could not get gcc 4.1.1 working so we're currently using 4.0.2. > > > > If you want to get steeped in ARM embedded development then I suggest > > joining the gnuarm email group. > > > > gdb (or other debuuger) is normally used via gdbremote on embedded > > targets and works well with Linux. The gdbremote protocol is also used > > by many other debuggers. > > > > The jtag tools typically fall into two groups: > > 1) Host-based gdbserver runs on the host and converts gdb remote > > transactions into jtag requests. Most well known is openocd which > > supports a wide range of jtaggers from thiungs you can make yourself for > > $10 (wiggler clone) up to many-hundred-dollar devices. I suggest you > > start by looking at openocd. 2) Self-hosting gdb remote servers. These > > are typically the most expensive devices (eg. bd12000 at approx $2400). > > Gotcha. I've been looking them up, and am going to buy one of the > smaller host-based usb-jtag interfaces (advertised with full openocd > support; nice). > > > > Have you considered moving the platform code into a project separate > > > from the lejos VM? > > > > I have considered that, but this is effort and requirtes some motivation > > (in other words if I have a few hours I'd rather put it into more Lejos > > features). > > I hear you. Getting a working high-level framework running is what is > most useful to the community at large, and it's clear you have all the > knowledge needed to get there. I'm still getting started on the much > more basic level, so I'm not sure I'll be of much use for now. I've > got a few people interested in working on platform code as opposed to > working within a JVM, so maybe once we get off the ground we can help > out with the platform support code, and getting it going as a separate > project in earnest.
At this stage, working within the same project is fine and splitting this off into a seperate project would make the project cycle time within Lejos longer. If it makes sense to start exposing a C API, then I think it first worth doing that in the same project. As things settle, then a fork is worthwhile. > > On that subject, if you have a minute, a couple of questions: did you > solder a connector onto the jtag header on the board? > If so, do you > have the part number for that connector handy? The jtag interface I'm > getting has the standard arm jtag connector, which doesn't match the > layout on the board. Is there a converter cable available from > somewhere, or did you make your own? See http://users.actrix.co.nz/manningc/lejos_nxt.jpg No I did not use a connector, mainly because I'd have had to wait for a few days to go to the component shop. The connector has the following layout 12345678 9 A only pins 1..8 are used. The pin spacing is exactly 0.05 inches which means that it fits regular ribbon cable. I took some ribbon and stripped a few mm off each then tinned the conductors together. I then soldered the other end to a standard 10x2 header to provide the standard ARM JTAG pinout then gooped it all in hot melt glue to prevent solder joint fatigue. > > And finally, regarding the twi driver in lejos. I'm having trouble > understanding the function of the clocking loop in the reset code, > which as I understand drives a clock signal manually for a couple of > cycles. What is the purpose of that? The purpose of that is to complete any transaction that might be in process. This might happen if the CPU was reset partway through an I2C transaction. The main reason you need this is that the TWI peripheral has a hardware bug in it. If you enable the TWI peripheral while SDA or SCL are low then the TWI peripheral will lock up and will not work without a power cycle. The worst case scenario for clocking would be if the I2C was broken partway through a receive transfer. Since the I2C protocol inserts Ack bits (high) between every 8 bits, we should get a high within 9 clocks. We thus clock up to 9 cycles to get the high state we need to be able to start the TWI peripheral. ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Lejos-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/lejos-discussion
