娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

電路

這里寫圖片描述

根據電路圖,有4個LED燈,引腳分別是GPM4_0~ GPM4_3。且當IO引腳為高電平時,LED燈滅,當IO引腳為低電平時LED亮。


啟動流程

Exynos4412屬于12年出的SOC芯片,屬于比較新的芯片,armv7架構。相較于前些年的arm9芯片,在啟動上的功能更多一些,當然啟動校驗也更復雜一些。


BL0(brom)是在芯片內部的代碼,在芯片出廠時已經固化。BL0進行簡單的初始化之后,會根據配置檢測對應介質上的代碼,如果校驗成功就能跳到代碼執行(BL1)。


如果直接使用官方提供的BL1,那么就可以省去制作校驗和的步驟。但是BL2就要遵循官方的規定,需要小于14KB。


這里我們直接使用官方的BL1,將裸機程序編譯為BL2。


IROM CODE(BROM、BL0)流程圖

這里寫圖片描述

BL1流程圖

這里寫圖片描述

官方提供了BL1的固件 (E4412_N.bl1.bin)。BL1工作是做一些初始化并將BL2拷貝到片內內存運行。


IROM代碼已經定死BL1大小只能是8K的代碼,BL1可以使用官方提供的,也可以直接寫。在官方的描述中(如下英文描述),BL2的大小可以用戶定義,但是,如果使用了官方的BL1的話,那也就只能按人家說的做,則BL2只能是(14K-4B),后面四個字節用來做校驗。通過mkbl2工具(主要是截取代碼和計算校驗)來制作。


但是如果你不使用官方的BL1的話,也可以自己寫,有很多的靈活性。BL2的長度就可以自己定,或者沒有BL2,直接將uboot拷貝到內存運行了,只要你的BL1不超過8K并能完成你要做的工作就可以,不一定非要用官方的BL1。


但是使用官方的BL1有很多好處,比如制作BL1加頭,加校驗,加簽名等工作就不要做了。所以一般都會使用官方的BL1。


BL2流程圖

這里寫圖片描述
BL2運行在芯片內部的sram上,可以實現一些休眠喚醒的功能。BL2會去完成加載OS的功能(uboot、linux kernle、atf、optee)。這里我們直接把裸機程序替換成BL2。


程序

獲取代碼:


git clone https://github.com/TinyWindzz/tiny4412_asm

(led_asm目錄下)


led.S:


.text                                                                           

.globl _start                                                                   


_start:                                                                         

        ldr     r0, =0x110002E0         //GPM4CON Register                         

        ldr     r1, =0x00001111         //Configurate GPM4_0GPM4_1GPM4_2GPM4_3 output

        str     r1, [r0]                                                        


        mov     r1, #0xF0               //light All led on                      

        ldr     r0, =0x110002E4         //GPM4DAT Register                         

        str     r1, [r0]                                                           


halt_loop:                                                                      

        b halt_loop  


led.lds:


SECTIONS {                                                                      

. = 0x02023400;                                                                 

.text : { *(.text) }                                                            

.rodata ALIGN(4) : {*(.rodata*)}                                                

.data ALIGN(4) : { *(.data*) }                                                  

.bss ALIGN(4) : { *(.bss) *(COMMON) }                                           

}  


這里寫圖片描述

為什么鏈接地址是0x02023400,這個可以在irom手冊上看到。

官方提供的BL1會默認將BL2加載到這個位置。


Makefile:


CC=arm-tiny4412-linux-gnueabi-


led.bin : led.S

    $(CC)gcc -c -o led.o led.S

    $(CC)ld -Tled.lds -N led.o -o led.elf

    $(CC)objcopy -O binary -S led.elf led.bin

    $(CC)objdump -D -m arm led.elf > led.dis

clean:

    rm -f *.dis *.bin *.elf *.o


Makefile中指定編譯器為arm-tiny4412-linux-gnueabi-gcc,所以確保已裝上。


arm-tiny4412-linux-gnueabi-gcc


燒寫方式

將SD卡插入電腦,燒寫完畢后插回開發板


root@ubuntu:/work/tiny4412/asm/led_asm# make

arm-tiny4412-linux-gnueabi-gcc -c -o led.o led.S

