Bootloaders (U-Boot) Omkar RaneThis document discusses bootloaders for embedded systems. It defines a bootloader as the first code executed after a system powers on or resets that is responsible for loading the operating system kernel. The document then describes the tasks of a bootloader like initializing hardware, loading binaries from storage, and providing a shell. It outlines the booting process differences between desktops and embedded systems. Finally, it focuses on the universal bootloader U-Boot, describing its directory structure, configuration, building process, and commands.
U boot porting guide for SoCMacpaul LinThis document provides an overview of the steps to port the U-boot bootloader to a new SoC using the NDS32 architecture as an example. It describes the directory structure of U-boot and key files related to the architecture, board, configuration, and device drivers. The document outlines where to define SoC hardware addresses, initialize board-specific peripherals, configure options, and implement device drivers to support the new SoC and board.
Embedded Linux Kernel - Build your custom kernelEmertxe Information Technologies Pvt LtdThe document provides comprehensive guidelines on working with the Embedded Linux Kernel, covering topics such as general information, configuration, building, and deployment. It details kernel subsystems, source code browsing techniques, and various configuration methods, including make configurations specific to architecture. Additionally, the document outlines the compilation process to create a kernel image and the steps to deploy the kernel on target hardware using TFTP and U-Boot.
Linux Kernel Booting Process (1) - For NLKBshimosawaThe document discusses the booting process in computer systems, specifically focusing on the Linux operating system and various boot loaders such as GRUB and U-Boot. It covers the definition and etymology of 'boot', the role of BIOS and UEFI, and details about x86 and ARM architectures, including their instruction sets and modes. Additionally, it presents a thorough boot sequence for x86 architecture and the importance of different registers and segmentations in the booting process.
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaroThe document discusses updates on ARM Trusted Firmware, highlighting project news, security hardening efforts, and AArch32 support with enhancements like a translation table library and performance improvements. It outlines the transition from a Contributor License Agreement to an inbound-outbound model for contributions and emphasizes a commitment to security vulnerability handling. Additionally, future plans include regular release cycles, removal of deprecated APIs, and the integration of new technologies to further support AArch32 architectures.
U Boot or Universal BootloaderSatpal ParmarThe document provides an overview of Das U-Boot, a universal boot loader used to load operating systems and applications into memory on embedded systems. It discusses U-Boot's features such as its command line interface, ability to load images from different sources, and support for various architectures and boards. It also covers compiling and configuring U-Boot, as well as its basic command set and image support capabilities.
LCU13: An Introduction to ARM Trusted FirmwareLinaroThe document provides an overview of the Arm Trusted Firmware for Armv8-A, detailing its role as a reference implementation of secure software and emphasizing the need for standardization across various platforms. It discusses challenges such as rewriting firmware, integrating multiple software components, and the importance of a standardized interface for power management and system operations. The document also highlights the collaborative nature of the project, which is intended to facilitate easier integration and foster community development through an open-source model.
Arm device tree and linux device driversHoucheng LinThis document discusses how the Linux kernel supports different ARM boards using a common source code base. It describes how device tree is used to describe hardware in a board-agnostic way. The kernel initializes machine-specific code via the device tree and initializes drivers by matching compatible strings. This allows a single kernel binary to support multiple boards by abstracting low-level hardware details into the device tree rather than the kernel source. The document also contrasts the ARM approach to the x86 approach, where BIOS abstraction and standardized buses allow one kernel to support most x86 hardware.
U-Boot - An universal bootloader Emertxe Information Technologies Pvt LtdThe document provides an overview of U-Boot, a universal bootloader used across various architectures, including its source code structure, building instructions, and essential commands. It outlines the components and organization of the U-Boot source tree, including configuration files and directory structures, as well as the responsibility and functionalities of U-Boot during the boot process. Additionally, key commands and environment variables utilized in U-Boot for system operations are detailed.
USB DriversAnil Kumar PugaliaThe document discusses USB drivers and provides an overview of USB host and gadget subsystems in Linux. It describes USB host and gadget device driver types, registration processes, data structures used, and key functions for interacting with USB controllers, the USB core, and endpoints. The document outlines views of the USB host and gadget subsystems and how drivers interface with lower-level USB controller drivers and higher-level user applications through the USB core.
C programming session8Keroles karam khalilBit-fields allow access to individual bits within registers or bytes. They define the number of bits allocated to each field within a structure. Pointers store the address of other variables in memory and can be used to access or modify these variables indirectly. Pointer arithmetic allows pointers to be incremented or decremented to access sequential memory locations represented by an array.
Q4.11: Porting Android to new PlatformsLinaroThis document provides an overview of porting Android to new platforms. It discusses the Android software stack, the Android Open Source Project structure, the AOSP code structure, common Android hardware abstraction layers, device configuration files, the AOSP build process, the Android boot process, and Android debugging tools.
A practical guide to buildrootEmertxe Information Technologies Pvt LtdBuildroot is a tool that generates embedded Linux systems by automating the configuration, compilation, and packaging of the system. It produces a root filesystem image ready to deploy on the target architecture. The build process compiles packages and a cross-compilation toolchain, then generates images containing the root filesystem, kernel, and other files needed by the target system. The output of Buildroot is organized into subdirectories containing the built images, toolchain, target and host files, and a staging area simulating the target filesystem.
Basic Linux Internalsmukul bhardwajThe document provides an introduction to Linux and device drivers. It discusses Linux directory structure, kernel components, kernel modules, character drivers, and registering drivers. Key topics include dynamically loading modules, major and minor numbers, private data, and communicating with hardware via I/O ports and memory mapping.
I2c driverspradeep_tewaniThe document provides a comprehensive overview of the I2C (Inter-Integrated Circuit) protocol, detailing its structure, conditions, and transactions. It covers the Linux I2C subsystem, including device driver registration, initialization, and APIs for accessing I2C devices like EEPROMs. Additionally, it emphasizes effective power management and the decoupling of device drivers from controller drivers for enhanced code reusability across platforms.
Embedded Linux on ARMEmertxe Information Technologies Pvt LtdThe document provides an extensive overview of embedded operating systems with a focus on Linux, detailing its history, architecture, and advantages for embedded development. It covers various aspects of embedded Linux, including hardware interfacing, boot processes, toolchains, and libraries relevant for building embedded systems. Additionally, it discusses development environments, cross-compilation tools, and specific methodologies for creating toolchains, along with a deep dive into popular tools like Buildroot and U-Boot used in this domain.
U-Boot presentation 2013Wave DigitechU-Boot is an open source boot loader that initializes hardware and loads operating systems. It supports many CPUs and boards. The boot process involves a pre-relocation phase where U-Boot initializes hardware and copies itself to RAM, and a post-relocation phase where it finishes hardware initialization and loads the kernel or operating system. Debugging can be done before and after relocation by setting breakpoints and examining memory.
LCU14 500 ARM Trusted FirmwareLinaroThe document outlines the capabilities and updates of ARM Trusted Firmware for 64-bit ARMv8-A systems. It discusses standardized firmware, reference implementations, and integration with trusted operating systems, while highlighting recent developments such as a complete PSCI implementation and the integration of OP-TEE. The presentation emphasizes the open-source nature of the firmware and invites contributions from developers.
Block DriversAnil Kumar PugaliaThe document discusses block drivers in Linux. It covers the need for the block layer, decoding block devices, writing a block driver, driver registration, block device operations, and request queues. Key aspects covered include registering a block device driver, implementing required functions like open and close, managing request queues and processing I/O requests to read from and write to the device. An example RAM disk driver is presented to demonstrate writing a basic block driver.
Embedded Operating System - LinuxEmertxe Information Technologies Pvt LtdThe document provides an extensive overview of embedded operating systems, specifically focusing on Linux. It discusses the evolution of open-source software, the architecture of embedded Linux systems, and the toolchain development process, detailing components such as compilers, libraries, and bootloaders. Additionally, it covers practical aspects of building embedded systems using tools like Buildroot and Yocto, along with examples from specific hardware platforms.
Processor박 경민프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
U boot porting guide for SoCMacpaul LinThis document provides an overview of the steps to port the U-boot bootloader to a new SoC using the NDS32 architecture as an example. It describes the directory structure of U-boot and key files related to the architecture, board, configuration, and device drivers. The document outlines where to define SoC hardware addresses, initialize board-specific peripherals, configure options, and implement device drivers to support the new SoC and board.
Embedded Linux Kernel - Build your custom kernelEmertxe Information Technologies Pvt LtdThe document provides comprehensive guidelines on working with the Embedded Linux Kernel, covering topics such as general information, configuration, building, and deployment. It details kernel subsystems, source code browsing techniques, and various configuration methods, including make configurations specific to architecture. Additionally, the document outlines the compilation process to create a kernel image and the steps to deploy the kernel on target hardware using TFTP and U-Boot.
Linux Kernel Booting Process (1) - For NLKBshimosawaThe document discusses the booting process in computer systems, specifically focusing on the Linux operating system and various boot loaders such as GRUB and U-Boot. It covers the definition and etymology of 'boot', the role of BIOS and UEFI, and details about x86 and ARM architectures, including their instruction sets and modes. Additionally, it presents a thorough boot sequence for x86 architecture and the importance of different registers and segmentations in the booting process.
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaroThe document discusses updates on ARM Trusted Firmware, highlighting project news, security hardening efforts, and AArch32 support with enhancements like a translation table library and performance improvements. It outlines the transition from a Contributor License Agreement to an inbound-outbound model for contributions and emphasizes a commitment to security vulnerability handling. Additionally, future plans include regular release cycles, removal of deprecated APIs, and the integration of new technologies to further support AArch32 architectures.
U Boot or Universal BootloaderSatpal ParmarThe document provides an overview of Das U-Boot, a universal boot loader used to load operating systems and applications into memory on embedded systems. It discusses U-Boot's features such as its command line interface, ability to load images from different sources, and support for various architectures and boards. It also covers compiling and configuring U-Boot, as well as its basic command set and image support capabilities.
LCU13: An Introduction to ARM Trusted FirmwareLinaroThe document provides an overview of the Arm Trusted Firmware for Armv8-A, detailing its role as a reference implementation of secure software and emphasizing the need for standardization across various platforms. It discusses challenges such as rewriting firmware, integrating multiple software components, and the importance of a standardized interface for power management and system operations. The document also highlights the collaborative nature of the project, which is intended to facilitate easier integration and foster community development through an open-source model.
Arm device tree and linux device driversHoucheng LinThis document discusses how the Linux kernel supports different ARM boards using a common source code base. It describes how device tree is used to describe hardware in a board-agnostic way. The kernel initializes machine-specific code via the device tree and initializes drivers by matching compatible strings. This allows a single kernel binary to support multiple boards by abstracting low-level hardware details into the device tree rather than the kernel source. The document also contrasts the ARM approach to the x86 approach, where BIOS abstraction and standardized buses allow one kernel to support most x86 hardware.
U-Boot - An universal bootloader Emertxe Information Technologies Pvt LtdThe document provides an overview of U-Boot, a universal bootloader used across various architectures, including its source code structure, building instructions, and essential commands. It outlines the components and organization of the U-Boot source tree, including configuration files and directory structures, as well as the responsibility and functionalities of U-Boot during the boot process. Additionally, key commands and environment variables utilized in U-Boot for system operations are detailed.
USB DriversAnil Kumar PugaliaThe document discusses USB drivers and provides an overview of USB host and gadget subsystems in Linux. It describes USB host and gadget device driver types, registration processes, data structures used, and key functions for interacting with USB controllers, the USB core, and endpoints. The document outlines views of the USB host and gadget subsystems and how drivers interface with lower-level USB controller drivers and higher-level user applications through the USB core.
C programming session8Keroles karam khalilBit-fields allow access to individual bits within registers or bytes. They define the number of bits allocated to each field within a structure. Pointers store the address of other variables in memory and can be used to access or modify these variables indirectly. Pointer arithmetic allows pointers to be incremented or decremented to access sequential memory locations represented by an array.
Q4.11: Porting Android to new PlatformsLinaroThis document provides an overview of porting Android to new platforms. It discusses the Android software stack, the Android Open Source Project structure, the AOSP code structure, common Android hardware abstraction layers, device configuration files, the AOSP build process, the Android boot process, and Android debugging tools.
A practical guide to buildrootEmertxe Information Technologies Pvt LtdBuildroot is a tool that generates embedded Linux systems by automating the configuration, compilation, and packaging of the system. It produces a root filesystem image ready to deploy on the target architecture. The build process compiles packages and a cross-compilation toolchain, then generates images containing the root filesystem, kernel, and other files needed by the target system. The output of Buildroot is organized into subdirectories containing the built images, toolchain, target and host files, and a staging area simulating the target filesystem.
Basic Linux Internalsmukul bhardwajThe document provides an introduction to Linux and device drivers. It discusses Linux directory structure, kernel components, kernel modules, character drivers, and registering drivers. Key topics include dynamically loading modules, major and minor numbers, private data, and communicating with hardware via I/O ports and memory mapping.
I2c driverspradeep_tewaniThe document provides a comprehensive overview of the I2C (Inter-Integrated Circuit) protocol, detailing its structure, conditions, and transactions. It covers the Linux I2C subsystem, including device driver registration, initialization, and APIs for accessing I2C devices like EEPROMs. Additionally, it emphasizes effective power management and the decoupling of device drivers from controller drivers for enhanced code reusability across platforms.
Embedded Linux on ARMEmertxe Information Technologies Pvt LtdThe document provides an extensive overview of embedded operating systems with a focus on Linux, detailing its history, architecture, and advantages for embedded development. It covers various aspects of embedded Linux, including hardware interfacing, boot processes, toolchains, and libraries relevant for building embedded systems. Additionally, it discusses development environments, cross-compilation tools, and specific methodologies for creating toolchains, along with a deep dive into popular tools like Buildroot and U-Boot used in this domain.
U-Boot presentation 2013Wave DigitechU-Boot is an open source boot loader that initializes hardware and loads operating systems. It supports many CPUs and boards. The boot process involves a pre-relocation phase where U-Boot initializes hardware and copies itself to RAM, and a post-relocation phase where it finishes hardware initialization and loads the kernel or operating system. Debugging can be done before and after relocation by setting breakpoints and examining memory.
LCU14 500 ARM Trusted FirmwareLinaroThe document outlines the capabilities and updates of ARM Trusted Firmware for 64-bit ARMv8-A systems. It discusses standardized firmware, reference implementations, and integration with trusted operating systems, while highlighting recent developments such as a complete PSCI implementation and the integration of OP-TEE. The presentation emphasizes the open-source nature of the firmware and invites contributions from developers.
Block DriversAnil Kumar PugaliaThe document discusses block drivers in Linux. It covers the need for the block layer, decoding block devices, writing a block driver, driver registration, block device operations, and request queues. Key aspects covered include registering a block device driver, implementing required functions like open and close, managing request queues and processing I/O requests to read from and write to the device. An example RAM disk driver is presented to demonstrate writing a basic block driver.
Embedded Operating System - LinuxEmertxe Information Technologies Pvt LtdThe document provides an extensive overview of embedded operating systems, specifically focusing on Linux. It discusses the evolution of open-source software, the architecture of embedded Linux systems, and the toolchain development process, detailing components such as compilers, libraries, and bootloaders. Additionally, it covers practical aspects of building embedded systems using tools like Buildroot and Yocto, along with examples from specific hardware platforms.
Processor박 경민프로세서에 대한 내용은 SW개발자가 깊이있게 호기심을 가지지 않을 수도 있습니다. 하지만 하드웨어 세상인 이곳도 사실은 논리적 해법으로 무장한 알고리즘의 세계라는 것을 김민장님의 책을 통해 알게되었습니다. 그래서 관련 책을 읽어보고 같이 공부하는 사람들에게 공유하기 위해 ppt 형태로 정리해보았습니다.
MCU(nanheekim)Nanhee Kim@Powersupply(YeungnamUniv.) @NanheeKim @nh9k
질문이 있으면 언제든지 연락주세요!
Please, feel free to contact me, if you have any questions!
github: https://github.com/nh9k
email: kimnanhee97@gmail.com
Linux Kernel Boot Process , SOSCON 2015, By Mario ChoMario ChoSamsung Open Source Conference 2015.
Linux Kernel Boot process
link: http://www.soscon.net/index.asp
Maker 오해와 진실유명환 FunFun YooMaker 와 Embedded Engineer 간의 차이에 대해 설명하고 Maker 로부터 나온 아이디어를 실제 제품화 하는데 필요한 임베디드 시스템 개발에서 성공을 결정짓는 설계를 위한 임베디드 플랫폼에 대해 소개하는 자료
Open source Embedded systemsH K YoonArduino, Raspberry Pi, Beagleblack and so on, all are signaling new tide of open source hardware.
In other words, open source is widening from software into hardware.
It will also affect the IOT, Internet of Things, as the major IOT frameworks are also open source based.
이기종 멀티코어 프로세서를 위한 프로그래밍 언어 및 영상처리 오픈소스Seunghwa Song오늘날 멀티코어 프로세서 세상은 이기종 컴퓨팅 환경이 대부분이라 해도 과언이 아니다.
병렬 컴퓨팅은 비약적인 속도 향상과 전력 소비 감소라는 장점이 있지만 사용하기가 까다롭고 특히 다양한 아키텍처로 이루어진 이기종 컴퓨팅 환경에서는 소프트웨어 개발이 더욱 어려워진다.
이 프리젠테이션에서는 이기종 컴퓨팅 환경에서의 병렬 처리를 위한 프로그래밍 언어를 소개하고 OpenCV와 같은 영상처리 라이브러리에서의 활용 예시를 보여준다
20170623 최신OS와 멀티플랫폼 개발 전략 with RAD StudioDevgearRAD Studio를 이용하면 윈도우10, 맥, 안드로이드, iOS 그리고 리눅스 서버용 애플리케이션을 단 하나의 코드베이스만으로 개발해 배포할 수 있습니다.
이 자료는 '최신OS와 멀티플랫폼 개발 전략'이라는 주제로 진행한 세미나의 발표자료입니다.
ᅦᅩᅮᅥᅵᅡᆨᄒơƳᆫᅩᅳᆫᄉƩᄉƳMario ChoKOSS CON 2016 Keynote로 발표한 자료입니다.
오픈 소스를 시작하려는 사람들을 위한 도움글입니다.
오픈 소스코드를 처음 공부하고 싶은 사람,
오픈 소스 커뮤니티에 기여하고 싶은 사람,
오픈 소스를 이해하고 싶은 사람들에게 추천합니다.
OpenCR tutorial_icra2017 chcbaram- OpenCR is a main controller board for TurtleBot3 that provides an open-source hardware and software platform for powering and operating sensors and actuators.
- It uses a high-performance STM32F746 microcontroller and supports Arduino IDE development. It has interfaces for communicating with Dynamixel motors, IMU sensors, and providing power output.
- The rosserial package converts ROS messages to a serial format for communication between OpenCR and ROS via USB. Examples are provided to demonstrate publishing IMU data and controlling TurtleBot3 using OpenCR and ROS.
2. ARM (Advanced RISC Machine)
ARM, originally Acorn RISC Machine, later Advanced RISC Machine, is
a family of reduced instruction set computing (RISC) architectures for
computer processors, configured for various environments. British
company ARM Holdings develops the architecture and licenses it to
other companies, who design their own products that implement one of
those architectures
출처
4. ARM Architecture 분류
Profile Architecture Instruction Set Processor
A-Profile ARMv7-A A32, T32 Cortex-A Series
R-Profile ARMv7-R A32, T32 Cortex-R Series
M-Profile
ARMv7-M T32 Cortex-M Series
ARMV6-M T32 Cortex-M0 Series
25. DSP ?
● DSP 장점
○ 연산모듈이 8개 (최대 1Clock에 8개의 명령어 실행 가능)
○ Very-Long-Instruction-Word (VLIW)
○ 데이터 버스 최대 256bit
○ 소프트 파이프라인을 통한 병렬 실행
26. DSP ?
● DSP 단점
○ 인터럽트 발생시 명령어가 길어서 연산속도에 영향을 많음
■ 최적화시 기본적으로 인터럽트가 Disable됨으로 인터럽트 사용시에는 최적화 옵션
사용시 주의가 필요함
■ ARM 프로세서와 듀얼로 많이 사용
○ 최적화에 따른 속도 편차가 심함
■ 연산모듈은 8개이나 명령어 종류에 따른 동시 실행이 안되는 경우가 있음
■ 컴파일러 옵션만으로는 최적화의 한계가 있음으로 TI에서 제공하는 최적화 라이브러리
사용 권장
○ 캐시에 대한 영향이 크다
■ 명령어도 길고 데이터도 크기때문에 캐시 메모리에서 실행시와 외부메모리에서 실행시
속도 편차가 큼
● DSP 장점
○ DMA 기능이 강력함
■ DMA 기능만으로도 일부 이미지 처리가 가능함
27. OpenCR (Open-source Control Module for ROS)
● STM32F746ZGT6 216Mhz, Cortex-M7, 1MB Flash, 320KB SRAM
● 아두이노 우노 핀 헤더
● 아두이노 IDE 개발환경 지원
● 다이나믹셀/올로/UART/CAN 인터페이스
● 배터리 입력 및 전원 출력(12V/5V/3.3V)
https://github.com/ROBOTIS-GIT/OpenCR/wiki
30. OpenCR (Open-source Control Module for ROS)
● 하드웨어 자료
○ https://github.com/ROBOTIS-GIT/OpenCR-Hardware
● 펌웨어 자료
○ https://github.com/ROBOTIS-GIT/OpenCR
https://github.com/ROBOTIS-GIT/OpenCR/wiki