1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/notrynohigh-BabyOS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
notrynohigh Отправлено 2 лет назад b91ba15

How to build Arm-2D Application Demos with CMSIS build tools

1 Overview

Details about the 2 demos:

  • Generic Benchmark:
    • Background with Texture paving (switching different mirroring modes every 4 second)
    • Foreground picture
    • Two constructed layers for alpha-blending and texture paving
    • Moving icons
    • Spinning busy wheel

Generic

  • watch_panel
    • A floating background layer (Using Tile Copy)
    • A clock_panel layer (Using Alpha Blending with Colour Keying)
    • A small gold gear (Rotation)
    • A big black gear (Rotation with Opacity)
    • A red pointer (Rotation)
    • A golden star (Rotation, scaling with Opacity)

Watchpanel

2 Install CMSIS Build tools

see : https://github.com/Open-CMSIS-Pack/cmsis-toolbox/blob/main/docs/installation.md

For now, please use version 1.4.0

2.1 For Linux

~ $ wget https://github.com/Open-CMSIS-Pack/cmsis-toolbox/releases/download/1.4.0/cmsis-toolbox-linux64.tar.gz

Decompress it in your workspace and setup environment variables as described in the link above

~ $ tar -zxvf cmsis-toolbox-linux64.tar.gz
~ $ export PATH=$PATH:<your_cmsis_tool_path>/cmsis-toolbox-linux64/bin/
~ $ export CMSIS_COMPILER_ROOT=<your_cmsis_tool_path>/cmsis-toolbox-linux64/etc/
~ $ export CMSIS_PACK_ROOT=<your_cmsis_pack_storage_path>cmsis-pack

In case not already done, load and setup Arm Compiler 6.18 or later

Then report the tool path in : <your_cmsis_tool_path>/cmsis-toolbox-linux64/etc/AC6.6.18.0.cmake

 ############### EDIT BELOW ###############
# Set base directory of toolchain
set(TOOLCHAIN_ROOT "<arm_compiler_6_path>/bin/")
set(EXT)

############ DO NOT EDIT BELOW ###########

Initialize the new pack repository

~ $ cpackget init https://www.keil.com/pack/index.pidx

2.2 For Windows

To be completed...

3 Build the project

3.1 Generate list of needed packs

From this Arm-2D_Demos folder, type the command:

./test $ csolution list packs -s arm2d.csolution.yml -m > required_packs.txt

3.2 Install the packs

./test $ cpackget add -f required_packs.txt

3.3 Convert csolution

Activate your preferred <compiler> (Arm Compiler 6 ac6, GNU Compiler gcc, or IAR Compiler iar) by creating a copy of the according .cdefault.yml file. Run csolution to generate the build configurations for all available settings or for your preferred <project> (generic, or smartwatch), <config> (Debug, or Release), and target device (VHT_M7, VHT_M33, VHT_M55, VHT-Corstone-300, or VHT-Corstone-310).

./test $ cp arm2d.<compiler>-cdefault.yml arm2d.cdefault.yml
./test $ csolution convert -s arm2d.csolution.yml [-c arm2d_<project>.<config>+<target>]

It will generate several project files:

  • For each project (here there are 2, one for the Generic Bench and one for the Watchpanel demo)
  • For each target : CS300, CS310 ...

Expected output:

./test $ find . -name *.cprj
arm2d_<project>.<config>+<target>-<compiler>/arm2d_<project>.<config>+<target>.cprj

3.4 Build the cprj file

To build the projects:

./test $ cbuild arm2d_<project>.<config>+<target>-<compiler>/arm2d_<project>.<config>+<target>.cprj

4 Run the applications

To be completed...

It should take a few minutes and display at the end:

./test $ <VHT executable> -q --simlimit 200 -f <model config> \
  -a arm2d_<project>.<config>+<target>-<compiler>/outdir/arm2d_<project>.<config>+<target>.axf
telnetterminal0: Listening for serial connection on port 5000
telnetterminal2: Listening for serial connection on port 5001
telnetterminal1: Listening for serial connection on port 5002
start GENERIC_BLENDING benchmark
finished in 112373486 cycles
Info: /OSCI/SystemC: Simulation stopped by user.

5 Using build.py for building and running

Using the build.py script offers a unified command line interface to run the above steps conveniently.

5.1 Prerequisites

The Python script requires a Python 3.8 or later installation. And the Python package python-matrix-runner which can be installed with the following command:

~ $ pip install -U python-matrix-runner

5.2 Build and run

./test $ ./build.py [--verbose] [-c <compiler>] [-d <target>] [-o <config>] [-p <project>] [build] [run]
  --verbose       Show detailed build output
  -c <compiler>   Select compiler(s) to be used: AC6, GCC, IAR
  -d <target>     Select target device(s) to be used: CM7, CM33, CM55, SSE300, SSE310
  -o <config>     Select build configuration(s) to be use: Debug, Release
  -p <project>    Select project(s) to be used: generic, smartwatch
  build           Execute the build stage
  run             Execute the run stage

The flags -c, -d, -o, and -p can be given multiple times. build.py will run all requested stages for all permutations of selected configurations in a row. Omitted settings default to all available.

6 Customizations

  • Applications are currently running 3 iterations, but this can be customized in the arm2d.csolution.yml file

    This generates respectively approx 2.7M and 4M instructions for the smartwatch and generic applications.

  define:
    - ITERATION_CNT=3
    - __ARM_2D_CFG_BENCHMARK_EXIT_WHEN_FINISH__

7 Appendix

7.1 Files

  • arm2d.csolution.yml Solution files describing all the solutions and the common settings
  • arm2d.ac6-cdefault.yml, arm2d.gcc-cdefault.yml, and arm2d.iar-cdefault.yml Compiler specific settings for Arm Compiler 6, GNU Compiler, and IAR Compiler, respectively.
  • arm2d_smartwtach.cproject.yml and arm2d_generic.cproject.yml The project describing the source files, components and layers
  • boot.clayer.yml Boot code for SC300, SC310 or normal M4, M7 etc ...

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/notrynohigh-BabyOS.git
git@gitlife.ru:oschina-mirror/notrynohigh-BabyOS.git
oschina-mirror
notrynohigh-BabyOS
notrynohigh-BabyOS
master