period of time mainly to learn Start_kernel before the launch code, just a few hundred lines of compilation, but there are a lot of essence.Start_kernel before the code is divided into 3 parts to analyze, today first to learn the first dozens of lines!Kernel version number: 3.4.55In Arch/arm/kernel/head. S, as follows:. Arm __headentry (stext) THUMB (ADR R9, Bsym (1f)) @ Kernel is always entered in arm. Thumb (bx
.We look at the data at 0x76809.You can see that the A3 A8 AB FF is stored here. Where did the data come from? Or the old method, the next memory breakpoint.You can see whether the data is flowing from the R3 to the R8 specified address (0x76809). So where did R3 come from? Look up, 0xb3088, Lbu r3.0x0000 (R4), it seems to be read from the R4. Let's take a look at the next breakpoint in the 0xb3088.At the end of the breakpoint, the 0xb3088 becomes the illegal, which means the breakpoint succeeds
stackAddR2, SP, #0x10000 @64kMaxmovR3, R7 bl decompress_kernel bl cache_clean_flush bl Cache_offmovR0, #0@ must be zeromovR1, R7 @ Restore Architecture numbermovR2, R8 @ Restore atags pointer ARM (movPC, R4) @PagerKernelAfter the redirect is complete, first clear the BSS section, then all the initialization of the C language running environment to do, and then call Decompress_kernel decompression kernel, then jump to the non-compressed kernel boot phase.2. Assembly phase start-up processFor tin
worth buying in September: OPPO R9Reference Price: 2799 RMBRecommended reason: slim metal body, fingerprint recognition, VOOC Flash ChargingOPPO R9 is the new flagship mobile phone launched by OPPO in September. It focuses on high profile, new photos, and efficient flash charging. In terms of appearance, OPPO R9 continues the R series light and thin body design, using an integrated metal body and front 2.5
How many registers does the ARM processor contain? What registers are available in each mode? What are the functions of these registers? Let's learn about arm registers with these questions! I believe you will gain some benefits after reading this article.The ARM processor has 37 registers.It contains 31 General registers and 6 State registers.
========================================================== ========================================================== ========USR System Supervisor abort
(depending on your needs, you can also Install all), next-> next (longer time) -> complete;
3. Verify if Cygwin is successfully installed: Open Cygwin and enter the relevant commands such as gcc-v and make-v;
4. Download Android NDK from https://developer.android.com/tools/sdk/ndk/index.html, decompress it and save it to D: \ ProgramFiles \ android \ Android-sdk \ android-ndk-r9;
5. Open the Directory D: \ ProgramFiles \ cygwin64 \ home \ Spring. bas
Z11 Max is located in the Glory Note8 similar, the comprehensive hardware configuration is very balanced, main screen long endurance, and in the picture has a good performance. In addition, Nubia Z11 Max performs well in performance, and also supports fingerprint identification, support for fast charging, high color values and other features, overall performance is good, close to the experience of the giant screen flagship.
OPPO R9 Plus
, debug_reloc_end;2) Use R0, R7, R8 respectively to save the values of R0, R1, R2 (respectively, 0, Machinetype, atag pointers), R9 is the value of CPSR;3) R2 save CPSR, determine whether the last 2bit is 0, that is, whether the user mode, not the case is set to the SVC mode, and the R9 in the cpsr saved to SPSR;4) Put the final kernel file address in the R4, one way is through the pc0xf8000000 + text_offse
register (R15) while CPU is runningJlink Error:can not read register (XPSR) while CPU is runningJlink error:can Not read register 0 (R0) while CPU is runningJlink Error:can Not read Register 1 (R1) while CPU is runningJlink Error:can Not read Register 2 (R2) while CPU is runningJlink Error:can Not read Register 3 (R3) while CPU is runningJlink Error:can Not read Register 4 (R4) while CPU is runningJlink Error:can Not read Register 5 (R5) while CPU is runningJlink Error:can Not read register 6 (
Notebook graphics currently two major camps, respectively, Nvida graphics, AMD graphics card. In addition, Intel and AMD APU processors also have a built-in core graphics card, but the core graphics performance is relatively limited, can not be compared with the notebook independent graphics. Not many, the following table is the May 2015 latest notebook graphics ladder chart.
2015 Notebook Graphics Ladder chart (May 2015 edition)
NVIDIA graphics
AMD Graphics
A simple shell that collects multiple services using the Logback jar package, different services use different ports, different instances of the same service use the same port, service name and port mappings are stored in the App.list
App.list, Support # annotations
# app List
# Asset port at 570x
#asset-www 5701
#asset-api 5702
asset-m 5703
# Asset-admin 5704
# Peer port at 560x
P2p-core 5600
# MS ports at 580x
ms-www
5801 Ms-api 58
region to their eBGP peer through announcement or redistribution
1.4 route
1) Number of prefixes
① As the core layer provides intercommunication between regions, all the core layer routers must have a full network
② The Regional Border Router determines whether to accept the full network route according to the policy requirements.
Another more economical approach is that the core layer router issues BGP default routes to the border routers in various regions.
2) necessity of next-hop-self
When
-aliasing-fomit-frame-pointerEndif-Fstrict-aliasing indicates that the compiler does not direct different types of objects to the same address.-The fomit-frame-pointer option allows the compiler to save fp registers in function calls to improve efficiency.
3) directly optimize performance by replacing C language functions with AssemblyIfeq ($ (TARGET_ARCH), arm)PIXELFLINGER_SRC_FILES + = t32cb16blend. SEndif
4) perform special optimization on different ARM versionsIfeq ($ (TARGET_ARCH), arm)LOCA
184 bytes, and now the SP is 0x447ffe88.Bic sp, SP, #7/* 8-byte alignment for ABI compliance * /SP low three bits again clear 0.mov R9, SP/* GD is above SP * /Save the SP to R9, and now the value in R9 is also 0x447ffe88.mov r1, SPSave the SP to R1 again, and now the value in R1 is also 0x447ffe88.mov r0, #0Qing R0.CLR_GD:???? CMP r1, R2/* and not at end of GD *
The following describes in detail the various pitfalls that may occur when cocos2dx2.0.4 is compiled with NDKr9. Error 1: AndroidNDK: WARNING: E: cocos2d-xcocos2d-2.0-x-2.0.4cocos2dxAndroid.mk: cocos2dx_static: LOCAL_LDLIBSisalwaysignoredforstaticlibrariesGdbserver: [
The following describes in detail how to compile cocos2d x 2.0.4 with NDK r9. Error 1: Android NDK: WARNING: E: \ cocos2d-x \ cocos2d-2.0-x-2.0.4/cocos2dx/Android. mk: cocos2dx_static: L
-80000000 available)Completed the first phase of the start, mainly the assembly completed CP15 coprocessor Setup, completed the interrupt Mmucache shutdown board-level structure initialization (serial, clock, etc.) finally completed the GD structure assignment, DRAM initializationPhase IIBack to Arch/arm/lib/crt0. S (Create staging environment)R8 represents the starting position of the current GD structure bodyLR = hereR0 = r8 + 68R0 = gd->start_addr_spr2 = gd->relocaddrR1 = R8Back to Arch/arm/c
Lowlevel_init,But did not do anything, because BL1 has done initialization, and then jump to _main, set the SP, reserved space for the global variable GD,GD on the SP, the GD pointer is saved inside the R9, jump to board_init_f execution.2, execute arch\arm\lib\board.c inside of Board_init_f, empty GD, set GD inside variable Mon_len for uboot size, execute init_sequence inside initialization sequence function, initialize timer,Serial port, environmen
*/Bic sp, SP, #7 /*8-byte Alignment for ABI compliance*/mov R9, SP/*GD is above SP*/mov r0, #0BL Board_init_f mov sp, R9/*SP is GD ' s base address*/Bic sp, SP, #7 /*8-byte Alignment for ABI compliance*/Sub sp, #GENERATED_BD_INFO_SIZE/*allocate one BD above SP*/Bic sp, SP, #7 /*8-byte Alignment for ABI compliance*/mov r0,
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.