![]() |
Forum Index : Microcontroller and PC projects : ArmmiteFH743 V5.08.00 Beta Releases
Author | Message | ||||
disco4now![]() Guru ![]() Joined: 18/12/2014 Location: AustraliaPosts: 1010 |
Armmite H743 5.08.00 Beta Releases For referenece the previous Armmite H743 5.07.02 thread is here This update will erase any program and reset the Options. This update enhances the allocation of heap memory as per the Picomites,system memory is now allocated from the bottom up and does not have to search past memory allocated to variables from top down. This can offer significant performance improvement when many variables are used. Function INKEY$ changed so it automatically resolves Function and special keys sequences to a single char as per picomites and CMM2. CAN support added. Many other additions and fixes mostly derived from recent Picomite development as covered in next post. Any command changes are included in the updated manual. Armmite H7 User Manual Armmite H7 Firmware on GitHub CFunctions Header File (ARMH7CFunctions.h) Source Code on GitHub FotS Armmite H7 The links above will always point to the latest Manual, Firmware, Source and a FotS page dedicated to the ARMmiteH743 version. Footnotes in this first post will be used to reference further updates as required. F4 H7FotSF4xGT |
||||
disco4now![]() Guru ![]() Joined: 18/12/2014 Location: AustraliaPosts: 1010 |
Armmite H7 5.08.00 Beta 0 - Details This firmware will cause a full reset of MMBasic as it has some additional commands. The Program and Library areas will be cleared and Options set to default. Please report any issues with any of your existing programs. Conversion of existing programs BASE$([2,8,16],n) commands will automatically be convert to appropriate BIN$,OCT$,HEX$ when saved. CLEAR VARS will automatically convert to ERASE when saved. BITBANG becomes DEVICE, automatically converted when saved. Any MM.INFO(various..) are kept as is and work as usual. Convert to MM.xxx as you please. The changes The allocation of heap memory is enhanced so memory required to execute commands, SUBs and Functions is allocated from the bottom up and does not have to search past memory previously allocated to variables from top down. This can offer significant performance improvement when many variables are allocated. Function Inkey$ changed so it automatically resolves Function and special keys sequences to a single char as per picomites and CMM2. INKEY$() function now internally in the firmware calls the MMInkey(); function in lieu of the getConsole(); function. This now aligns across the Picomites, CMM2, ARMmiteF4 and ARMmiteH7. The Micomites call the getConsole(); internally. The call to MMInkey(); will resolve any supported escape sequences sent by a VT100 terminal to a single ascii character as detailed in the manual Appendix J. Previously to detect Function keys etc which send an escape sequence you would have to make your own arrangements to recognise the ESC character and then decode the following escape sequence. Any current program doing this will need to be adjusted to recognise the appropriate single ascii character for the key. If you really want to access the raw characters use the INPUT$() function which still calls getConsole(); when a filenmr of ) is used. e.g. char$=INPUT$(100,#0) Firmware now uses FLASH BANK0 Sector 1. Previously this was skipped for OPTIONs but OPTIONs are actually in FLASH BANK1 The address of the CallTable is now 0x080004A0 in lieu of 0x080402A0. The ARMH7CFunctions.h file used for CSUBs is updated to match this. CAN [OPEN|CLOSE|START|STOP|FILTER|SEND|READ] commands added SYNC [period][,units] command added MATH PID command and function added. BYVAL and BYREF qualifiers added to SUB and FUNCTION definitions. PWM will set output pin to OC(Open Collector/Drain) if frequency given as -ve number. PWM fixed issue where a frequency change was not recorded, so returning to the original frequency did not result in an update. Support for LCD Display ST7796S 480*320 SPI OPTION LCDPANEL accepts [,INVERT] to invert colours on ILI9341 and ILI9488 MEMORY command Fixed issue where it erased saved variables. Functions MM.HRES, MM.VRES, MM.VER, M.I2C, MM.FONTHEIGHT, MM.FONTWIDTH, MM.HPOS, MM.VPOS, MM.ONEWIRE, MM.Errno, MM.ErrMsg$, MM.WATCHDOG, MM.DEVICE$,MM.WIDTH,MM.HEIGHT are now all implemented as written and none of them are converted to MM.INFO calls by the pre-processor MM.DISPLAY added, indicates whether a OPTION LCDPANEL CONSOLE is used. MM.CMDLINE$ is now a function and does not need to create a variable. All pins can now optionally be set using the port syntax (PA0-PG15) MM.INFO(PINNO port) added. returns the pin number. MM.INFO(NBRPINS) added, returns number of pins (100/144) MM.INFO(OPTION VCC) added returns current value for VCC MM.INFO$(ID) Returns the unique hex 12 byte ID of the Armmite chip as a string. MM.INFO(ID48) Returns a 48bit hash of the ID as an integer. Not guaranteed unique world wide but most likely unique for a hobbyist. Suitable as a serial no. for the device and at 6 bytes fits inside a CAN message. MM.INFO(HEAP) added MM.INFO(BOOT) will return the reason for the last MMBasic Restart. “Power On”, ”Reset Switch”, “MMBasic Reset”, ”CPU RESTART”, “Watchdog”, “EXECUTE Timout” or “HEAP Restart”. These could be written to a log file in MM.STARTUP to see the history of an unattended device. OPTION CONSOLE [BOTH|SCREEN|SERIAL|NONE] added OPTION NOCHECK [ON|OFF] added. MATH C_ADD etc commands that act on cells added as per picomites. MATH SHIFT added as per picomites MATH WINDOW added as per picomites MEMORY PACK/UNPACK added. MEMORY PRINT/INPUT added MATH M_MULT Fix for not giving correct results. MATH M_MULT Improved as per Pico RC5 MATH M_PRINT Improved as per Pico RC5 MATH V_PRINT array() [,hex] 'outputs the contents in hex MATH command accepts either C_MUL or C_MULT. (as per Picomite) LINE command enhanced. LW given as -LW will set LW in all directions LINE AA command added as per picomites LINE GRAPH command added as per picomites LINE PLOT command added as per picomites MATH CROSSING() added LIBRARY RESTORE will restore any existing library after OPTION RESET provided no explicit LIBRARY DELETE has been given. LIBRARY SAVE future proofed for 16bit tokens. I2C READ allows >255 chars if INT or Float array used.(as per Picomite) CommandLine Buffer automatic OVR mode on right arrow removed. USBKeyBoard: Fixed issue where USBKeyBoard did not connect reliably. Console message now given when USB Keyboard is either Connected or Disconnected. Added delay in USBKeyboard handling of CAPS/NUM/SCROLL Lock to improve operation of LEDs on some keyboards. see https://www.thebackshed.com/forum/ViewTopic.php?TID=17037 USBKeyboard mappings corrected so that SHIFT+(F1-F12) resolve to correct codes i.e. 0xB1- 0xBC in lieu of 0xD1-0xDC. See Manual Appendix J INSTR fixed when an expression is used as the index to an array as the first parameter (as per picomite RC9) Comments are no longer tokenised as per Picomites. SORT command extra sort option LINSTR Fixes bug in changing the regular expression if a variable. SHIFT F3-F8 Added as per picomite 6.00.02B0 //NB: SHIFT F1, F2, F9, F10, F11, and F12 don't appear to generate anything ADC START now accepts additional parameters as per the Picomites that allow mapping of the the output data to a desired range. ADC TRIGGER now allows a timeout value to be set. 'timeout' is the number of ADC samples to take before abandoning the wait for the trigger condition. Setting a value equal to the frequency of the sampling would give a timeout of 1 second. ADC TRIGGER,channel,level[,timeout] LONGSTRING PRINT allows ; to suppress CRLF PIN("TEMP") adjusted to calculate using correct value of 130 degrees for REV V chips. BITBANG becomes DEVICE as per picomite latest release.(automatically converted) DEVICE BITSTREAM DEVICE LCD DEVICE HUMID DEVICE WS2812 HEX$,BIN$ and OCT$ now restored. BASE$(2, etc accepted but automatically converted) ERASE command restored. CLEAR VARS automatically converted Automatic length adjustment for string constants. Where a constant string is less that 16 characters no heap will be used. The data is stored within the pre-allocated table for the variable definitions. String variables defined with a LENGTH of less than 16 (was previously < 8) are also stored within the variable definition and require no heap allocation. @( function added. i.e. PRINT @(x,y[,m]) when outputting to the VT100 console or LCD TEMPR(Pinno [,timeout]) 'new optional parameter timeout to override the default (200mSec) to allow for slow devices. TEMPR START pinno [,resolution(0-3)] [,timeout] 'new optional parameter timeout to override the default (100, 200, 400, or 800mSec) to allow for slow devices. F4 H7FotSF4xGT |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1437 |
Oh, absolutely outstanding. Heck, I just lost all focus on what I'm supposed to be doing ![]() Many, many thanks, Gerry ![]() ![]() |
||||
darthvader Regular Member ![]() Joined: 31/01/2020 Location: FrancePosts: 88 |
Great work !! Do you think that your firmware can be made compatible with this board ? : STM32H747I DISCO Here it's a all in one board , it start to be dusty on my desk ![]() Theory is when we know everything but nothing work ... Practice is when everything work but no one know why ;) |
||||
PhenixRising Guru ![]() Joined: 07/11/2023 Location: United KingdomPosts: 1437 |
Well they already named it "DISCO" ![]() Very nice but capacitive touch controller would need support(?) I was also wondering about: ![]() |
||||
JohnS Guru ![]() Joined: 18/11/2011 Location: United KingdomPosts: 4061 |
Wow! A lot of changes! John |
||||
matherp Guru ![]() Joined: 11/12/2012 Location: United KingdomPosts: 10350 |
I was also wondering about: Can't work - H750 only has minimal flash Edited 2025-08-15 21:00 by matherp |
||||
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |