[Встроенная разработка] ARM отключает MMU (система хранения | I/D-кэш | MMU | регистр CP15 | регистр управления C1 | регистр C7 | выключает MMU)
[Встроенная разработка] ARM отключает MMU (система хранения | I/D-кэш | MMU | регистр CP15 | регистр управления C1 | регистр C7 | выключает MMU)

Загрузите справочные статьи и сопутствующие материалы для этого блога. :

1. Концепция MMU

1. ARM-хранилище

(1) Система хранения ARM


ARM хранилище система Введение : ARM Процессоры делятся на три уровня: регистры процессора -> TCM хранилищеустройство -> вспомогательное устройство, сверху вниз, Скорость обработки постепенно замедляется, Но пространство дахранилище последовательно увеличивается ;

  • 1.процессорвнутреннийзарегистрироваться : процессорвнутреннийиз Универсальныйзарегистрироваться и слово статусазарегистрироваться ждать, Этизарегистрироваться Скорость доступа высокая, но количество небольшое. ;
  • 2.TCM жесткая муфта хранилища : Cache,Память ждатьхранилищеустройство;
  • 3. Вспомогательное устройство : Совет по развитиюначальствоиз NandFlash достигатьприезжать 1G Размер по количеству, SD Карта ждатьхранилище оборудование; Этот тип устройства Скорость доступа самая медленная, но количество самое большое;

(2) Происхождение кэша


Cache источник : Cache используется для решения процессор и хранилищеустройство между Проблема неэффективной передачи данных;

  • 1. Ситуация без кэша: процессорпрямойдоступхозяинхранилищеустройство, Оба междуиз Огромная разница в скорости обработки, Эффективность доступа процессора будет значительно снижена из-за ;
  • 2. С кешем: Cache Кусочек В процессор и хозяинхранилищеустройство между, Cache середина хранит несколько копий хост-хранилища,когдапроцессорнуждатьсячитать Укажите содержаниечас, Первыйприезжать Cache середина Перейти проверить, Если не, Сразу прямо изхозяинхранилищеустройствосерединачитать,в то же время Воляданныетакжечитатьприезжать Cache середина,когдапроцессорв следующий разсуществоватьчитать Долженданныеизкогда, Сразу Можетпрямо из Cache серединаполучать Долженданные;

(3) Определение кэша


Cache определение :

  • 1.определение : Cache да небольшая емкость высокоскоростной из хранилищеустройство, его скорость ниже, чем процессор выше,чем хозяинхранилищеустройство;
  • 2. Прозрачность для внешнего мира: Cache функция прозрачна для внешнего мира, существовать Cache середина, Какие данные сохранить, Какие данные подлежат действию, решает система;
  • 3. Разделение функций кэша: Разделён на две категории, ① Кэш инструкций I-Cache, используемый для хранения инструкций.; ② Кэш данных D-Cache, используемый для хранения данных. ;
  • 4.Иллюстрация: Изображение ниже да S3C6410X.pdf чипруководство 1.2 глава серединаиз I-Cache и D-Cache из Описание, Часть красной рамки на картинке ниже, I/D-Cache Да 16KB размер;

2. MMU

(1) Виртуальный адрес и физический адрес


Адрес виртуальной машины и физический адрес :

  • 1.виртуальный адресконцепция : программасерединаделатьиспользоватьизадрес да виртуальный адрес ;
  • 2.физический адресконцепция : хранилище Устройство Физикахранилище единица фактическогофизического адрес ;
  • 3.виртуальный адресиз Преимущества : ① Используйте программу Можетделать, чтобы использовать больше места., ② разрешать разногласияпрограммамеждуизадрес Конфликтные вопросы; Если нет виртуального адрес,программасерединапрямойделатьиспользоватьфизический адрес,Такпрограммадолженделатьиспользоватьобозначениеизфизический адрес, Возникнут конфликты; В то же время пространство для программсерединаделать и изхранилище также ограничено. вверх; Поэтому программасередина напрямую занимается реальными изфизическими адрес да это невозможно из ;
  • 4.MMU эффект : MMU Может выполнить физический адрес приезжать виртуальный адрес междупреобразование ;

(2) Функция MMU и причины отключения


