feature article
Subscribe Now

Art Majors vs. Programmers

Express Logic GUIX Brings Graphics to Embedded Interfaces

Maybe it’s a left-brain/right-brain thing. Programmers usually aren’t very good user-interface designers. Drawing all those windows, buttons, and scroll bars gives most developers the willies.

Enter GUIX, a new GUI-design tool from Express Logic, the people who make the ThreadX real-time operating system. GUIX brings lightweight GUI widgets to smallish embedded systems, allowing programmers to stick to their programming and leave the GUI gooeyness to the liberal-arts majors.

Astute followers of Express Logic’s oeuvre may be thinking right now, “Wait a minute… don’t those guys already have a GUI tool?” Indeed, they do. PEG-X was for many years the company’s standard GUI-development framework, but it’s being edged out by the newer GUIX. Current PEG-X users are welcome to stick with that product, and Express Logic will happily support them for years to come, but developers new to the GUI landscape are encouraged to start fresh with GUIX.

You see, PEG-X always sat a bit uneasily in the Express Logic product catalog. It wasn’t an in-house product but was licensed from Swell Software and sold through multiple channels. If you got your copy of PEG from Express Logic, it was called PEG-X, but it was otherwise an unvarnished copy of Swell’s product. On the plus side, that meant PEG was available from, and supported by, multiple vendors. But on the down side, PEG-X was never developed specifically for the ThreadX operating system. By necessity, PEG was OS-agnostic, running on multiple RTOSs and multiple CPU architectures. Its APIs and calling conventions were Swell’s, and not necessarily tuned to the way ThreadX does things. It fit, but it wasn’t custom couture. It also didn’t help that Swell Software was later acquired by Freescale, putting PEG’s independence in doubt.

That’s where GUIX comes in. Unlike PEG-X, GUIX was developed from the ground up to work with ThreadX and only ThreadX. It adheres to the company’s established calling conventions; the GUI functions now look like native RTOS functions instead of third-party code. As a result, GUIX is smaller than its predecessor. It no longer carries the baggage necessary to support multiple operating systems, various file systems, and different memory-allocation schemes. That makes its memory footprint smaller and its processor demands lighter.

GUIX is also smaller because it does less – and that’s a good thing. PEG was first created 15 years ago, back in 1998 when the embedded-GUI world was very different. Its initial design goal was to help embedded designers build something that looked like Windows 95. Desktop-style title bars and dialog boxes were what everybody wanted (along with big sideburns). GUI fashions have changed since then, and GUIX more closely reflects today’s Android- and iOS-influenced zeitgeist. The result is a newer, cleaner, and more efficient runtime that demands less of its host system.

At the same time, GUIX adds a few new features that PEG-X didn’t have. Specifically, GUIX now supports multiple displays with different resolutions and/or color depth. (Previously, multiple displays had to be identical.) GUIX can also import TrueType fonts, so designers don’t have to create their own jaggy character sets.

Because GUIX comes from Express Logic, it’s royalty-free and comes with source code. As with ThreadX and the company’s other –X products, there’s just a simple up-front licensing fee; no money changes hands after that. Currently, GUIX runs only on ARM processors, but, given Express Logic’s track record, more CPU support is likely in the future.

So how does it work? Much like other embedded-GUI tools, to be honest. There are two parts: a small runtime library for the target hardware and a big PC application for the design phase. You drag and drop GUI elements (buttons, graphs, icons, text, etc.) on the PC screen and assign actions or responses to clickable elements. There’s no programming as such, just graphics noodling. The GUI result is then compiled into a form that’s both callable from C code and understandable to the runtime element. You can prototype the complete GUI’s behavior entirely on the PC, for those times when the target hardware isn’t ready.

GUIX isn’t intended to compete with more ambitious graphics standards like OpenGL. It’s a relatively lightweight GUI runtime for “dumb” LCD displays, not 3D accelerators. Think industrial display, ATM, or medical equipment, not handheld video game. But with its flat-rate pricing, code-free design environment, and ability to import existing graphics and fonts, it’s just what non-art majors are looking for. Provided you’re running ThreadX on an ARM processor, GUIX is a good-looking upgrade.  

Leave a Reply

featured blogs
Jan 22, 2020
Samtec loves DesignCon.  It'€™s an opportunity to present our new signal integrity optimized, high-performance interconnect and technology solutions, along with the highest level of support and expertise in the industry. To learn more about these products and solutions, st...
Jan 22, 2020
Master the design and verification of next gen transport: Part One – Overview Master the design and verification of next gen transport: Part Two – High-Level Synthesis Master the design and verification of next gen transport: Part Three – Functional Safety M...
Jan 21, 2020
My mother is convinced that I'm a prodigy (for some reason she spells it "i-m-b-e-c-i-l-e"), but it may be that innate genius lies dormant in all of us....
Jan 17, 2020
[From the last episode: We saw how virtual memory helps resolve the differences between where a compiler thinks things will go in memory and the real memories in a real system.] We'€™ve talked a lot about memory '€“ different kinds of memory, cache memory, heap memory, vi...

Featured Video

Automotive Trends Driving New SoC Architectures -- Synopsys

Sponsored by Synopsys

Today’s automotive trends are driving new design requirements for automotive SoCs targeting ADAS, gateways, connected cars and infotainment. Find out why it is essential to use pre-designed, pre-verified, reusable automotive-optimized IP to meet such new requirements and accelerate design time.

Drive Your Next Design to Completion Today with DesignWare IP® for Automotive SoCs