亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

整車控制器開發(fā)源代碼:模塊劃分、狀態(tài)機設(shè)計與工程落地

整車控制器開發(fā)源代碼:模塊劃分、狀態(tài)機設(shè)計與工程落地 簡介整車控制器VCU開發(fā)源代碼包主要面向電動汽車與混合動力汽車控制系統(tǒng)的開發(fā)者、算法工程師及嵌入式軟件研究者用于解決VCU底層驅(qū)動、控制策略、狀態(tài)機管理與故障處理等核心開發(fā)問題。包內(nèi)文件共88個以C源文件、頭文件及目標(biāo)文件為主體源文件和頭文件對應(yīng)驅(qū)動與算法模塊目標(biāo)文件便于查看編譯產(chǎn)物同時附有PDF軟件說明書、原理圖、PCB圖、Map與LST調(diào)試文件以及mcp、prm、ini等嵌入式工程配置文件壓縮包約118.77MB整體屬于可二次開發(fā)的完整工程包。已有1260人學(xué)習(xí)下載適合具備汽車電子基礎(chǔ)并希望深入理解VCU軟硬件全貌的讀者。除完整源代碼含CAN通信、控制算法、狀態(tài)機與故障處理外還提供軟件說明書涵蓋系統(tǒng)概述、模塊接口、調(diào)試方法、ISO 26262安全規(guī)范及測試方案同時包含原理圖與PCB圖可支撐從代碼閱讀、硬件理解到二次開發(fā)的全流程。1. 整車控制器開發(fā)源代碼為什么說源碼才是真正的設(shè)計文檔經(jīng)常能看到這種場面手邊放著一沓整車控制器的需求文檔、接線圖和總線協(xié)議大部分內(nèi)容已經(jīng)和技術(shù)發(fā)布版本對不上。真正把上下電時序、故障等級、扭矩路徑理順的往往是那份被壓在設(shè)計文檔底下的“整車控制器開發(fā)源代碼”。代碼里看到的不是孤立的語句而是一輛車從休眠到上高壓、從運行到安全下電的完整決策鏈。對新人來說這套源碼是理解整車控制器的地圖對正在搭項目的工程師來說它是一份可以裁剪、移植和反復(fù)驗證的基座。下面這些內(nèi)容就圍繞這份源碼講清模塊怎么分、環(huán)境怎么搭、核心邏輯怎么寫、踩過哪些坑以及交付前如何快速驗證。適合想入門的嵌入式工程師也適合正在查“翻車”現(xiàn)場的老手。2. 整車控制器源碼的骨架模塊劃分與狀態(tài)機設(shè)計2.1 從功能需求到源碼模塊先分清基礎(chǔ)軟件和應(yīng)用軟件整車控制器的源碼看似文件很多拆開其實就兩類。一類是跟芯片和硬件強相關(guān)的基礎(chǔ)軟件比如MCU寄存器初始化、時鐘、GPIO、ADC采集、CAN控制器、看門狗、EEPROM另一類是與車型策略強相關(guān)的應(yīng)用軟件比如上下電狀態(tài)機、擋位管理、扭矩仲裁、能量回收、故障診斷和降級策略。我見過不少新人一上來就在 main 函數(shù)里寫業(yè)務(wù)邏輯ADC采集和擋位判斷混在一起最后連一個獨立的上電時序都測不了。常見做法是先把這兩層分開基礎(chǔ)軟件提供接口應(yīng)用軟件只管“拿數(shù)據(jù)、做判斷、發(fā)指令”不碰寄存器。這樣分最直接的好處是移植。換一顆MCU或者換塊板卡時基礎(chǔ)軟件層改動幾十個文件應(yīng)用軟件可以不動。評審時也能分頭看硬件組同學(xué)看 bsp策略組同學(xué)看 app界面清楚問題也好追。更重要的一點是整車的功能安全要求里很多故障檢測和降級邏輯要反復(fù)論證如果策略代碼里到處都是寄存器操作論證成本會高到讓人崩潰。所以無論源碼來自哪個項目我拿到手的第一件事就是畫一畫它的分層邊界。分層之后還需要定義穩(wěn)定的模塊接口。舉例來說基礎(chǔ)軟件要向上層提供“讀通道電壓”“發(fā)CAN報文”“獲取系統(tǒng)時間”這類接口而不是讓應(yīng)用層直接操作某個寄存器地址。這樣應(yīng)用層在 PC 仿真環(huán)境里也能編譯運行只要把基礎(chǔ)軟件替換成模擬實現(xiàn)。一個典型的接口頭文件長這樣/* bsp/can.h */ #ifndef BSP_CAN_H #define BSP_CAN_H #include stdint.h int bsp_can_init(uint32_t baudrate); /* 初始化CAN控制器 */ int bsp_can_tx(uint32_t can_id, const uint8_t *data, uint8_t len); /* 發(fā)送一幀 */ void bsp_can_set_rx_handler(void (*handler)(uint32_t id, const uint8_t *data, uint8_t len)); /* 注冊接收回調(diào) */ #endif頭文件里只暴露函數(shù)原型和必要的類型不暴露寄存器。這樣應(yīng)用層代碼在 PC 上編譯時只需要用另一個bsp_can_sim.c提供同樣的函數(shù)簽名就能跑策略邏輯。很多人問源碼為什么能仿真秘密就在這里邊界接口清晰硬件依賴被擋在 bsp 層。2.2 上下電狀態(tài)機如何約束代碼結(jié)構(gòu)整車控制器的核心是上下電管理這段邏輯最怕寫成一大串 if-else 嵌套。常見做法是狀態(tài)機先定義狀態(tài)再定義事件然后按“當(dāng)前狀態(tài)事件→動作下一狀態(tài)”的方式組織。推薦用表驅(qū)動而不是在 switch-case 里寫一堆轉(zhuǎn)移邏輯因為表驅(qū)動更容易評審和測試也方便打印出完整的轉(zhuǎn)移矩陣。在源碼里狀態(tài)通常分這么幾類休眠態(tài)、喚醒態(tài)、低壓附屬上電態(tài)、主繼電器閉合態(tài)、運行態(tài)、故障態(tài)、下電過程態(tài)。每一個狀態(tài)都有進入動作、周期動作、退出動作。比如進入主繼電器閉合態(tài)時要先做絕緣檢測、預(yù)充、等待母線電壓達到閾值全部通過后才進入運行態(tài)任何一步超時都會進到故障態(tài)。這樣約束下來整個源碼的骨架非常穩(wěn)定后面加“特殊工況”也只需要在狀態(tài)表中加一行轉(zhuǎn)移記錄而不是到處打補丁。狀態(tài)機的實現(xiàn)通常依賴一個“當(dāng)前狀態(tài)”全局變量和一個“執(zhí)行周期”定時任務(wù)??刂浦芷谝话愣ㄔ?10ms 或更短但上下電這種慢邏輯可以放在 100ms 任務(wù)里扭矩仲裁這類快邏輯必須放在 10ms 任務(wù)里。源碼里的任務(wù)調(diào)度如果只是簡單的定時器輪詢就要保證每個任務(wù)的實際執(zhí)行時間遠小于周期否則看門狗就會出來“主持公道”。很多人第一次跑整車控制器源碼時發(fā)現(xiàn)上不了高壓問題往往不是策略而是 100ms 任務(wù)里寫了阻塞延時把整個調(diào)度周期拖到 200ms 以上。這里還牽扯到一個容易被忽略的設(shè)計狀態(tài)機的“事件源”從哪里來常見的有三個一是硬線信號比如鑰匙開關(guān)、充電槍連接信號通過 GPIO 中斷進來二是 CAN 報文比如電池管理系統(tǒng)發(fā)送的故障等級、電機控制器發(fā)送的速度通過 CAN 接收回調(diào)進來三是內(nèi)部定時事件比如預(yù)充超時。事件源不同優(yōu)先級也要不同。我一般把 CAN 事件放在接收中斷里只置標(biāo)志位在狀態(tài)機任務(wù)里統(tǒng)一處理避免在中斷上下文里直接改狀態(tài)。這樣做的另外一個好處是狀態(tài)機的所有狀態(tài)轉(zhuǎn)移都發(fā)生在同一個任務(wù)上下文中競爭風(fēng)險小。2.3 我用哪種代碼組織方式分層目錄與內(nèi)部接口我習(xí)慣的目錄結(jié)構(gòu)是這樣vcufw/ ├── app/ # 應(yīng)用層與硬件解耦 │ ├── main.c # 主入口只做初始化和啟動調(diào)度 │ ├── vcu_state.c # 上下電狀態(tài)機 │ ├── torque_ctrl.c # 扭矩仲裁與扭矩管理 │ ├── fault_mgr.c # 故障狀態(tài)管理和存儲 │ └── vcu_config.h # 整車參數(shù)配置 ├── bsp/ # 板級支持包硬件相關(guān) │ ├── mcu.c # 時鐘、啟動、芯片初始化 │ ├── can.c # CAN 控制器驅(qū)動與收發(fā)封裝 │ ├── dio.c # 數(shù)字輸入輸出驅(qū)動 │ ├── adc.c # 模擬量采集驅(qū)動 │ └── wdg.c # 看門狗驅(qū)動 ├── lib/ # 純軟件庫不依賴芯片 │ ├── ringbuffer.c # 收發(fā)環(huán)形緩沖區(qū) │ └── filter.c # 一階濾波/中值濾波 ├── config/ # 鏈接腳本、板級配置、編譯器選項 │ ├── link.ld # 鏈接腳本 │ └── build_opts.cmake └── build/ # 編譯輸出目錄不入版本庫app 和 bsp 之間通過頭文件交互。比如 bsp/can.h 里聲明bsp_can_tx()app 層只調(diào)用這些接口不能出現(xiàn)任何寄存器地址。app 內(nèi)部模塊之間也盡量用接口頭文件比如 fault_mgr.h 只暴露fault_level_t get_fault_level(void)torque_ctrl.c 通過這個函數(shù)決定降扭比例而不是自己讀一堆故障標(biāo)志。接口定好之后模塊內(nèi)部怎么改都不影響外部這也是源碼能否持續(xù)迭代的關(guān)鍵。我還會在倉庫根目錄放一個 README.md把三件事寫清楚編譯命令、硬件版本、配置文件版本。硬件版本尤其重要因為同一個控制器可能有 V1.1 和 V1.2 兩種硬件引腳定義可能改了。如果不寫清楚半年后自己來看都不知道怎么編。源碼在持續(xù)迭代中最怕的不是代碼爛而是“不知道當(dāng)前這份代碼對應(yīng)哪塊板子”。我一般會在版本提交時把硬件版本寫進提交說明并同步改 README。3. 在本地把整車控制器源碼跑起來環(huán)境搭建與最小編譯3.1 選型編譯器、MCU 工具鏈與源碼版本拿到整車控制器源碼第一件事不是讀代碼而是先把它跑起來。整車控制器用的 MCU 多是車規(guī)級以 ARM Cortex-M 或者 Tricore 內(nèi)核為主。我最近的項目用的是 Cortex-M 內(nèi)核的車規(guī)芯片源碼工程用的是 GNU ARM 工具鏈也就是arm-none-eabi-gcc。這套工具鏈?zhǔn)情_源且跨平臺的配合 CMake 和 Makefile 就能完成編譯調(diào)試可以接 OpenOCD 和 GDB。如果你手頭是特定廠商的 IDE也可以維持原有工程但建議還是抽時間把構(gòu)建腳本遷移到命令行因為自動化回歸測試、持續(xù)集成都會用到。工具鏈版本要和源碼匹配。源碼倉庫里最好記錄“編譯工具鏈版本”和“CMake 版本”否則過了兩輪迭代后芯片廠商的庫更新了、編譯器也換了你可能會遇到莫名其妙的編譯錯誤或者運行異常。我一般會在 CMakeLists.txt 頂部寫清楚最低工具鏈版本要求并讓 CI 在真實工具鏈上跑一次完整編譯。這里有個小經(jīng)驗sudo apt 裝工具鏈時版本可能偏老最好直接從工具鏈官網(wǎng)下載固定版本避免倉庫里的二進制和本地環(huán)境不一致。3.2 最小編譯命令從克隆源碼到生成燒錄文件假設(shè)源碼已經(jīng)放在一個 git 倉庫里典型流程是這樣git clone 你的源碼倉庫地址/vcu_fw.git cd vcu_fw mkdir -p build cd build cmake .. \ -DCMAKE_TOOLCHAIN_FILE../cmake/arm-gcc.cmake \ -DBOARDVCU_EVAL \ -DCONTROL_PERIOD_MS10 make -j4這段命令里cmake用于生成真正的構(gòu)建文件。-DCMAKE_TOOLCHAIN_FILE指定工具鏈文件里面寫的是編譯器路徑和編譯參數(shù)比如arm-none-eabi-gcc -mcpucortex-m4 -mfloat-abisoftfp。-DBOARD選擇板級配置不同板卡對應(yīng)的引腳映射、時鐘頻率、外設(shè)初始化不同。-DCONTROL_PERIOD_MS是我做的一個編譯期參數(shù)用來告訴應(yīng)用層控制周期是多少毫秒調(diào)度器會按這個宏生成周期標(biāo)志。如果你用 Makefile則是make all make hexmake all會編譯并鏈接出 elf 文件make hex會生成燒錄用的 hex 或 bin 文件。出現(xiàn)編譯問題時最??吹絻深悎箦e找不到頭文件以及鏈接腳本不匹配。找不到頭文件說明 include 路徑?jīng)]有包含 config 或者 bsp 目錄鏈接腳本不匹配則要去看 link.ld 里的 Flash 和 RAM 地址是不是當(dāng)前芯片。燒錄時用 OpenOCD 命令行操作openocd -f interface/your-debugger.cfg \ -f target/your-mcu.cfg \ -c program build/vcu_fw.elf verify reset exit如果燒錄后程序跑飛大概率是-f target/your-mcu.cfg選錯了芯片型號或者鏈接腳本里的 Flash 起始地址和實際芯片不一致。這里特別提醒源碼里的鏈接腳本 link.ld 必須和芯片型號精確匹配尤其是內(nèi)部 Flash 的大小分布、RAM 地址、中斷向量偏移。我見過有人直接復(fù)用上一個項目的鏈接腳本編譯燒錄后新芯片完全不工作最后發(fā)現(xiàn)是 Flash 起始地址被寫成了另一個系列的地址。這種問題只靠看代碼很難發(fā)現(xiàn)必須對照芯片手冊。3.3 參數(shù)配置控制周期、時鐘和內(nèi)存映射怎么調(diào)功能上要調(diào)的參數(shù)大體分三類。第一類是控制周期整車控制器的扭矩處理和狀態(tài)機任務(wù)一般以 10ms 為基本周期上下電慢邏輯常常用 100ms。第二類是時鐘和外設(shè)地址這屬于基礎(chǔ)軟件配置通常由廠家提供的工程模板生成應(yīng)用層不需要改。第三類是內(nèi)存劃分主要調(diào)整棧空間和各個任務(wù)的數(shù)據(jù)區(qū)。參數(shù)示例值作用調(diào)整原則CONTROL_PERIOD_MS10ms任務(wù)調(diào)度基本周期減小時延但增加 CPU 負載WDG_TIMEOUT_MS100ms看門狗超時閾值必須大于所有任務(wù)最長執(zhí)行時間WDG_REFRESH_MS20ms看門狗刷新間隔留出足夠余量STACK_SIZE4KB系統(tǒng)棧大小用棧水印檢測后確定源碼里會有類似這樣的定義#define WDG_TIMEOUT_MS 100 #define WDG_REFRESH_MS 20WDG_TIMEOUT_MS是硬件看門狗超時時間WDG_REFRESH_MS是任務(wù)周期里喂狗的時間間隔。看門狗喂得太早或太晚都可能出問題太晚自然復(fù)位遇到帶窗口期的看門狗太早也會違規(guī)。我的經(jīng)驗是喂狗放在主循環(huán)或高優(yōu)先級任務(wù)中喂狗值設(shè)為超時的一半左右。內(nèi)存映射的修改要動config/link.ld。下面是一段常見的鏈接腳本片段FLASH (rx) : ORIGIN 0x08000000, LENGTH 512K RAM (rwx) : ORIGIN 0x20000000, LENGTH 128K _estack ORIGIN(RAM) LENGTH(RAM);ORIGIN是起始地址LENGTH是容量。如果芯片型號變了這段必須跟著改。特別是_estack指向 RAM 最高地址它是上電后棧指針初始值寫錯就會導(dǎo)致第一條指令就異常。這些改動要保留在源碼倉庫的 config 目錄里千萬不要只在自己本地編譯器頁面里改否則你留下的源碼和別人復(fù)現(xiàn)出來的源碼就不是同一份了。4. 整車控制器代碼的核心邏輯實現(xiàn)扭矩與上電落地的寫法4.1 上下電管理狀態(tài)機的代碼實現(xiàn)現(xiàn)在看應(yīng)用層最核心的上下電狀態(tài)機。用表驅(qū)動方式第一步定義枚舉typedef enum { VCU_ST_OFF 0, VCU_ST_WAKEUP, VCU_ST_PRECHARGE, VCU_ST_RUN, VCU_ST_CHARGING, VCU_ST_FAULT, VCU_ST_SHUTDOWN } vcu_state_t; typedef enum { EVT_NONE 0, EVT_WAKEUP, EVT_KEY_ON, EVT_PRECHARGE_DONE, EVT_RUN_REQUEST, EVT_FAULT, EVT_CHARGE_START, EVT_CHARGE_DONE, EVT_KEY_OFF } vcu_event_t;接著定義狀態(tài)節(jié)點每個節(jié)點包含進入函數(shù)、事件處理函數(shù)、退出函數(shù)typedef struct { vcu_state_t state; void (*on_enter)(void); void (*on_event)(vcu_event_t evt); void (*on_exit)(void); } vcu_state_node_t;狀態(tài)表就是初始化數(shù)據(jù)const vcu_state_node_t vcu_state_table[] { { VCU_ST_OFF, NULL, on_off_event, NULL }, { VCU_ST_WAKEUP, on_wakeup_enter, on_wakeup_event, on_wakeup_exit }, { VCU_ST_PRECHARGE, on_precharge_enter, on_precharge_event, on_precharge_exit }, { VCU_ST_RUN, on_run_enter, on_run_event, on_run_exit }, /* FAULT/SHUTDOWN 等狀態(tài)按同樣方式加入 */ };事件處理函數(shù)按“當(dāng)前狀態(tài)事件”去查轉(zhuǎn)移表static void state_machine_handle(vcu_event_t evt) { vcu_state_t cur vcu_state; vcu_state_node_t *node vcu_state_table[cur]; if (node-on_event) { node-on_event(evt); } }在on_off_event里收到EVT_WAKEUP后切換到VCU_ST_WAKEUP同時調(diào)用新狀態(tài)的on_enterstatic void on_off_event(vcu_event_t evt) { if (evt EVT_WAKEUP) { vcu_set_state(VCU_ST_WAKEUP); } }vcu_set_state負責(zé)調(diào)用舊的退出函數(shù)和新的進入函數(shù)保證“先退后進”的順序。為什么強調(diào)順序因為很多故障出現(xiàn)在切換瞬間先關(guān)輸出還是先開輸出決定了會不會出現(xiàn)瞬間短路或者反電動勢沖擊。狀態(tài)機代碼看似簡單但順序錯了就是整車安全問題。我建議在vcu_set_state里加斷言防止非法狀態(tài)跳變。參數(shù)上控制周期、狀態(tài)保持時間、預(yù)充超時閾值都做成配置宏。比如預(yù)充超時設(shè)為 2 秒超過就進故障態(tài)。狀態(tài)保持時間可以用vcu_elapsed_ms()函數(shù)獲得注意它必須在同一個調(diào)度任務(wù)里計數(shù)不要在多個任務(wù)里同時累加否則會出現(xiàn)跳變。4.2 扭矩仲裁與故障降級的落地寫法扭矩管制的代碼要體現(xiàn)“多個請求來源一個輸出”。驅(qū)動請求來自加速踏板、巡航和整車控制器自身比如限功率保護。常見做法是先統(tǒng)一成扭矩請求值再做仲裁、限制和降級int16_t torque_req accelerator_to_torque(accr_pct); torque_req min(torque_req, speed_limit_torque(vehicle_speed)); torque_req min(torque_req, system_power_limit()); if (fault_level FAULT_DERATE_50) { torque_req torque_req * 50 / 100; } torque_req clamp(torque_req, -MAX_REGEN_TORQUE, MAX_DRIVE_TORQUE);這里accelerator_to_torque把加速踏板開度轉(zhuǎn)換成基礎(chǔ)扭矩請求它本身是一張標(biāo)定表踏板在 0% 時可能有負扭矩用于減速在 20% 附近有一段平滑過渡。speed_limit_torque是限速保護的扭矩上限超過 120km/h 就逐步降扭。system_power_limit是電池、電機熱管理給的功率限制可能是峰值限制也可能是持續(xù)限制。故障等級高于一定閾值時直接打五折最高等級故障通常直接斷扭矩并下高壓。參數(shù)設(shè)計上要特別注意“變化速率”。整車控制器的扭矩輸出不能突變否則驅(qū)動軸會被沖擊。仲裁輸出之后還要經(jīng)過一個斜率限制器static int16_t rate_limit(int16_t target, int16_t last, int16_t up, int16_t down) { int16_t delta target - last; if (delta up) { return last up; } else if (delta -down) { return last - down; } return target; } int16_t torque_limited rate_limit(torque_req, last_torque, TORQUE_RAMP_UP, TORQUE_RAMP_DOWN);TORQUE_RAMP_UP比如 2Nm/msTORQUE_RAMP_DOWN比如 -3Nm/ms。這組參數(shù)直接影響駕駛性需要實車標(biāo)定。源碼里要留出可標(biāo)定接口用標(biāo)定表而不是硬編碼。這一塊如果只關(guān)注功能很容易做出“功能正常但車沒法開”的控制器。4.3 CAN 收發(fā)鏈路實現(xiàn)整車控制器的主要輸入輸出通過 CAN 總線。源碼里的 CAN 驅(qū)動通常分兩層底層是芯片 CAN 控制器驅(qū)動負責(zé)收發(fā)郵箱上層是應(yīng)用層信號組包拆包。我這里給出一個收包回調(diào)的示意假設(shè)驅(qū)動層收到一幀 CAN 數(shù)據(jù)后調(diào)用應(yīng)用層注冊的函數(shù)void vcu_can_rx_handler(uint32_t can_id, const uint8_t *data, uint8_t len) { if (can_id 0x100) { /* 電機控制器反饋報文 */ uint16_t spd_raw build_u16(data, 0, false); int16_t torque_cmd build_s16(data, 2, false); vehicle_speed spd_raw * 0.1f; /* 0.1 km/h each LSB */ motor_torque torque_cmd; } }這里的build_u16和build_s16是通用拆包函數(shù)需要處理字節(jié)序、大小端、有無符號和位寬。由于 CAN 存在短幀和無效幀必須判斷l(xiāng)en是否足夠否則溢出或越界。很多偶發(fā)故障就是這里來的比如發(fā)送方 DLC 不是 8 的報文你的代碼卻直接讀了data[2]讀到垃圾數(shù)據(jù)。發(fā)送組包也類似但要注意“校驗位”和“滾動計數(shù)”。發(fā)給電池管理系統(tǒng)的下電指令通常不僅發(fā)目標(biāo)值還要發(fā)校驗碼和滾動計數(shù)。滾動計數(shù)每發(fā)一次加 1接收方靠它判斷報文是否新鮮。源碼里如果忘了滾動計數(shù)接收方會認為報文超時自動進入安全狀態(tài)這就是你明明發(fā)了扭矩指令但車沒反應(yīng)的原因之一。調(diào)試 CAN 問題時我習(xí)慣先用總線分析工具抓報文對照 DBC 里的信號定義確認字節(jié)序和縮放因子再回頭查代碼能少走很多彎路。5. 整車控制器源碼移植和集成的 5 個常見坑現(xiàn)象、原因與解決5.1 編譯通過但上電后不上高壓初始化順序的坑現(xiàn)象源碼編譯燒錄后狀態(tài)機一直停在 OFF 狀態(tài)外部喚醒信號正常觸發(fā)但整車就是不上高壓。原因初始化順序里先把狀態(tài)機注冊并啟動了然后才初始化 CAN 控制器第一幀喚醒報文到達時 CAN 還沒啟動被丟掉了。狀態(tài)機的初始事件為空就一直等不到有效事件。解決把初始化順序固定為“時鐘→看門狗→GPIO→CAN/ADC→應(yīng)用狀態(tài)機”并在狀態(tài)機啟動時主動注入一個EVT_WAKEUP事件不依賴外部報文。建議將初始化函數(shù)指針組成一個初始化表在 main 里按順序遍歷便于 review 也便于復(fù)現(xiàn)。5.2 車速信號跳變導(dǎo)致誤判限速濾波和失效值配置現(xiàn)象車輛勻速行駛時車速偶爾從 30 跳到 120整車控制器立即降扭儀表也顯示錯誤車速。原因車速來自電機控制器 CAN 報文發(fā)送方在某個工況下會輸出無效值或者總線上出現(xiàn)錯誤幀源碼沒有做合理性校驗和濾波把無效當(dāng)真實。解決對車速這類關(guān)鍵信號做一階濾波再加“相對上一周期最大變化量”限幅。同時在 CAN 拆包時判斷信號是否等于發(fā)送方定義的無效值比如 0xFFFF遇到無效值要丟棄并計數(shù)連續(xù)無效幀數(shù)超過閾值進入信號故障狀態(tài)用備份值或合理默認值繼續(xù)運行。5.3 看門狗總在啟動時復(fù)位任務(wù)超時和喂狗位置現(xiàn)象程序一上電就跑幾步然后復(fù)位反復(fù)循環(huán)。調(diào)試器暫停時代碼停在啟動初始化里看起來是死循環(huán)。原因看門狗在時鐘初始化后開啟但啟動階段某個長耗時操作比如 EEPROM 擦除等待占用了遠超看門狗周期的時長喂狗的代碼又在后面的任務(wù)里所以超時復(fù)位。解決看門狗開啟之前先完成最耗時的安全初始化必須早早開啟的話要分時喂狗。喂狗放在主循環(huán)或最高優(yōu)先級任務(wù)中不要在某個長任務(wù)的中間去喂更不要在中斷里喂。中斷喂狗會掩蓋主任務(wù)的卡死調(diào)試時很難發(fā)現(xiàn)真正問題。5.4 鏈接腳本亂改導(dǎo)致變量被清零內(nèi)存分段和啟動代碼現(xiàn)象新版本代碼運行一段時間后RAM 里的配置文件全部變成 0故障日志丟失但是程序沒有復(fù)位。原因鏈接腳本中 RAM 區(qū)被分成了多個段其中一個段的地址和啟動代碼里的.bss段重疊。編譯鏈接都能過運行啟動時.bss清零操作把另一段數(shù)據(jù)覆蓋了。解決回退鏈接腳本改動用git diff對比同時檢查啟動文件里.bss和.data的符號地址是否和 link.ld 匹配。改內(nèi)存布局后要跑內(nèi)存讀寫測試分別檢查每個段的起始結(jié)束地址確保沒有重疊。這個坑非常隱蔽查了整整一個下午才發(fā)現(xiàn)是地址重疊。5.5 休眠喚醒后 CAN 發(fā)不出去收發(fā)器靜默控制和模式寄存器現(xiàn)象車輛下電休眠再次喚醒后整車控制器收不到電機報文自己發(fā)的 CAN 幀也沒有 ACK。原因喚醒后驅(qū)動只重新初始化了 MCU 內(nèi)部 CAN 控制器沒有把外部 CAN 收發(fā)器的靜默/待機模式引腳拉回正常模式或者端口復(fù)用被復(fù)位成 GPIOCAN 的 TX/RX 引腳沒有恢復(fù)外設(shè)復(fù)用功能。解決喚醒服務(wù)里除了初始化 CAN 控制器還要顯式配置 CAN 收發(fā)器控制引腳和 GPIO 復(fù)用。另外檢查喚醒源是否真正的總線喚醒而不是電源毛刺導(dǎo)致的假喚醒。假喚醒后外設(shè)沒有完全上電很多寄存器寫入無效這種玄學(xué)問題一般是最后才查到的。6. 把源碼變成可交付的控制器驗證方法與三個開發(fā)習(xí)慣6.1 用 PC 仿真快速驗證狀態(tài)機我習(xí)慣在拿到任何源碼后先單獨把應(yīng)用層編譯成 PC 可執(zhí)行文件用樁函數(shù)替換 bsp 接口然后寫一組輸入序列驅(qū)動狀態(tài)機注入喚醒、上電、故障、下電事件斷言最終狀態(tài)和輸出扭矩。這不需要硬件能在幾分鐘內(nèi)跑完幾十個場景。成本極低但能抓住大量低級邏輯錯誤。下面是一個樁文件開頭/* bsp_can_sim.c仿真樁實現(xiàn) */ int bsp_can_init(uint32_t baudrate) { return 0; } int bsp_can_tx(uint32_t can_id, const uint8_t *data, uint8_t len) { return 1; }應(yīng)用層被編譯時鏈接bsp_can_sim.c就可以在主機上運行。跑一遍“事件序列驅(qū)動狀態(tài)機、檢查輸出值范圍”的用例。每次改狀態(tài)機邏輯都先跑一遍這個仿真再考慮上車。6.2 硬件在環(huán)驗證時的信號注入技巧真實控制器上給不了 320V 高壓做測試就用信號注入法用低電壓模擬高壓傳感器輸出通過電阻分壓或信號板卡給控制器輸入規(guī)定電壓值再測量繼電器動作時序。重點測三件事預(yù)充時間是否在標(biāo)定范圍內(nèi)、故障時繼電器是否按順序斷開、CAN 是否發(fā)故障幀。注入時把踏板從 0% 瞬間跳到 100%觀察扭矩斜率是否受限這也是對上一章速率限制代碼最直接的一關(guān)。6.3 我沿用至今的三個源碼開發(fā)習(xí)慣第一每次提交前必須編譯通過并跑一遍仿真用例加了狀態(tài)卻忘記初始化是所有狀態(tài)機 bug 的根源仿真用例能攔住大半。第二所有跨模塊接口都要加斷言指針、范圍、周期標(biāo)志都要校驗寧可運行時報錯也不帶病運行。第三碰過鏈接腳本、啟動文件、配置文件這類“底噪”文件后要在提交說明里寫清楚改了哪個地址、為什么改方便后人排雷。有位同行為了趕節(jié)點跳過仿真直接上車結(jié)果一個狀態(tài)遷移順序錯誤把預(yù)充電阻燒了他蹲在車間整整三天。從那以后再小的改動我也堅持先跑仿真再上車。希望這些方法和踩過的坑能幫你在整車控制器開發(fā)這條路上少走彎路也希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
95人妻爽爽人人做人人澡| 少妇人妻精品| 青女在线| 欧美日韩国产黄色片| 精品久久久久,69国产成人精| 大香蕉青青9| 久久亚洲AV无码专区国产精品 | www.AV有限公司一区| 人人爱人人操人人性| 蜜桃精品视频一区二区三区| 青青草天天亲夜夜操网| 色婷婷一区二区三区久久| 中亚精品极乱| 秋霞久久亚洲精品成人| 久久久亚洲| 9 7超碰在线免费观看| 国产精品久久久久久久AV大片| 国产91丝袜在线播放蜜月| 天天插天天操| 伊人久久婷婷| 欧美亚洲宗合色性图| 日韩人妻中文视频| 精品一区二区三区麻豆| 精品人妻一区春色| 亚洲男人天堂网久久| 精品国产一区二区三区在线播出| 久久中久文96| julia ann久久| 日本三级黄页| 日韩99999色| 日韩亚洲国产视频| 国产亚洲福利第一页丝袜| 伊人久久婷婷| 成人AV在线电影| 无码人妻一区二区三区色欲aⅴ| 久色99999| 色麻豆AV| 欧洲色综合| 加勒比大香蕉视频在线| 丁香六月婷婷综合| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 啊啊啊啊啊啊啊啊视频| 久久夜夜夜| 国产丝袜视频| 中文字幕片| 色人久久| 色99视频| 国模吧 一区二区三区| 成人日韩3| 麻豆国产精品午夜视频| 日韩中文字幕视频| 亚洲在线| 国产高清自拍| 电家庭影院午夜69久久夜色精品国产69乱| 欧美洲精品一级| 久久网亚洲| 搡老女人老91妇女熟女| 久9久精品视频| 国产精品久久久九九九| 97中文字幕一区| 午夜精品久久久久久久久久久久久| 日韩猛交| 亚洲加勒比| 久草加勒比一区在线| 久久的免费性爱视频| 好涩综合| 91色婷婷综合久久中文字幕二区| 大香蕉中文| 黄色成人网久久久久久| 成人亚欧免费视频| 精品欧美А∨无码黑人大荫蒂| 日本不卡一二区| 91狠狠综| 多毛小伙内射老太婆| 91成人久久 | 精品国产www久久| 日本熟女免费視颖| 免费亚洲黄色视频在线观看| 色一射色一射| 毛片麻豆91糖心精品毛情片| 国产视频人人网| 国产性爱乱伦AV| 嗯嗯啊在线视频| 久久夜夜夜| 欧美人妻少妇| 一级特级aaaa毛片免费观看 | 国产天美传媒精品| 国产AV线| 蜜乳AV免费观看| 26UUU欧美激情一区二区| 爱媛媛久久国产福利| 五月婷婷六月丁香| 欧美一区二区三区大综合| 久久国产精品熟女人妻| 欧美色乱| 国产福利精品最新在线| 99无码视频| 午夜亚洲| 91粉芽高清在线一区二区| 国产原创精品| 精品视频久久区| 91A欧美电影网站| 少妇色综合| 亚州乱码中文字幕综合久久久| 激情婷婷丁香网| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 开心婷婷五月| 91天堂| 人人操人人大香蕉| 日本精品九九九| 极品销魂美女一区二区| 日本伦乱九九九综合| 懂色AV一区二区三区| 亚洲熟妇丝袜在线观看| 日韩青久久| 欧美色视| 91黑丝露脚| 美国三级日本三级久久99| 香港澳门日本三级网站| 国产精品亚洲四五区在线观看| 国产精品一区二区三区在线| 中文字幕性感少妇av| 九九九九九九九精品视频| 国产女生在线| 91xingse| 中文字幕丰满子伦无码专区在线视频最新| 婷婷色色五月天| 婷婷10月天青娱乐| 欧美少妇熟女| TS人妖另类精品视频系列| 天天干天天做| 少妇精品久久久八区九区| 国产区在线| 人人爱操| 青青草中文-久久青草精品一区二区三 | 免费在线观看国内色片网站网址| 国产又操| 青青草福利视频| 东京太热男人的天堂久久久| 黄骗免费网站| 国产精品人人爽人人做可爱福利| 国产综合永久精品日韩鬼片| 久久久久人妻| 久草资源在线视频官方总站日韩丝袜美腿 | 好湿好紧视频| 99无码| 亚洲日韩在线a不卡99精品| 日韩精品在线观看观看| 婷婷五月天小说| 国产精品制服丝袜中文字幕日韩一区二区三区 | 久久黄片国产一区二区| 99热色精品| 亚洲综合888| 天天看,天天做| www.yw尤物| 日日A∨| 中 文字幕一区二区三四 五 区日 日 骚| 男插女青青影院| 懂色影视久久| 翔田千里爆乳巨臀无码| 97 亚洲 日韩 欧美 在线| 五十路三级片| 岛国大片在线观看网站入口| 久碰视频| 亚洲国内精品成人不卡| 久操免费观看| 欧美亚洲日本视频久久久| 97超碰色五月| 国产美女91视频| 东京太热男人的天堂久久久| 午夜.DJ高清在线观看免费7| 欧美白嫩在线放| 裸体美女国产免费久久久网站| 97视频620| 色综合大香蕉| 一区三区啪啪| 成人一级二级| 中文字幕一区二区三区高清| 色五月天AV| 少妇高潮九九九九| 2018色综合天天操| 久久精品亚洲婷婷| 蜜桃臀一区二区三区久久| 国产精品久久久吖| 亚洲男人的天堂亚洲| 中文字幕诱惑制服人妻丝袜美丝袜美| 久96热在线观看视频| 激情第四色| 日本高清视频在线观看黄已三辽| 人人操人人操人人操人人操人人操人人人11.CM| 色999人与兽| 亚洲在线91| 九九99久久| 伊人午夜福利视频| 人人干人人操人人..com| 六月婷婷一区二区三区| 老子午夜伦不卡影院| 一级久久性爱视频| 国产一区二区精品久久久不卡蜜臀| 精品欧美老熟女一二区| 亚洲国产一级精品毛一级精品看免费视频| 亚洲图片 激情小说| 国产精品永久免费10000| 欧美日韩超碰在线| 欧美中出| 欧美无圣光在线| 中文字幕熟女人妻丝袜| 中文字幕在线观看AV| 日韩在线电影| 婷婷色网| 综合网亚洲| 观看免费区二区三区二| 91精品国产91久久福利| 久久久穴999| 自拍偷拍 日韩欧美| 欧美激情 日韩精品| 欧美日韩另类在线| 东方亚洲在线操逼天堂| 伊人操你| 黄色av播放免不| 被体育老师抱着c到高潮| 婷婷人妻激情| 欧插网站| 少妇一级婬片免费放一级a性色.| 亚洲天堂电影网| 色色色99| 免费国产电影一区二区| 99re6国产精品99re| 精品国产一级久久| 综合网亚洲| 麻豆性爱视频在线播放| 综合婷婷| 中文字幕,人妻,日韩| 成人一区二区三区四区| 久久久激情| 加勒比伊人| 人妻 欧美 中文| 秋霞免费AV| 欧美色院| 精品久久9| 久久同城AV| 淮穴色AV| 欧美日韩午夜精品一区二区三区| 99黄页网站| 日韩婷婷| 日韩一级成人毛片免费观看| 日韩小电影| 欧美日本天堂| 国产亚洲在线观看| 在线观看无码三级少妇| 国产一级内射高清视频| 另类欧美| 任我爽视频在线观看| 欧美黑人精品一区二区| 中文字幕丰满人妻日本| 天天影视之亚洲综合网| 国色天香av| 色婷婷激一区二区三区 | A片 AV一级在线播放观看免费| 狠狠入| 久久精品72| 色婷婷狠狠18禁| 黄色香蕉视频网站一区| 亚洲97精品| 最新av在线| 日韩pv中文| 久久久精品视频免费观看| J?P?NESEHD熟女熟妇伦| 97亚洲色图| 日本熟妇色熟妇在线视频播放| 中文无码一二三区| 999久久久免费精品国产牛牛| 日韩 女同 综合| 中文字幕精品丝袜| 国产一区96在线| 欧美一级A片在线看视频性色| 亚洲av噜噜噜噜噜噜| 91高清日| 啊啊啊啊好疼| 少妇熟女视频一二三区| 日韩欧美中文字| 黑人天8A∨高清网站| 玖玖色综合| 99精品成人免费看| 亚洲无码一二三区| 日韩人妻无码精品系列| 国产91丝袜 在线播放| 99re6国产精品99re| 国产高清不卡视频| 亚洲瓯美色图| 91欧美美女日韩国产婷婷| 97超碰jingpin| 色官网在线| 欧美自拍偷拍免费观看| 亚洲色欲天天人妻无码系列专区| 探花一区在线| 欧美性爱在线无码| 欧美精品日韩一区二区| 五月色网| 插入综合网| 韩日精品四区| 日日干日日操五月天伦理视频| 污啪啪啪视频| 日本人体九九九九九九| 日韩精品三区四区| 亚洲成人精品久久久| 国产AV人人 夜夜人人澡| 好好的日:com久久九九| 色偷综合| 欧美图片校园春色| 九t超碰| 亚洲色图日韩丝袜制服一区二区五月在线 | 亚洲 在线| 国产捆绑一区| 超碰成人公开| 性爱1区| 亚洲综合色网| 999日韩中文精品观看视频。| 无码99| 爆乳免费黄网站| 色好看av| 熟妇一区,二区,三区。| 青草精品视频一日本久久久久网站| 亚洲蜜臀精品视频久久| 骚逼一区二区| 一级毛片电影免费看| 国产精品久久久久久久电影渣男| 天堂69亚洲精品中文字| 熟妇人妻精品一区二区视频色欲| 99色悠悠| 九九九九精品一区| 偷拍盗拍亚洲色图图片| 最新精品久久蜜桃 | 精品国产精品一区二区| 96AV精品| 超碰午夜| 高清国产无码av| 欧美色图99| 国产精品一区二区三| 91在线视频国产网站| 亚洲影院成人| 久久久 国产精品| 视频二区美腿丝袜制服人妻欧美| 手机久操欧美综合色码| 美女诱惑久久| av日韩在线观看电影| 97色伦欧美| 久久婷婷亚洲欧| 一本色道久久综合精品婷婷| 91在线超高颜值国产| 国产亚洲在线观看| 2017大香蕉国产精品久久| 日韩欧美麻豆 | 欧美在线伊人色| 97欧美色综合| 精品国产无码中文| 亚洲国产精品久久久久婷婷青年| 黄久久| 亚洲性爱成人| 免费看毛片操穴| 91熟女.com| 亚洲学生妹高清av| 久久精品美女一区| 色阁阁AV综合网| 成人线上超碰| 伊人成人中文字幕久久网| 亚洲欧美日韩国产丝袜自拍中文| 亚州熟女乱伦| 91精品电影18| 女性91网站| 国产AV高清AV无码| 老鸭窝日丰县女人| 天天干人人干天天日97| 亚洲欧美日韩有码| 国产精品白领在线观看| 国产青一二三| 白丝AV| 丁香婷婷大香蕉| 性交一区二区在线播放| 国产一区自拍欧美日韩| 极品内射| 在线99热| 超硑97精品| 亚洲精品人体| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国产精品高潮呻吟av久久4虎| 婷婷综合五月| 亚洲天堂男| 99热99色| 久久一级无码精品毛片6| 国产13区| 日韩操逼性鲍| 九草在线大香蕉| 国产精品永久免费10000| 熟女天天干| 日韩av免费一级电影| 亚洲中文人妻色| a亚洲欧美色欲| 操我啊啊啊啊啊| 精品无码久久久久久久杏吧| 激情亚洲天堂| 欧美视频一区二区在线| 加勒比综合在线| 五月天伊人| 成人久久久| 岛国AV一区二区电影| 人人看人人插| 东方亚洲在线操逼天堂| 欧美日韩性爱精品| 亚洲欧美在线丝袜| 午夜精品99久久久久传媒| 亚洲AV无码乱码| 丝袜狠狠草尤物人妻av91| 丝袜人妻av一区二区| 欧美老妇女内射网址| 国产宅男宅女在线观看| 96国产精品| 国产久久一区二区午夜| 一级AV性爱| 中文欧丝袜诱惑| 丁香六月婷婷久久综合| 91大神精品长腿在线观看网站| 殴洲老熟女| 国产精品久久久三级无码| 九月伊人中文字幕| 伊人操操| 欧美男人一区| 国产欧美精选自拍一区| 国产蜜臀精品一区二区尤物| 97超级久久强资源| 午夜一区二区三区国产| 一区二区高清视频| 亚洲图片欧美另类综合免费视频大大香| 亚洲熟女av日韩熟女| 99无码| 激情五月天校园春色网| 水澄无码AV| 99久国产精品午夜性色福利| 久超碰这里只有精品| 久久超碰爱| 亚洲欧美在线观看免费| 婷婷五月天激情四射| 97精品国产精品免费观看| 激情五月综合| 婷婷丁香五月天综合东京热| 亚洲日韩人妻中文字幕一区| 偷拍亚洲视频一区二区三区四区| 色九月综合| 六月天婷婷| 97人妻免费中文字幕| 97日韩| 亚洲中文丝袜美腿诱惑字幕| 乱伦av麻豆| 精品少妇一区二区| 欧美 青青草| 天天躁日日躁AAAXX| 乱伦熟女专区| 国产精品乱码久久| 嗯嗯嗯啊啊在线观看| 国产AV人人 夜夜人人澡| 99激情视频| 午夜爽爽爽在线观看永久入口姬片| 999综合网| 亚洲色图 91| 劲爆欧美人妖三区91| 国产久久久9999| 国产久久久| 久久免费看高潮毛片韩国| 成人网址在线观看| 日本色色的视频| 久久久久久人妻一区精品色欧美| 日韩无码一区二区三区| 欧美狠狠狠| 久久风骚城市| 死我十八禁| 蜜桃视频一区二区三区| 人妻 欧美 中文| 国产性刺激| 大香蕉伊利av| 人妻精品综合中文字幕在线 | 爱妻综合网| 天天影视射综合网| 性性久久| 九9热伊人| 久热久操| 亚洲精品一卡二卡三卡福利视频网站| 日产中文字幕2020| 色九九九| 欧美暴力猛交| 青青草乱入乱欲视频在线观看| 999久久久九| 神马福利久草| 美女在线H91| 97色论| 97天天做| 中文字幕超碰CAO| 亚州综合AⅤ| 亚洲欧美在线综合| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 熟女一区二区| 99re9这里只有精品| 日韩在线人妻网站| 91色色综合| 四虎影视 亚洲无码| 亚洲做性| 国产在线播放成人免费| 99亚洲国产精品色一区二区三区| 翔田千里一区二区三区奶水| 日va操| 久草免费在线一区二区| 丁香五月影院| 中文字幕精品丝袜| 蜜臀一二三| 人妻少妇精品无码专区二区密桃| 久久啊啊| 人人 操人人 操人人| 国产女人高潮嗷嗷嗷叫小说| 中国一区二区亚洲人妻| 亚洲日本成人动漫| 美女主播色欲91抠b在线播放| 国产精品第二页| 天天日骚逼熟女| 东京热大香蕉| 人妻 中文 日韩| 91操碰| 91精品少妇搡搡搡| 欧美性爱五月天| 91美女中出| 一区二区三区四区五区高清无码永久视频 | 麻豆精品.欧美精品.日韩精品.| 久久人妻熟女一区二区| 日韩人妻一区二区| h无码动漫在线观看| 思思热在线| 日韩图区| 欧美性天天| 欧美天天干| 99热成人| 亚洲色图 图片| 亚洲欧美不卡线| 无码av永久免费专区网站| 99激情视频| 中文字幕人乱码中文字的预防方法| 青青草公开在线免费不卡视频| 免费视频在线一区二区不卡| 色情五月综合婷婷| 97在线观看免费视频l| 亚洲情色视频| 亚洲一区中文字幕一区| 蜜臀亚洲综合一二三四区| 综合色一区三区二区| 天天摸夜夜添无码小视频| 亚码激情| 中文字幕一区二区三区人妻不卡| 国产精品人妻熟女aⅴ| 蜜臀av在线播放一区二区三区| 久久草视频污视频| 天堂蜜桃无码视频一区二区| 富女玩鸭子一级毛片| 日本丝袜人妻内射| 久久免费中文字幕在线观看| 少妇熟女视频一区二区三区| 加勒比在线观看一区二区| 欧美综合站| 视频在线97| 天堂俺去俺来也www久久婷婷| 久久久com| 天天日天天看| 97人人超| 久久久久成人网| 免费超碰97在线观看| 不卡超碰护士AV在线免费播放| 97操97干| 亚洲乱码尤物193YW| 西西美女视频网| 91久久久亚洲| 色av中文字| 人人妻人人爽一区二区三区| 丁香五月婷婷基地| 色与欲影视天天看综合网| 唐山老熟妇露脸啪啪叫| 亚洲日本天堂| 黄片www.| 黑白配性爱AV成| 熟妇操花| 精品人妻视频一区二区在线播放| 亚洲成a人片在线观看中文!!!| 少妇内射www在线观看视频| 亚洲精品成人动漫在线| 欧美日本天堂| 国产男人又猛又粗又爽| 五月天欧美色图| 婷婷亚洲五月***久久| 中文字幕精品三级久久久| 亚洲精品亚洲人成在线麻豆| 久9综合在线| 爱我干综合| 99热销国产这里有精品| 四月丁香婷婷| 久久国产免费激情视频| 国产精品电| 91九色精品熟女内射| 一起草视频在线| 一区二区三区四区五区高清无码永久视频 | 久久免费看高潮毛片韩国| 高清有码一区二区| 欧美少妇性乱| 日韩国产中文字幕| 国产精品香蕉| 99re这里| 五月婷婷五月天| 天天干人人看综合| 青青欧洲黑| 婷婷久久大香蕉| 97操| 俞拍自拍| 欧美拳交在线播放| 另类TS人妖一区二区三区 | 超碰人人妻| 国产男女边吃边摸视频网站| 日日碰视频网| 精品国产乱码久久久久A| 操www| 久热这里| 第二页中文字幕| 美女写真| 精品午夜福利导航| 超碰久久网| 小少妇| 欧美一区二区福利在线| 精品免费囯产一区二区三区| 日日夜夜青青草母狗| 色色综合网站| 精品人妻av在线播放| 好吊色综合| 97久久国产精品| 中文字幕视频2区| 韩国黄色片精品久久久| 国产日韩欧美中文在线播放| 97欧美综合| 久欲AV| 久久夜嗨| 欧美亚洲综合色| 久久精品国产亚洲AV嘿嘿| 精品欧美乱码久| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 天天搞在线综合网| 免费观看成人www精品视频| 天天影视91看看| 黄日韩| 亚洲男人的天堂一区二区| aaa一级黄片| 日逼视频日本| 综合亚洲欧美精品日韩?v| 999久久久久久久久| 97AV在线免费观看| 亚洲熟妇无码一区二区三区| 色欧美天天| 日本日逼视频网| 日韩国产乱子伦App| 国产丝袜美女在线一区| 国产h小视频在线观看免费| 91国产丝袜白虎| 国产91丝袜在线播放蜜月| 欧美性生活内射| av午夜玫瑰| 一区二区三区男女操逼黄色小电影| 天天天天干| 91久操| 久操大香蕉| 亚洲偷拍自拍在线视频| 郑州宾馆老熟女露脸啪啪| 色操逼网| 中文字幕日韩专区精品系列| 私人尤物在线精品不卡| 玖玖爱影院| 亚洲超碰97| 久操免费在线| 在线视频 亚洲精品| 亚洲天堂精品日韩电影| 亚洲自拍偷拍视频在线| 91免费看一区二区三区| 亚洲无码偷拍| 高清在线不卡一区二区 视频| 国产在线综合福利网站| 天天看天天干| 日韩性爱视频在线免费观看| 亚洲一区二区久久久久| 艹少妇网站| 新版天堂中文资源8在线| 动漫爆乳3D奶水一区在线观看| 色小视频蜜乳| 五月丁香网站| 欧美大香蕉在线观看| 五月天伊人| 神马久久69| 无码九九九九| 精精品人妻一区二区三区| 欧美日韩97| 自拍偷拍草一草| 国产中文精品一区二区在线观看| 日本欧美亚洲高清在线看| 青青草天天亲夜夜操网| 久久一二三四五六七八九区区区 | **一级毛片国产| 97人妻碰碰中文无码久热丝袜| 99热这里是精品| 啊啊啊啊啊啊啊国| 久草综合视频| 亚洲综合色图欧美| 亚洲国产美女久久久久| 99国产在线 精品 视频| 综合久久中文字幕综合日韩精品| 久99久视频精选| 欧美情色贴图| 91操熟女视频| 亚洲码在线中文在线观看| av网页一区二区三区| 91啪啪| 91人妻视频| 无卡一区=区| 九九亚洲| 日韩亚洲国产视频| 蜜桃视频精品一区二区| 330dv亚洲成年视频网| 精品无av| 俄罗斯一区二区视频在线观看| 日本高清有码网址视频| 欧美日不卡| 噜噜噜亚洲精品| 蜜臀99久久国产| 中文字幕精品一区欧美| 色综合色综合网| 亚洲精品美女操逼| 超碰97网站| 成年人一级黄色毛片大全在线观看| 小泽玛利亚一二三| 天天干夜夜肏| 久久性生大片免费观看性| 国产精品久久成人免费| 欧美一二三区四五区| www久久精品| 亚洲欧洲综合成人av一区| 淫妻综合网| 亚洲日韩97| 国产精品区在线12p| h在线看免费版在线看| 熟妇高潮精品一区二区三区下载| 少妇综合网| 91色婷婷综合久久中文字幕二区| 欧美在线l亚洲| yiqicaoav| 丁香五月电影| 春色综合免费| 久久久久久久亚洲Av无码| 丰满翘臀美女影院视频| 亚洲高清欧美总合| 丝袜剧情| 使劲用力艹少妇视频一区二区| 青青草国产欧美非洲黑人| 91精品丝袜在线观看| 狠狠2050在线观看| 日本成人在线不卡一区二区三区| 五月丁香啪啪| 加勒比99999| 色官网在线| 免看60秒涩涩视频| 欧美日韩国产高清在线一二三区| 超碰97在线 欧美 国产| 综合久久9| 亚洲av夫妻操穴网| 欧美亚洲丝袜人妻制服中文99| 囯产操逼片| 东京热99999| 国产91精品福利在线| 搞中出视频在线观看| 久艾草在线精品视频在线观看| 亚洲、日韩、综合、另类| 97爱| 一区二区首页| 天天视频黄| 欧美色图片91| 国模私拍一区二区三区神乳| av情色影音| 国产日韩无码一区二区三区久久区| 久久手机视直播| 黄色免费网| 妇女视频网站| 亚欧成人综合影院| 亚洲清纯唯美| 91九色在线| 天天亚洲| 中文字幕加勒比海高清无码免费视频| 操国产高清| 国产精品亚洲四五区在线观看| 超碰免费人妻人人| 亚洲永久永久永久永久一级一级一级精品 | 在线情色电影 91大| 啪一啪免费视频| 国产精品ⅴ无码大片在线看.| 超硑97精品| 日本免费专区| 久久线上视频免费看| 欧州色图区| www.久久制服糖| 亚洲诱惑天堂| 操久久久久久| 日韩黄片影院| 亚洲少妇免费视频\| 欧美日韩91| 亚洲乱码精品一区二区| 亚洲欧美在线综合| 欧美婷婷| 乱伦日本中文自拍| 色香伊人| 婷婷综合激情| 久久伊人最新网址视频| 伊人操操| 国产精品大香蕉| 亚洲国产成人精品久久久国产成人一区二区| AV一二区| 欧美劲爆视频一区二区| 熟妇熟女一区二区三区| 伊蕉97蜜桃97狠狠综合干 | av影片在线观看不卡| 男人网站婷婷| 麻豆60秒| 97精品熟女少妇一区 | 日本一片一区| 蜜桃无码AV一区二区| 九九九久久久| 少妇激情AV| 欧美性战999| 亚洲国产欧美中日韩成人综合视频| 九九碰九九爱97超| AV天黑人| 97超碰天天爱天天爱| 精品一区二区成人动漫| 欧美黄色手机在线观看| 天美传媒精品久久视频| 午夜精品久久久99| 日韩无码成人电影| 无码人妻精品一区二区中文| 91岛国动作片| 亚州欧美综合| 欧美少妇第一页| 婷婷五月综合在线| 日本三级一区二区 在线| 色欧洲| 公司1区2区3区精产精| 亚洲人在线| 亚洲一区日韩| 日韩免费大片一级播放| 翔田千里A片一区二区| 性高潮久久久| 色偷综合| 四虎免费看黄| 天无日色综合| 在线不卡视频| 中国一区二区亚洲人妻| 欧美精品久久久久久久丰满| 夜夜躁狠狠躁日日躁av| 久超碰这里只有精品| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 亚洲影视综合| 91欧| 丰满少妇精品一区二区| 亚洲国产丝袜在线观看| 欧美亚洲影视| 青青草日逼视频| 欧美色婷婷| 色婷婷丁香五月| 岛园激情| 天天日天天干天天整| 三级激情网站| 欧美不卡在线一区二区| 成年无码动漫av片无尽在线 | 久久超碰大香蕉| 亚洲射综合网| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 中文一区在线视频| 精品无码不卡视频| 无码精品久久| 中文字幕,人妻,日韩| 无码区蜜乳| 黄色片,com| 亚洲无码免费看| 大香蕉专区| 殴美在线AⅤ| 国产精品爽爽va在线观看98| 亚州AV无码国产精品| 插日本熟女视频| 黑人精品成人一区二区三区 | 婷婷av在线中文字幕| Sekablack无码一区| 肏逼福利网站| 色欲av一区二区三区蜜芽| 国产又黄又粗的视频| 新久久AV| 国产小u女在线观看| 中文字幕在线第二页| 天堂综合| 亚欧美色图| 国产精品久久久亚洲第一牛牛_在线观看| 一卡二卡在线播放| 精品亚洲天堂| 国产一区二区免费福利片| 久久久久人妻二区精品叶可怜| 熟女五十路一区二区三| 久久久无码av精| 色色五月天婷婷| 后入 亚洲 美女 射| 超碰97男人| 欧美天天综合站| 外国免费性情大片| 成全动漫视频观看免费下载| 尤物黄色在线观看网站| 国产精品亚洲免费| 亚洲熟妇图片| 韩国嫰模上门援交视频| 深夜国产福利| 成人一级性爱| 免费黄色视频网址| 冬京热男人的天堂| 久久影视二区三区行押| 男人的天堂va| 天天看天天在线精品| 中字乱伦AV| 日日干夜夜操视频h| 日本精品九九九| 久久久久久久97| 精品视频免费在线一区| 综合激情五月天| 日日骚 av| 国语精品av| 国内毛片无遮挡国产| 亚洲色欲天天人妻无码系列专区| 97色插| 精品久操| 男女性无套 免费九一| 国产精品一级毛片不卡视| 丁香五月天啪啪| 熟妇高潮一区二| 亚州性色| 天天做日日做天天欢。| 91N欧美| 精品一区二区三区蜜桃臀www| 96久久久久久久| 亚洲成人日韩小说| WWW4虎| 青青草在线视频播放器| 免费αV在线视频| 99这里有精品| 99热日| 秋霞一级鲁丝片A片| 日韩无码成人电影| 九区国产| 中英熟女操女| 99热精品在线在线| 欧美激情亚洲情色| 日韩av电影成人在线| 五月婷婷丁香六月| 九草九九九| 中文字幕一二区二三区人妻专区| 国语人妻精彩刺激| www男人天堂| 人人摸人人摸人人干| 日日干夜夜操视频h| 亚洲日韩精品一区二区| 很很热性爱视频| 伊人网在线视频| 四虎午夜影院| 老女人爆菊| 亚洲色交| 五月丁香影视| 精品十八在线观看| 亚洲二区精品在线观看 | 五月婷婷色色| 欧美另类天堂| 国产综合永久精品日韩鬼片| 97精品国产手机| se吧提供91精品国产91久久久久久| 嗯嗯嗯好爽| 日夜精品| 五月天激情小说网| 久久亚洲一区女同性恋中文字幕| 91三级理论片播放器| 嗯嗯,好大,好爽,好骚| 人妻性爱一区二区| 麻豆国产原创AV色哟哟 | 91视频女生| 欧美精品1区2区3区| 人澡逼| 黄色片大香蕉| 少妇激情AV| 日本在线不卡v二区| 欧美人人天天网| 久久久亚洲高清不打码| 色男人色天堂东京热| 淫荡熟女乱伦网| 成人精品欧洲亚洲| 美中日韩无码| 九九九只有精品| 90后性网国产欧美| 91观看 国产白丝| 97精品国产97久久久久久| 久久久久久9| 日本不卡码黄色| 少妇一区二区三区精选| 97一区二压| 久久九九国产精品| 97精品一区| 东京日日夜夜| 老熟女乱伦片| 330dv亚洲成年视频网| 婷婷激情五月天小说网| 丰满欧美放荡少妇在线| 丁香六月婷婷| 国产强奸无码乱伦| AV在线资源| 一区二区三区精品久久| 91久久婷婷| 亚洲人在线成线成人| 91看黄片| 男人天堂久久精品不卡| www九九热| 性天堂| 久久人爽| 日本三级韩三级99久久| 亚洲91在线| 夜夜国产一区| 亚洲免费人妻在| 97手机日韩| 人妻无码久久一区二区三区免费| 欧美系列在线一区二区| 2017天天操| 久久精品国产99国产精品亚洲| A片 AV一级在线播放观看免费| 亚洲一区二区AV| 人人搡人人肉久久精品| 丁香五月综合| 亚洲一区日韩精品| 夜夜精品视频一区二区| 色噜噜国产在线| 国产三区免费在线观看| 精品午夜福利| 久久一区二区加油站| 亚洲性爱高潮影院| 在线国产福利网址导航| 97精品在线视频| 综合97亚洲| 殴美性色a级欧美| 秋霞蝌科网日本一区| 免费a v| 人妻 欧美亚洲| 中文字幕在在线观看网站| 果冻国产精品麻豆成人av| 91欧美大片| 欧美人妻另类在线| 在线 亚洲 网爆 自拍| 日本 欧美 国产一区| 五月天久久综合网| 91成人无码| 亚洲自拍青操视频| 蜜桃视频精品一区二区三区| 天天看,天天做| 色操逼网| 日韩肏逼视频| 午夜九九| 亚洲淫色网中文| 9久综合网| 国产精品成人无码av| 亚洲欧洲综合av在线| 91色拍| henhen91| 国产热av| 午夜精品久久久99| 蜜桃久久综合视频| 亚洲夜夜欢无码一区二区| 91在线视频观看国产| 国产中出内射一区二区| 色九久| 欧美丝袜亚洲| 夜夜青青无码影院| 日本欧美色| 青青草亚洲一区 | 强奸乱伦Av网| 日韩熟女操逼| 久久久999| 97超碰超| 怡红院久久老司机| 校园春色欧美| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 女人被添高潮免费视频| av无码精品久久久久| 天天操天天射天天日| 黄色操人| 国产精品久久aV| 999久久久| 亚洲丝袜诱惑| 91欧美综合| 国产馆| 国产97亚洲| 亚洲日韩美女丝袜美腿人妻视频| 一卡二卡在线播放| 日日嗷| 国产熟女自拍| 无卡一区=区| 欧美日日人人天天| 淫穴高潮色图| 欧美亚洲韩国视频十五区 | 日本欧美色| 麻豆激情综合| 秋霞鲁丝午夜无码一区二区三| 情色五月天网| 插入粉嫩少妇视频| 超碰9 7女人 | 色香伊人| 欧美亚洲清纯| 91精品国产91久久久久久久久久久久| 久久9999 | 另类av综合久久| 久草男人天堂| 国产热av| 亚洲男人在线观看天堂| 青娱乐91| 中文字幕av亚洲精品| 91av熟女人妻| 免费无码国产精品v片在线观看| 一类无码操逼视频| 午夜黄色免费在线观看| 操操碰| 亚州操操穴网| 天天干天天日天天射黄色片| 91三级理论片播放器| 91精产一区二区三区| 伊人视频| 超碰色大香蕉| 97欧美综合| 麻豆视频国产一区二区| 可以在线观看的黄色网址| 岛国艾薇凹凸视频天堂| 大香蕉综合| 清清一区二区三区四区不卡视频| 欧美 传媒 麻豆 日韩 偷拍| 日韩无码久久熟女一级片| 中文字幕一区二区三区四五区| 精品在线蜜臀| 曰韩操B| 操操碰| 精品人妻一区二区三区-国产精品| 99综合自拍| 欧美,亚洲,日韩,v,天堂,手机在线观看| 超碰诱惑| 在线综合 亚洲 欧美中文字幕 | 易易A毛视频| 日韩免费簧片| 色成人Www精品永久观看| 国产精品久久久亚洲一区| 亚洲美女色图|