Midterm evaluation of atomic operation support for rtems
yangwei weiyang
wei.a.yang at gmail.com
Tue Jul 10 10:54:54 UTC 2012
Hi all,
This is the status report about my project "atomic operation support
for RTEMS".
Done:
1. Atomic operation API design for RTEMS.
2. Atomic operation implementation for i386 architecture on RTEMS.
3. Seven test cases have been added and run successfully. These test
cases include:
(1).Atomic load generic function with memory_order_relaxed option test case.
(2).Atomic store generic function with memory_order_relaxed option
test case.
(3).Atomic_fetch-and-add generic function with memory_order_relaxed
option test case.
(4).Atomic_fetch-and-sub generic function with memory_order_relaxed
option test case.
(5).Atomic_fetch-and-and generic function with memory_order_relaxed
option test case.
(6).Atomic_fetch-and-or generic function with memory_order_relaxed
option test case.
(7).Atomic_compare_exchange generic function with
memory_order_relaxed option test case.
Todo:
1. Add test cases for all atomic operations with other two memory
barrier types option
(memory_order_acquire and memory_order_release).
Source code repository:
https://github.com/WeiY/rtems.git
branch:atomic
How to build the RTEMS to test atomic operation:
1. cd ~/
2. git clone https://github.com/WeiY/rtems.git
3. git checkout -b atomic origin/atomic
4. mkdir ~/rtems-build
5. mkdir ~/rtems-install
6. cd ~/rtems-build
7. ./build-atomic-rtems
The test cases will be install the rtems-install directory.
How to run atomic test cases on qemu:
./run-atomic-rtems.sh PATH/EXENAME.exe
Before you run the script you must have rtems boot image under
${HOME}/qemu/pc386_fda and you must create a directory ${HOME}/qemu/hd
to store your test case execute file.
PS:
1. There are three types of memory barrier option in the atomic
operation API definition.
(memory_order_acquire, memory_order_release and memory_order_relaxed)
--
Wei Yang
Best Regards
wei.a.yang at gmail.com
More information about the devel
mailing list