离线
BROM的责任就是依次寻找合法的引导程序, TF -> SPI NOR -> SPI NAND -> BROM USB
找到之后就加载到内部 32K SRAM
然后把PC指针指向 SRAM
因为iram大小的限制,所以需要多级跳转
如果足够大,就跟单片机一样了,直接跑了
SRAM的造价应该是很昂贵的
速度也最快
IRAM里面可以放向量表,这样也会比DDR 更快一些
离线
BROM的责任就是依次寻找合法的引导程序, TF -> SPI NOR -> SPI NAND -> BROM USB
找到之后就加载到内部 32K SRAM
然后把PC指针指向 SRAM因为iram大小的限制,所以需要多级跳转
如果足够大,就跟单片机一样了,直接跑了
SRAM的造价应该是很昂贵的
速度也最快
IRAM里面可以放向量表,这样也会比DDR 更快一些
还可以这么玩?
一部分放IRAM, 一部分放 DDR ?
离线
那这个,用代码怎么表示?
离线
那这个,用代码怎么表示?
都可以的,链接脚本很强大,放变量,代码,都行
因为要跳转,所以前32k代码,编写时,需要位置无关
代码,本质就是机器码,copy到iram中,然后pc指过去,就可以了
这段代码,要求位置无关
用相对寻址指令
这段空间,一般做向量表,或者mmu映射表
大部分系统,很少用这块区域
一段小代码,在hacker世界,他们叫payload
利用某个漏洞,植入payload,然后执行payload
这样就能越权了
离线
是说 IRAM ?
离线
daydayup 说:是说 IRAM ?
随便哪里,都可以
ddr里也行
有操作系统后,地址都是虚拟的
只要能执行,就行
修改中断跳转hack ?
离线
BROM的责任就是依次寻找合法的引导程序, TF -> SPI NOR -> SPI NAND -> BROM USB
找到之后就加载到内部 32K SRAM
然后把PC指针指向 SRAM因为iram大小的限制,所以需要多级跳转
如果足够大,就跟单片机一样了,直接跑了
SRAM的造价应该是很昂贵的
速度也最快
IRAM里面可以放向量表,这样也会比DDR 更快一些
晕哥,f1c100s有没有这个iram,越发看不明白了,boot0这个代码是不是就是BROM
参考手册Memory Mapping章节:
Module Address (It is for Cluster CPU) Size (byte)
BROM 0x0000 0000---0x0000 7FFF 32K
SRAM A 0x0001 0000---0x0001 9FFF 40K
是不是SRAM A 指代iram,那应该是有40k啊
离线
晕哥,uboot-sunxi-with-spl这个文件是不是包含两部分内容,文件前面32k是spl后面是uboot?
离线
f1c100s有没有这个iram,越发看不明白了,boot0这个代码是不是就是BROM
BROM是固化在芯片内部的, boot0 是 处于spi flash/TF卡/eMMC 最前面的程序,一般用来初始化必要的硬件如DRAM等。
晕哥,uboot-sunxi-with-spl这个文件是不是包含两部分内容,文件前面32k是spl后面是uboot?
对,前面32k就是传说中的boot0,
全志的SDK里面都叫boot0, 全志的SDK里面boot0是不开源的。
离线