Documentation/xtensa/mmu.txt

Chinese translated version of Documentation/xtensa/mmu.txt


If you have any comment or update to the content, please contact the
original document maintainer directly.  However, if you have a problem
communicating in English you can also ask the Chinese maintainer for
help.  Contact the Chinese maintainer if this translation is outdated
or if there is a problem with the translation.


Chinese maintainer: 尹娇萍  1072986620@qq.com
---------------------------------------------------------------------
Documentation/xtensa/mmu.txt 的中文翻译


如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
译存在问题,请联系中文版维护者。


中文版维护者: 尹娇萍  1072986620@qq.com
中文版翻译者: 尹娇萍  1072986620@qq.com
中文版校译者: 尹娇萍  1072986620@qq.com


以下为正文


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


  MMUv3 initialization sequence.
  
  MMUv3初始化序列
  
  The code in the initialize_mmu macro sets up MMUv3 memory mapping
  identically to MMUv2 fixed memory mapping. Depending on
  CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX symbol this code is
  located in one of the following address ranges:
  
      0xF0000000..0xFFFFFFFF (will keep same address in MMU v2 layout;
                           typically ROM)
      0x00000000..0x07FFFFFF (system RAM; this code is actually linked
                           at 0xD0000000..0xD7FFFFFF [cached]
                           or 0xD8000000..0xDFFFFFFF [uncached];
                           in any case, initially runs elsewhere
                           than linked, so have to be careful)
  
  代码在initialize_mmu宏设置MMUv3内存映射相同到MMUv2固定存储器映射。
  根据CONFIG_INITIALIZE_XTENSA_MMU_INSIDE_VMLINUX符号代码位于以下地址范围:
  
      0xF0000000..0xFFFFFFFF (will keep same address in MMU v2 layout;
                           typically ROM)
      0x00000000..0x07FFFFFF (system RAM; this code is actually linked
                           at 0xD0000000..0xD7FFFFFF [cached]
                           or 0xD8000000..0xDFFFFFFF [uncached];
                           in any case, initially runs elsewhere
                           than linked, so have to be careful)
  
  The code has the following assumptions:
    This code fragment is run only on an MMU v3.
    TLBs are in their reset state.
    ITLBCFG and DTLBCFG are zero (reset state).
    RASID is 0x04030201 (reset state).
    PS.RING is zero (reset state).
    LITBASE is zero (reset state, PC-relative literals); required to be PIC.

  代码有以下假设:
    此代码片段只在一个MMU V3运行。
    TLB的是在它们的复位状态。
    ITLBCFG和DTLBCFG是零(复位状态)。
    RASID是0x04030201(复位状态)。
    PS.RING是零(复位状态)。
    LITBASE是零(复位状态,与PC相关的文字); PIC。
  
  TLB setup proceeds along the following steps.
  
    Legend:
      VA = virtual address (two upper nibbles of it);
      PA = physical address (two upper nibbles of it);
      pc = physical range that contains this code;
 
  TLB设置沿着以下步骤。
  
    Legend:
      VA = virtual address (two upper nibbles of it);
      PA = physical address (two upper nibbles of it);
      pc = physical range that contains this code;
  
  
  After step 2, we jump to virtual address in 0x40000000..0x5fffffff
  that corresponds to next instruction to execute in this code.
  After step 4, we jump to intended (linked) address of this code.
  
      Step 0     Step1     Step 2     Step3     Step 4     Step5
   ============  =====  ============  =====  ============  =====
     VA      PA     PA    VA      PA     PA    VA      PA     PA
   ------    --     --  ------    --     --  ------    --     --
   E0..FF -> E0  -> E0  E0..FF -> E0         F0..FF -> F0  -> F0
   C0..DF -> C0  -> C0  C0..DF -> C0         E0..EF -> F0  -> F0
   A0..BF -> A0  -> A0  A0..BF -> A0         D8..DF -> 00  -> 00
   80..9F -> 80  -> 80  80..9F -> 80         D0..D7 -> 00  -> 00
   60..7F -> 60  -> 60  60..7F -> 60
   40..5F -> 40         40..5F -> pc  -> pc  40..5F -> pc
   20..3F -> 20  -> 20  20..3F -> 20
   00..1F -> 00  -> 00  00..1F -> 00
   
  步骤2之后,我们跳转到虚拟地址为0x40000000。0x5fffffff对应
  这段代码中的下一个执行指令。第四步后,我们打算跳转到这段代码的(链接)地址。