MMU эффект : выполнить физический адрес приезжать виртуальный адрес преобразование ;

  • 1.MMU и Cache из Расположение : существовать ① ARM 11 До, процессор -> Cache -> MMU -> хранилищеустройство, ② ARM 11 и ARM 11 после, процессор -> MMU -> Cache -> хранилищеустройство,доступ Cache должен пройти MMU Волявиртуальный адрессопоставлено сфизический адресназаддоступ;
  • 2.закрытие MMU причина : делатьиспользовать MMU и Cache Необходимо пройти ряд конфигураций, Только тогда вы сможете использовать его правильно, существовать ARM инициализация час, Еще не настроено MMU и Cache, Если не закрыть произойдет ошибка;

2. Закройте MMU и кеш.

Справочное руководство : Ядро ARM руководство Arm1176jzfs.pdf ( на основе 6410 Совет по развитию ARM 11 )

1. Знакомство со способом отключения MMU и Cache

(1) Метод закрытия


закрытие MMU и Cache Введение :

  • 1.закрытие Cache и MMU шаг : ① настраивать ICache и DCache Неверный; ② закрытие ICache и DCache чтобы и MMU ;
  • 2. Метод работы: MMU и Cache закрытиедействовать Дапроходить CP15 ассоциацияпроцессор контрольиз, ① C1 контрользарегистрироваться контроль Cache и MMU включать / закрытие , ② C7 зарегистрироваться контроль Cache изиз Неверный действовать ;

(2) Регистр управления C1 (открытие и закрытие кэша)


C1 контрользарегистрироваться Введение :

  • 1.документ Расположение : Arm1176jzfs.pdf Нет. 3.2.7 глава c1, Control Register ;
  • 2.I-Cache ( Instruction Cache ) контроль Кусочек : Нет. 12 Кусочек контроль I-Cache извключать / закрытие,настраиватьстановиться 0 Прямо сейчас I-Cache Неверный,настраиватьстановиться 1 Прямо сейчас I-Cache Вступить в силу;
  • 3.D-Cache ( Data Cache ) контроль Кусочек : Нет. 2 Кусочек контроль D-Cache извключать / закрытие,настраиватьстановиться 0 Прямо сейчас I-Cache Неверный,настраиватьстановиться 1 Прямо сейчас I-Cache Вступить в силу;
  • 4.MMU контроль Кусочек : Нет. 0 Кусочек контроль MMU Вступить в силу / Неверный,настраиватьстановиться 0 Прямо сейчас MMU Неверный,настраиватьстановиться 1 Прямо сейчас MMU Вступить в силу;

(3) Регистр операции кэша C7 (отключить кэш)


C7 зарегистрироваться Введение :

  • 1.документ Расположение : Arm1176jzfs.pdf Нет. 3.2.22 глава c7, Cache operations ;
  • 2.сделать Cache Неверный изинструкция : MCR p15, 0, <Rd>, c7, c7, 0, Да документ серединалист 3-71 Cache действовать серединаданныйиз;

2. Отключите запись кода MMU и Cache.


