Smooth transition to dual-core i.MX thanks to adoption of IAR Embedded Workbench
To help in the development of its new EX-word electronic dictionary series, Casio Computer Co., Ltd. has adopted IAR Embedded Workbench.
Processors serve as the central component for electronic dictionaries, and since CASIO was replacing its traditional 32-bit RISC CPUs with Arm-based dual-core processors, the company decided to take that opportunity to introduce IAR Embedded Workbench for Arm. Despite encountering many challenges in balancing performance and power efficiency, the company succeeded in pushing development forward without delay thanks to support they received from IAR Systems.
In this story, CASIO is talking about technical issues the company faced while developing its new electronic dictionaries, as well as other details on how it adopted IAR Embedded Workbench.
CASIO is a leading manufacturer of electronic dictionaries and has greatly improved resolution, font, and sound quality. The develop several different products. Yanagisawa at CASIO comments:
Our department develops products in the category of language learning. Our main product is the EX-word electronic dictionary, but we develop a wide array of models for students, businesses, seniors who attach importance on life and culture, and devices categorized by language, to name a few. We are also in charge of development for the dedicated English-learning tools “EX-word RISE” and “joy study.” We adopted IAR Embedded Workbench for development of the EX-word XD-SR series that was released in January 2019.
- Masaaki Yanagisawa
The XD-SR series (image 1) features a higher resolution LCD display. The previous model had an HVGA (528×320) display, but this has been upgraded to an FWVGA (864×480) display. The font has also been changed from bitmap font to outline font. Audio output quality for languages such as English has also been improved by the adoption of Opus compression technology (up to 48kHz encoding) often used on the internet. The processor has also been upgraded to allow users to operate the device more comfortably.
Choosing NXP i.MX series for the EX-word XD-SR series
“We went with the i.MX series processor, a dual-core processor developed by NXP Semiconductors that is equipped with Cortex-A and Cortex-M processor cores. Cortex-A processes tasks like searches, graphics display, video playback, judging English pronunciations, and USB communications. Cortex-M processes tasks like key and touch entries, as well as audio playback and recordings. For the operating system (OS), we decided to adopt a real-time OS conforming to the μITRON specification which supports multi-core asymmetric multiprocessing (AMP). In other words, both Cortex-A and Cortex-M are equipped with μITRON.”
Previous models of EX-word used several different processors. Yanagisawa comments:
“EX-word was first released in 1996, so back then we were using 16-bit x86 processors. Later on, we started using 32-bit RISC processors from the first half of the 2000s, and now we are adopting Arm-based processors for the first time.”
CASIO changed platform to keep up with competitors’ specifications
CASIO encountered several challenges during development. Yanagisawa comments:
“We actually developed a model that used the same processor as our previous model and came equipped with a WVGA (800×480) LCD display for overseas markets, but we encountered some issues with display speeds. However, around the same time other rival companies were releasing products with high resolution displays in markets around the world, so we decided to change our platform and boost system performance. That was really the wake-up call that drove us to start from the ground up.”
“The display font was also a big issue. Reviews that told us that bitmap font is ugly really started to attract attention.”
“The processors on previous models were also equipped with OpenVG accelerators, but that alone wasn’t nearly enough to boost performance… If we were going to implement the use of outline font, then the load from non-drawing processes would increase, such as processes that call data from memory, etc.”
“There was no problem with the CPU core’s processing speed on the previous model’s processor, but we did run into some issues. For example, the external RAM was SDRAM, so the operating clock speed wasn’t very fast. This time on the other hand, the current model is equipped with LPDDR2 RAM, so data transfer speeds are more than 10 times better than before and system performance has increased significantly”. (Shown in figure 2.)
CASIO considered several options for accessing search and audio data
“In our company’s case, we use eMMC flash ROM to store content data. The processor on our previous model ran into the issue of accessing the eMMC interface too slowly. The current model moves eMMC in DDR mode, so data transfer speeds have improved around 4 times that of the previous model.”
“The system configuration has changed, but despite the screen resolution being changed from HVGA to FWVGA, normal processes like performing searches and displaying information are up to about 1.5 times faster than before.”
CASIO pays great attention to detail when it comes to battery-operated electronic dictionaries.
“Although we increased performance, we also had to maintain power consumption, which is why we divided processing into two cores. It was a lot of work, but we were able to find a balance between improved performance and power efficiency.”
Several areas requiring creativity in the development of the new product
“Stopping all unused processes as much as possible is a basic rule in power conservation. For that reason, we set the OS tick time to be rather long and made it possible for the timer that creates this tick time to be recalled even from the CPU’s “deep” low power mode. For the real-time OS, we set the tick time to short 1 millisecond interval orders, and although there are often cases when response speed is prioritized, we decided to make this tick time rather long for our electronic dictionary systems. High-speed timers are only used when necessary to perform tasks quickly, so we tried keep everything as slow as possible when they aren’t needed. These latest models are about 5 times more power efficient than the previous models.”
Using IAR Embedded Workbench for the first time
“This was actually the first time we used a multi-core processor, so we were initially skeptical about whether it could really debug or not. Thankfully it performed more smoothly than we expected, so we were really happy about that.”
What about multi-core debug functions?
“We were able to confirm the behavior of both cores on a screen. When one core breaks, the other core’s processes also stops.”
“I thought the ability to set detailed break point conditions was really convenient. For example, breaking when a variable reaches an appointed value, or breaking when it goes through this address, etc.”
“This is my second year at CASIO, and until I participated in this project I had never been involved in embedded development. Although I didn’t receive any formal training on how to use IAR Embedded Workbench, I was still able to do my job just fine for one entire year. I think it’s very impressive how a novice like me can successfully develop a product using this platform.”