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

linux学习之路_or1200移植linux

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    $ t! W' N( _/ t
    上节我们修改了适合自己开发板的 u-boot 代码,调试成功后我们就要固化我们的代码到 flash 上,我板子上的是 nor flash 在 u-boot 上的信息是:5 U6 s, g3 y/ u& b. w/ W1 w" h
    ( P8 `+ p" g/ w5 B

    " w, u  M5 H( ^- l1 @
    ' S$ m7 O' |4 M8 M) w8 t. P        这表明基本上flash是调通了,然后按照下载代码的流程将u-boot下载到SDRAM中先,然后再把SDRAM中u-boot程序代码复制到flash中,其中用到几个命令,flinfo,erase,cp,protect······: W0 t" [) S' I. J9 r% ]' \

    # n. _0 Y8 U" l* ?        首先,我们将整片flash擦除干净,看看u-boot的erase命令如何用:6 k5 e1 r1 ^, F' R5 y
    ' q# L* K  Y( _. [6 I' a5 Y
    2 ?8 ]  C: R( h/ i# J6 F# }
    2 m+ F" e# ]8 l6 g: Y- J7 y4 h
            直接地,erase all即可
    3 p% f; s( f3 I" [/ T! Y8 K) [
    " Z9 G9 D+ Z3 y# [0 k* ~4 S' K        然后,我们下载u-boot主程序时的地址是0x100开始执行的,看看0x100处的代码都是什么。+ b) B' d  A( w: q  i; @* [& @

    ( u) O1 D# v9 w- n5 I: V 8 Z% E5 `% A# x( X+ U) u
    8 V! {: R3 Y4 j' V  V' j! i' n+ r! ]
            这些就是复位向量的二进制启动代码& X# M' p9 u" T' @5 V! p/ x1 Q+ T& C& v
    ' S. L" i) W8 Y
            好,接下去' f$ I+ X$ Y  m5 q' F& ]

    5 T5 I# \* q" H0 d        我们要把flash芯片的写保护给去掉5 _! C. m7 z' F0 G, _1 A

    1 W+ @9 l+ p, B7 E* \# w 6 {8 W9 P' q4 @
    " v/ L, l  c* T* K3 R3 n; P; b
            也是直接地,protect off all 即可
    3 \0 k% K  s6 Y+ f. k1 w. P, J8 ]1 K7 y. L; B
            再然后,就是要把在SDRAM的u-boot主程序给copy到flash上面了,现在回到之前一节我们修改的u-boot代码,可以把关于flash有关的选项打开了。" v) R$ p  ?1 x0 T1 a7 k% _
    / l8 E9 J& V5 I$ m  F
            首先是异常向量的relocate
    ; O$ t" z0 W, d2 J' K. u* W( |& N5 d2 ~6 H
    6 c0 d7 U; |7 ^
    $ f5 N" ]! G6 _
            然后就是u-boot环境变量的存放位置,由之前的SDRAM换成flash' j; L0 H$ Q+ ^% H& U5 T8 L
    ; h% `8 W3 f  d: M! a
    ( h& w$ d; l: Y' R) N; Q

    ( V; z* B7 K2 I  E% ?/ p        好,妥妥的,重新编译,下载到板子的SDRAM9 i) ?; ~' x& y$ c' D

    ( h( L1 E4 D6 ^) [0 z% G5 b  \# T, `2 a        然后,解除flash的写保护,protect off all) ]  i  q- u4 P9 ^* _

    2 F7 e. A, ?0 C8 C        接着,擦除flash的所有数据,erase all' _# P# i2 `+ _8 V

    / B7 Q, |" E" U  b8 P        再来,看看flash的信息,flinfo,得到应该是所有的sections都没有RO标志+ J# t8 R+ ^% p+ l% {

    0 M& d; G, a* G$ h; z        再再然后,就是复制SDRAM的代码到flash上面了,用的是cp命令,这里注意一下了,由于我的板子的nor flash是16bits的,所以使用cp命令的时候要以half-word的形式复制,如果flash的8bits的话就要以byte的形式复制,32bits就word的形式啦。
    3 ^: n7 N3 c/ M5 u/ A) y9 F# p* `& X! x. V, f7 h
            然后在编译u-boot的源码目录下打开u-boot.lds、System.map、u-boot.map
    , d7 o: k9 A/ }  w  w
    , b, Q* {6 t( w% Y : z' r3 S% r" v" z! @

      T) f1 E$ d9 L4 K        看看u-boot是如何存放段信息的,然后编译出来的u-boot.bin# I( Z# S0 n9 ~2 u) _

    ! {: [' G7 G' @/ c: Q) |" g& E
    + Y, f  R2 y) P5 {
    0 f1 F' Z; t! {+ S3 {* c        只有186K,按照我板子的芯片来说
    ! v% c) |0 Y5 s2 K- B
    " J. z$ q/ [) u; Z$ N& o; ~   J) p& u* |) G9 ], W
    4 ?& B' r) \( n+ m) T- A
            8M,64sections的话前4个sections存放足够了,然后第5个存放环境变量,这也是在编写/include/configs/******.h自身开发板时头文件定义的环境变量位置。1 I) q9 m  v& S0 I0 j" Y/ N. ~& w

    " }/ k- Q( f+ j 1 ?: B1 n0 i  t, \$ T5 }
    $ [- p. X9 X. t5 Q  \! b7 [
            165行定义的是环境变量偏移量,170行就是用4个sections存放u-boot代码。5 m  D9 @0 N! @0 U: _

    " c! Z* p+ H) Q  ^9 }" Y% H4 C  T5 c        OK,现在就用u-boot的cp命令copy从SDRAM到flash复制代码了,u-boot的cp命令如下:
    9 K9 \- f' `5 b. s* _' T( _: `* u3 v0 ?( z1 }

    0 \. V1 Z9 J5 {0 c) M, A  G" v+ z
    * E4 T6 K& |! \; Z$ k; f) J        由于我的flash位宽是16bits,所以用cp.w每half-word地复制,然后是4个sections,起始地址0xf0000000,结束地址0xf007ffff,范围是0x7ffff
    - }8 P& K% _# P5 `# S6 n& f! M/ E: {1 h' P3 e

    4 n" K1 G3 W, V6 ]; d  `% S  t/ g: J/ H+ Z  c" J
            所以,命令是cp.w 0x0 0xf0000000 0x7ffff9 ]8 H) p0 Z4 g! o/ R

    3 F3 @  r4 h/ M: M
    ' }$ L5 i& R! l$ Z9 s5 o
    # l: S: t7 q# \* z! B) y6 e7 J4 B        完了之后reset开发板就可以看到u-boot启动信息了。  X. j5 j# s- k4 }& E, [# N

    4 I  k+ d; \- g7 \        上次移植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-6-22 01:10 , Processed in 0.093750 second(s), 26 queries , Gzip On.

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

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

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