закрытие MMU и Cache Написание кода :

  • 1.настраиватьэтикетка : Для этой части кода настройки метки, Пусть программа Может перейти к приезду, где изучите следующий код: disable_mmu : ;
  • 2.настраивать I-Cache и D-Cache Неверный : делать два Cache Все Неверный, документсередина Arm1176jzfs.pdf Нет. 3.2.22 глава Формат кода задается как MCR p15, 0, <Rd>, c7, c7, 0,Чтосередина Rd Универсальныйзарегистрироваться настраиватьдля R0, Окончательный код MCR p15, 0, R0, c7, c7, 0 ;
  • 3.закрытие I-Cache и D-Cache и MMU :
    • ① Метод модификации: C1 контрользарегистрироватьсясерединаиз [0] Кусочек контроль MMU включать/закрытие, [2] Кусочекконтроль D-Cache включать/закрытие, [12] Кусочекконтроль I-Cache включать/закрытие; начальствоописывать Кусочек настраиватьдля 0 закрытие,настраиватьдля 1 включать;
    • ② Зарегистрироваться C1 Способ чтения и записи: CP15 зарегистрироватьсяне могупрямойчитать, нуждатьсяделатьиспользовать MRC Приходить Воляассоциацияпроцессорсерединаизсодержаниечитатьприезжать Универсальныйзарегистрироватьсясередина, Формат синтаксиса: MRC{cond} P15,<Opcode_1>,<Rd>,<CRn>,<CRm>,<Opcode_2> , делатьиспользовать MCR Воля Rd зарегистрироватьсясерединаизценитьпередаватьприезжать CP15 ассоциацияпроцессорсередина, Формат синтаксиса: MCR{cond} P15,<Opcode_1>,<Rd>,<CRn>,<CRm>,<Opcode_2> ;
    • ③ Кусочеквычислить : закрытие I/D-Cache и MMU нуждаться Воля C1 зарегистрироватьсяиз [0](MMU), [2](D-Cache), [12] (I-Cache) три Кусочек настраиватьдля0; Чтосередина I-Cache Можетзакрытие, Также можетвключать, Нет, да, должно быть; Да D-Cache и MMU должензакрытие, Bootloader хозяинхотетьэффектда Воля Linux Ядроскачатьприезжать Памятьсередина, Если процесс загрузки середина D-Cache нет конфигурации, возможный Сразу Воляданныескачатьприезжать Понятно Cache середина, Это вызовет проблемы для Сразу, Влияет на работу ядра; поэтомуздесьнасПросто нужно Нет. [0] Кусочек и Нет. [1] Кусочек настраиватьстановиться 0, Воля MMU и D-Cache закрытие, I-Cache плохой урожайнастроить;
    • ④ читать C1 зарегистрироватьсяизценить : делатьиспользовать MRC p15, 0, R0, c1, c0, 0 Воля c1 зарегистрироватьсясерединаизценить читатьприезжать R0 Универсальныйзарегистрироватьсясередина;
    • ⑤ Воляобозначение Кусочекнастраиватьдля 0 : делатьиспользовать bic Кусочек Прозрачныйинструкция, Воля R0 зарегистрироватьсясерединаиз Нет. 0, 1,2 три Кусочек настраиватьстановиться0,здесь Нет. 1 Кусочек Селективностьнастраивать, Для облегчения расчета Кстати, Воля Нет. 1 Кусочек такженастраиватьстановиться 0, Код bic r0, r0, #0x7 ;
    • ⑥ Воля R0 зарегистрироватьсясерединаизценитьнапиши ответприезжать C1 зарегистрироватьсясередина : делатьиспользовать MRC p15, 0, r0, c1, c0, 0 инструкция, Воля R0 зарегистрироватьсясерединаизценить напиши ответприезжать C1 зарегистрироватьсясередина;
  • 4.настраиватьпрограмма Прыжокприезжать Вернитесь к точке, чтобы продолжитьосуществлять : делатьиспользовать BL инструкция Прыжокприезжать disable_mmu Выполнено на лейбле, При этом обратный адрес Воля хранилищеприезжать LR зарегистрироватьсясередина, Прыгайте при возвращении приезжать LR зарегистрироватьсясерединаизадресосуществлять Прямо сейчас Может, делатьиспользовать mov pc, lr инструкция, осуществлять lr адрес середина указывает на код из Расположения;
  • 5.Пример кода:
Язык кода:javascript
копировать
disable_mmu : 
    mcr p15,0,r0,c7,c7,0                            @ настраивать I-Cache и D-Cache Неверный
    mrc p15,0,r0,c1,c0,0                            @ Воля c1 зарегистрироватьсясерединаизценить читатьприезжать R0 Универсальныйзарегистрироватьсясередина    bic r0, r0,#0x00000007                         @ делатьиспользовать bic Кусочек Прозрачныйинструкция, Воля R0 зарегистрироватьсясерединаиз Нет. 0, 1,2 три Кусочек настраиватьстановиться0, представлять закрытие MMU и D-Cache
    mcr p15,0,r0,c1,c0,0                            @ Воля R0 зарегистрироватьсясерединаизценитьнапиши ответприезжать C1 зарегистрироватьсясередина
    mov pc, lr                                      @ Вернуться в приезжать точка возврата Продолжить изучение кода

3. Закройте MMU и Cache, чтобы завершить компилируемый и исполняемый код.

1. Ассемблерный код


Пример ассемблерного кода : Bootloader процесс : ① Инициализировать таблицу векторов исключений , ② настраивать svc модель , ③ закрытиесторожевой пес,④ закрытиесерединаперерыв, ⑤ закрытие MMU ;

Язык кода:javascript
копировать
@****************************  
@File:start.S  
@  
@BootLoader инициализациякод 
@****************************  