arm-tiny4412-linux-gnueabi-ld -Tled.lds -N led.o -o led.elf

arm-tiny4412-linux-gnueabi-objcopy -O binary -S led.elf led.bin

arm-tiny4412-linux-gnueabi-objdump -D -m arm led.elf > led.dis

root@ubuntu:/work/tiny4412/asm/led_asm# cd sd_fuse/tiny4412/

root@ubuntu:/work/tiny4412/asm/led_asm/sd_fuse/tiny4412# ./sd_fusing.sh /dev/sdb ../../led.bin 

/dev/sdb reader is identified.

---------------------------------------

BL1 fusing

16+0 records in

16+0 records out

8192 bytes (8.2 kB, 8.0 KiB) copied, 0.0738208 s, 111 kB/s

---------------------------------------

BL2 fusing

28+0 records in

28+0 records out

14336 bytes (14 kB, 14 KiB) copied, 0.182688 s, 78.5 kB/s

---------------------------------------

u-boot fusing

0+1 records in

0+1 records out

40 bytes copied, 0.0101201 s, 4.0 kB/s

---------------------------------------

TrustZone S/W fusing

184+0 records in

184+0 records out

94208 bytes (94 kB, 92 KiB) copied, 1.45966 s, 64.5 kB/s

---------------------------------------

U-boot image is fused successfully.

Eject SD card and insert it again.

root@ubuntu:/work/tiny4412/asm/led_asm/sd_fuse/tiny4412# 


./sd_fusing.sh /dev/sdb ../../led.bin 這條指令中/dev/sdb根據實際情況調整,

可以通過fdisk -l查看sd具體名稱。


效果:   

這里寫圖片描述

sd_fusing.sh中核心的就是下面幾條燒寫指令,當然裸機程序點燈這里只需要

E4412_N.bl1.bin和bl2.bin就行。


dd iflag=dsync oflag=dsync if=./E4412_N.bl1.bin of=$1 

dd iflag=dsync oflag=dsync if=./bl2.bin of=$1 seek=$bl2_position

dd iflag=dsync oflag=dsync if=${E4412_UBOOT} of=$1 seek=$uboot_position

dd iflag=dsync oflag=dsync if=./E4412_tzsw.bin of=$1 seek=$tzsw_position


參考文章:

Tiny4412匯編流水燈代碼,Tiny4412裸機LED操作

《Android_Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf》

關鍵字:TINY4412  裸機程序  點燈 引用地址:TINY4412 裸機程序之點燈

上一篇:Tiny4412裸機程序之代碼重定位初體驗
下一篇:TINY4412裸機程序,按鍵檢測

推薦閱讀

? ? ? ? NVIDIA創建的AI系統“GAN”可以通過對圖像數據庫的學習,來隨機生成超逼真人臉照片而一炮走紅,經過長時間的研發與晚上目前這套系統已經有了極大的進步。除了可以自主學習之外,生成的內容逼真,讓人難以分辨。  這次的有關于“GAN”的最新研究論文已經在Arxiv論壇上發表。就連推舉為人工智能領域頂級專家的“Ian Goodfellow”也對此表...
引言 LTM4626 和 LTM4638 是高效率、降壓型 μModule? 穩壓器,能夠采用 3.1 V 至 20 V 的輸入電壓分別提供 12 A 和 15 A 的連續輸出電流。這兩款器件采用了一種創新型 3D 封裝結構,稱為內置組件級的封裝 (CoP),在該結構中電感位于 μModule 器件頂部。電感相對較高的質量、加上與空氣直接接觸或附接至傳統的散熱器,可有效地將熱量從內部 MOSFET ...
近日,據浙江證監局顯示,浙江臻鐳科技股份有限公司(以下簡稱“臻鐳科技”)擬首次公開發行人民幣普通股(A 股)并上市,目前已與中信證券簽署輔導協議并申請輔導備案。據悉,中信證券將結合臻鐳科技的實際情況,擬于2020年11月至2021年3月進行輔導,委派包括趙亮、馬崢、鞠宏程、金澤、儲成杰、韓非可六位正式員工組成輔導工作小組,并由馬崢擔任輔導工...
  什么是集成電路測試儀  集成電路測試儀是對集成電路進行測試的專用儀器設備。集成電路測試是保證集成電路性能、質量的關鍵手段之一。集成電路測試技術是發展集成電路產業的三大支撐技術之一,因此,集成電路測試儀作為一個測試門類受到很多國家的高度重視。40年來,隨著集成電路發展到第四代,集成電路測試儀也從最初測試小規模集成電路發展到測試中...

