not able to stop VxWorks auto-boot - boot

I am trying to repair a Keysight N9320B spectrum analyzer that is stuck at boot presumably due to firmware upgrade going wrong...
I have accessed the instrument boot prompt and tRootTask at some point stops due to some "undefined instruction" exception
Now I am trying to stop the auto boot so I can set up the boot loader to read the vxworks from tftp
however there is no way to stop it. It goes right to auto boot and does not show a message like "press any key to stop auto booting" or something like that. I have tried all sorts of key press with highest speed possible...any help is highly appreciated

The normal way to interrupt would be to press "any key" in the short window between the bootloader starting, and it starting to load the VxWorks runtime kernel.
This would normally be by pressing a key on a keyboard (or via a serial connection).
You might try connecting a usb keyboard, and see if you can get it to stop

Related

Can't connect to D1 Mini with Micropython after running a program

I'm using D1 Mini with micropython
It happens a lot that I upload some code that has a main loop in it, and afterwards I lose connection to the board
I can see the console output, but can't see the files, can't burn a new firmware, can't stop the code from running, anything...
If I press ctrl+c or ctrl+d it holds for a second, then continues
I'm using a raspberry pi and Thonny for the development
Same from esptool and ampy
Tried looking for an answer online, but couldn't find anything relevant
What can I do?
What I do in my apps- I add time.sleep(3) at the beginning of my application. And when I wish to do code upload, I connect to the board, press CTRL+D for soft reset and CTRL+C to kill code. Then do upload required code. This approach works best for me.
Moved from pi to windows, I was able to delete and write the firmware again using esptool
The only thing is that now I have to press the reset button while connecting the USB so the computer will recognize the controller

st link utility cannot stay connected to the device

So, I'm trying to connect to a custom board using ST-Link. My board uses STM32 Microcontroller and I use ST link utility software to see if I can connect to it.
Right now, If I press connect on utility software and press reset on my board at the same time, the connection is successful. But as soon as I remove my finger from the reset button the connection to the device is lost. Is this expected? And how can I make it stay connected without me keeping the reset button pressed!
Also, assuming I keep pressing it, the utility software gives me an internal command error when I try to erase chip. this happens when I try to program the chip as well.
Any suggestions are appreciated.
So the way to resolve the issue was to pull-up the NRST pin on the board and st link and disconnect it after pressing the reset button.
I still have not found a solution for erasing the chip but I believe the flash is protected. When I try to change the Option Bytes in st link utility, it disconnects from the board saying:
Could not set Option bytes!
Please reset the target and retry!
And then disconnects from the device.
Any clues how I can change the options bytes? That might actually solve the problem!
Thanks
By my experience all of such this problems come from bad assembling one way that may help you to find out first put a light in the back of your PCB right under your micro-controller and see if any pin is outside of footprint if it is aligned correctly,gently press your micro to the PCB and and test if it is disconnecting if it solves your problem then some of pins are not soldered correctly

Starting my app when USB device connected

I need to starting my app when our USB device connected.
My first attempt at this is a background application that pays attention to when USB devices are plugged in. When it notices our device connected, it calls ShellExecute( ) and starts our application.
This works nicely except in Windows 8. Supposing we're on the "Start" screen in Windows 8. In that situation, the application starts in the background and the start screen remains in front.
I think this is a "focus" problem since what I'm actually hoping to do is "steal focus" from the Start screen.
http://blogs.msdn.com/b/oldnewthing/archive/2009/02/20/9435239.aspx
Since my background application doesn't have focus (the Start screen has focus; besides, my application doesn't have a UI), it can't give focus away to my foreground application.
Let me say that in general, I hate focus stealing. Starting the app the user wants to use is a great help to our users.
How can I fix this problem? Maybe the answer is to programmatically ask the start screen to start my app but I don't see a way to do that:
http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/9ed23f32-0708-48a8-9ff7-5fce6dbe123f/windows-8-start-screen-api
Maybe I'm approaching this in the wrong way. Suggestions?
You're going about this the wrong way. Although you can write a program to constantly monitor the USB ports to detect when something is connected, there's no need. The OS is already doing that anyway.
Register an Autoplay handler for your device type and class. This is distinct from the old AutoRun feature, which would automatically execute programs found on an inserted file system.
You can begin with an overview of the feature from the November 2001 issue of MSDN Magazine.
Your handler will be a COM DLL. You can register the DLL as a handler, and register the handler with events you want to handle. You can either perform everything in the DLL, or you can put the bulk of the functionality in your application and just use the DLL as a proxy between the OS and your program.

How to find out more about Application Hang event?

If a VB6 app is causing an Application Hang event to appear in the Event Viewer, how can I find out more about why the application is hanging?
Does an Application Hang event mean that the app has frozen and crashed, or just that it temporarily hangs?
All I get in the event log for this event is:
Hanging application [MyAppName].exe, version [MyAppVersionNo], hang module hungapp, version 0.0.0.0, hang address 0x00000000.
That is not enough and I want to be able to find out more about why it is hanging. What code changes or other steps need to be taken to cause the app to provide more details in the event log?
I recommend using the Windows Performance Toolkit. The best version to use is in the Windows Assessment & Deployment Kit, http://www.microsoft.com/download/en/details.aspx?id=28997
Once it's installed, what you do is start up Windows Performance Recorder (WPR) and click the Start button to begin recording. Next, reproduce the problem with your app. Then go back to WPR and press the Save button. Next, load up Windows Performance Analyzer and open that *.ETL file that was generated. Then you want to go to System Activity section in the Graph Explorer, expand it, and find the UI Delays graph (or it might be the first graph parked on System Activity). Double click on it to get the detailed version in an Analysis tab.
Once you find the UI delay you're interested in, you can add another graph such as CPU Usage (Sampled) from the Processing node in Graph Explorer. When the two graphs are in the same Analysis tab, their scrolling and selection will be synchronized. So you can click on the UI delay event and it will also highlight the corresponding range in CPU Usage.
The Application Hang event means that Windows has decided that the application is unresponsive. Since the event is generated by the operating system and not the application, your options for getting additional information in the event are extremely limited.
This is what seems to be available on an Application Hang event:
Message: Hanging application %1, version %2, hang module %3, version %4, hang address 0x%5.
From:
http://www.microsoft.com/technet/support/ee/transform.aspx?ProdName=Windows+Operating+System&ProdVer=5.2&EvtID=1002&EvtSrc=Application+Hang&LCID=1033
If you believe the cause of the event is something that your application does (as opposed to something in the environment where the application is running), then instead of trying to pass info to the hang event, you should raise the level of log info to debug mode and look in your application's log file to see what it is doing just prior to becoming unresponsive.
If you lack logging information, or a logging framework in your application, then that is where you should be focusing your efforts. The upside is that you will benefit from better logging in the future as well. Use a logging framework however, so you can disable debug level logging in a production environment, when everything is running smoothly.
I would approach this by reviewing the code in the module that Windows has determined has hung, the name of which was written to the event log. Attempting to get more detail in the hang event will not be possible because when Windows has determined the app is unresponsive, it is too late.
Into the module that is hanging I would add multiple calls to DoEvents as well as logging status messages directly into the EventLog. Adding a logging framework at this point would introduce complexity and involve either a database or file access in which to store the logs.
Windows thinks the app has hung because it has stopped responding to messages. Unfortunately, implementing a second thread in your VB6 app is not trivial, unlike .NET. Never-the-less, adding another thread would keep the app responsive, but then you would likely still be left with answering the question, "why is the code taking so long to execute?"
Getting information from windows event perspective will not help. Try to have tracing in your application which helps you to get the exact cause.

Kernel Debugging: Windows 7 hangs at boot time

Sometimes, I have the situation that Windows waits at boot time for the kernel debugger to be attached. You see the text "Windows starting" but not the logo yet.
If I attach the debugger now, Windows 7's logo animation is played. Aftwards the logo starts to pulse. At this stage the boot process does not advance anymore. CPU usage drops to a minimum.
I wait usually several minutes, but nothing happens.
This does not happen all the time. However, if it happens, a VM reset won't help. I need to use startup repair to fix this problem. Unfortunately, it takes forever.
Any ideas what I can do except running startup repair ?
Thanks in advance !
To fix the problem you encountered, you just need to press F10 during boot up. And remove /debug and related parameters. Then press enter.
Suggestion:
Do not use /debug parameter for your default boot menu option. Copy your boot configuration to a new entry. Then set it to debug mode.
Windows don't know when you will use the debugger. So it has to wait.
Thanks.
I could solve the issue by leaving the mouse) inside the VM during bootup... Don't know why, but it solves the problem for me.
I'm debugging Win Embedded POSReady 7 SP1 x86 within VMware Workstation v9.0.2 on a Win7 Enterprise x64 host.

Resources