.text                                   @ Макрос Укажите часть кода  
.global _start                          @ Псевдостандарт объявляет глобальный стартовый символ  
_start:                                 @ входной знак программы  
        b   reset                       @ reset Комплексное исключение Кусочек  
        ldr pc, _undefined_instruction  @ Не определение ненормальное, Воля _undefined_instruction Загрузка стоимости приезжать pc указательсередина  
        ldr pc, _software_interrupt     @ Исключение мягкого перерыва  
        ldr pc, _prefetch_abort         @ Исключение по предварительной выборке  
        ldr pc,_data_abort             @ данныечитатьаномальный  
        ldr pc, _not_used               @ занимать 0x00000014 адрес                            
        ldr pc, _irq                    @ Исключение из обычного середина  
        ldr pc, _fiq                    @ Исключение мягкого перерыва  

_undefined_instruction: .word undefined_instruction @ _undefined_instruction Метка хранит значение, Значение 32 Кусочекадрес undefined_instruction, undefined_instruction даодинадрес  
_software_interrupt:    .word software_interrupt    @ Исключение мягкого перерыва  
_prefetch_abort:    .word prefetch_abort            @ Исключение по предварительной выборке иметь дело с  
_data_abort:        .word data_abort                @ данныечитатьаномальный  
_not_used:      .word not_used                      @ нулевой Кусочекиметь дело с  
_irq:           .word irq                           @ обычносерединаперерывиметь дело с  
_fiq:           .word fiq                           @ быстрыйсерединаперерывиметь дело с  

undefined_instruction:                              @ undefined_instruction адрес Требования к хранениюосуществлятьизсодержание  
        nop  

software_interrupt:                                 @ software_interrupt адрес Требования к хранениюосуществлятьизсодержание  
        nop  

prefetch_abort:                                     @ prefetch_abort адрес Требования к хранениюосуществлятьизсодержание  
        nop  

data_abort:                                         @ data_abort адрес Требования к хранениюосуществлятьизсодержание  
        nop  

not_used:                                           @ not_used адрес Требования к хранениюосуществлятьизсодержание  
        nop  

irq:                                                @ irq адрес Требования к хранениюосуществлятьизсодержание  
        nop  

fiq:                                                @ fiq адрес Требования к хранениюосуществлятьизсодержание  
        nop  

reset:                                              @ reset адрес Требования к хранениюосуществлятьизсодержание  
        bl set_svc                                  @ Прыжокприезжать set_svc Место разметкиосуществлять        bl disable_watchdog                         @ Прыжокприезжать disable_watchdog этикеткаосуществлять, закрытиесторожевой пес
        bl disable_interrupt                        @ Прыжокприезжать disable_interrupt этикеткаосуществлять,закрытиесерединаперерыв        bl disable_mmu                              @ Прыжокприезжать disable_mmu этикеткаосуществлять, закрытие MMU 

set_svc:
        mrs r0, cpsr                                @ Воля CPSR зарегистрироватьсясерединаизценить Экспорт приезжать R0 зарегистрироватьсясередина
        bic r0, r0, #0x1f                           @ Воля R0 зарегистрироватьсясерединаизценить и #0x1f стоять Прямо сейчасчисло осуществлять идействовать, И результаты Воля спасли приезжать R0 зарегистрироватьсясередина, Актуально да Волязарегистрироваться 0 ~ 4 Кусочек набор 0
        orr r0, r0, #0xd3                           @ Воля R0 зарегистрироватьсясерединаизценить и #0xd3 стоять Прямо сейчасчисло выполнить илидействовать, И результаты Воля спасли приезжать R0 зарегистрироватьсясередина, Актуальная данарегулировка 0 ~ 4 Кусочек зарегистрироватьсяценить код рабочей модели изпроцессора
        msr cpsr, r0                                @ Воля R0 зарегистрироватьсясерединаизценить держатьприезжать CPSR зарегистрироватьсясередина
        mov pc, lr                                  @ Вернуться в приезжать точка возврата Продолжить изучение кода

