We tend to do the hard realtime stuff inside a periodic IRQ. Caching complicates things, but a lot of embedded apps can fit the entire runtime code in cache!
I bet we can do the entire IRQ DDS thing in a microsecond.
A core per task makes a lot of sense these days.
Some data is sure better than none. On a Zynq (dual core ARM) running Linux, we didn't see task timeouts over about 25 us, which was impressive.
We could run Linux on one core (good for ethernet and files and UIs and stuff) and bare metal on the other, but that hasn't been necessary so far. Well, we just move the fast algorithms into the FPGA.
--
John Larkin Highland Technology, Inc
lunatic fringe electronics
On a 50 MHz Cortex-M3, a well-written interrupt service should run at around 1us. It should be fast enough for your 200 kHz DDS, provided that there are not too many interrupt disables around.
On the Cortex-M3, there are instructions to provide race-free access without interrupt disables (ldrex / strex).
I am glad to hear that, assuming I counted all the "nots" right :)
Nothing stopping that, really. I've had pretty good luck even generating FSM from description "languages" as metaprogramming.
I don't know exactly how you'd productize that, but FSM representations are generally quite linear and that makes at least the tables for them easy to generate.
So you can fix that entire list by using Communicating Sequential Process oriented, model-based designs. It's pretty much the way high-reliability stuff is done. If you have good combinators for stimuli and decent logging, you can get pretty close to model-checked status for cheap.
The way some clients under the age of say 35 "inform" me that my services are no longer required is that they simply block your telephone number and emails. Even ones that seemed quite satisfied with the work I did prior. No explanation as to why they don't wish to continue the relationship or if they were unhappy with something for whatever reason, no "thank you", that's it, dismissed.
My gf encounters the same problem when in-person job interviewing; sit down with the friendly young HR person who tells her she's one of the front-runners and then never get a callback or email to even say "thank you but we've decided to hire someone else", they just leave you flapping in the breeze
They are partly onto something if you turn it round and say that some excellent programmers can also be well out on the autistic spectrum. You only have to look at how often supposedly "secure" US military sites are breached by some autistic guy in his bedroom. Machines interest them because they don't answer back and behave quite literally doing exactly what they are told to. For someone with autism that is reassuring.
Choose the wrong algorithm and it is all too easy to end up with something that runs slowly when scaled up to a real world problem.
It depends what you are doing. I have known people working in software engineering whose first degree was history and modern languages as well as the more obvious numerate degrees. Even people with fine arts degrees can have a place these days when the look and feel of the interface can be as important to usability as the functionality of the code behind it.
You would perhaps be surprised. Many of the people who work on that sort of stuff gravitated towards it by playing computer games first (and hacking existing games to get infinite lives - that sort of stuff).
The odd truly exceptional software engineer you have to live with their other antisocial quirks to harvest the talent that produces reliable code at a rate that defies all expectations.
It was the case a long time ago that software development was a career for a very small number of highly numerate graduates. Things change radically when microprocessors made home computers almost ubiquitous.
Women software engineers are rarer than men but the ones that do stay the course tend on average to be better than the average male.
I expect they do at least if they have had any exposure to software engineering courses. But one of the tricks of being an expert is knowing when you can cut corners in development and still get the right result.
It was certainly visuo-spatial skills and pattern matching that the software aptitude tests I have encountered were looking for - there was little if anything about personality beyond your name.
Or because they are things that one can obsess about without limit. Austic people do that. I know one kid who is now reading the Harry Potter books for (she knows exactly) the 46th time.
--
John Larkin Highland Technology, Inc
lunatic fringe electronics
It's partly because high-functioning autism has a lot of crossover with the egomanic/cluster B personality disorders but the rationale is different. Everyone needs some amount of positive reinforcement/narcissistic supply to keep functioning, the pathological narcissist prefers to primarily extract it from people (treating people as objects) simply because they're jerks; high-functioning autist doesn't have the social savvy to really impress anyone enough to get even a "normal" amount of positive reinforcement, so using objects as objects is the surrogate for using people as objects
I naturally code that way but when I've shown my code to "real programmers", they say "that's neat"! To me, it's the obvious way to get across the street - one step at a time (with some checks along the way).
I've known some reasonably good female hardware engineers but they don't tend to stay hardware engineers.
Or written by a psych who has experience with the condition but whose opinion on the causative factors of the behaviors involved differs from the beliefs of either other psychs or the patients in question or both. Unfortunately that's kind of how the social sciences work, good luck getting a group of psychs together and agreeing "Yes, this is it, this is the reason."
There's also no law that says what a researcher believes about it has to be a thing that the patients in question necessarily agree with or like.
It's not that FSMs aren't a useful design pattern for some problems, it's just that the software world has moved on to things like OOP, functional, and generic programming which are more scalable, extensible, and abstract
We've found a bunch of hardware engineers over the last few years (still looking for a 5-10, I think). A few local companies shutting down helped (some are coming back - looking for engineers). There is no age discrimination, hiring hardware engineers, for sure.
Nowadays on large projects the most "appropriate" design pattern is most often one that generates a codebase 20 or 30 people can work with simultaneously and not influence each other too much. You can't have everyone involved in a project mucking with the state diagrams and making changes that break other people's shit, so you have to run modifications thru some master planner guy, which is a bottleneck and wastes time. It's too "top down." Doesn't scale well.
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.