{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":4303,"defaultBranch":"master","name":"muforth","ownerLogin":"nimblemachines","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2008-03-17T22:34:15.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3320?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1700677331.0","currentOid":""},"activityList":{"items":[{"before":"64fc1d813b24b96218c30ec20a7830ea975736ab","after":"d1e25150408b49cd0cc895cda66173df9543d4ec","ref":"refs/heads/master","pushedAt":"2024-02-19T20:27:52.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[pic18] WIP: Untested, unfinished support for 18F1xK50 devices\n\nYears ago I was able to get a small chat program onto the 13k50/14k50 -\nenough to poke around and dump memory but nothing more.\n\nI programmed the chips via a quirky S08-based system (that I don't\nexpect anyone to duplicate), and so for broader consumption I need to\nport this code over to the STM32 - a future project.\n\nThis commit makes the recent chat code (which works great on the\nQ-series PIC18 devices) at least *compile* for the K50, but I have not\ntried programming it into the flash and trying it out.","shortMessageHtmlLink":"[pic18] WIP: Untested, unfinished support for 18F1xK50 devices"}},{"before":"0404ff4751052888f86b2b77f72cddc8e9938073","after":"64fc1d813b24b96218c30ec20a7830ea975736ab","ref":"refs/heads/master","pushedAt":"2024-02-16T20:49:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[core] Radix confusion in verify code\n\nAs a consequence, verifying by 1, 2, or 4 bytes would yield incorrect\ndiffering addresses!","shortMessageHtmlLink":"[core] Radix confusion in verify code"}},{"before":"6a530b3963858fc8de3f2f8db3a63afcf5ad7ccb","after":"0404ff4751052888f86b2b77f72cddc8e9938073","ref":"refs/heads/master","pushedAt":"2024-02-14T22:14:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[pic18] Define constants for all flash area origins\n\nThe equates files no longer define any of the flash areas, so let's\ndefine them *all* as constants in the memory code.","shortMessageHtmlLink":"[pic18] Define constants for all flash area origins"}},{"before":"2984c7a901c94c0d4c22000c2c69b134f8da8994","after":"6a530b3963858fc8de3f2f8db3a63afcf5ad7ccb","ref":"refs/heads/master","pushedAt":"2024-02-14T22:08:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm,pic18] Renamed some constants used in ICSP programming via STM32\n\nThe generic, unprefixed, names clobbered some important muforth host\nwords.","shortMessageHtmlLink":"[arm,pic18] Renamed some constants used in ICSP programming via STM32"}},{"before":"bc72ebaaa2d4e51e9836efa61d0533b6421772df","after":"2984c7a901c94c0d4c22000c2c69b134f8da8994","ref":"refs/heads/master","pushedAt":"2024-02-14T22:04:45.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[pic18] Working Flash and Config/EEPROM programming via chat!\n\nThis means that flash-image and verify will now work when chatting via\nUART with the target.\n\nNote that the boot region is protected - via hardware - from erasure or\nre-programming. This is where the chat code lives, so we wouldn't want\nto clobber it!\n\nEven so, I've added boot to the list of regions that get verified. So if\nthere *is* anything in boot, it will be compared with the target's boot\nregion. This might end up being helpful.","shortMessageHtmlLink":"[pic18] Working Flash and Config/EEPROM programming via chat!"}},{"before":"6be363a6d40969cbbf38cfa5a376168115c831c0","after":"bc72ebaaa2d4e51e9836efa61d0533b6421772df","ref":"refs/heads/master","pushedAt":"2024-02-13T01:52:14.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[many] Vastly improved and generalized flashing and verifying code!\n\nAll the targets except for MSP430 and S08 are now using this.\n\nIt has helpful diagnostic messages, and is very customizable via\ndefer'ed words.\n\nI want to have common code for all of the following:\n\n- memory images and regions\n- interaction with the target\n- meta-compiler\n- flashing and verifying\n\nSo far I'm pretty close on the first and last. Number three is the\nhardest!","shortMessageHtmlLink":"[many] Vastly improved and generalized flashing and verifying code!"}},{"before":"3236ec9ab0a7eb868fc9171d13cbfd6e07032fb5","after":"6be363a6d40969cbbf38cfa5a376168115c831c0","ref":"refs/heads/master","pushedAt":"2024-02-12T07:30:09.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] Show 4 digits of address for EEPROM space\n\nEven though that's way bigger than any AVR EEPROMs, it just \"looks\nright\", and suggests an address rather than some other kind of value.","shortMessageHtmlLink":"[avr] Show 4 digits of address for EEPROM space"}},{"before":"42ccce8e90254c10596984470358c4cdcdde1b3c","after":"3236ec9ab0a7eb868fc9171d13cbfd6e07032fb5","ref":"refs/heads/master","pushedAt":"2024-02-12T07:12:05.000Z","pushType":"push","commitsCount":14,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[pic18] The pieces to tie it all together!\n\nYou can now do this:\n\n ./muforth -d x6q43 -d xinst -f target/PIC18/build.mu4 -f target/PIC18/chat-serial-core.mu4\n\nand load in the new serial chat for a PIC18Fx6Q43 part and disassemble\nthe code:\n\n 0 dis\n\nIf you have previously loaded (and run) the STM32 code to program it -\nsomething like this:\n\n ./muforth -d in-ram -f target/PIC18/load-stm32-discovery.mu4\n startup run\n ^C\n\nYou can, after running the long \"x6q43\" command line above, program and\nverify the chip, like so:\n\n prog\n spi-verify\n\nWith luck, typing \"chat\" might even connect!","shortMessageHtmlLink":"[pic18] The pieces to tie it all together!"}},{"before":"9b1bc50dd7a8e44d346af493d03fea0a4a41b0b1","after":"42ccce8e90254c10596984470358c4cdcdde1b3c","ref":"refs/heads/master","pushedAt":"2024-02-05T17:46:43.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm] Literal pools are more efficient now\n\nIn particular, if you use the same literal more than once (in a given\nliteral pool), it is only compiled into memory once, thereby saving\nspace.\n\nThe old code - which was a quick and dirty hack, really - generated\nliterals as they were requested, and never checked for duplicates.","shortMessageHtmlLink":"[arm] Literal pools are more efficient now"}},{"before":"cec2526a91deeee2dda1a8e56745ba1b5ad56b39","after":"9b1bc50dd7a8e44d346af493d03fea0a4a41b0b1","ref":"refs/heads/master","pushedAt":"2024-02-04T07:44:12.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm] regs>mask now defined in *one* place!","shortMessageHtmlLink":"[arm] regs>mask now defined in *one* place!"}},{"before":"ea08d0c9bb513cdd3ed4a12081c399d522de243a","after":"cec2526a91deeee2dda1a8e56745ba1b5ad56b39","ref":"refs/heads/master","pushedAt":"2024-02-04T06:39:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm] Removed # +) r+) from existing ARM code","shortMessageHtmlLink":"[arm] Removed # +) r+) from existing ARM code"}},{"before":"0678756cc89c1335204043fde0931ee3cbac2df6","after":"ea08d0c9bb513cdd3ed4a12081c399d522de243a","ref":"refs/heads/master","pushedAt":"2024-02-04T05:23:32.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm] Minor rewrite of .reglist in v6-m/disasm","shortMessageHtmlLink":"[arm] Minor rewrite of .reglist in v6-m/disasm"}},{"before":"34c6ed23fe92fa38fc9502aaa6209c6c186479ed","after":"0678756cc89c1335204043fde0931ee3cbac2df6","ref":"refs/heads/master","pushedAt":"2024-01-31T03:00:29.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm,avr] STM32 AVR programming code runs from flash or ram!\n\nI decided initially that it would be \"easier\" to always run the\nprogramming code from ram. This meant that each time you wanted to\nprogram an AVR you had to load the STM32 code onto the board, start it\nrunning, and then load the AVR code that you were interested in. Yes,\nyou could leave the STM32 in the background, running its ram-based code,\nbut having it be two steps to begin with is maybe not ideal.\n\nNow you have a choice!\n\nTo load the code into ram and start it up, do this:\n\n ./muforth -d in-ram -f target/AVR/load-stm32-discovery.mu4\n startup run\n ^C\n\nTo load the code into flash, do this:\n\n ./muforth -f target/AVR/load-stm32-discovery.mu4\n\nIf there is *no* message saying that the flash images don't match, then\nthe correct code is already in the flash. You can ^C to exit from\nmuforth, but since the ST-LINK has halted the CPU, you need to reset the\nSTM32 Discovery board (press the black switch).\n\nIf you *do* see the message that the flash images don't match, then you\nshould do this (while still connected to the ST-LINK):\n\n flash-image\n verify\n ^C\n\nand reset the board, as above, by pressing the black switch.\n\nThat's it!","shortMessageHtmlLink":"[arm,avr] STM32 AVR programming code runs from flash or ram!"}},{"before":"e935bba0cc332a4c69f7b5b3541c56bc0e4b6d21","after":"34c6ed23fe92fa38fc9502aaa6209c6c186479ed","ref":"refs/heads/master","pushedAt":"2024-01-28T01:47:27.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm,avr] Don't delay as long for AVR SPI slow-clock programming\n\nI tested these values on an STM32F303 and they worked fine.","shortMessageHtmlLink":"[arm,avr] Don't delay as long for AVR SPI slow-clock programming"}},{"before":"f9ee8103c8d7d227073d334494e2377b026a9b7b","after":"e935bba0cc332a4c69f7b5b3541c56bc0e4b6d21","ref":"refs/heads/master","pushedAt":"2024-01-27T23:54:23.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr,8051,pic] Use the STM32 Discovery auto-load feature","shortMessageHtmlLink":"[avr,8051,pic] Use the STM32 Discovery auto-load feature"}},{"before":"9fcce8516bf62151e35b0eab6e428411fe5d1da8","after":"f9ee8103c8d7d227073d334494e2377b026a9b7b","ref":"refs/heads/master","pushedAt":"2024-01-20T18:43:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] Remote execution (via register trampoline) working!\n\nWe now use the Z register for everything!\n\nTo try it out, first re-flash the chat code, then do this:\n\n ./muforth -f target/AVR/load-chat-serial.mu4\n chat\n 7fc w! @ rx\n\nand you should see \"cafe\" in W, which is the value of the stack sentinel\n(which is always at 07fc in ram).\n\nUse w! x! z! h1! to store values in registers; w@ etc to fetch them.\nFind example code to execute in target/AVR/register-examples.mu4.","shortMessageHtmlLink":"[avr] Remote execution (via register trampoline) working!"}},{"before":"22755dedbaea24d0b49f08aa11da1a1522cd111c","after":"9fcce8516bf62151e35b0eab6e428411fe5d1da8","ref":"refs/heads/master","pushedAt":"2024-01-19T23:29:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] WIP - remote exec - one last gasp!\n\nI think I figured out what's going on. I was mostly likely executing the\ncode properly, but I couldn't get anything back from it because it was\nstoring its context into register Y, which promptly gets clobbered by\nthe multitasker after the code has completed executing, and chat is\nwaiting for the next command.\n\nWhat I did on this commit is a bit crazy - I'm using Z for *both* the\naddress of the code to execute (which the host sends in return address\n(ra) form: the flash address, shifted right one bit, with the bytes\nswapped) AND the stack (or context) pointer! I'm just not using them at\nthe same time.\n\nHere's how it works: the host uses the set-address chat command to set Z\nto the ra. It then executes the run chat command, which pushes Z onto\nthe stack and then falls through to set-address; the host then sends the\nstack pointer, which is put into Z, and the ret instruction in\nset-address actually calls the code!","shortMessageHtmlLink":"[avr] WIP - remote exec - one last gasp!"}},{"before":"39d409863131ae0bf7337adab1166eda2d335f0d","after":"22755dedbaea24d0b49f08aa11da1a1522cd111c","ref":"refs/heads/master","pushedAt":"2024-01-19T22:55:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] WIP - remote exec...","shortMessageHtmlLink":"[avr] WIP - remote exec..."}},{"before":"e6c2d08df4ac1de5b8bc6a898499b76bf988cc9e","after":"39d409863131ae0bf7337adab1166eda2d335f0d","ref":"refs/heads/master","pushedAt":"2024-01-19T22:38:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] WIP - remote exec, again","shortMessageHtmlLink":"[avr] WIP - remote exec, again"}},{"before":"1d09f8289cabe5b37cbbdc194a1630523c677535","after":"e6c2d08df4ac1de5b8bc6a898499b76bf988cc9e","ref":"refs/heads/master","pushedAt":"2024-01-19T19:52:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] WIP - remote exec debug, still","shortMessageHtmlLink":"[avr] WIP - remote exec debug, still"}},{"before":"aea1cf75705dfc2d9a1aab6e3540db04ab39295f","after":"1d09f8289cabe5b37cbbdc194a1630523c677535","ref":"refs/heads/master","pushedAt":"2024-01-19T19:32:56.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] WIP - debugging remote execution!","shortMessageHtmlLink":"[avr] WIP - debugging remote execution!"}},{"before":"11e84620369c054d781dfa4daaab82b8139aa7f4","after":"aea1cf75705dfc2d9a1aab6e3540db04ab39295f","ref":"refs/heads/master","pushedAt":"2024-01-19T16:57:53.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] Added \"register style\" remote execution\n\nBy adding to the application code a \"trampoline\" that pops several\nregisters from the data stack (pointed to by Y), executes a piece of\ncode, and then pushes the same registers back onto the data stack, we\nhave an easy way to try out pieces of code.\n\nLater we can add a more \"Forth-oriented\" trampoline, but it will be very\nsimilar to this one.\n\nIn addition to the trampoline, there is some example code to try out.\nLook in target/AVR/register-examples.mu4.\n\nTo try it out, load everything like this:\n\n ./muforth -f target/AVR/load-chat-serial.mu4\n prog\n chat\n\nPut values into registers like this:\n\n abcd w!\n 0200 x!\n\nExcept for SREG, SP, and PC, the registers shown in the stack display\ncan all be accessed this way.\n\nThen execute your code:\n\n ! rx\n\nThe resulting registers and SREG will be displayed, and results can be\nfetched usign w@ x@ etc.","shortMessageHtmlLink":"[avr] Added \"register style\" remote execution"}},{"before":"1c65dd3fdca616429c4ed5b027579a43c028e8fd","after":"11e84620369c054d781dfa4daaab82b8139aa7f4","ref":"refs/heads/master","pushedAt":"2024-01-17T20:48:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr,pic18,8051] Command line flag to load correct Discovery board\n\nWhen using an STM32 Discovery board as a programming \"pod\" for\nprogramming AVR, 8051, or PIC18 devices, you can now define, on the\ncommand line, which (of two) Discovery boards you are using:\n\n -d f072-disco\n\nfor the STM32F072 Discovery;\n\n -d f3-disco\n\nfor the STM32F3 Discovery.\n\nUse it (for example) like this:\n\n ./muforth -d f072-disco -f target/AVR/load-stm32-discovery.mu4","shortMessageHtmlLink":"[avr,pic18,8051] Command line flag to load correct Discovery board"}},{"before":"359e1ebf7b529a55b3153f1d5dbf9a23927ec7cd","after":"1c65dd3fdca616429c4ed5b027579a43c028e8fd","ref":"refs/heads/master","pushedAt":"2024-01-16T23:57:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm] Tweak to better recognize on BSD if an ST-LINK/v2 is present\n\nThe current code can recognize a device but can't report back to muforth\nthe *name* of the device. I'd like to fix this, but at least this way if\nan ST-LINK in *not* plugged in, muforth will know this.","shortMessageHtmlLink":"[arm] Tweak to better recognize on BSD if an ST-LINK/v2 is present"}},{"before":"6fdb0a76faecbfe4fe5273b9566842c9e7244833","after":"359e1ebf7b529a55b3153f1d5dbf9a23927ec7cd","ref":"refs/heads/master","pushedAt":"2024-01-15T19:14:03.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] SPI programming improvements, #267\n\n- SPI clock delay loop lengthened to hopefully work for Cortex-M4\n- +prog always sets slow-clock\n- new word \"factory-fresh\" resets the chip's fuses","shortMessageHtmlLink":"[avr] SPI programming improvements, #267"}},{"before":"f46c74817858fe1cc72b7b882b8faeef4fbd2fb2","after":"6fdb0a76faecbfe4fe5273b9566842c9e7244833","ref":"refs/heads/master","pushedAt":"2024-01-15T00:23:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] Vastly improved experience when programming via SPI\n\n- STM32 switches between fast and slow SPI clocks automatically\n- SPI and chat programming and verify have different names:\n\n For chat, \"prog\" will program (and verify)\n For SPI, \"spi-prog\" will program, and \"spi-verify\" will verify.\n\n- Because of the above, both programming methods can be \"resident\" at\n the same time, making it very easy to iterate when you are, say,\n modifying the bootloader (aka chat)\n\nRight now the SPI programming code via an STM32 Discovery board. If you\nfor whatever reason don't want the SPI programming code loaded, simply\nuncomment \"-d via-disco\" at the top of target/AVR/build.mu4\n\nEnjoy!","shortMessageHtmlLink":"[avr] Vastly improved experience when programming via SPI"}},{"before":"7fe13df1f4dcad27498347761a7ed0acf9d25825","after":"f46c74817858fe1cc72b7b882b8faeef4fbd2fb2","ref":"refs/heads/master","pushedAt":"2024-01-13T00:06:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] Set SPH properly before starting the tasking loop","shortMessageHtmlLink":"[avr] Set SPH properly before starting the tasking loop"}},{"before":"624168eb9a8677e62ae9d4e4b96c7265928f3dd0","after":"7fe13df1f4dcad27498347761a7ed0acf9d25825","ref":"refs/heads/master","pushedAt":"2024-01-12T22:18:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm,avr] Read fuses in testing mode compatibly with avrprog code","shortMessageHtmlLink":"[arm,avr] Read fuses in testing mode compatibly with avrprog code"}},{"before":"2f7de37cb0fdafddfb1cd38aca93498c7183520a","after":"624168eb9a8677e62ae9d4e4b96c7265928f3dd0","ref":"refs/heads/master","pushedAt":"2024-01-12T21:46:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[arm] Update STM32F303 init with factored clock code","shortMessageHtmlLink":"[arm] Update STM32F303 init with factored clock code"}},{"before":"0e39da8c6c731d78cb071aa92824bba22fd9f271","after":"2f7de37cb0fdafddfb1cd38aca93498c7183520a","ref":"refs/heads/master","pushedAt":"2024-01-12T08:30:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"nimblemachines","name":"David Frech","path":"/nimblemachines","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3320?s=80&v=4"},"commit":{"message":"[avr] Hopefully fixing the serial (uart) chat code\n\nFor 8M RC oscillator, run UART at 38400 instead of 57600, as the\neffective baud rate is much closer to the standard one.\n\nPush and pop the flash read count register around calls to yield; all of\nthe registers are caller-save as far as the multi-tasking code is\nconcerned. The count was probably getting clobbered.\n\nAnd a bit of weird trivia: 9600 hex equals 38400 decimal!","shortMessageHtmlLink":"[avr] Hopefully fixing the serial (uart) chat code"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAD_wVVAAA","startCursor":null,"endCursor":null}},"title":"Activity ยท nimblemachines/muforth"}