(學習日記)2024.02.29:UCOSIII第二節

寫在前面:
由于時間的不足與學習的碎片化,寫博客變得有些奢侈。
但是對于記錄學習(忘了以后能快速復習)的渴望一天天變得強烈。
既然如此
不如以天為單位,以時間為順序,僅僅將博客當做一個知識學習的目錄,記錄筆者認為最通俗、最有幫助的資料,并盡量總結幾句話指明本質,以便于日后搜索起來更加容易。


標題的結構如下:“類型”:“知識點”——“簡短的解釋”
部分內容由于保密協議無法上傳。


點擊此處進入學習日記的總目錄

2024.02.29

  • 四、UCOSIII:新建工程
    • 1、創建文件夾
    • 2、新建工程
  • 五、UCOSIII:調試配置
    • 1、設置軟件仿真
    • 2、修改時鐘大小
    • 3、添加頭文件路徑
  • 六、UCOSIII:調試模式中示波器的使用
    • 1、 在app.c中編寫main函數
    • 2、調試模式
    • 3、使用示波器
    • 4、常見錯誤
      • 1. Build時報錯 Error: L6218E
      • 2. keil5軟件仿真沒有實時波形
      • 3. Build時報錯 error 65
      • 4. Peripherals顯示空白
      • 5. 調試模式時,程序前沒有灰塊

四、UCOSIII:新建工程

1、創建文件夾

文件夾名稱子文件夾孫文件夾文件夾作用
Doc··用于存放對整個工程的說明文件,如readme.txt。通常情況下,我們都要對整個工程實現的功能、如何編譯、如何使用等做一個簡要的說明
Project··用于存放新建的工程文件
UseruC/OS-IIISource用于存放μC/OS-III源碼,其中的代碼是純軟件相關的,與硬件無關
UseruC/OS-IIIPorts用于存放接口文件,即μC/OS-III與CPU連接的文件,也就是我們通常所說的移植文件。要想μC/OS-III在單片機上運行μC/OS-III,這些移植文件必不可少
UseruC-CPU·用于存放μC/OS-III根據CPU總結的通用代碼,只與CPU相關
UseruC-LIB·用于存放一些C語言函數庫
··用于存放用戶程序,如app.c,main()函數就放在app.c文件中

在這里插入圖片描述

起文件夾名字一定不要用μ,Keil無法識別這個字符,會報一堆錯,未來的我連夜回來修改博客(哭)

2、新建工程

  1. Project文件夾新建項目
    在這里插入圖片描述
    在這里插入圖片描述
  2. 起一個英文名字
    在這里插入圖片描述
  3. 選擇ARMCM3
    在這里插入圖片描述

如果沒有ARM的話,參考以下文章:
5.38版本的 Keil5 下載、安裝、激活 ——2024年1月20日
我發現我的Keil沒有ARM的PackPack Installer還是灰色無法點的,只能花了一中午重裝了Keil,太傷心了
在這里插入圖片描述

  1. 設置運行環境
    選擇好處理器,單擊OK按鈕后會彈出Manage Run-Time Environment選項框。這里我們在CMSIS欄選中COREDevice欄選中Startup這兩個文件即可
    在這里插入圖片描述
    單擊OKCOREStartup這兩個文件就會添加到我們的工程組里面。
    在這里插入圖片描述

其中startup_ARMCM3.s是匯編編寫的啟動文件,system_ARMCM3.c是C語言編寫的跟時鐘相關的文件。 更加具體的可直接閱讀這兩個文件的源碼。只要是Cortex-M3內核的單片機,這兩個文件都適用。

  1. 添加文件組
    在工程里面添加UserμC/OS-III SourceμC/OS-III PortsμC/CPUμC/LIBDoc這幾個文件組, 用于管理文件
    鼠標右鍵Target1,在彈出的選項里面選擇Add Group即可添加文件組
    在這里插入圖片描述
  2. 添加文件
    分別在User文件夾中新建app.c,在Doc文件夾中新建readme.txt
    在這里插入圖片描述

在這里插入圖片描述
將文件添加到工程中,添加方式是雙擊文件組并選擇文件
在這里插入圖片描述

五、UCOSIII:調試配置

1、設置軟件仿真

在這里插入圖片描述

2、修改時鐘大小

在系統初始文件中,規定時鐘為25M
在這里插入圖片描述
在軟件仿真的時候,確保時間的準確性,代碼里面的系統時鐘跟軟件仿真的時鐘必須一致, 所以Options for Target->Target的時鐘應該改成25M
在這里插入圖片描述

但是本人的keil時鐘修改選項是灰色的,查了一下資料才發現是版本的問題
在這里插入圖片描述
參考資料:
keil5.36無法修改XTL時鐘,導致軟件調試時定時時間錯誤的解決方法
如果是高版本的keil,應該是不需要修改時鐘選項(猜測)