将QT += core QT -= gui CONFIG += c++11 TARGET = UavRectifyLoadLIb CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS win32{ CONFIG(debug, debug|release){ DESTDIR = $$PWD/../../../../RasterManager/bin/Debug } else{ DESTDIR = $$PWD/../../../../RasterManager/bin/release } INCLUDEPATH += $$PWD/../../../include/gdal1101 DEPENDPATH += $$PWD/../../../include/gdal1101 } else{ CONFIG(debug, debug|release){ DESTDIR = $$PWD/../../../product/release32 } else{ DESTDIR = $$PWD/../../../product/release32 } } # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 unix:!macx: LIBS += -L$$PWD/../../../product/release32/ -lUAVAutoRectifyMt -lUAVAutoRectify -lUAVAutoRectifyFi INCLUDEPATH += $$PWD/../include DEPENDPATH += $$PWD/../include unix:!macx: LIBS += -L$$PWD/../../../lib/opencvf249/ -lopencv_core unix:!macx: LIBS += -L$$PWD/../../../lib/opencvf249/ -lopencv_highgui unix:!macx: LIBS += -L$$PWD/../../../lib/opencvf249/ -lopencv_imgproc INCLUDEPATH += $$PWD/../../../lib/opencvf249 DEPENDPATH += $$PWD/../../../lib/opencvf249 unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/local/lib/ -lopencv_core #unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/local/lib/ -lopencv_highgui unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/local/lib/ -lopencv_imgproc unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/local/lib/ -lopencv_features2d unix:!macx: LIBS += -L$$PWD/../../../../../../../usr/local/lib/ -lopencv_imgcodecs INCLUDEPATH += $$PWD/../../../../../../../usr/local/include DEPENDPATH += $$PWD/../../../../../../../usr/local/include unix:!macx: LIBS += -L$$PWD/../../../product/release32/ -lDEMDriver unix:!macx: LIBS += -L$$PWD/../../../product/release32/ -lProjection unix:!macx: LIBS += -L$$PWD/../../../product/release32/ -lIImage_gC QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO 转为cmake格式
06-11
根据给出的代码,可以将其转化为以下CMake代码: ``` cmake_minimum_required(VERSION 3.5) project(UavRectifyLoadLIb LANGUAGES CXX) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_AUTOUIC ON) find_package(Qt5Core REQUIRED) add_executable(UavRectifyLoadLIb main.cpp ) target_link_libraries(UavRectifyLoadLIb PRIVATE Qt5::Core UAVAutoRectifyMt UAVAutoRectify UAVAutoRectifyFi DEMDriver Projection IImage_gC opencv_core opencv_highgui opencv_imgproc opencv_features2d opencv_imgcodecs ) target_include_directories(UavRectifyLoadLIb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../include/gdal1101 ${CMAKE_CURRENT_SOURCE_DIR}/../include ${CMAKE_CURRENT_SOURCE_DIR}/../../../lib/opencvf249 ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../../usr/local/include ) if(UNIX AND NOT APPLE) target_link_directories(UavRectifyLoadLIb PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../../../product/release32 ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../../usr/local/lib ) endif() if(WIN32) if(CMAKE_BUILD_TYPE STREQUAL "Debug") set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../../../RasterManager/bin/Debug ) else() set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../../../RasterManager/bin/release ) endif() else() if(CMAKE_BUILD_TYPE STREQUAL "Debug") set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/../../../product/release32 ) else() set_target_properties(UavRectifyLoadLIb PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/../../../product/release32 ) endif() endif() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值