本帖最后由 丿灬幸灬 于 2018-12-10 20:42 编辑
# x- B2 }% Q" c% S" r4 U' y1 f8 Y8 v& v
REM是一个类似Yocto的系统,主要面向微控制器
4 F6 k" K6 M5 n/ _% X+ i
4 W% w% Q/ y/ a" x& X. s描述7 y& e7 ?' S2 k4 R' r
REM基于ruby rake,为微控制器提供了一种非常灵活的项目设置方式。/ Z" [7 l: w/ U; T, f: @+ g
如果你知道Yocto,那么学习REM构建系统应该也很容易。+ k1 T) }' \$ ?2 ]* }: ~
它包含Yocto的一些特性,比如附加功能、内置补丁和下载软件包。 d! @( C! E; @' v7 |' X
项目只能通过定义来设置,设置描述了应该如何构建特定的组件。: P9 X1 y" S; g; a6 p9 ?1 i
你甚至可以用完全由github托管的资源来设置你的项目!
2 ?# }# J) K. ~1 ]9 a9 G5 [6 r
- E& d& r6 x t- g6 H9 \& p
REM通过重复使用现有的库和软件包,为不同μCs和体系结构提供了一种构建嵌入式项目的方法。
( O: k0 U" N* S所有的包都将由一个叫做“rem recipe”的描述文件来定义。9 K# f! U9 _ m, G. P
不再需要大量插件IDEs了!只有gcc和rake。
& f) g4 T) Q2 `) C: \* b8 T6 ~* Utest_project
* i8 P( E" C! w- A1 \; O
* w: n! v: H) O4 u% `5 v$ M
2 Y+ F- p" G- c# U8 B* j安装rake& A$ l& W/ x5 Y$ ]4 j9 Y$ j
- sudo apt-get install rake
复制代码
7 f0 C, B" } H0 d, i* R- r+ R& Z( Z1 n! B0 r
安装相关先决条件9 L3 I W6 k1 O1 r7 y
- sudo apt-get install gcc-arm-none-eabi gcc-avr avr-libc git subversion unzip
复制代码 ' h3 r6 i1 R! R5 K& M
1 V9 R% {1 \7 @% @ X下载REM系统
" \- t3 g; M% o) h8 D' o& m. ?6 T- <p>mkdir rem_build</p><p>cd rem_build</p>
复制代码 8 r! M" d) k7 T& D, G' m
, W( t/ T u' u! o0 K3 }git clone $ x& F( U3 f# D7 Y
& y3 B. [6 B1 X8 ^# W
准备测试案例
2 ?+ u( ]8 T5 ?; r/ DGitHub
B- p( D+ {# p W6 G! H' RGitHub
5 T, a- G& g# C8 u# l) t. M& ^ {: S0 _0 a3 G& m
准备PATH; `1 D+ j0 r q' @+ D) I
- <p>cd REM</p><p>export PATH=`pwd`:$PATH</p><p>cd ..</p>
复制代码
1 a3 c+ H! n# T7 n( L+ L
; \0 _. a( E, A9 V开始搭建5 ~& D9 u0 m% `1 f6 w, K* d
J; k% F( ^3 s# K
3 C8 A. u5 v" J, k+ w8 D! T
Atmega168
a# j) ]) b Z8 |9 S- rem ARCH=avr MACH=atmega168 PROJECT_FOLDER="rem_packages rem_test_project" -m -j4 package:test_project:image[hex]
复制代码 $ U1 [* P9 E" w1 q) t( ~6 J
stm32
6 \! ?" B, U+ F; v# l5 n% h! k- <p>rem ARCH=arm MACH=stm32f3 PROJECT_FOLDER="rem_packages rem_test_project" -m -j4 package:test_project:image[bin]</p><p></p>
复制代码
% r1 n+ S/ q+ I
% c+ _/ ?: l4 P" w8 Z) n' R该映像将最终进入rem_workdir/#{arch}_#{machine}/deploy它是二进制或十六进制映像,具体取决于您选择构建的内容。
- ^3 U3 h" f/ H1 k8 M" u“-m -j4”意味着最多同时构建4个线程。成功构建后,您可以使用适合您的微控制器的工具刷新图像。
9 B: C) J- M0 ?: D
. _2 P% r3 v( p" O, I, A+ |) [! h+ m1 B. P; j9 z
源代码见GitHub2 v7 K) V! u5 r+ I; n: w6 ]
) w- x9 p9 c$ o9 d0 T
|