3、添加頭文件路徑

在這里插入圖片描述

六、UCOSIII:調試模式中示波器的使用

1、 在app.c中編寫main函數

圖示與程序如下:
在這里插入圖片描述

int flag1;
int flag2;void delay(int count)
{for (; count!=0; count--);
}int main(void)
{/* 無限循環,順序執行 */for (;;){flag1 = 1;delay( 100 );flag1 = 0;delay( 100 );flag2 = 1;delay( 100 );flag2 = 0;delay( 100 );}
}

點擊Build,保證程序沒有錯誤,不然的話無法進入調試模式。
在這里插入圖片描述
在這里插入圖片描述

2、調試模式

  1. 進入調試模式
    在這里插入圖片描述
  2. 只有在程序前出現灰塊的程序才會運行
    在這里插入圖片描述

3、使用示波器

  1. 打開示波器
    在這里插入圖片描述

  2. 把變量加到示波器中
    在這里插入圖片描述

  3. 把變量的顯示改為bit
    在這里插入圖片描述

  4. 點擊Run,運行程序
    在這里插入圖片描述

  5. 示波器顯示如下
    在這里插入圖片描述

4、常見錯誤

1. Build時報錯 Error: L6218E

在這里插入圖片描述
修改后如下:
在這里插入圖片描述

參考資料:
Error: L6218E: Undefined symbol ImageARM_LIB_STACKZILimit (referred from startup_armcm4.o)

2. keil5軟件仿真沒有實時波形

在view中點擊 period windows update 即可
在這里插入圖片描述

參考資料:
keil5軟件仿真沒有實時波形

3. Build時報錯 error 65

參考資料:
keil仿真和使用邏輯分析儀調波形

4. Peripherals顯示空白

參考資料:
Peripherals顯示空白?

5. 調試模式時,程序前沒有灰塊

在這里插入圖片描述

  1. 將優化等級選為-O0,但可能會加大最終代碼大小
    在這里插入圖片描述
  2. 然后重建工程
    在這里插入圖片描述
  3. 進入調試界面,問題解決
    在這里插入圖片描述

參考資料:
keil5軟件仿真stm32設置 和 調試技巧

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713674.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713674.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713674.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WSL2外部網絡設置