#define pWTCON 0x7e004000                           @ определениесторожевой песконтрользарегистрироваться адрес ( 6410Совет по развитию )
disable_watchdog:                                 
        ldr r0, =pWTCON                             @ Первый Воляконтрользарегистрироватьсяадресдержатьприезжать Универсальныйзарегистрироватьсясередина        mov r1, #0x0                                @ подготовить один 0 ценить,сторожевой песконтрользарегистрироваться Всенастраиватьдля0, Прямо сейчасwatchdog также закрытие
        str r1, [r0]                                @ Воля 0 ценить настраиватьприезжать сторожевой песконтрользарегистрироватьсясередина 
        mov pc, lr                                  @ Вернуться в приезжать точка возврата Продолжить изучение кода

disable_interrupt:
    mvn r1,#0x0                                     @ Воля 0x0 в соответствии с Кусочекотрицать, получать Полный 1 изданные, настраиватьприезжать R1 зарегистрироватьсясередина
    ldr r0,=0x71200014                              @ настраивать Нет.одинсерединаперерывщитзарегистрироваться, Первый Воля зарегистрироваться адреснагрузкаприезжать Универсальныйзарегистрироваться R0 середина 
    str r1,[r0]                                     @ Снова Воля Полный 1 изценитьнастраиватьприезжать зарегистрироватьсясередина, Должензарегистрироватьсяиз Памятьадресуженагрузкаприезжать Понятно R0 Универсальныйзарегистрироватьсясередина    ldr r0,=0x71300014                              @ настраивать Нет.двасерединаперерывщитзарегистрироваться, Первый Воля зарегистрироваться адреснагрузкаприезжать Универсальныйзарегистрироваться R0 середина 
    str r1,[r0]                                     @ Снова Воля Полный 1 изценитьнастраиватьприезжать зарегистрироватьсясередина, Должензарегистрироватьсяиз Памятьадресуженагрузкаприезжать Понятно R0 Универсальныйзарегистрироватьсясередина    mov pc, lr                                      @ Вернуться в приезжать точка возврата Продолжить изучение кода

disable_mmu : 
    mcr p15,0,r0,c7,c7,0                            @ настраивать I-Cache и D-Cache Неверный
    mrc p15,0,r0,c1,c0,0                            @ Воля c1 зарегистрироватьсясерединаизценить читатьприезжать R0 Универсальныйзарегистрироватьсясередина    bic r0, r0,#0x00000007                         @ делатьиспользовать bic Кусочек Прозрачныйинструкция, Воля R0 зарегистрироватьсясерединаиз Нет. 0, 1,2 три Кусочек настраиватьстановиться0, представлять закрытие MMU и D-Cache
    mcr p15,0,r0,c1,c0,0                            @ Воля R0 зарегистрироватьсясерединаизценитьнапиши ответприезжать C1 зарегистрироватьсясередина
    mov pc, lr                                      @ Вернуться в приезжать точка возврата Продолжить изучение кода

2. Скрипт компоновщика


gboot.lds скрипт компоновщика Анализ кода :

  • 1. Укажите выходной формат ( процессор Архитектура ) : делатьиспользовать OUTPUT_ARCH(имя схемы) указатьвыходной формат,Прямо сейчаспроцессориз Архитектура, здесьда arm архитектураиз, OUTPUT_ARCH(arm) ;
  • 2. Укажите выходную программуиз входа : настраиватькомпилироватьвыходизпрограмма Вход Расположение, Синтаксис: ENTRY(Вход Расположение), существоватьначальстволапшаиз Start.S серединанастраиватьизпрограмма Входда _start, Код ENTRY(_start) ;
  • 3.настраиватькодчасть : делатьиспользовать .text : настраиватькодчасть;
  • 4.настраиватьданныечасть : делатьиспользовать .data : настраиватьданныечасть;
  • 5.настраивать BSS часть : делатьиспользовать .bss : настраивать BSS часть;
    • ( 1 ) Записывать BSS частьизначинатьадрес : bss_start = .; ;
    • ( 2 ) Записывать BSS частьиз Заканчиватьадрес : bss_end = .; ;
  • 6. Выравнивание: Каждая часть требует настройки Памятьиз формата выравнивания, делатьиспользовать . = ALIGN(4); настройки четырехбайтовое выравнивание Прямой сейчас Может;
  • 7.Пример кода:
