Main Site Documentation

TinyCLR Bootloader


#1

Is there a way to configure the Bootloader to NOT run the app that is currently loaded?


#2

an embedded device by definition, you want to run the same app over and over. So I doubt this is possible to “configure” it. So the real question is, what are you trying to achieve? You can manually go into the bootloader, and for example erase the app, is that sufficient? You can have your app not “start” until you do something (press a button for example) so does that achieve the same outcome?


#3

There is a pin to tell the CLR not to execute your application. I think this is what you need.


#4

Yes, I can do many things to get around the problem, however I am in development mode and I hate having
to do things over and over just to get around a limitation. I have so many problems starting a debug session
(see previous posts) that it is a vey frustrating experience just to debug.

I also envision a classroom setting where I have students typing code and following me along trying to deal with
a board running off executing buggy code, causing even more problems for the instructor.
Please don’t get emotional about this, I just want to try and streamline the process during development and/or
teaching and having the bootloader not execute the loaded app would fix everything nicely.


#5

great, any way to determine which pin that is?


#6

Sorry, Gus might not like me saying this, but I will anyway… You should revert back to netmf if you’re concerned about debug stability. TinyCLR is still in beta, it’s not released, and there will be things that cause a problem.

The pin will depend on what hardware you’re talking :slight_smile: Maybe you need to remind us


#7

It is usually LDR1.


#8

Wow, hostility. Is this how you attract more customers?
I know its beta, and at no point did I complain. I simply asked
a simple question. Sorry if you are so stressed, but I really don’t appreciate drama, especially when I
am being polite and just trying to get a job done.

As for netmf, it would still be the same problem. GUS had mentioned in the past that TinyCLR might
have the ability to suspend the installed app, I was simply feeling out that possibility.

Thanks John for the tip.

BTW - I am evaluating several boards : BrainPad, DISCOVERY and the G30 Dev Board. I have man many problems
with getting a debug session started in all of them .
So I am just trying to survive and get something I can demo to a review board and not look like an idiot.
so thanks Brett for the encouragement.


#9

The software is alpha, not even beta yet; however, everyone is more that welcome to use and provide feedback. Complains is a form of feedback :slight_smile: all is okay as long as the user understands this is an alpha test release all.

By the way, a beta is happening very soon.


#10

Keep on doing what you see fit, just understand this is all an early alpha. Production is months away. We are trying very hard to make it happen ASAP.


#11

Oh! About the pin, John responded but we will be documenting this in the coming week.


#12

Ok Thanks GUS. My mistake, it is in ALPHA now.
but consider this, my position.

I am pitching a course change for an established curriculum. I have a class
of 20 or so kids aged 12-17. I need a way to make sure that when the Reset button is pressed,
the brainpad (or whatever board attached) goes back to a known state so that the class can proceed,
Visual Studio takes back control, and I don’t have a room full of buzzers going out of control.

NETMF, TinyCLR, whichever OS I use it is the same requirement.
I cannot go around hand holding a lot of kids with short attention spans.
The people who will consider my proposal are going to ask these same questions to me.

So I take it then, my only option is going to be the LDR1 button.
so be it.
cheers


#13

And we are here to help, just tell us what you need.

The documentation is under a lot of changes and scheduled to be released with the BrainPad website on the first. See the counter www.brainpad.com things will start to get much clearer and easier starting then.

Still, we are here to help. So go ahead and ask.


#14

I’m sorry you think I’m being hostile. I’m not. I’m giving you an opinion on something that I think is for your own good to understand as you’re still pretty new here.

If you need to prepare lessons now, then in my opinion you’re better off with something that’s released and known. I don’t think you’d see the same level of challenge with debugging with netmf… but you could. Without a doubt, I’d at least suggest you try and see if you have the same challenges. I don’t want you to go in without seeing the full picture. And yes that costs you time, but might save you time/pain in the long run


#15

I read and re-read this thread and could not find a hint of hostility.

What I read is what I read every day… smart people answering questions and offering suggestions.


#16

You keep missing the point Brett. It does not matter if it is NETMF or TinyCLR,
for me it is the same problem. I need to suppress the running of the loaded app
when the reset button is pressed. Please don’t give me a suggestion like go to a previous version,
it is all the same problem. Now, after all this, it appears I am out of luck, pressing the LDR1 button on the brainpad during
reset seems to be the only way. Ok, this could have been a 2 message question but it is like pulling teeth getting
a straightforward answer here. BTW, the DISCOVERY board does not have a ldr1 button, but I will figure it out


#17

I definitely see hostility!


#18

I’m pretty sure I won’t be alone here in wondering this. Why do you think you need to do that? Sure, using the GHI loader function to get into the bootloader does stop the app from running, but why do you think that is important? You can deploy an app over the top of a running app without a problem, people have been doing that for hundreds of years (ok, that was flippant - millions of man-hours) on NETMF. There’s no regular need to stop an app from running. And yes, if you write bad code, there are situations that you can’t deploy over the top and you need to get into the bootloader and erase the app or load a new version of code, so this information isn’t lost knowledge for you, but I still don’t get why this is such a hot topic. If you think “embedded device”, and you can teach this at the outset, is it’s an endless running app that if power goes out and then comes back on, you want it to do exactly the same thing that it was doing before the power went out. Every time you start your car, you want the engine management system, the embedded device, to keep running the engine, you want it to be repeatable from today to tomorrow to the next day. That is the mindset of embedded. That is an important difference between a general purpose computer and an embedded device. It’s not a hard concept, people will understand it, and they’ll understand why their LEDs keep flashing when they reset their device once you’ve told them. So please, help us understand why you think this is a big deal??


#19

But I am not in the Embedded world. I am in the classroom, not teaching professionals how to work in the embedded world
the .net, but software programming to young people. I assume GHI built the BrainPad for this purpose, so it cant be a mystery to you that I work in a different environment than the typical embedded product.
I’ve been down this road for many years teaching to young people and my question is pretty reasonable: How do I get a room full
of kids to write code, deploy it to hardware , and regain control of the devices with minimum of fuss or complications.
Trying to explain to young kids how to reset the device using 2 buttons is much more difficult than a single button press.
If you don’t believe me, then fine. I know my business, you don’t. An stop trying to lecture me on how to use embedded devices, I have been doing this much longer than you.
I ask a single simple question, I get lectures and questions of why I want to do that. Its not your business, I am tired of trying to explain to you the world I live in. Can I interrupt the loading a program during reset. you just have to say no, however with the LDR1 button (on the brainpad) you can. End of story, if you are curious about why I need that of what I am up to , fine. I’m happy to comply. But don’t lecture me or question my logic unless you really understand the situation. you just drive away customers.
I have an interest in .net for embedded devices, but instead of trying to push a rope uphill, I will just go to the more popular platforms for teaching.


#20

Are you saying that the kids will have a difficult time understanding two buttons versus one button, or that you have a hard time explaining how and when to press two buttons?

I have to check to see if it a full moon.