https://github.com/pavlostzitzos/esd-project
Embedded System Design Project
https://github.com/pavlostzitzos/esd-project
arm armulator c digital-image-processing embedded-systems memory-models optimization
Last synced: 3 months ago
JSON representation
Embedded System Design Project
- Host: GitHub
- URL: https://github.com/pavlostzitzos/esd-project
- Owner: PavlosTzitzos
- Created: 2023-11-11T18:13:11.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-12T13:55:10.000Z (over 1 year ago)
- Last Synced: 2025-04-11T01:53:31.321Z (3 months ago)
- Topics: arm, armulator, c, digital-image-processing, embedded-systems, memory-models, optimization
- Language: C
- Homepage:
- Size: 92.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# esd-project
Embedded System Design Project## To Do List
- [ ] fix the code where necessary
- [ ] check the final image result (fix if necessary)
- [ ] add some tests
- [ ] make the VS to debug to arm compiler
- [ ] add a guide for the above
- [ ] add more memory maps in the optimized-2
- [ ] add the english version of the report## Code Development
The code was developed in the following series :
1. Visual Studio
1.1. vs-initial (before optimizations)1.2. vs-optimized (after optimizations)
2. CodeWarrior
2.1. cw-initial (before optimizations - same code with 1.1)
2.2. cw-optimized (after optimizations - same code with 1.2)
The report can be found in greek and soon in english.
## Folder Structure
๐ฆesd-project
โฃ ๐Report
โ โฃ ๐LaTeX-images
โ โฃ ๐greek
โ โ โฃ ๐Report.pdf
โ โ โ ๐Report.docx
โฃ ๐vs
โ โฃ ๐vs-initial
โ โ ๐vs-initial.c
โ โฃ ๐vs-optimized
โ โ โ ๐vs-optimized.c
โฃ ๐cw
โ โฃ ๐cw-initial
โ โ ๐cw-initial.c
โ โฃ ๐cw-optimized
โ โ โ ๐cw-optimized.c
โ ๐README.md
# Tools
- [IDE - Metrowerks CodeWarrior for ARM Development Suite](http://www.metrowerks.com/)
- [IDE - Visual Studio](https://visualstudio.microsoft.com/)
- [LaTeX equations to Image online converter](https://latex2image.joeraut.com/)
- [LaTeX in Visual Studio as Comments - VS Extension > Tools](https://marketplace.visualstudio.com/items?itemName=vs-publisher-1305558.VsTeXCommentsExtension2022)
- [Using LaTeX in Visual Studio Code on Windows - Medium](https://guillaumeblanchet.medium.com/using-latex-in-visual-studio-code-on-windows-121032043dad)
- [YUV Player](https://github.com/Tee0125/yuvplayer)
# Guides
- [The big list of LaTeX symbols](https://ftp.cc.uoc.gr/mirrors/CTAN/info/symbols/comprehensive/symbols-a4.pdf)
# Papers
- [Space Convolution Illustration](https://www.researchgate.net/figure/Schematic-illustration-of-a-convolutional-operation-The-convolutional-kernel-shifts-over_fig2_332190148)
# Articles
- [General Introduction](https://en.wikipedia.org/wiki/Digital_image_processing)
- [What is YUV?](https://www.pcmag.com/encyclopedia/term/yuv)
- [RGB to YUV and their range of values](https://dexonsystems.com/blog/rgb-yuv-color-spaces#:~:text=Like%20any%20color%20space%2C%20YUV%20space%20uses%20mathematical,U%20and%20V%20range%20from%20-0.5%20to%200.5.)
- [Conversion between YUV and RGB](https://www.pcmag.com/encyclopedia/term/yuvrgb-conversion-formulas)
- [RGB to grayscale](https://www.baeldung.com/cs/convert-rgb-to-grayscale)
- [Canny Edge Detector](https://en.wikipedia.org/wiki/Canny_edge_detector)
- [What happened to Metrowerks?](https://theqalead.com/general/what-happened-to-metrowerks/)
- [Memory Options for Embedded Systems](https://www.qt.io/embedded-development-talk/memory-options-for-embedded-systems-how-to-select-the-right-memory-configuration)
# Videos
- [Memory in ARM Cortex-M](https://www.youtube.com/watch?v=aT5XMOrid7Y)
- [Stack and Heap in Memory](https://www.youtube.com/watch?v=_8-ht2AKyH4)
# Blogs
- [Video Engineering](https://poynton.ca/Poynton-video-eng.html)
# Repositories
- Thanks to [Vincmazet](https://github.com/vincmazet) for the [Basics of Image Processing](https://vincmazet.github.io/bip/) website.
# Books
- [Digital Image Processing 4th Edition by Rafael C. Gonzalez , Richard E. Woods](https://studylib.net/doc/25705174/digital-image-processing-4th-ed.---r.-gonzalez--r.-woods-...)
- [Digital Video and HD Algorithms and Interfaces, Second Edition](https://shop.elsevier.com/books/digital-video-and-hd/poynton/978-0-12-391926-7)
- [Engineering a Compiler](https://shop.elsevier.com/books/engineering-a-compiler/cooper/978-0-12-815412-0)
- [Dragon Book](https://suif.stanford.edu/dragonbook/)
- [List of Books about ARM architecture](https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/a-list-of-books-about-arm-architecture)
# Documentation
- [ARM Developer - Learn the architecture - Optimizing C code with Neon intrinsics](https://developer.arm.com/documentation/102467/0201?lang=en)
- [ARM Developer Suite CodeWarrior IDE Guide](https://developer.arm.com/documentation/dui0065/d?lang=en)
- [About ARM and Thumb Instructions of ARM7TDMI](https://microchip.my.site.com/s/article/ARM-and-Thumb-Instructions-of-ARM7TDMI)
- [About Memories on ARM Cortex M - Chapter 8](https://github.com/arm-university/Fundamentals-of-System-on-Chip-Design-on-Arm-Cortex-M-Microcontrollers/tree/main)
- [Learn about Thumb-2 ISA (T32 and T16)](https://developer.arm.com/Architectures/T32%20Instruction%20Set%20Architecture)
- [ARM7TDMI Technical Reference Manual r4p1](https://developer.arm.com/documentation/ddi0210/c)
- [Scatter files syntax and examples](https://developer.arm.com/documentation/dui0474/c/using-scatter-files?lang=en)
- [About .map memory files](https://developer.arm.com/documentation/dui0058/d/armulator-reference/map-files/format-of-a-map-file?lang=en)
- [Online Documentation for the Software - RealView Development Suite AXD and armsd Debuggers Guide](https://developer.arm.com/documentation/dui0066/g?lang=en&fbclid=IwAR0QyIrpo4wR1AmY3_tIwoNcDv9ZC-g9V-WRjagNa9aVThYPiCVfv5KLagk)
- [Download Legacy Tool ARM Development Suite v1.2](https://developer.arm.com/downloads/-/rvds-and-ads)
- [Legacy __user_initial_stackheap() documentation](https://developer.arm.com/documentation/dui0492/i/Cihhdahf)
Since the ARM7TDMI is an implementation of the legacy 32-bit architecture armv4T, according to [ARM Developer Hub](https://learn.arm.com/learning-paths/embedded-systems/intro/background/) the recommended processors for embedded systems can be any of the following:
1. ARM Cortex-A for advanced OS
2. ARM Cortex-R for Real-Time Applications (RTOS)
3. ARM Cortex-M for MCUs
The supported architecture version is armv7, armv8, armv9 (latest at 2022).
CodeWarrior IDE vs ARM DS 2022 IDE :
- C Projects vs C/C++/Java/Python Projects
- ARM Executables vs ARM Bare-Metal Projects (and other)
- ARM Compiler vs ARM Compiler 6 (there is support for 5)
- AXD Debugger vs Debug on semihosting
- scatter.txt and memory.map supported on both
- Debugger Internals vs Trace (DTSL) and Streamline
# Tutorials for the ARM DS 2022
- [Bare-Metal HelloWorld with scatter.txt - using commands - for armv8 on the FVP_Base_AEMvA which is a generic Arm Architecture platform, implementing 4 processors](https://learn.arm.com/learning-paths/embedded-systems/bare-metal/hello/)
- [Design a dynamic Memory Allocator](https://learn.arm.com/learning-paths/cross-platform/dynamic-memory-allocator/)
-