1 關閉所有WSL系統 wsl --shutdown 2 打開Hyper-V管理器 3 將“虛擬交換機管理器”-> ”WSL連接類型“設置為“外部網絡” 4 啟動WSL系統,手動修改WSL網絡 將WSL網絡IP修改為192.168.1.9 sudo ip addr del $(ip addr show eth0 | grep inet\b | awk {print $2} |…

FFmpeg+OpenCV開發案例匯總

桌面共享工具(軟編版) 桌面共享工具(DXGI硬編版) 智能廣告大屏(可疊加透明廣告) Android手機屏幕RTMP推流工具(推麥克風版) Android手機屏幕RTMP推流工具(推揚聲器版…

FinalMLP:用于推薦系統的簡單但強大的雙流 MLP 模型

原文地址:FinalMLP: A Simple yet Powerful Two-Stream MLP Model for Recommendation Systems 了解 FinalMLP 如何轉變在線推薦:通過尖端 AI 研究解鎖個性化體驗 2024 年 2 月 14 日 介紹 世界正在向數字時代發展,在這個時代,…

Python并發編程:多線程-死鎖現象與遞歸鎖

一  死鎖現象 所謂死鎖:是指兩個或兩個以上的進程或線程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處于死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程…

持安科技孫維伯:零信任在攻防演練下的最佳實踐|DISCConf 2023

近日,在2023數字身份安全技術大會上,持安科技聯合創始人孫維伯應主辦方的特別邀請,發表了主題為“零信任在攻防演練下的最佳實踐”的演講。 孫維伯在2023數字身份安全技術大會上發表演講 以下為本次演講實錄: 我是持安科技的聯合…

【c++】 STL的組件簡介與容器的使用時機

STL六大組件簡介 STL提供了六大組件,彼此之間可以組合套用,這六大組件分別是:容器、算法、迭代器、仿函數、適配器(配接器)、空間配置器。 容器:各種數據結構,如vector、list、deque、set、map等,用來存放…

微信云開發-- Mac安裝 wx-server-sdk依賴

第一次上傳部署云函數時,會提示安裝依賴wx-server-sdk 一. 判斷是否安裝wx-server-sdk依賴 先創建一個云函數,然后檢查云函數目錄。 如果云函數目錄下只顯示如下圖所示三個文件,說明未安裝依賴。 如果云函數目錄下顯示如下圖所示四個文件&a…

EdgeX Foundry 邊緣物聯網中間件平臺

文章目錄 1.EdgeX Foundry2.平臺架構3.平臺服務3.1.設備服務3.2.核心服務3.3.支持服務3.4.應用服務3.5.安全服務3.6.管理服務 EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.org.cn/docs/edgex/edgex-foundry/1.EdgeX Foundry EdgeX Found…

Linux下設置網關以及網絡相關命令

在Linux下設置網關以及進行網絡相關的操作,通常需要使用一系列的命令。以下是一些常用的命令和步驟: 查看網絡接口信息 ifconfig:用于查看網絡接口的狀態和配置信息(已淘汰)。ip link:顯示本地的鏈路層設…

嵌入式 Linux 下的 LVGL 移植

目錄 準備創建工程修改配置修改 lv_drv_conf.h修改 lv_conf.h修改 main.c修改 Makefile 編譯運行更多內容 LVGL(Light and Versatile Graphics Library)是一個輕量化的、開源的、在嵌入式系統中廣泛使用的圖形庫,它提供了一套豐富的控件和組件…

ConfigurableBeanFactory學習

簡介 ConfigurableBeanFactory定義BeanFactory的配置。ConfigurableBeanFactory中定義了太多太多的api,比如類加載器,類型轉化,屬性編輯器,BeanPostProcessor,作用域,bean定義,處理bean依賴關系,合并其他ConfigurableBeanFactory,bean如何銷毀。ConfigurableBeanFactory同時繼…

微軟為金融界帶來革命性突破——推出Microsoft 365中的下一代AI助手:Microsoft Copilot for Finance

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎?訂閱我們的簡報,深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同,從行業內部的深度分析和實用指南中受益。不要錯過這個機會,成為AI領…

雷龍CS SD NAND(貼片式TF卡)測評體驗

前段時間有幸免費得到了雷龍出品的貼片式的TF卡的芯片及轉接板,兩片貼片式nand芯片+一個轉接板,一種一個已讓官方焊接完好;如下圖所示: 正面: 背面: 通過轉接板,可以將CS SD NAND(貼…

數電實驗之流水燈、序列發生器

最近又用到了數電實驗設計的一些操作和設計思想,遂整理之。 廣告流水燈 實驗內容 用觸發器、組合函數器件和門電路設計一個廣告流水燈,該流水燈由 8 個 LED 組成,工作時始終為 1 暗 7 亮,且這一個暗燈循環右移。 1) 寫出設計過…

關于DisableIEToEdge插件閃退問題的解決方案

關于DisableIEToEdge插件閃退問題.今天終于測試找到最佳解決方案了! 1.管理員權限運行Windows powershell. 2.執行一下兩條命令修復系統環境 DISM.exe /Online /Cleanup-image /Restorehealth sfc /scannow 3.關閉Windows安全中心的所有安全選項。 4.管理員權限運行…

【計算機考研擇校】四川大學vs電子科技大學哪個難度更大?

川大在文科,經管方面比科大強,醫學在國內都很強。但工科方面特別是電子信息領域明顯是科大強于川大。畢竟一個是綜合大學,一個是工科大學不可同日而語。 就業上,電子科大在IT領域的社會聲譽口碑不錯。就業一向都很好。這個多問問…

.datastore@cyberfear.com.mkp勒索病毒的最新威脅:如何恢復您的數據?

導言: 我們享受著數字化帶來的便利,但同時也要面對不斷演進的網絡威脅。最近出現的 .datastorecyberfear.com.mkp、[hendersoncock.li].mkp [hudsonLcock.li]、.mkp [myersairmail.cc].mkp 勒索病毒就是其中之一,它對我們的數據安全構成了…

張俊將出席用磁懸浮技術改變生活演講

演講嘉賓:張俊 空壓機銷售總監 億昇(天津)科技有限公司 演講題目:用磁懸浮技術改變生活 會議簡介 “十四五”規劃中提出,提高工業、能源領城智能化與信息化融合,明確“低碳經濟”新的戰略目標,熱能產業是能源產業和…

Python環境下一種改進的基于梯度下降的自適應短時傅里葉變換

在數字信號處理技術中,傅里葉變換及其逆變換是一種信號時頻分析方法。該方法將信號的時域描述及頻域描述聯系在一起,時域信號可通過正變換轉變為頻域信號,頻域信號可通過逆變換轉變為時域信號進行分析。但傅里葉變換及其逆變換是一種信號的整…

Linux/Centos 部署靜態IP,解決無法訪問目標主機、Destination Host Unreachable、無法ping通互聯網的問題

Linux/Centos 部署IP,解決無法訪問目標主機、Destination Host Unreachable、無法ping通互聯網的問題 Linux/Centos 部署靜態IP查物理機/自身電腦的IP設置VMware上的虛擬網絡編輯器設置網卡IP,激活至此就可訪問百度了 Linux/Centos 部署靜態IP 需要注意…