Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2004-03-12

00:09:35 Join matsl [0] (
00:11:11amiconn|code[IDC]Dragon: memset (first version, only byte copying) is only 5 asm instructions!
00:11:40[IDC]DragonI wasn't expecting much code
00:12:40[IDC]DragonThe art is probaby unrolling, depending on the block size.
00:15:18amiconn|codeOf course, this is a first test only. Just tested compiling, expected to get the problem I got - it is _not_ enough to take out memset.c, put in memset.S and make: Got several "undefined reference to memset" errors.
00:18:18amiconn|codeWhat do I have to change in the makefile?
00:18:28 Quit mattzz|away ("Client exiting")
00:18:32[IDC]Dragondis you do "make clean"
00:19:43amiconn|codeThis make syntax looks really cryptic to me.
00:20:17[IDC]Dragonyou did the .global thing?
00:21:23[IDC]Dragonah, you have the first asssembler file in firmware/common, right?
00:21:31amiconn|codeYup. Copied the header from descramble.S and changed every occurence of _descramble to read _memset.
00:21:41amiconn|codeYes, first .S there
00:22:02[IDC]Dragonprobably the makefile doesn't do *.S in common
00:22:20[IDC]Dragontry to move it one up
00:27:19amiconn|codemoved, did make clean, make -> "undefined reference to memset"
00:27:55[IDC]Dragonwas it assembled?
00:28:06amiconn|codeTried adding "$(OBJDIR)/memset.o" to line 33 of the makefile, it did work now. Have to test the binary.
00:31:09[IDC]Dragonah, suspiciously the other assembler files are listed there, too
00:31:09amiconn|codeIt hangs at boot :(
00:32:10[IDC]DragonI need to sleep
00:33:15***Saving seen data "./dancer.seen"
00:33:17 Quit [IDC]Dragon ()
01:04:19 Join wake [0] (
01:16:53 Join AciD` [0] (
01:21:30 Quit AciD` (Client Quit)
01:23:09 Join track [0] (
01:23:12 Quit track (Client Quit)
01:30:18 Join Sproink [0] (
01:30:31SproinkSo, how's the new video player work?
01:30:42SproinkI saw the Doom demo..
01:30:46Sproinkis it on par?
01:30:49Sproinkis there sound?
01:37:34 Quit Sproink ()
01:43:35 Part amiconn|code
02:03:51 Join Guest [0] (~jirc@
02:04:05 Quit Guest (Client Quit)
02:04:21 Join Guest [0] (~jirc@
02:05:01GuestCan you shuffle all the songs on the jukebox?
02:06:56 Quit Guest (Client Quit)
02:16:34 Quit mecraw__ ("Trillian (")
02:19:00 Quit c0utta{zZ} (Read error: 110 (Connection timed out))
02:33:20***Saving seen data "./dancer.seen"
02:40:40 Join diddystar5 [0] (
02:40:41 Quit Nibbler (Read error: 54 (Connection reset by peer))
02:58:56 Quit diddystar5 ("Leaving")
03:07:02 Join Guest [0] (~jirc@
03:08:02Guestcan somebody answer a question about recording function of rockbox?
03:09:03 Quit wake ("leaving")
03:09:21 Quit matsl (Read error: 113 (No route to host))
03:10:53 Join matsl [0] (
03:12:03 Quit matsl (Remote closed the connection)
03:16:21 Join diddystar5 [0] (
03:17:07 Quit scott666_ (Read error: 110 (Connection timed out))
03:17:20 Join scott666_ [0] (
03:17:31Guesthello. can somebody answer a question about recording functionality of rockbox?
03:21:35 Join Lunchbox [0] (
03:22:23Lunchboxhey, has anyone ever tried to change the batteries in a V2 Recorder?
03:22:58diddystar5Lunchbox: sure see , they have batteries for sale, and i think a guide
03:23:22Guesthey thanks! so the question: can i record from line in AND use the device as a external USB drive at the same time?
03:23:23Lunchboxk looking
03:24:28Lunchboxaww, no guide
03:24:36diddystar5Guest: no, rockbox can't (and wouldn't want to because of some nasty errors there could be)
03:24:58LunchboxI found a guide in the docs, but I still can't get the top off
03:24:59diddystar5Lunchbox: from what i heard it's somewhat easy
03:25:06diddystar5what top?
03:25:17Lunchboxthe cover above the lithium battery
03:25:31Lunchboxmy model seems to be different
03:26:03Guestbut at least i can record from line in (without using it as a usb drive), is that correct?
03:26:10diddystar5is that the site you were looking at?
03:26:31Lunchboxmine has two screws for no reason unlike the ones that everyone has pics of
03:26:51Lunchboxit also has a different construction on the battery connection
03:27:03diddystar5Guest: no because recording requires HD acess to the hd, and it cant be on usb and have rockbox writing to it at the same time
03:27:13diddystar5Guest: what do you want to do exactly?
03:28:03diddystar5Lunchbox: cant really help you, i have never used a v2
03:28:07diddystar5(or FM)
03:28:33Lunchboxthat's cool, thanks anyway :-)
03:28:40 Join Strath [0] (
03:29:08Guesti need to record long sets of live music, a few hours each. i'm a DJ and want to record my own sets.
03:29:39diddystar5ok, then why do you want it on usb at the same time?
03:30:46 Quit diddystar5 ("Leaving")
03:30:48Guestoh this way i could also use the device as an external hard drive for the laptop. i mix mp3 using laptop.
03:32:42 Join diddystar5 [0] (
03:34:05Guestso diddistar, i was saying that i mix mp3s using laptop and i could use the device as the external mp3 storage at the same time.
03:35:10diddystar5humm i don't know what you would do, can't you get a mic and just record on your laptop?
03:35:29diddystar5then you could use you archos as storage :)
03:35:56 Quit Lunchbox ()
03:36:15diddystar5i wish you could recorde + usb at the same time, but it just couldn't work
03:36:20Guestbut i guess i should just get a bigger drive for the laptop. i tried to record with the laptop but it's not powerfull enough to run the mixing software and record at the same time
03:37:11diddystar5you dont have enough of a HD in your laptop to save the mp3's?
03:37:23Guestand can i upgrade the hard drive in the archos? what's the biggest drive size that rockbox can support?
03:37:56diddystar5it should be able to support as many as you could ever get
03:38:16diddystar5the biggest drives that will fit in the archos is 80 gig atm
03:38:42diddystar5(and same with laptops, laptop HD's are the same ones as the archos uses)
03:39:04Guestwell i have about 7 gig for mp3 on the laptop, but i'd like to carry at least 3 times more.
03:39:25Guesthow easy is it to upgrade the drive in the archos?
03:39:33diddystar5its fairly easy
03:39:38diddystar5what unit do you have?
03:40:09Guesti'm planning to buy jukebox recorder
03:40:35Guestso would you say it takes about half hour to replace drive in archos?
03:40:45diddystar5less than that
03:41:10diddystar5but i would stay away from the recorder FM, and the recorder v2 if you want to upgrade the HD
03:41:21diddystar5you have to do unsoldering on those
03:41:43diddystar5try to stick with the plain recorder's
03:42:01Guesthmm, the one that amazon sells currently −− which version is it, do you know?
03:42:32diddystar5where is the link?
03:44:11diddystar5thats a v2
03:44:36diddystar5one sec...
03:47:05diddystar5here is a plain recorder on ebay for $102 currently
03:47:45diddystar5the pic shows a player unit, but the description says recorder...
03:48:46Guestinteresting. thanks. and besides the unsoldering issue the v1 and v2 recorders are the same? in terms of hardware i mean: audio quality, reliability?
03:49:35diddystar5the hardware was moved around a bit in the FM and v2, but all the same chips ETC, and they have the same audio quality
03:50:05diddystar5btw: the "stuidio" or "player" versions cant recorde, and they suck so stay away from those
03:50:57diddystar5the tell a v2 from a original, the v2 has a new smooth look to it, and the plain ones are a box look
03:51:45Guestyou have a lot of experience with the device. would you say it's reliable? i read some bad comments on the net...
03:51:51diddystar5this shows what the originals look like A recorder on the lef tand a player on the right)
03:51:57diddystar5yes i have one
03:52:24Guesta picture is a thousand words :) thanks
03:52:27diddystar5humm some people have had bad luck (mostly with the player units)
03:52:40diddystar5but i never had any problems with my recorder
03:52:51diddystar5(i had a player beofre, it broke)
03:54:29Guestdo you know if it comes with a power supply?
03:54:38diddystar5yes, it does
03:55:08diddystar5btw, if you want high quality recordings, you will want a direct line in, or externel mic
03:55:29diddystar5the built in one picks up hd noises, and they are annoying
03:56:37Guestyes i'm going to record from a mixer output which gives a line-level signal.
03:57:17diddystar5neat, do you get digital (spdif i think) out of the mixer?
03:58:34Guestno i dont have digital out on this mixer. but i'm will be upgrading it so i might get one with digital out.
03:58:44 Quit Strath ("Application closed")
03:59:17diddystar5thats good, the archos recorder has a digital input, so dont have to worry about quality or anything
03:59:29Guestthe think is that all the amplifiers take analog signal anyway, so digital out was a moot point up till now.
03:59:46diddystar5if you do get a recorder, definitly put rockbox on it :)
04:00:01diddystar5and always recorde at the highest quality you can
04:00:06Guesti'm planning to :)
04:00:30Guestthat's it, i think i'll go buy it right now :)
04:01:07diddystar5good luck!
04:01:30Guestthanks a lot for all the useful info!
04:09:01 Quit Guest ("Leaving")
04:14:49 Join pfavr [0] (
04:16:31pfavrhi diddystar
04:16:37pfavrhi diddystar5
04:17:04diddystar5hey pfavr
04:19:07 Join Nibbler [0] (
04:21:42 Quit pfavr ("ChatZilla 0.9.52B [Mozilla rv:1.6/1]")
04:33:21***Saving seen data "./dancer.seen"
04:44:50diddystar5see you
04:44:52 Part diddystar5 ("Leaving")
04:59:01 Join Godzuki [0] (
04:59:19Godzukiis there a 2.2 flash out for v2, or do I need to make my own?
05:03:45 Join Threshold [0] (
05:04:11Thresholdanyone around ?
05:07:26ThresholdI've got a V2 recorder....since I got it last friday these are the symptoms this thing has, after this thing sits for like 3 hours and I try to power it up, the lcd does a quick flash, the drive light comes on and then another lcd flash, then it goes off, after 20-30 minutes of trying to turn on, eventually it boots up, then the thing works great, battery lasts over 10 hours...but then after I charge it and don't use it over night I
05:14:08scott666_im here
05:14:15 Nick scott666_ is now known as scott666 (
05:15:08scott666was it charged when you were trying to boot?
05:15:48scott666not flashed?
05:16:12scott666how long do you hold 'on' when youre turning it on?
05:16:46Thresholdit does the same thing if I plug it in or into the usb port
05:16:56Thresholdit just keeps doing the same thing over and over
05:17:20scott666with the archos bootloader i remember having to hold 'on' for a few seconds before it would turn on completely
05:17:28Thresholdtried that
05:17:34scott666no luck?
05:17:43MTThreshold: was i talking to you about this about a week ago?
05:17:51scott666and it doesnt go to the charging screen when you plug it in?
05:17:51Thresholdafter about 30 mins of doing that it will kick on
05:18:02MTif so, I still think your unit is faulty and you should return it
05:18:16scott666thats what it sounds like to me
05:18:19MTthat is _not_ normal behaviour (even for a V2!)
05:18:34scott666other thing you could try is flashing it and seeing if the new bootloader works better
05:18:41Thresholdtech support finally emailed me today after emailing them 4 days ago
05:19:12MTyou need a phone number
05:19:14scott666but if it wont load the charging screen theres gotta be somethin seriously wrong
05:19:23Thresholdthey left me a #
05:19:26MTand about 8 free hours
05:19:51MTand just keep talking to them till they give you an RMA number and tell you what time the courier will be collecting it from you
05:20:14Thresholdafter I keep pressing on and it finally boots, when I plug it in it finally goes to the charging screen
05:21:02scott666and holding on doesnt help?
05:21:36Thresholdthe lcd screen flashes then goes back off, and keeps repeating
05:21:41scott666cause thats the easy solution
05:21:51scott666but obviously not the case
05:22:18scott666either try flashing it or return it
05:22:37scott666id go for the latter
05:23:06Thresholdhow do I flash it ?
05:23:20Thresholdit has the 1.40 os
05:23:41ThresholdI have it on and connected to the computer now
05:32:44Thresholdfirmware_rec.bin or firmware_fm.bin or firmware_v2.bin (name depends on your model) into the root directory (the complete firmware for your model, with the bootloader and the two images). There now is also a _norom variant, copy both, the plugin will decide which one is required for your box.
05:32:52ThresholdI don't see the bin files in the zip
05:33:08GodzukiI have a v2, and it seems to have a different architecture than the v2 in the guide
05:33:15Godzukiand I can't get the battery cover off it.
05:33:22GodzukiALSO, don't flash with the firmware_v2.bin
05:33:27Godzukiit's not the newest version.
05:33:33scott666you have to
05:33:35Godzukiactually, nm
05:33:36scott666the first time
05:33:46scott666you can update with a ucl later
05:33:52Godzukiyou'll have to flash two different ways to get 2.2
05:34:09scott666why cant you get the battery cover off your v2?
05:34:37Godzukiit WILL not come out
05:34:41Godzukieven when forced a little bit
05:34:42scott666are there screws?
05:34:48Godzukiyeah, two
05:34:50Godzukibut I took those out
05:35:03GodzukiI tried prying it with a small flathead
05:35:14scott666in the little opening for it?
05:35:17Godzukiand all I managed to do was scar up the foil on the li battery
05:35:20scott666it should just pop out
05:35:25Godzukiyeah, it pops out
05:35:28Godzukibut it doesn't COME off
05:35:41Godzukithe metal connectors stuck down in the case
05:35:43Godzukiwill not come out.
05:35:48Godzukiit pops out of the socket
05:35:58Godzukibut it won't let me remove it
05:36:01Godzukilike it's glued in.
05:36:36GodzukiI bought it off amazon
05:36:45Godzukicause I'm a cheapskate
05:36:53GodzukiI new something was up when the box said it had nimh
05:37:02Godzukibut it's definitely a v2, and definitely li ion
05:37:15Godzukiso, I dunno what they've done
05:37:19Godzukior if it's some bargain model
05:37:31Godzukibut, I do know that I cannot remove the battery cover.
05:39:25scott666you pulled the cover up, towards the face of the archos, right?
05:39:43Godzukithen I tried pulling out
05:39:45Godzukineither worked.
05:39:49Godzukiit won't move
05:41:17Godzuki:( that's not the kind of answer I wanted to hear.
05:41:44Godzukiis there any reason for me to change my lithium battery anyway?
05:55:25scott666and archos doesnt sell the batteries seperate
05:55:57scott666if you ever want to do mods though you might be out of luck
06:15:45 Join midknight2k3 [0] (
06:19:05scott666got your copy of 2.2?
06:19:27midknight2k3no more jab
06:19:56scott666oh, right
06:20:05scott666avos then?
06:20:06midknight2k3but AJB back in ... two days
06:33:24***Saving seen data "./dancer.seen"
06:35:24 Quit Nibbler (Read error: 104 (Connection reset by peer))
06:35:30 Quit midknight2k3 ("Going... BYE!")
06:51:03 Join ssteinbr [0] (
06:51:18 Quit ssteinbr (Client Quit)
06:56:17 Quit scott666 ("i'll be back...eventually...")
07:48:28 Join LinusN [200] (
08:20:14 Join Nibbler [0] (
08:24:22 Join [IDC]Dragon [0] (
08:24:47[IDC]DragonHi LinusN, up so early?
08:25:32[IDC]DragonYou should use your powers to modify the subject.
08:28:34LinusNah, of course
08:28:47Mode"#rockbox +o LinusN " by ChanServ (ChanServ@services.)
08:29:10[IDC]Dragon"feature craze after 2.2"
08:29:41Topic"Rockbox 2.2 is released!!! (and there was much rejoicing)" by LinusN (
08:30:35LinusNpity zagor didn't dare to include the ata fix :-(
08:30:42[IDC]Dragonchildish, but OK.
08:30:52[IDC]Dragonthe subject, I mean.
08:31:19LinusNwe have an old tradition of Holy Grail quotations
08:31:42[IDC]DragonI understand it very well. With so little practice test I don't want to be responsible.
08:32:14[IDC]DragonDidn't know that 2.2 was practically shrink-wrapped.
08:32:19LinusNi think he rushed it
08:32:28LinusNthe docs are not finished
08:32:40[IDC]Dragonbecomes a habit
08:33:19[IDC]Dragonwhen are we releasing 2.3?
08:33:28***Saving seen data "./dancer.seen"
08:34:34LinusNtomorrow :-)
08:34:42LinusNwe have no schedules
08:34:50LinusNwe never had
08:35:02[IDC]DragonI wasn't serious
08:35:04LinusNworking on c0ttas patch now
08:35:12[IDC]Dragonthe menu?
08:35:30LinusNyes, i really want the context menus
08:35:50[IDC]Dragondoes that include a configurable menu?
08:36:08LinusNnot yet
08:36:44[IDC]Dragonhow shall I proceed about my voice menus?
08:36:51LinusNnot sure
08:37:04[IDC]DragonI don't want to cause collisions with other changing code
08:37:09LinusNwhat's the decision on how to generate the voices?
08:37:50[IDC]Dragonyou're free in generating a "voicefont"
08:38:06[IDC]DragonI used TTS to get an initial one
08:38:55LinusNwould be nice to find a good tts we could use on a regular basis, scripted
08:39:19[IDC]DragonI made a little program that takes all the clips, merges them into one big file, with index and bitswapped
08:39:32[IDC]Dragonthis I call a voicefont
08:39:50[IDC]Dragonwhich has to fit in the mp3 buffer
08:41:21LinusNsounds ok
08:41:33LinusNwere you able to script the tts?
08:42:06[IDC]Dragonbut it's a windows program in a demo version
08:43:24[IDC]Dragon30 days limited or such
08:45:19[IDC]DragonMatthias foud this one for Linux:
08:46:48[IDC]DragonThe voice is pretty good, but sounds very "bored", without melody.
08:50:18[IDC]DragonI'd like to add a field to the .lang files, for the spoken entry.
08:51:13[IDC]DragonIt's desirable to have this seperate from the displayed text.
08:51:55[IDC]DragonWe want no abbreviations, prinf formatting, etc.
08:53:59[IDC]Dragonso I'll add a line like:
08:54:13[IDC]Dragonspoken: "Bla bla."
08:54:23[IDC]Dragonfor each entry.
08:55:42[IDC]DragonWell, for each that is reachable by the voice UI.
08:58:51LinusNsounds nice
09:10:18[IDC]DragonBTW, I took the liberty to implement the delayed file open for recording, in preparation for talkbox recordings.
09:12:24LinusNsaw that
09:12:40LinusNdid you test the split function after the change?
09:12:54LinusNand the prerecording?
09:13:20 Join AciD [0] (
09:17:01 Quit AciD (Read error: 104 (Connection reset by peer))
09:24:35[IDC]Dragon(sorry for afk)
09:24:50[IDC]DragonLinusN: Yes I tested split
09:25:12[IDC]DragonIt had a catch, that's why the additional filename copy is there
09:25:46[IDC]Dragonprerecording should not be affected, have not tested, will do now
09:26:52LinusNi like your change
09:27:09LinusNdoes wonders for short mic recordings
09:27:56[IDC]Dragonyes, the mic is not bad, without the disk
09:29:37[IDC]Dragonahem, for prerecording there is a spinup
09:30:22[IDC]DragonI have to check the feature how we can avoid that, sorry
09:31:01[IDC]Dragon"[IDC]Dragon> prerecording should not be affected"
09:31:23[IDC]Dragonand it wasn't... not for good
09:37:34LinusNthe metronome plugin is cooool
09:37:48LinusNthanks to your hard work on the mp3 playback
09:38:47[IDC]DragonMatthias did the metronome
09:39:06LinusNi know
09:39:18LinusNbut you revamped the mp3 playback
09:39:33LinusNi mean play-from-ram etc
09:39:48[IDC]Dragonyes, you're welcome.
09:40:02[IDC]DragonThanks for _your_ hard work!
09:40:22[IDC]DragonI'm scum
09:42:00[IDC]DragonI tested the metronome this morning, too.
09:42:53[IDC]DragonMatthias should do a little work on the button behaviour and the responsiveness before we commit it.
09:43:06LinusNit's intentional
09:43:27LinusNhe deliberately mutes the tick after a keypress
09:44:00LinusNi have committed it
09:44:17LinusNthe button behaviour is his responsibility
09:45:16LinusNi wonder why he mutes it though
09:45:28LinusNi think it's very annoying
09:45:39[IDC]Dragoninstead of sleep, he should wait for button
09:46:03LinusNyou have a too old version
09:46:03[IDC]Dragonset it to low bpm, and it becomes difficult to use
09:46:30[IDC]Dragondo I? took it from the patch area.
09:46:30LinusNhis new version uses button_get_w_tmo()
09:46:39LinusNhe has filed two patches
09:46:46[IDC]Dragonwill update from cvs then
09:46:50LinusNhe had trouble updating the old patch
09:47:22LinusNstill, it has issues with the time calculation
09:47:34LinusNbut i wanted to commit it anyway
09:50:13LinusNwell, gotta reboot, cu in a few
09:50:16 Part LinusN
09:50:18 Join c0utta [0] (
09:58:04 Join LinusN [200] (
09:59:12[IDC]DragonOK , I got the update. Nice, this is a player-capable plugin.
09:59:31[IDC]DragonThe poor Player doesn't have too many.
10:01:02LinusNi did the player mods
10:01:25[IDC]Dragonwhich mods?
10:01:32LinusNmade it work on the player
10:01:43[IDC]DragonAh, I see.
10:01:43LinusNhis code was rec only
10:07:20 Nick LinusN is now known as Linus|lab (
10:15:36 Nick Linus|lab is now known as LinusN (
10:16:48[IDC]DragonI still don't understand why there's a spinup when transitioning from prerecording to recording
10:17:12LinusNbecause the buffer is nearly full and needs to be saved
10:17:19[IDC]DragonI can only guess MPEG_SAVE_DATA is somehow issued
10:17:33[IDC]Dragonbut not after 10 sec
10:20:32[IDC]Dragonis prerecording maybe doing mpeg_new_file()?
10:26:56LinusNreally strange, i can't see it in the code
10:27:12[IDC]Dragonme neither
10:28:41LinusNcould be a bug in the code that finds the starting position
10:28:55LinusNis the prerec time set to 10s or did you preaa play after 10s?
10:29:09[IDC]Dragonthen tha saved file must be big
10:29:39[IDC]DragonI have set the prerec to 10sec
10:29:52[IDC]Dragonpressed play after maybe 20 sec
10:29:56LinusNok then there shouldn't be a problem
10:30:17[IDC]Dragonfor sure my buffer wasn't full, I have 8MB, hard to wait for
10:31:51c0uttaguys, my make process has worked well for 6 months
10:32:00c0uttanow i'm getting an error
10:32:07[IDC]Dragonyou're pregnant?
10:32:36c0uttadefinitely not (i've been desexed)
10:32:47[IDC]Dragon(I take back that bad joke)
10:32:57c0uttamake[1]: *** No rule to make target `/home/rockbox/rockbox/recorder/crt0.o', nee
10:32:58c0uttaded by `/home/rockbox/rockbox/recorder/librockbox.a'. Stop.
10:33:28c0uttahow do i do a clean make - delete the .o files ?
10:33:32***Saving seen data "./dancer.seen"
10:33:34c0uttawhat are the .a files ?
10:33:51[IDC]Dragon"make clean"
10:34:03[IDC]Dragon.a are libraries
10:34:22c0uttashould i do a make clean after every sync with cvs ?
10:34:29LinusNcan't hurt
10:35:50c0uttawhat would i do without you
10:36:02LinusNwell, i hope :-)
10:36:19LinusNc0utta: i'm about to commit your first patch
10:36:32c0uttalet the complaints begin...
10:36:46LinusNwell, nothing has changed for the user...
10:37:08LinusNi'm curious about the typedef in action.h
10:37:22c0uttathe callback works well too linus - i've already implemented it
10:37:31c0uttaa lot better than my keyhandler idea
10:37:33LinusNand i'm about to use it for the radio presets
10:37:40c0uttathe typedef BoolFnPtr ?
10:38:19LinusNwhat is it for, and why a typedef?
10:38:38c0uttabtw - still a problem with
10:38:38c0uttamake[1]: *** No rule to make target `/home/rockbox/rockbox/recorder/crt0.o', nee
10:38:39c0uttaded by `/home/rockbox/rockbox/recorder/librockbox.a'. Stop.
10:39:13LinusNdid you remove firmware/crt0.S?
10:39:16c0uttathe sim compile works fine (linus, i will answer your question about BoolFnPtr)
10:39:31c0uttawhat's a .s ?
10:39:40LinusNa .S is an assembler file
10:39:59LinusN.s == no preprocessing, .S == with preprocessing
10:40:18c0uttai'm a novice when it comes to any unix flavour
10:40:30LinusNhas nothing to do with unix
10:40:32c0uttas or S -> what about case insensitivity
10:41:02LinusNlinux/cygwin is not case insensitive
10:41:15LinusNshould not be anyway
10:41:26LinusNmaybe cygwin is, i don't know
10:41:36c0uttaso is deleting all .S files is OK ? the .s get preprocessed into .S ?
10:41:42LinusNno no
10:41:56[IDC]Dragoncygwin is case-sensitive, too
10:42:03LinusNfirmware/crt0.S should be there
10:42:32c0uttait's not - only crt0.s
10:43:01LinusNthen you have accidentally renamed it
10:43:23LinusNare you using cygwin?
10:43:43c0uttalinus, you are a legend
10:44:11LinusNcheck out descramble.S and bitswap.S while you're at it
10:44:39c0uttai am using cygwin - and those .S files are fine
10:44:56c0uttai set up cygwin with a great deal of help from bluechip
10:45:11c0uttai'm learning the environment all the time
10:45:39c0uttaok. BoolFnPtr....
10:46:00c0uttait is used in my action "table"
10:46:24c0uttastruct action_list
10:46:24c0uttaint action;
10:46:24DBUGEnqueued KICK c0utta
10:46:24c0uttaBoolFnPtr function;
10:46:34c0utta} actions[] = {
10:46:34c0utta{ ACTION_ACTION_BOOKMARK_CREATE, bookmark_create_menu ,LANG_BOOKMARK_MENU_CREATE },
10:47:10c0uttai probably could have used a void function
10:48:29LinusNi'm only concerned about why you need a typedef in the first place
10:48:56c0uttahey, i convinced the code police!
10:49:12CtcpIgnored 1 channel CTCP requests in 0 seconds at the last flood
10:49:12*LinusN is starting toi remember
10:49:36c0uttawhen i look at my code i probably don't need it
10:49:53LinusNi'd be happy if you removed it
10:50:13LinusNwe are not too fond of typedefs
10:50:16c0uttai was using it as a return value in menu_run when the function is run
10:50:34c0uttabut i don't do anything with the value, so you can get rid of it
10:50:45c0uttai may need it back though
10:51:19LinusNif it makes the code simpler or better, i'm all for it
10:51:28c0uttaat this stage, leave it out
10:51:36c0uttaplease don't make me submit the patch again!
10:52:12LinusNi won't
10:52:16c0uttawill you delete it ?
10:52:33LinusNi will close the patch when i have committed it
10:53:15c0uttahang on - i know why. don't delete it yet!
10:53:34LinusNdelete what???
10:53:35c0uttamany of the functions in settings_menu are called
10:53:50c0uttadelete the BoolFnPtr typedef
10:53:54c0uttafrom the patch
10:54:25c0uttamost of the setting functions return a bool
10:55:23LinusNi still don't get it, you can use function pointers without a typedef
10:55:33c0uttabut it's really ugly
10:55:48LinusNthat's a matter of opinion
10:56:08c0utta(for me) it makes the code hard to understand
10:56:14[IDC]Dragonplease excuse, I also don't uderstand this opposition against typedefs
10:56:33c0uttai even convinced zagor that it was ok
10:57:11LinusNwhen is it used, except for in the action_list struct definition?
10:57:46LinusN[IDC]Dragon: typedefs are ugly, because they hide the real type
10:58:15LinusNit doesn't make the typing much stronger anyway
10:58:15[IDC]Dragonhuh? they define the type.
10:58:19c0uttalinus, they aren't used that frequently so i can live without it
10:58:36c0utta22.23.48 # <c0utta> typedef bool (*PFB)(char*);
10:58:36c0utta22.42.35 # <Zagor> i'm ok with typedefs for function pointers
10:58:47c0utta22.42.57 # <Zagor> but call it something more descriptive than PFB
10:58:48c0utta22.43.02 # <Zagor> ;)
10:59:10LinusNok, i'll leave it in, but in upper case
10:59:25LinusNmixed case is also frowned upon by us
10:59:46LinusN[IDC]Dragon: you don't need to define new types in C
10:59:52[IDC]DragonExcept for Rockbox, I use typedefs every time I define a struct, so I can declare prototypes with pointers to such a struct.
10:59:56LinusNespecially not structs
11:00:19LinusNwhy is it so important to leave out the keyword "struct"?
11:00:40LinusNstruct blabla *, compared to blabla *
11:00:57c0uttalinus, just leave it out. i can compensate
11:00:59[IDC]Dragonand it's good to publish this definition in a header
11:01:07LinusN[IDC]Dragon: why?
11:03:44LinusNc0utta: if you feel that yuo need it, we can reintroduce it
11:03:47[IDC]Dragonjust "struct" in the prototype doesn't make the type known.
11:04:23LinusNwhy is it important to "make the type known"?
11:04:33[IDC]DragonI usually define a struct only as a type and anonymous else.
11:04:59[IDC]DragonI get your point, I don't see the bad part of it.
11:05:28LinusNthe only thing it buys you is saving a few key presses because you won't have to type "struct" in the prototype
11:06:03[IDC]Dragonand what's bad about it?
11:06:26LinusNit hides the true nature of the type
11:07:01LinusNfor example, if it's ok to pass-by-value
11:07:18[IDC]Dragonmeaning, that it points to a struct?
11:07:19LinusNpass-by-value of a huge struct is not a good idea
11:08:26[IDC]DragonWindows lamers like me got educated to prefix pointers, so this would be visible.
11:08:37LinusNthe worst thing is when people typedef's pointers
11:10:41[IDC]Dragona common declaration (without line breaks) would be:
11:10:43 Join Bagder_ [241] (
11:10:43[IDC]Dragontypedef struct { int a; int b; } tMyType, *tpMyType;
11:10:51 Nick Bagder_ is now known as Bagder (
11:10:55LinusNso very unnecessary
11:11:00c0uttai just reckon BOOLFNPTR is a lot more elegant than (*function)(char*)
11:11:12c0uttawe C lamers get easily confused
11:11:30LinusNit's not Rockbox's mission to educate C programmers
11:11:47*Bagder improved the "recent CVS" table script
11:11:59Bagderif only the CVS worked fine we could see it
11:12:02[IDC]Dragonbut it does a good kob on it!
11:12:02c0uttathat's not the way i'm viewing it :)
11:12:19c0uttai know C better from rockbox
11:12:37c0uttathan i ever would by formal training
11:12:50c0uttafunction pointers ? too hard
11:12:59c0uttacharacter pointers ? too hard
11:13:12LinusNoh :-)
11:13:15c0uttaarray storage vs character pointers - don't understand
11:13:24c0uttai understand all these concepts now
11:13:30c0uttaall thatnks to this project
11:14:00LinusNand i believe that it's partly because we don't complicate things
11:14:22[IDC]Dragonnot all people do, else Rockbox executing directly from ROM would work better...
11:14:38LinusNstruct blabla *ptr tells a lot more that tpMyType ptr, imho
11:15:21c0uttatrue. in my example the (char*) parameter is hidden -> not good practice
11:16:27c0uttau swedish folk are very logical :)
11:16:50Bagderthat's only the front we try to put up! ;-)
11:17:06LinusNactually, i frown upon the DIR type too (dir.h)
11:17:13 Join AciD [0] (
11:17:19c0uttamore logical than we aussies
11:17:20Bagderbut DIR is posix
11:17:31 Quit uski|afk ("Fermeture du client")
11:17:32LinusNi know, but i don't ike it
11:17:45c0uttai think i've started something here...
11:17:55c0uttai've triggered linus' brain
11:17:56Bagderimho, some types are better left "opaque"
11:18:18Bagderbut of course, it could be struct DIR anyway
11:19:14LinusNbut maybe they wanted to make it possible to use a hidden reference or something
11:19:53LinusNstill, the API uses pointers anyway
11:25:02LinusNis it Brent Coutts?
11:29:17LinusNdone, thanks Brent
11:29:55c0uttacheers mate
11:30:18LinusNnext step would be the f3 context sensitivity
11:30:57LinusNgotta go now, cu around
11:32:56 Part LinusN
11:33:04[IDC]Dragonc0utta, how come your nick?
11:33:45c0uttacoutts->coutta (my nickname at school)
11:34:07c0uttai run into other "coutta"s online, so coutta with a "0"
11:34:15c0uttajust makes sure i'm unique
11:34:27c0uttai still don't understand [IDC]Dragon
11:34:42[IDC]Dragonthat's a lame story
11:35:01c0uttai saw some of it..
11:35:06[IDC]DragonI used my spam email account when subscribing for Rockbox
11:35:45[IDC]Dragonlike I always do when some formmandates an email, you never know
11:36:39[IDC]Dragonthat account was a leftover from LAN party registrations, this is what it was created for
11:37:06[IDC]Dragonso IDC is the clan, Dragon the nick, in Quake notation
11:37:54c0uttai understand
11:38:04c0uttau still home sick ?
11:38:38[IDC]DragonIDC for Instant Death Commando, but we're cannon fodder, especially me
11:39:00[IDC]Dragonstill sick, yes
11:39:07[IDC]Dragonnot homesick
11:39:22c0uttaha. save that for taiwan :)
11:40:03c0uttau go there often ?
11:40:14[IDC]Dragonno, first time
11:40:50c0uttataipei is a strange city
11:41:04[IDC]Dragonyou've been there?
11:41:30c0uttamany times
11:41:54c0uttaalso spent a lot of time at the airport. i slept there once
11:42:22[IDC]Dragonthe only representable part I've seen was the memorial
11:42:42[IDC]Dragonthe rest was taxi rides through ugly streets
11:43:05c0uttait's not very nice...
11:44:28c0uttawhat do you want me to do to for the talkbox work jörg ?
11:44:42c0uttai will change the menus very soon
11:45:32[IDC]Dragonhave you maintained talkbox in the past?
11:45:52c0uttano, not at all
11:46:11[IDC]Dragonforget it, it hasn't affected the menus
11:46:42c0uttahow will you get the menus to "talk" if you don't integrate it ?
11:46:47[IDC]DragonI will add an extra member for the menu item struct
11:47:05[IDC]Dragona voice ID
11:47:05c0uttaok, i have added another 2
11:48:05c0uttamembers, that is
11:48:47[IDC]Dragonthe menu code will then have to pass this number to a "talk" function, along with the cursor movement
11:49:13[IDC]Dragonthat's all for the menus
11:49:42c0uttaok. i thought it would be done in that manner
11:56:10[IDC]DragonThe screens require more code, if we want them to talk.
12:01:00c0uttai imagine it would be very complicated
12:01:17[IDC]DragonI hope not.
12:11:32 Join matsl [0] (
12:25:00Bagdernew cvs commit table look in place
12:25:35[IDC]Dragonwhat? where?
12:25:47Bagderthe one on the rockbox front page
12:26:13Bagderit didn't change much, only a bit
12:26:26[IDC]Dragonah, nicer names, clear captions
12:26:39Bagderyeps, and nicer dates
12:26:56Bagderand improved ability to "gather" changes done over multiple seconds
12:27:32Bagderthe previous version required them to be recorded in the same second
12:29:34[IDC]Dragonso why are the top 3 entries still alike and separate?
12:30:03Bagderbecause they are 10+ seconds apart
12:30:14[IDC]Dragonoh no
12:30:24BagderI bet I could stretch the check a bit
12:30:29 Join pfavr [0] (
12:30:29Bagderto like 30 seconds or so
12:30:49[IDC]Dragonhow about some minutes?
12:31:12Bagderwell, the first and the second in that table is two different commits I'm sure
12:31:56[IDC]DragonSo we have a chance to gather forgotten files in a follow up swoop
12:32:11[IDC]Dragonthis happens quite often
12:32:45[IDC]Dragon(to me at least)
12:32:59Bagderyes, but my ambition is to show a single commit per line
12:33:08 Join mattzz [0] (
12:33:36***Saving seen data "./dancer.seen"
12:34:08[IDC]DragonHi mattzz, congratulations!
12:34:46*Bagder slaps a "I'm on offical Rockbox contributor" sticker on mattzz's forehead
12:35:05mattzz[IDC]Dragon: hi - thanx :)
12:35:22[IDC]Dragonsome initiation procedures are in order
12:36:02Bagderthey do involve buying us beers, don't they? ;-P
12:36:26mattzzsure they do!
12:36:26[IDC]Dragonamong other treats, yes
12:37:25mattzz<honey mode>this little hackbox has become my friend - due to your great work</honey mode>
12:37:25[IDC]Dragonwhat did I get my creditation for? I don't remember...
12:38:38[IDC]DragonI do remember my cvs write access: that was meant for maintaining the Win32 build (which I barely did, in the future)
12:39:18[IDC]Dragona failure, that is
12:39:19Bagderyep, you're totally off your boundaries now.
12:39:29Bagderwe shall need an extra initiation procedure for you! ;-)
12:39:51[IDC]Dragonwhy me?
12:40:29mattzzsick at home and totally out of controll - that are the times of big steps forward for rockbox, eh?
12:40:31Bagdernah, couldn't come up with a good reason
12:41:37mattzza good reason is: because initiation procedures are fun!
12:42:13Bagdergetting all messed up with tar and feathers is only fun once!
12:42:18*Bagder giggles
12:42:40mattzzyeah, but it _is_ fun, right?
12:42:49Bagderoh yes
12:42:51[IDC]DragonI regret having started this
12:43:21mattzztar and feathers for everyone!
12:44:09mattzzso, how is lowlevel stuff going?
12:44:28Bagderok, 30 seconds check at least made two of the lines get merged
12:44:47[IDC]Dragondefine "lowlevel"
12:45:31mattzzread the discussion between you and jens last night about doing optimizations in the assembler routines
12:45:49mattzzs/read/I just read/
12:45:54 Quit mbr (
12:47:08NJoinmbr [0] (
12:47:17[IDC]DragonI hope he went to sleep sometime
12:47:41[IDC]Dragonlike I will soon
12:48:11mattzzare you still not doing better?
12:48:27[IDC]Dragona bit, but not enough
12:49:34mattzzhm, get well soon. otherwise our company might go down the hill even faster...
12:49:47[IDC]Dragondo they?
12:50:17mattzzI have the impression somehow, when it comes to project management.
12:51:15mattzzWe should have a little chat when I am in Hannover the other day.
13:08:10 Join uski [0] (
13:32:09 Quit matsl (Remote closed the connection)
13:33:13 Nick mattzz is now known as mattzz|cookin (
13:37:27 Quit uski ("ooo")
13:46:13 Quit [IDC]Dragon ()
13:54:02 Nick c0utta is now known as c0utta{zZ} (
13:54:02DBUGEnqueued KICK c0utta{zZ}
14:07:50 Quit AciD (Read error: 104 (Connection reset by peer))
14:11:32 Nick mattzz|cookin is now known as mattzz (
14:11:54mattzzBagder: are there any experienced troubles with CVS?
14:13:00Bagderyeps, I noticed some this morning
14:13:05mattzzBagder: Recent CVS activities on the webpages do not show up in CVS repository...
14:13:22Bagderthat's the "normal" anonymous cvs "lag"
14:13:33mattzzAh, well, I see.
14:13:49BagderI don't know why, but sourceforge has it configured that way
14:33:39***Saving seen data "./dancer.seen"
14:35:57 Quit Nibbler (Read error: 104 (Connection reset by peer))
14:36:11 Join matsl [0] (
14:44:22 Join edx{code} [0] (
14:46:09 Join quelsaruk [0] (~bferasdf@
14:46:11 Nick mattzz is now known as mattzz|shopping (
14:46:54quelsarukreading the spanish newspaper...
14:49:11quelsarukhey.. we have rockbox v2.2
14:49:28Bagderyou read that in the paper? ;-)
14:50:48quelsarukof course
15:02:19quelsarukhave a nice weekend!
15:02:30 Quit quelsaruk ()
15:05:34 Join track [0] (
15:27:27 Join methangas [0] (
15:30:18 Part Bagder
15:30:18 Quit track (Read error: 104 (Connection reset by peer))
16:07:26 Join AciD [0] (
16:13:56 Join Nibbler [0] (
16:32:06 Join n00b [0] (~jirc@
16:33:40***Saving seen data "./dancer.seen"
16:36:14n00bHey, on the V2 recorder, what is the factory battery?
16:42:17 Join WeeD0pE [0] (
16:42:21WeeD0pEho ho
16:42:49WeeD0pEone question how to flash the latest version to my recorder ?
16:56:57MTho himm, the battery faq hasnt been updated :/
16:57:09MTn00b: it uses an internal, non replaceable lithium ion battery
17:03:46 Quit n00b (Read error: 110 (Connection timed out))
17:12:17WeeD0pEi want flash the latest build
17:14:13WeeD0pEcan i just replace the arz file with the latest build ?
17:17:47 Join mecraw__ [0] (~mecraw@
17:23:05 Join n00b [0] (~jirc@
17:25:28n00bhey! I'm happy to be here! Are you?!!!
17:28:24 Join quelsaruk [0] (~v65wf@
17:33:28 Quit n00b ("Leaving")
17:35:04 Join n00b [0] (~jirc@
17:35:29n00bhey, does the v2 charge with usb in?
17:36:10n00bis anyone actually here?
17:36:53quelsaruki don't really know
17:36:59quelsarukhave you read the charging faq?
17:37:13quelsaruk(i just have the recorder version)
17:37:14 Quit Ka_ ("* poof *")
17:40:44 Quit n00b ("Leaving")
17:45:06 Join Ka_ [0] (
18:09:46 Quit edx{code} ()
18:09:48 Quit Nibbler (Read error: 54 (Connection reset by peer))
18:12:23 Join uski [0] (
18:14:05dwihnoWee! 2.2!
18:17:32 Quit uski ("Fermeture du client")
18:18:48 Nick mattzz|shopping is now known as mattzz (
18:25:45quelsarukhave to go!
18:25:45 Quit quelsaruk ()
18:33:44***Saving seen data "./dancer.seen"
18:52:59 Quit WeeD0pE ()
19:02:32 Join scunner [0] (~scunbag@
19:03:13scunneruhhh scunner rejoices!
19:03:51scunnerwas there ever a patch for the red freeze problem? just wondering.
19:05:41scunnereveryone's eating lunch...i'll try later.
19:06:01 Quit scunner (Client Quit)
19:51:59 Join Nibbler [0] (
19:52:41 Quit pfavr (Read error: 104 (Connection reset by peer))
19:59:01 Nick mattzz is now known as mattzz|wine (
20:26:48 Quit mattzz|wine ("Client exiting")
20:27:53 Join vol [0] (
20:33:47***Saving seen data "./dancer.seen"
21:04:41 Join hardeep [0] (1098@
21:17:03 Join amiconn [0] (
21:17:31 Nick amiconn is now known as amiconn|afk (
21:30:31 Join cjnr11 [0] (
21:30:36 Part cjnr11
22:07:49 Quit AciD (Connection timed out)
22:08:04 Nick amiconn|afk is now known as amiconn|code (
22:18:01 Join [IDC]Dragon [0] (
22:18:13amiconn|codeHi [IDC]Dragon!
22:18:51[IDC]DragonI'm just measuring the current for RAS down mode vs. normal
22:19:12[IDC]Dragonvery little difference
22:19:30[IDC]Dragon< 0.1 mA
22:19:47amiconn|codeI've just prepared a "memset()" test plugin, now testing correctness & measuring execution times for different alignments.
22:20:34[IDC]DragonHope you can recycle it for memcpy
22:20:40amiconn|codeMy new memset() is half the size of the C version, expect it to be faster also (especially for misaligned buffer).
22:21:03amiconn|codeWill do measuring with and without RAS down mode.
22:21:20[IDC]Dragonfocus on RAS down
22:21:30[IDC]DragonI think we should commit that
22:24:12amiconn|codeOld memset.c, RAS up: longword aligned 41 ms, all other alignments 210 ms (for 1,733,252 bytes)
22:28:47[IDC]Dragonthe loop is way too long, rather do 100 bytes or so
22:29:03[IDC]Dragonmore realistic
22:30:30[IDC]Dragonthe "prepare phase" also goes into the bill, not just the loop itself
22:32:46amiconn|codeOf course I compare the whole routines' length
22:33:01amiconn|codeRAS up/down doesn't matter for memset!
22:33:51***Saving seen data "./dancer.seen"
22:34:45amiconn|codeBtw.: I managed to tell make how to make (sic!) assembler files within firmware/common.
22:34:47[IDC]Dragonconsecutive writes
22:35:19[IDC]Dragonwhat was the problem?
22:37:24amiconn|codeHad to change the Makefile in firmware: Inserted a line below "SRC := ...": "SRC_S := $(wildcard drivers/*.S common/*.S *.S)" and changed the next non_blank line to read "OBJS := $(SRC:%.c=$(OBJDIR)/%.o) $(SRC_S:%.S=$(OBJDIR)/%.o)".
22:38:02amiconn|codeThis way I don't need to list each assembler file separately, and it will work on assembler files in firmware/drivers also.
22:38:46amiconn|code(this is in preparation of a separate ata-transfer.S)
22:40:01[IDC]Dragonvery nice.
22:41:13amiconn|codeWill put these changes into my upcoming patch.
22:41:44[IDC]Dragonbut I think you can use regexp's into the file wildcard, so you don't need an extra SRC_S
22:42:03[IDC]Dragonhow's that done elsewhere?
22:42:28amiconn|codeNew memset is 25 ms / 1,7 MB for _all_ alignments! -> 64% faster with longword-alignment, almost 9 times as fast otherwise.
22:42:56[IDC]Dragonany penalty for short memsets?
22:43:02 Quit matsl (Remote closed the connection)
22:43:42[IDC]Dragonhow much did you unroll it?
22:45:18amiconn|codeDid not yet measure this, guess no.
22:46:07amiconn|codeIt's not further unrolled than the C version, does a longword at maximum per round. But I can use the longword loop for non_aligned data also, doing only the first and last few bytes with a byte loop.
22:46:53amiconn|code_And_ I use the special-tricky auto-decrement mem-write, so it goes down from last to first.
22:47:23[IDC]Dragonyou write backwards?
22:47:47[IDC]Dragontrhat's probably no good, because of bursts
22:48:12amiconn|codeIf <= 10 bytes, uses byte-loop directly, saves overhead. Yes, I write backwards! This way the loop only consists of 3 instructions.
22:48:42amiconn|codeWhy should writing backwards be no good?
22:48:45[IDC]Dragon< 10 is measured or guessed?
22:49:13[IDC]Dragonbursts are forward
22:50:45[IDC]Dragonopen pages may save you, but I wonder why it's the same speed without RAS down mode.
22:51:04amiconn|code<= 10 is taken from (rough) cycle-counting. Will test with RAS up in a short.
22:52:22[IDC]Dragonhave you considered using the DMA?
22:55:25amiconn|codeWith RAS up it is 28 ms for all alignments. We can use DMA?? Didn't know that! How?
22:55:45[IDC]Dragonprobably awkward, since it's asynchronous, we'd have to wait for it to get ready.
22:56:07[IDC]DragonSorry, I didn't think of that sooner.
22:57:22[IDC]DragonYes, there is a DMA controller in the chip. It has plenty of free channels, afaik only one is used by Rockbox, for the mp3 playback.
22:58:04[IDC]DragonUnfortunately is't not configurable to do endian swaps, I was looking for that when doing the ATA copy.
23:08:53[IDC]Dragonforgot my staements about bursts, we don't have an SDRAM. It seems that "burst" here means CAS-only addressing, for which the order is not important.
23:10:10amiconn|codeThe DMA thing is very interesting indeed, but i suspect that it would be complicated (read: much code) to use it for the memxxx routines.
23:10:43[IDC]Dragonyes, the setup may not be worth it.
23:11:06[IDC]Dragonadds special cases, since it can do only <64k
23:11:29[IDC]Dragon(for the rare case somebody wants larger)
23:11:56amiconn|codeSince it is asynchronous, you have to wait for end of transfer because of 2 things: (1) if you return, the caller expects the work to be done. (2) if you need to do >64k you have to do it in chunks.
23:12:28[IDC]Dragonmy saying
23:13:08amiconn|codeAdditionally, if you want it as fast as possible, you have to set burst mode. Don't know if this would block other vital tasks in rockbox for too long.
23:14:15[IDC]Dragonno the CPU has higher prio
23:14:45[IDC]DragonI wonder about your figures
23:14:56[IDC]Dragonyou set 66MB/s?
23:15:13[IDC]Dragonthat's 6 byte/clock
23:15:32[IDC]Dragonexternal bus to the DRAM is 16 bit
23:16:16amiconn|codeexactly! My loop takes 6 cycles taking into account that a long write takes 2 cycles.
23:18:07[IDC]Dragonthe clock is 11 MHz
23:19:00[IDC]Dragonif you write 2 byte each 6 cycles, that would be 11/3 = 3.66 MB/s
23:20:40amiconn|codeI'm writing 4 bytes each 6 cyles. I'm wondering what's going on here. Isn't a tick in rockbox equal to 1 ms?
23:23:48[IDC]Dragonhaha, that's it.
23:23:52[IDC]Dragon10 ms tick
23:24:27amiconn|codeOkay, my fault. Take _all_ results times 10. Relations don't change.
23:25:48amiconn|codeBtw: I'm at 2/3 speed what we could achieve with the DMA controller.
23:26:00amiconn|codes/what/of what/
23:26:08[IDC]Dragonthat's what I was trying to calculate
23:26:45amiconn|code4 bytes each 6 clocks is 3 clocks/word. The DMA can do 2 clocks/word.
23:29:00amiconn|codeIf I would unroll the loop to do a quad-word per round, I would be in par with the DMA speed (8 bytes in 8 cycles)
23:32:13[IDC]Dragonprobable the bus will introduce extra wait
23:32:37[IDC]Dragonnot sure about how much unrolling gains
23:33:06amiconn|codeWhy? The DRAM is not connected to the WAIT pin, as Linus explained me.
23:33:14[IDC]Dragoncurrently, your other 2 instructions may be masked by the access being carried out
23:33:33[IDC]Dragonit's not, the controller generates the timing for it
23:34:08[IDC]Dragondoes the waitstates internally, no need for a pin
23:34:30amiconn|codeWill test this now, shouldn't be many changes (just some offset adjusting and a second store instr).
23:34:52[IDC]Dragontry to spread them apart, if you can
23:35:33[IDC]DragonA DRAM wite is definitely not carried out in one cycle.
23:36:11[IDC]Dragonthe controller had to do at least the CAS addressing
23:36:18amiconn|codeOf course, "Memory load/store instructions should be longword-aligned if running from internal RAM, so they don't contend with instruction fetch." (freely from SH1 manual).
23:36:27[IDC]Dragonhas to split your 32 bit into 2 times 16 bit
23:37:04amiconn|code32bit = 2 accesses, yes. But in fast page mode it _does_ each access in one cycle.
23:37:28[IDC]Dragonaha? OK then.
23:39:11[IDC]DragonI think the WARP mode will carry out the write as your code goes along
23:39:17amiconn|codeSee sh7032.pdf, p. 174ff.
23:39:25[IDC]Dragonsince it proceeds from IRAM
23:41:30[IDC]Dragonwrites have a "silent cycle" after a 32bit pair
23:41:58[IDC]Dragonspeaking about longword-aligned code:
23:42:26 Join edx{code} [0] (
23:42:31[IDC]Dragondo you count your instructions from the .align on, into even and odd?
23:43:20[IDC]Dragonthe load/store should be at an "even" place, if I interpret that correct.
23:44:11amiconn|codeOf course. Did this with all assembler optimizations I did so far.
23:44:46[IDC]DragonOK, OK. I just haven't seen that counting.
23:45:27amiconn|codeThis is the reason why I sometimes have an .align 2 within my code. This better explains what it is for as when I would write nop.
23:46:00amiconn|code.align inserts nop's within code sections, so this is safe.
23:47:11 Join LinusN [200] (
23:47:21amiconn|codeHi LinusN!
23:47:39[IDC]DragonDo you know if our DRAM waitstates are correct, ore "conservative"?
23:47:44[IDC]DragonHi LinusN
23:48:13LinusN[IDC]Dragon: haven't checked, to be honest
23:49:33[IDC]DragonLinusN, have read the log of our discussions?
23:49:35LinusNbtw, how often do we use memset()? I mean, is there a point in optimizing it?
23:49:37 Join AciD [0] (
23:50:01[IDC]DragonJend happened to start with that one.
23:50:11LinusNexcept for the fun of doing it, of course
23:50:30[IDC]Dragonfun, yes
23:50:50[IDC]Dragonmemcpy is probably more interesting
23:51:04LinusNremember, this is how we got on the wrong foot with bluechip, in the early days
23:51:27[IDC]DragonI don't know that story
23:52:11LinusNshort story, he offered to optimize the C lib, and we thought there were better things to do, and he got offended by the way we said it
23:52:14[IDC]Dragonmemset is used on screen updates
23:52:26LinusNon screen updates?
23:52:41[IDC]Dragonclearing a line of text
23:52:46LinusNyou mean lcd_clear_display()?
23:52:58[IDC]Dragonwhen we scroll, it's called a lot
23:53:19LinusNok, if you find significant speed improvements, i am for it
23:53:20[IDC]Dragonscroll a text horizontally, I mean
23:53:58[IDC]Dragonnot really speed, but energy
23:54:14LinusN[IDC]Dragon: the company that makes the logic analyzer i purchased wants me to write linux drivers for it :-)
23:54:15[IDC]DragonJens, how do you feel?
23:54:32[IDC]Dragonwants or pays?
23:55:00LinusNwell, we'll se how much they are willing to pay...
23:55:05[IDC]Dragonit's very much in you interest, I guess
23:56:35[IDC]Dragonabout the energy optimization: in which parts of the code do we spend the most of the time?
23:56:49[IDC]Dragon(for "average" use cases)
23:57:22LinusNenergy optimization?
23:57:42[IDC]DragonThat's what I call getting to sleep sooner
23:57:55LinusNsooner than what?
23:58:20[IDC]Dragonsooner than running some sub-optimal routine longer
23:58:42LinusNhopefully, we spend the most time in the sleep instruction

Previous day | Next day