史海拾趣

問答坊 | AI 解惑

電池科普知識

一.什么是電池? 化學電源俗稱為電池。是一種將物質的化學變化所釋放出的能量直接轉化為低壓直流電的裝置。 二.電池的工作原理 電池在放電過程中,負極發生氧化反應,向外提供電子;在正極上進行還原反應,從外電路接受電子,電子從負極流到正極 ...…

查看全部問答∨

電源故障預測

I. 電子系統的故障預測技術定義 故障是產品不能完成規定功能或性能退化導致不能滿足規定要求的狀態。電子系統的故障預測技術是以當前電子系統的使用狀態為起點,對將來可能出現的故障進行預測,當預測到故障時及時向用戶提出警告,以便用戶能夠采 ...…

查看全部問答∨

常用器件選型表09.05版 轉載

嗯,轉載的,版權歸原作者所有哈…

查看全部問答∨

遇到了一個奇怪的問題

發現當我下載程序時,我的fpga跑到了prom前面,導致斷電再開電的時候,prom的程序加載不進去,怎么把它弄回去?. …

查看全部問答∨

CE下,使用端口操作GPS模塊,耗電相關

在CE下,使用Com口操作GPS,是否打開GPS端口時,GPS模塊為運行狀態,耗電較大。如果關閉端口,則GPS模塊為停止狀態,不會耗電。…

查看全部問答∨

求職疑惑:高校與公司如何選擇?

本人是不知名學校的小碩,今年畢業,嵌入式軟件,現在可以去一家職業院校當老師,還有另一家公司選擇,公司待遇不錯,進去就有7.5k,嵌入式行業與本人專業對口,主要是做圖形圖像解碼芯片!各位大俠,現在是簽約的最后時刻,不簽不行了!我該如何選 ...…

查看全部問答∨

ARM實現網絡通信

現在我想設計一個網絡,主要使用ARM9200+RTL8305,實現一對多路網絡通信功能,ARM9的MII接8305一個端口后其它5個端口通過網線接到5個AC101+ARM9上,把它們這6個ARM配置成同一個網段的IP可以實現數據交互嗎?謝謝大家了。我現在有些糊度了,感覺好 ...…

查看全部問答∨

Timer事件不響應的問題

EVC編的程序,在PDA上運行。API編程,沒有用MFC 窗體的Timer事件不響應,可我把窗體隱藏后,卻響應了。可能是什么原因呢?會不會是某些地方阻住了? 設置定時器:SetTimer(pass,1,1000 ,NULL);//pass是窗體的句柄 這個窗體句柄我檢查過,沒問題 ...…

查看全部問答∨

上海豪宙公司招聘,懂AVR軟硬件開發,懂arm為核心芯片的外圍電路的調試

上海豪宙公司招聘,懂AVR軟硬件開發,懂arm為核心芯片的外圍電路的調試 主要側重產品的測試。 有意者聯系021-65452099 周小姐 地址長陽路8號25樓A座 E-mail: ann@how-zone.com> …

查看全部問答∨

【設計工具】Xilinx ISE的流程、命令和文件優先級

綜合優化:XST:全稱為XilinxSynthesis Technology,這是Xilinx ISE里面附帶的一個免費的綜合工具。Synplify生成文件:netlist網表文件 標準edif文件*.edf;    綜合約束傳遞文件*.ncf;            &n ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 奉节县| 嘉黎县| 昭平县| 太白县| 博罗县| 双鸭山市| 垫江县| 突泉县| 长武县| 平泉县| 海丰县| 嵩明县| 宜宾县| 土默特左旗| 广昌县| 潼关县| 娄烦县| 金湖县| 雅江县| 葵青区| 青田县| 都江堰市| 视频| 三门县| 东至县| 沙坪坝区| 崇信县| 柏乡县| 泰州市| 邹城市| 平谷区| 天水市| 明星| 大同县| 麦盖提县| 郧西县| 京山县| 河源市| 象山县| 行唐县| 磐石市|