Язык кода:javascript
копировать
OUTPUT_ARCH(arm)        /*Указываем структуру процессора*/  
ENTRY(_start)           /*Указываем вход в программу существовать _start Место маркировки*/  
SECTIONS {                
    . = 0x50008000;     /*Вся ссылка на программу начинается с «Расположения», По данным Совета по развитию Конечно, другой Совет по развитиюадреснепоследовательный*/  

    . = ALIGN(4);       /*Выровнять дело с, Выполняется перед началом каждой части 4 Выравнивание байтов */  
    .text :             /*кодчасть*/  
    {  
    start.o (.text)     /*start.S Конвертировать в часть кода*/  
    *(.text)            /*Другие коды*/  
    }  

    . = ALIGN(4);       /*Выровнять дело с, Выполняется перед началом каждой части 4 Выравнивание байтов */  
    .data :             /*данныечасть*/  
    {  
    *(.data)  
    }  

    . = ALIGN(4);       /*Выровнять дело с, Выполняется перед началом каждой части 4 Выравнивание байтов */  
    bss_start = .;      /*Записывать bss частьначинать Расположение*/  
    .bss :              /*bss часть*/  
    {  
    *(.bss)   
    }  
    bss_end = .;        /*Записывать bss часть Заканчивать Расположение*/  
} 

3. Скрипт компиляции Makefile


makefile Написание документов :

  • 1. Общие правила (правила составления файла сборки): файл сборки компилировать стать одноименным .o документ, документ имеет то же имя, Различные суффиксы, %.o : %.S, Производственный процессда arm-linux-gcc -g -c $^ , Чтосередина ^ Идентификация дааллиззависит от документа, существовать по этому правилу start.S будет мутировать в start.o ;
  • 2. Общие правила ( C документкомпилироватьправило ) : C кодкомпилироватьстать одноименным .o документ, %.o : %.c , Производственный процессда arm-linux-gcc -g -c $^ ;
  • 3.настройка конечной цели : делатьиспользовать all: настраиватьфинальныйкомпилировать Цель; ( 1 ) полагатьсядокумент : Для достижения конечной цели требуются зависимости start.o документ, делатьиспользовать all: start.o Указывает, что конечная цель зависит от этого документа; ( 2 ) процесс связи : arm-linux-ld -Tgboot.lds -o gboot.elf ^, нуждатьсяделатьиспользоватьскрипт компоновщика для подключения, ①Инструмент ссылки arm-linux-ld инструмент,②Использование -Tgboot.lds настраиватьскрипт компоновщика да Только что написализ gboot.lds скрипт компоновщика, ③ выходной документ gboot.elf Даиндивидуальныйсерединамеждудокумент,④ полагатьсядокументда^ представлятьвсеизполагаться; ( 3 ) Преобразовать в изучаемый двоичный документ : arm-linux-objcopy -O binary gboot.elf gboot.bin, делатьиспользовать -O binary настройка вывода бинарного документа,полагатьсядокументда gboot.elf, Вывод: изучить двоичный документ Прямо сейчас Результат gboot.bin ;
  • 4.makefile документсодержание :
Язык кода:javascript
копировать
all: start.o #зависит от start.o  
    arm-linux-ld -Tgboot.lds -o gboot.elf $^    #делатьиспользоватьскрипт компоновщика, Воля start.o конвертировать в gboot.elf  
    arm-linux-objcopy -O binary gboot.elf gboot.bin #Воля gboot.elf Конвертироватьдля Можетпрямойсуществоватьдосканачальствоосуществлятьиз gboot.bin документ  

%.o : %.S   #общие правила, нравиться start.o Да start.S компилировать Приходитьиз, -c да Толькокомпилировать Нет ссылки  
    arm-linux-gcc -g -c $^  

%.o : %.c   #общие правила, нравиться start.o Да start.c компилировать Приходитьиз, -c да Толькокомпилировать Нет ссылки  
    arm-linux-gcc -g -c $^  

.PHONY: clean     
clean:              #clearкомпилировать информацию  
    rm *.o *.elf *.bin  

4. Скомпилируйте и выведите исполняемый файл.


Процесс компиляции :

  • 1.документ Подготовить : Воля ассемблерный код ( start.S ) скрипт компоновщика ( gboot.lds ) makefile документ копироватьприезжатькомпилировать Оглавление ;
  • 2.осуществлятькомпилировать Заказ : make ;
  • 3.компилироватьрезультат : Можетсмотретьприезжать Сгенерировано компилировать Цельдокумент start.o,Связьдокумент gboot.elf,Можетосуществлятьиздвоичныйдокумент gboot.bin ;

Загрузите справочные статьи и сопутствующие материалы для этого блога. :

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose