找回密码
 注册
关于网站域名变更的通知
查看: 756|回复: 3
打印 上一主题 下一主题

linux学习之路_or1200移植linux

[复制链接]
  • TA的每日心情

    2019-11-20 15:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2021-7-8 11:18 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    & K; R2 t; S, Q, y) W
    上节我们修改了适合自己开发板的 u-boot 代码,调试成功后我们就要固化我们的代码到 flash 上,我板子上的是 nor flash 在 u-boot 上的信息是:
    1 W: w% o& `$ m$ V+ G) O/ j6 f4 ?0 _; k3 {( j- U; Q% m4 s

    8 H& B' N; h9 Y
    " d* c% ~+ t/ j1 R6 G- i        这表明基本上flash是调通了,然后按照下载代码的流程将u-boot下载到SDRAM中先,然后再把SDRAM中u-boot程序代码复制到flash中,其中用到几个命令,flinfo,erase,cp,protect······
    * ^' }. X$ h2 I- L  k
    7 a" \; e3 @$ S: T        首先,我们将整片flash擦除干净,看看u-boot的erase命令如何用:6 H$ r! \; @" O/ W

    1 h1 ^' t. `6 u  Y! R0 ?( o3 t0 ^ 6 [9 n3 d' R3 O! A9 m! F

    , P! ^+ n' O2 p- x3 {; ]        直接地,erase all即可4 V5 ^1 f* A0 z; T+ B

    " _% ]5 }( b  a; c7 q9 f$ Q        然后,我们下载u-boot主程序时的地址是0x100开始执行的,看看0x100处的代码都是什么。
    2 v' Q! }: A  J/ U* G4 S" P- B/ w) Z7 ~

    6 |0 m3 ]1 A' w- c& Z: j
    ' h* U" W( E& q8 J! x( n; n& P. c        这些就是复位向量的二进制启动代码+ `2 M+ m( s1 d1 G

    7 @3 `3 k: q; K        好,接下去
    5 c& n+ g2 T9 L( K9 v7 V1 T; U
            我们要把flash芯片的写保护给去掉
    * a9 U0 f4 k2 L" \
    2 ^' ^  t7 Q/ y: X& v
    3 S: P' d# J7 h- L5 i7 b5 i% W. R9 s% x2 V8 |/ @8 J* K; }; N
            也是直接地,protect off all 即可
    4 D, \* T4 M4 k. x% a/ v
    : {, {. w- t) N. x1 z3 V* o        再然后,就是要把在SDRAM的u-boot主程序给copy到flash上面了,现在回到之前一节我们修改的u-boot代码,可以把关于flash有关的选项打开了。
    . b3 a3 c8 p: k) @6 T" _3 `/ E( e  D7 O% \* r2 V$ j$ _, A
            首先是异常向量的relocate
    3 k5 V$ w! E! w8 x) Q5 w: o. q
    : M% u: ?4 z8 i- E7 Y2 E* X/ Q8 Y
    ! \2 Z5 K1 g7 n' O4 R* c; q- o  W, }+ z% [. ?1 @, U, [
            然后就是u-boot环境变量的存放位置,由之前的SDRAM换成flash
    * i+ {- S* ]9 }; O" V% T4 m9 f2 J# \8 t
    ; X& q- {$ j: t/ e 9 l" O1 G  ^& v: H5 b
    6 ^5 P" N+ n. C, e: F$ @
            好,妥妥的,重新编译,下载到板子的SDRAM  v# m: d& f; v% q

    : w9 ]& z" I4 H% n1 a" K3 c& w2 t! B        然后,解除flash的写保护,protect off all) u$ X; m0 K, j; |

    . }3 Q. z( c' v( j# B7 _        接着,擦除flash的所有数据,erase all" R3 ~4 I5 `8 e7 Q
    % U# P$ ?4 Q" r* [  E( A% y
            再来,看看flash的信息,flinfo,得到应该是所有的sections都没有RO标志
    9 R' J$ C$ b$ @% O  ~1 q' l0 `6 t% `& z
            再再然后,就是复制SDRAM的代码到flash上面了,用的是cp命令,这里注意一下了,由于我的板子的nor flash是16bits的,所以使用cp命令的时候要以half-word的形式复制,如果flash的8bits的话就要以byte的形式复制,32bits就word的形式啦。
    0 ^* C4 Q" R& X! g
    # M/ }" v2 z! A3 V4 Y1 s        然后在编译u-boot的源码目录下打开u-boot.lds、System.map、u-boot.map, w3 n0 K. ~& c. B. G$ k4 z

    8 o! _. r& N, k  _0 L8 v % h* m! B3 P8 c- |( w+ O8 L
    % g$ _* {( o! l
            看看u-boot是如何存放段信息的,然后编译出来的u-boot.bin
    4 k' O; q  ~+ V1 H& F
    . `- v: Q# v% \5 p 0 |3 z2 ?# j, U8 a) L
    3 p0 ]8 h( O7 A7 g' J
            只有186K,按照我板子的芯片来说% a) ^3 V  Z3 G2 S" }* @. Z7 k
    9 L4 C3 k* }/ h% E; w/ o

    ' P: j- S2 z; e9 b- V1 E$ n
    8 ]9 H7 G! v# ]6 {; W, k) ?) d! ^        8M,64sections的话前4个sections存放足够了,然后第5个存放环境变量,这也是在编写/include/configs/******.h自身开发板时头文件定义的环境变量位置。0 O- _% H( H- E* p; V2 l
    ' X  f5 g+ ^0 A, x
    $ m- O. E; @1 u' F

    4 A1 ]4 Y$ v, F& x0 ~& z: A8 q        165行定义的是环境变量偏移量,170行就是用4个sections存放u-boot代码。' H% l) g7 b1 Z) O# V, E
    , b# h) D& f5 N
            OK,现在就用u-boot的cp命令copy从SDRAM到flash复制代码了,u-boot的cp命令如下:7 n6 W+ W% G% M- ]' Y5 D

    : n# F' T9 h6 \1 Q- \ ! H4 I; ^8 L: R* W

    ( Q8 r/ H: a# }& n        由于我的flash位宽是16bits,所以用cp.w每half-word地复制,然后是4个sections,起始地址0xf0000000,结束地址0xf007ffff,范围是0x7ffff. O; y# ?- }, c+ ^/ L6 z

    * W* D) u* `+ K5 f5 F, x9 H5 C! n . }: r9 E9 y1 S9 L
    0 ]" B; S( s: b  N1 I
            所以,命令是cp.w 0x0 0xf0000000 0x7ffff" ]6 l# y+ u5 q& T8 [

    ) r' Q- F" i. j 5 \1 I4 g' |+ d$ N4 t) @# c3 i. N
    ; q! d" H: n+ {
            完了之后reset开发板就可以看到u-boot启动信息了。6 U3 I6 j! V3 E& Y
    & [3 ], a! h8 D( {
            上次移植u-boot的后半段就码到这里了。改天把在u-boot起来之后将download linux image的步骤贴上来
  • TA的每日心情
    慵懒
    2020-6-13 15:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-7-8 13:30 | 只看该作者
    or1200移植linux

    该用户从未签到

    3#
    发表于 2021-7-8 13:54 | 只看该作者
    linux学习之路_or1200移植linux
  • TA的每日心情
    难过
    2019-11-20 15:02
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2021-7-8 13:55 | 只看该作者
    _or1200移植linux
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 06:21 , Processed in 0.140625 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表