mbed persistent flash storage - persistent-storage

I'm working on a project using mbed studio and NUCLEO-L432KC board.
I have a need to store configuration values to persistent memory on the device.
I have successfully wrote the configuration the the last flash sector and I am also able to read it.
It also survives a reboot, so this is working as expected.
However when modifying the code and reflashing the device, apparently the whole device is erased. This means that everytime I click 'run program' in the mbed studio all the config data is erased.
Is there some way of telling mbed studio to not erase the whole chip? mbed studio does not seem to have options for this, or maybe I just can't find them?
Or is there some other solution that I could use to store the config data (without extra HW).
Thanks!

Related

Get recording device volume programmatically/command line in XP

Is there any way to get the current volume/mute value of the currently default recording device programmatically or from the command line? I did a little .exe in C++ for Vista+ that uses EndpointVolume API but unfortunately it's not available for Windows XP. Any workaround?
I don't need to change them, just get them from my application to be able to react to them.
Thanks!

Sharing the same target device across multiple Android Development environments

We have more than one programmer here working on Android code in Android Studio 2.2.2. We're working in debug mode because the code is still in development but we periodically load our latest work on various other employees' devices for them to test with, from the menu bar using Run > Debug 'app'
If I load code onto a device that another developer had previously put code on, Android Studio won't let me, saying there's an incompatibility ([UNINSTALL_FAILED_UPDATE_INCOMPATIBLE] and that I have to uninstall the old code first. I don't want to because I want to retain the old data since we collect debugging and performance data during test runs. (we're developing an industrial process-control app)
Looking on Stack Overflow I find two solutions to this but they are both from the Eclipse era: Using the same debug keystore on multiple computers and Share debug.keystore The files referenced in the solutions seem unique to Eclipse - specifically there seems to be no file called "debug.keystore" anywhere on my development PC.
How do I do a debug 'app' onto a device containing code from another Android Studio without having to erase the previous installations storage?
To avoid the uninstall-install cycles, share the same debug.keystore across the devices.
The location of debug.keystore depends on the value of environment variable $ANDROID_SDK_HOME. debug.keystore can be found in the subfolder .android at the location specified by the environment variable.
However, in case of variable not being defined :
By default, it is stored in the same directory as your Android Virtual Device (AVD) files:
macOS and Linux : ~/.android/
Windows Vista and Windows 7 : C:\Users\your_user_name\.android\
as stated here .

Hard Drive and Android Studio

I had a question about using Android Studio with an external hard drive on Windows 10. If I copy a full android project from my computer to the hard drive can I access the project from the hard drive if I delete the file from the computer itself (With hard drive still plugged in)?
Why bothering deleting the original file on your PC? It's never harmful to keep one backup, right?
But the answer to your question is yes. You should be able to access the project through the external drive as long as you keep it plugged in. Nothing different.
For My experience never delete original project you will needed at some point.
Yes you can access the project from the hard drive In Android Studio by Clicking File > Open select your drive and look for your file.
You will always able to see the project location it is Running from.
Yes, if you copy the project folder on a hard external hard drive you can access it normally. You just have to select it the same way as you would with a local project.
Yes you can. Copy the project to the desired location. Delete the files on the internal HDD. Then launch (or relaunch) Android Studio. Go to File, Open Project, then set the new path to the project on the external HDD.
Yes, you can always use an External hard drive for storage of Android projects. You just need to run it as usual as it is.
But, I will suggest you to use internal SSD drive for executing Android Project because it is much faster than using external HD drive.
Internal Disk start up time of Android studio is approximately 7 to 8 seconds, build times on apps of low/medium complexity were built in 5 seconds.
For external HD start up times were much higher, coming in at approximately 40 seconds. Build times on apps of low/medium complexity were built in 30 to 40 seconds mark.

Loading ROMS to Emu OS

I recently downloaded Emu OS (a Linux distro) and installed it within virtual box. Everything works fine but I am unable to actually run the roms within an emulator. I tried a GBC rom that is in .zip format and I copied and pasted it into the GB and GBC folder, but the emulator itself isn;t able to recognize it. Does anyone have any experience with this or have gotten it to work?
One must simply drag the ROM file to the directory that is associated with the respective emulator. This can be done via the file manager. Afterwards, reboot and select the emulator that you desire and your game should show up in the list.
Note that EmuOS is extremely old and no longer maintained. RetroPi is a good alternative and putting ROMs on that is the same as EmuOS.

Where are the scan settings stored on ce 5.0 MC9090? They are not in the registry that I can see

We are using MC9090's running CE 5.0. We are using a program called Wavelink Studio Client to access our scan application. Studio Client is different and not the same as Wavelink Telnet CE. Wavelink Studio is only a "Go Between" and does not hold any settings. The Wavelink Studio basically looks at the scanner .dll and pulls settings from that.
My problem is that I have an Interleaved 2 of 5 barcode with 16 length. The MC9090 comes with two demo programs ScanWedge and ScanSamp. I can modify the length for int 2 of 5 in either of these programs and my barcode will scan through Wavelink Studio Client. However, after a warm boot I lose all my settings since these are just demo programs.
So, I turned to DataWedge. Which uses its own config folder to store settings, but I assume loads the settings into the scanner .dll. My barcode scans perfectly in Studio Client when DataWedge is installed only after the DataWedge process has been "Stopped" then "Started". If perform a warm boot and DataWedge starts... my barcode will not scan through studio client until DataWedge has been Stopped, then my barcode will scan through Studio Client whether DataWedge is Started or Stopped.
My question is: Is there a script/command line/bat/etc. that I could use that would "Stop" DataWedge, then "Start" DataWedge after a warm boot? This is one way to solve my problem.
If anyone has any other suggestions, please let me know. I have repeatedly been told that the settings from ScanSamp and ScanWedge (demo apps) are not stored anywhere on the device. I believe they are stored somewhere though. Because, when I make a change on DataWedge, I can open ScanWedge and the settings happen there to. So there must be some central location where the hard scan settings are stored? I just need to be able to edit the settings in this location and have them stay there. I don't even need DataWedge if the scanner would hold the settings in the .dll that I specify from ScanWedge. With datawedge uninstalled, I tried changing my settings in ScanWedge then using RemCapture to capture all the settings from the device.. I then loaded those settings onto another device to see if it would load the scan settings, but it did not.
Set the options in ScanWedge. Then Use "Remote Registry Editor" that comes with Visual Studio 2008 and go to this path: [HKEY_CURRENT_USER\Software\Symbol\ScanWedge]
There you will see the various settings for ScanWedge. To persist these settings over warm & cold boot do the following:
Open Notepad on the PC.
Type the following registry entry:
[HKEY_CURRENT_USER\Software\Symbol\ScanWedge]
"AutoEnter"=dword:00000000
"AutoPIE"=dword:00000000
"AutoTab"=dword:00000000
"Binary"=dword:00000000
"Data"=dword:00000001
"Escape"=dword:00000001
"Prefix"=""
"Suffix"=""
Save the file as scanwedge.reg
Place the file on your Terminal in the \Application Folder using ActiveSync.
Cold boot the terminal.
NOTE: A cold reboot will erase all files, except the application and platform folder. Save your files before cold booting.
Hope this helps.

Resources