Skip to main content

Posts

Recent posts

Efficient Computation of Deadline-Miss Probability and Potential Pitfalls

Fortunately, I will attend the DATE 2019 conference to present my work. The title of my work is: Efficient Computation of Deadline-Miss Probability and Potential Pitfalls This work is regarding the approximation of Deadline-Miss probability for soft real-time systems. The abstract is as the following: In soft real-time systems, rare deadline misses are often tolerable by the applications. Towards this, probabilistic arguments and analyses are applicable to the timing analyses of this class of systems, as demonstrated in many existing researches. Convolution-based analyses allow to derive tight deadline-miss probabilities, but suffer from a high time complexity. Among the analytical approaches, which result in a significantly faster runtime than the convolution-based approaches, the Chernoff bounds provide the tightest results. In this paper, we show that calculating the deadline-miss probability using Chernoff bounds can be solved by considering an equivalent convex optimization ...

[RTEMS/QORIQ] How to deploy RTEMS 5 on NXP T4240RDB / TFTP on Ubuntu 16.04 LTS

If you are looking for RTEMS 4.11 installation on NXP T4240RDB, please refer to here . You may need to generate t4240rdb.dtb by using the NXP sdk. (It is an intermediate file...) BSP is "qoriq_e6500_64" Toolchain is powerpc-rtems5 I did the following steps: The command for building up the toolchain: ../source-builder/sb-set-builder --log=build-nxp-log.txt --prefix=$HOME/development/rtems/compiler/5 5/rtems-powerpc I did bootstrap in the source tree folder as stated in here .  The command for configuring the build up procedure: ../rtems-kuan/configure --target=powerpc-rtems4.12 --enable-rtemsbsp=qoriq_t4240rdb --enable-smp --enable-tests=yes --prefix=$HOME/development/rtems/4.12-powerpc" You can find out some testsuites executable are generated in "/home/khchen/repository/git/build-nxp-5/powerpc-rtems5/c/qoriq_e6500_64/testsuites/samples" To wrap the executable as the loadable image, I use the following steps: # powerpc-rtems5-objcopy -O bin...

Analysis of Deadline Miss Rates for Uniprocessor Fixed-Priority Scheduling

Gladly, this year I have a chance to visit a conference in Japan. In RTCSA'18, I will give a talk for: Analysis of Deadline Miss Rates for Uniprocessor Fixed-Priority Scheduling Abstract: Timeliness is an important feature for many embedded systems. Although soft real-time embedded systems can tolerate and allow certain deadline misses, it is still important to quantify them to justify whether the considered systems are acceptable. In this paper, we provide a way to safely over-approximate the expected deadline miss rate for a specific sporadic real-time task under fixed-priority preemptive scheduling in uniprocessor systems. Our approach is compatible with the existing results in the literature that calculate the probability of deadline misses either based on the convolution-based approaches or analytically. We demonstrate our approach by considering randomly generated task sets with an execution behavior that simulates jobs that are subjected to soft errors incurred b...

Virtualenv experience or alternatives

Today I have a project which requires several packages on my python. However, due to whatever reason, I have a lot of different versions of python. Before I thought, it was fine to just install and maintain each by each. Maybe it is time to learn how to use virtualenv. (alternatively, you can use module). I first got some quick ideas from here: https://stackoverflow.com/questions/10763440/how-to-install-python3-version-of-package-via-pip-on-ubuntu The magic virtualenv does is that, it copies a series of your python binaries, include, pip, etc., into a folder. The prepared activate script does that, add the export folder into the general variable PATH at its beginning. By doing so, the targeted version of python will be the first target that will be executed. To enable virtualenv, source the position of the above folder/bin/activate To leave the virtualenv, just type deactivate, as it is defined when you load the activate script. For example, I call virtualenv in my home ...

[RTEMS/QEMU] RTEMS 5 with QEMU-SMP

Let me first show what I can get: *** BEGIN OF TEST HELLO WORLD *** *** TEST VERSION: 5.0.0.b771cb48a61c6094da114d064df7d6b1daa01953 *** TEST STATE: EXPECTED-PASS *** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP *** TEST TOOLS: 7.3.0 20180125 (RTEMS 5, RSB 10d3aaf467aee6ec6b463cca04ab873e1c18a5dc-modified, Newlib 3.0.0) Hello World *** END OF TEST HELLO WORLD *** The configuration I used is as follows: ../rtems-kuan/configure --target=arm-rtems5 --enable-rtemsbsp=realview_pbx_a9_qemu_smp --enable-smp --enable-tests=yes --prefix=$HOME/development/rtems/5 qemu-system-arm -no-reboot -nographic -M realview-pbx-a9 -m 256M -kernel hello.exe -smp 4

[Gem5] Full system Simulation with Official Kernel

I follow the youtube provided by Gem5 to get the inspiration. (http://gem5.org/Running_gem5#Full_System_.28FS.29_Mode) I download the file here: http://www.gem5.org/dist/current/arm/ with http://www.gem5.org/dist/current/arm/aarch-system-20170616.tar.xz Then Set up M5_PATH as the place I extract the files: "/home/khchen/full_system_images/" If the setting is correct, assigning the disk-image will finish the rest of setting for dtb and kernel specifications. So far I can only use this img (aarch32-ubuntu-natty-headless.img) as my disk-image to run up to the login interface of the ubuntu: build/ARM/gem5.opt configs/example/fs.py --disk-image=/home/khchen/full_system_images/disks/aarch32-ubuntu-natty-headless.img With the other imgs, for example like "aarch64-ubuntu-trusty-headless.img", I think the kernel and the dtb should be given manually, because it will automatically load something with aarch32 prefix which doesn't make sense: info: kernel ...