Take him out to his car, and start taking it apart until you get to the computer controlling things. Point to it and say "we're doing that" then go back inside.
Take him out to his car, and start taking it apart until you get to the computer controlling things. Point to it and say "we're doing that" then go back inside.
Ask him what trade-offs are involved with choosing the right ICs, passive components, etc for a given project. He should have a grasp on trade-offs between the these: features/speed, current requirements, time-to-market, cost/supply channels, experience at your company.
Give him a scenerio and ask which MCU he might use and why. The best engineers will do more that just a simple and obvious comparison, but they'll talk about toolsets and existing experience at a company. The "best choice" in an absolute sense may not be the best if your company lacks experience with that type of device and this is a small project.
Is HE willing to learn about the devices YOU use, assuming he hasn't got any "hands on' with those particular devices?
And are YOU willing to learn from HIM in the areas of expertise he has that may be different than your own? Remember, an interview is a two-way street :-)
How much are you prepared to pay? I have colleagues with 30 years experience from embedded design through database-driven websites (and connecting them together). They report pay rates have fallen because managers are scared to hire people aged 50+. Do you want good or cheap? I know everyone wants both, but ...
Stephen Where? When? required experience?
-- Stephen Pelc, stephenXXX@mpeforth.com MicroProcessor Engineering Ltd - More Real, Less Time
Because our lame debugger will always say "Local Not Alive" :-)
-- Darin Johnson
No, don't go back inside. Put the car back together, otherwise the consultant can't leave.
-- Darin Johnson
Is "your tools are broke" an acceptable answer?
s/give/given/
[...]
I agree some are making that assumption but I chose my words carefully. "If there is any kind of optimization taking place ..." isn't the same thing as deliberate selection of optimizer options.
Good C compilers are not simply elaborate collections of macros driving an assembler altho the historical Pascal faction would have one believe such.
One of my guesses would be that the stack was getting clobbered. Doesn't even have to be broken interrupt handlers. Just put a buffer on the stack, save a pointer to it somewhere, then leave the function. Next time something tries to write to that buffer it will corrupt the currently running stack. If done in a different context it will be very mysterious.
A habit a lot of programmers have is in assuming the rest of the system is working. In embedded systems you can't necessarily trust that the hardware and OS are working correctly (and sometimes not even the compiler as I've discovered). A candidate that says "that can't happen, z must equal 3" is inadvertently limiting the scope of the problem solving.
Granted, in an interview one usually expects that such questions can be solved without going outside the box, especially if the question is asked as if it were a puzzle. I think candidates might open up more if the question were asked as "I once had something like this fail for me, can you give me ideas on what may have caused this impossible result?"
-- Darin Johnson
If the code was not compiled for debugging, how could one put the breakpoint between two source lines in a high level language ?
While debuggers relying solely on disassembled machine instructions work without any compiler/assembler assistance, any HLL debugging requires cooperation from the compiler, either as some line number information to be associated with the source code or putting the actual source code as "comments" into the object file.
Paul
The debugger that I am most experienced with will do this, even if the line is not there. It will put the break on the next most machine instruction which may never be reached in the required path, or (worse?) may be reached from paths unassociated with the one under test because that code line has been optimised into that path.
As you say, debugging optimised code using a source level debugger is difficult, but it is not fundamentally impossible.
tim
As Tom also pointed out, in most cases it is possible to compile with optimisations enabled and still allow debugging.
Regardless, who said I wasn't using an ICE?
Regards,
-- Mark McDougall, Engineer Virtual Logic Pty Ltd,
I have a particular device that's got a 4 stage pipeline, and the result of an operation won't necessarily be available at the next machine cycle. That's also an issue with MIPS cores for branches - the assembler has constructs to insert no-ops but occasionally they get turned off for various reasons. (The instruction _after_ the branch instruction is actually picked up and executed during the branch itself which can be really useful but can also cause great pain and grief).
I've seen the most amusing bugs because the assembler directive to turn them on again was 'forgotten'.
When I get this sort of question I ask if the assembler listing is available.
Cheers
PeteS
Turns out that was exactly what is was but with more than one agency. They didn't bother to contact the candidate and then told us with a straight-face that the candidate was ill or just didn't fancy it. Over the last week I've had those same candidates turning up unannounced looking for interviews at whatever arbitrary time the agencies have told them.
It's disgusting considering the sums these agencies are asking.
"Tom Lucas" wrote in message news: snipped-for-privacy@iris.uk.clara.net...
A few years back an agency asked me to attend an interview for a contract in Bristol, which went well. On the drive home I received a call from another agency asking me to attend an interview in Reading, which I declined. I later discovered that this second agency was also bidding for the first job, and after phoning me had told the Bristol client that I wasn't available as I'd accepted a job elsewhere, which was of course a total lie.
I complained. I also looked into it, and discussed this with other agencies. The general consensus was "it happens all the time".
Some of the recruiters are very good, and some are lying scumbags.
Steve
Any suggestions as to those which are very good? I've got several lying scumbags I can trade ;-)
"Tom Lucas" wrote in message news: snipped-for-privacy@despina.uk.clara.net...
My data would be out of date, and related to specific individuals. I didn't get the impression that "lying scumbaggery" was a corporate policy [1], merely a tool employed by certain individuals to achieve their targets/bonuses.
[1] At least not overtly...Steve
... snip ...
Which is handled concisely by the (elsethread) suggestion:
a = !a;
Other possibilities include using the C99 declaration
#include
bool a;
or using Pascal
a : boolean;
-- Chuck F (cbfalconer at maineline dot net) Available for consulting/temporary embedded and systems.
VAR flag: Boolean;
flag = not flag;
or did you have to write in C ;-)
-- Best Regards, Ulf Samuelsson
Of course not.
and equally valid answers to the question are
TX BIT P0.4 CPL TX
or
PIN = Flag; Flag.d = !Flag; /* toggles on every CLK */
-jg
:= :-)
-- Chuck F (cbfalconer at maineline dot net) Available for consulting/temporary embedded and systems.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.