| | Re: linker segmentation fault
|
|
(...) Workaround attached. Brickos maintainers: Any comments? Maybe put something vaguely like it into CVS? Max. (22 years ago, 17-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | linker segmentation fault
|
|
I'm running Red Hat Linux 8.0 (gcc 3.2 and binutils 2.13). Whe I try to compile the demos that come with brickOS 0.2.6.09, using binutils 2.12.91 for the cross-linker and gcc 3.2.1 as cross-compiler, the linker crashes. Here is the output of the (...) (22 years ago, 17-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: BrickOS Threading...
|
|
(...) To tell you the truth, I'm not exactly sure how the BrickOS PWM works, but I do know the standard RCX PWM simply switches the motors between ON and FLOAT, which will not slow the motor down, when it switches from a high power, to a lower (...) (22 years ago, 16-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: sys_time (long post)
|
|
Only a suggestion, In any processor architecture (with or without disabling or recursive interrupts) when I need to read timers with more than 1 single instruction I do the following: Read the timer (both low and high value) until I get 2 times the (...) (22 years ago, 16-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: sys_time (long post)
|
|
(...) I went back and read... I was missing something apparently... Note to self... do not skim. -Kekoa (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: sys_time (long post)
|
|
Does the H8 let an interrupt interrupt an interrupt? (Or at least the interrupts that matter in this case?) You two might want to check on that. It would seem the code is safe if the answer to the first question is no... ? Maybe I'm missing (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: BrickOS Threading...
|
|
Joe, (...) Maybe a special kernel build for testing purposes that increments the lower sys_time word by 0x4000 instead of 1. This will greatly increase the opportunity for this glitch to occur (from once every 65 seconds to once every 4ms.) You (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: BrickOS Threading...
|
|
Steve, I checked in some changes this morning (into cvs) to put the motor controller back at the 1 ms interval. However, I want to complete the get_sys_time() updates that Mark Riley has proposed; so that can be tested as well. I am not sure when (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: sys_time (long post)
|
|
(...) It turns out that the nature of the glitch depends on the order you read the upper and lower 16-bits of sys_time. If the compiler generates code that reads the high word first (which it seems to do), then your example will work. However, if (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: BrickOS Threading...
|
|
(...) In trying to balance an RCX on two wheels, every little bit makes a difference. I didn't think it would matter quite that much, but my robot really shakes more with the new version. Thanks for the work, Steve (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | setjmp/longjmp for brickOS
|
|
Hi all, I am currently attending to a lecture in real time system on my university and we were assigned the homework to do exception handling in C on the RCX using setjmp and longjmp. Of course those are not available in brickOS so that task (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: BrickOS Threading...
|
|
(...) <snip> (...) Steve, Yes, infact I had tested a couple different applications with the motor controller being called every 1 ms and the same ones with a 2 ms interval. I didn't see a difference with those applications, but did recognize the (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: BrickOS Threading...
|
|
(...) ... (...) This change seem to improve things. Can I change it back to the way it was before? Thanks Steve (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: sys_time (long post)
|
|
Mark, Excellent Post ! Ok, I will admit it; I was the one that put the sys_time handler on the NMI. 8-) I guess I will want to think about this a bit; but I see that you have done a good bit of that yourself. ... Could the 'Get' function do the (...) (22 years ago, 12-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: Win98 cygwin USB installation
|
|
Hi Collin, This post by John Hansen fixed things for me: (URL) Spencer" <cspencer@andrew.cmu.edu> wrote in message news:H71CzB.Ipu@lugnet.com... (...) USB (...) them or (...) to (...) the (...) the (...) USB (...) that (...) the (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: Win98 cygwin USB installation
|
|
Ok, I think I figured it out...I don't completely understand the logistics of makefiles, but I changed the following line in Makefile.common: Before: CFLAGS = -O2 -Wall After: CFLAGS += -O2 -Wall I suspect that a later assignment to CFLAGS was (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Win98 cygwin USB installation
|
|
Hello, I recently bought the LEGO mindstorms Invention System kit and I am trying to get brickOS v0.2.6 working on my PC (Win98). I also have the USB tower. So far, I have found 4 bugs in the current script. I was able to fix 3 them or work around (...) (22 years ago, 13-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | Re: BrickOS Threading...
|
|
The motor handler is only called once ever 2ms in the latest version of BrickOS (as opposed to every 1ms in earlier versions). This is a fairly recent change and it could be causing a "granularity" type problem with certain speed settings in your (...) (22 years ago, 12-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | BrickOS Threading...
|
|
I'm having a problem, and I hope someone can help me. I've been running winLegOS, and I've switched to the latest version of BrickOS. I created a way to control the motors, which will reliably speed them up, and slow them down by using different (...) (22 years ago, 12-Dec-02, to lugnet.robotics.rcx.legos)
|
|
| | sys_time (long post)
|
|
As I was poking around in the BrickOS kernel, it occurred to me that using the sys_time variable isn't entirely safe. Since sys_time is 32-bits and the processor can only read 16-bits at a time into a register, there is a period of time between the (...) (22 years ago, 12-Dec-02, to lugnet.robotics.rcx.legos)
|