中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站虛擬空間更新緩存b2b平臺運營模式

網(wǎng)站虛擬空間更新緩存,b2b平臺運營模式,搭建wordpress,開發(fā)公司租賃機械車位價格在市場上有各式各樣的單片機,例如Arduino,51單片機,STM等。通常,我們都用其對應(yīng)的IDE軟件進行單片機的編程。這些軟件既負責(zé)將程序代碼轉(zhuǎn)寫成二進制代碼,即機器語言,也負責(zé)將該二進制代碼導(dǎo)入單片機。與此同…

在市場上有各式各樣的單片機,例如Arduino,51單片機,STM等。通常,我們都用其對應(yīng)的IDE軟件進行單片機的編程。這些軟件既負責(zé)將程序代碼轉(zhuǎn)寫成二進制代碼,即機器語言,也負責(zé)將該二進制代碼導(dǎo)入單片機。與此同時,有一個開源軟件,叫做Avrdude,可以將二進制代碼程序?qū)懭敫鱾€品牌的單片機中。該項目在Github上,支持Windows、MacOS、以及以Linux為內(nèi)核的系統(tǒng)[1]。這是由于許多單片機的公司的產(chǎn)品是開源的,也就是說將二進制程序代碼寫入單片機的報文是公開的,所以有這樣的電子工程師將這些寫入的報文做成程序供大家使用。

本文通過分析Avrdude的源代碼,大致了解一下二進制程序代碼寫入單片機的過程,即報文格式,幫助讀者進一步了解單片機的工作原理。通過了解這些內(nèi)容,有助于開發(fā)第三方軟件進行單片機的編程。開發(fā)第三方軟件的意義有,例如,有的人認(rèn)為現(xiàn)有的單片機IDE程序太復(fù)雜,想設(shè)計一個簡單的,易用的版本,只包含基本功能即可;另外,也可以將單片機的IDE程序移植到其它的平臺,如鴻蒙,安卓,甚至一些小眾的操作系統(tǒng)和平臺上。

一、Avrdude的基本操作

Avrdude可以作為Linux的控制臺程序,其運行的命令形式大致為[1]:

avrdude -c <programmer> -p <part> -U flash:w:<file>:i

如:

avrdude -c arduino -P COM1 -b 115200 -p atmega328p -D -U flash:w:objs/blink.hex:i

詳細說明見[2]。簡單地說,-c 后面跟單片機的類型,-P后面跟傳輸?shù)拇谔?#xff0c;-b后面跟波特率,-p后面跟具體的型號,-U后面跟需要寫入的單片機內(nèi)存、是寫還是讀、二進制代碼文件、格式。

從該句的大意可以看出,把程序?qū)懭雴纹瑱C的過程,本質(zhì)上說是把二進制程序代碼寫入單片機的某個內(nèi)存中。這個內(nèi)存通常是flash或eeprom。關(guān)于flash和eeprom的區(qū)別,見[3]。

二、源程序的分析

注:該源代碼包里包含多個文件,經(jīng)常出現(xiàn)一個函數(shù)或常量的定義在另一個文件中的現(xiàn)象。所以為了分析方便,強烈建議用支持在文件夾里從多個文件中搜索關(guān)鍵詞的功能,且支持多視圖的軟件。例如NotePad++[5]?[6]。若要用iPad閱讀代碼,推薦Code App[7]。注意要在設(shè)置里打開以下選項,啟用多視圖功能。

一個用C語言寫的程序,運行時,通常從main函數(shù)開始。而通過命令行運行程序時,輸入的程序名以及參數(shù),會被傳遞到main函數(shù)的參數(shù)中。具體的說明,見[4]。

所以,在這里,main函數(shù)在src目錄下的main.c中

當(dāng)通過命令行運行avrdude時,"avrdude","-c","arduino"等字符串都會傳遞到argv中。

這里觀察一下main函數(shù)中處理這些參數(shù)的方式。

這里,重點研究-U后面的參數(shù),即寫入的單片機內(nèi)存和二進制代碼文件。從程序中可看出,這些參數(shù)都被賦給了upd指向的對象的屬性中。

通過閱讀代碼,可知寫入芯片的過程是由do_op函數(shù)進行的。經(jīng)搜索,這個函數(shù)的定義在update.c中。

這里,upd->op應(yīng)該是DEVICE_WRITE,即把文件里的內(nèi)容寫入單片機的內(nèi)存。

這里涉及到兩個重要步驟:第一個,是把文件的二進制代碼提取到程序中,由函數(shù)update_all_from_file進行;第二個,是把二進制代碼寫入單片機的內(nèi)存中,由函數(shù)update_avr_write進行。

下面分析這兩個函數(shù):

1. update_all_from_file

最終,在fileio_rbin中,mem被更新了。

這里,mem->buf被填充了文件里讀出的二進制代碼。因此,mem就攜帶了要上傳給單片機的程序。

2. update_avr_write

avr_write_mem用于將報文傳入單片機。

觀察avr_write_byte函數(shù)

該函數(shù)用于將字節(jié)寫入單片機的指定內(nèi)存,即地址。其具體實現(xiàn)方式,不同的單片機會有不同,這里以其中一款為例。

這里,cmd[0]代表地址,cmd[1]代表輸入的字節(jié)。

serial_send函數(shù),即通過串口把內(nèi)容從電腦上傳至單片機的函數(shù),實現(xiàn)方式和操作系統(tǒng)有關(guān)。目前,windows系統(tǒng)和POSIX即Unix內(nèi)核的系統(tǒng)的串口實現(xiàn)方式在該代碼包中已實現(xiàn)。HarmonyOS NEXT系統(tǒng)將使用鴻蒙自己的內(nèi)核[7],可能和windows及Unix均不同,所以如要把該程序移植到鴻蒙星河版上,這一部分的實現(xiàn)可能需要重新編寫。

三、其它方面的研究

用這樣的分析方法,可以研究不同的單片機的各內(nèi)存的地址,以及從單片機中讀取內(nèi)容的過程等。

鏈接

[1]https://github.com/avrdudes/avrdude/tree/main

[2]AVRDUDE: 2.1 Option Descriptions

[3]嵌入式開發(fā)——EEPROM和FLASH的區(qū)別和優(yōu)劣勢-CSDN博客

[4]【Linux】命令行參數(shù)_命令行參數(shù)的使用linux-CSDN博客

[5]notepad++ 根據(jù)文件內(nèi)容查找文件_notpad++ 查找 文件小于100k-CSDN博客

[6]Notepad++使用教程_nodepad++-CSDN博客

[7]華為鴻蒙內(nèi)核成為 HarmonyOS NEXT 流暢安全新基座 - IT之家

http://www.risenshineclean.com/news/55532.html

相關(guān)文章:

  • 免費自己創(chuàng)建個人網(wǎng)站營銷型網(wǎng)站建設(shè)套餐
  • 淄博公司制作網(wǎng)站有哪些網(wǎng)絡(luò)推廣公司排行榜
  • 網(wǎng)站申請微信登錄谷歌aso優(yōu)化
  • php制作網(wǎng)站小程序平臺
  • 建材網(wǎng)站制作黑馬培訓(xùn)是正規(guī)學(xué)校嗎
  • 如何個網(wǎng)站做優(yōu)化長沙網(wǎng)站seo技術(shù)廠家
  • 用asp.net做網(wǎng)站的書深圳網(wǎng)站開發(fā)制作
  • 昆明網(wǎng)站建設(shè)多少錢快手秒贊秒評網(wǎng)站推廣
  • 政府內(nèi)網(wǎng)網(wǎng)站建設(shè)合肥網(wǎng)絡(luò)seo
  • 黔南住房和城鄉(xiāng)建設(shè)委員會網(wǎng)站鄭州seo學(xué)校
  • 工業(yè)設(shè)計網(wǎng)站排名軟文營銷的成功案例
  • 域名備案不是網(wǎng)站公司做的龍巖網(wǎng)站推廣
  • 簡潔大氣的公司網(wǎng)站愛網(wǎng)站關(guān)鍵詞查詢工具
  • 中國化工第九建設(shè)公司網(wǎng)站專業(yè)seo優(yōu)化推廣
  • 網(wǎng)站開發(fā)工作室 建設(shè) 方案python培訓(xùn)
  • 高德地圖可以搜索國外嗎360搜索引擎優(yōu)化
  • WordPress網(wǎng)站hym地圖百度一下電腦版首頁網(wǎng)址
  • 靜態(tài)網(wǎng)站作品seo怎樣優(yōu)化網(wǎng)站
  • 簡約中國風(fēng)免費ppt模板seo網(wǎng)站編輯優(yōu)化招聘
  • 建設(shè)網(wǎng)站不顯示添加白名單全網(wǎng)營銷系統(tǒng)
  • 鐵道部網(wǎng)上訂票網(wǎng)站素材百度識圖掃一掃
  • wordpress相冊插件中文海外aso優(yōu)化
  • 自己如何網(wǎng)站建設(shè)seo查詢百科
  • 工商聯(lián)網(wǎng)站建設(shè)作用湖州seo排名
  • 先搭建網(wǎng)站還是先做ui怎么創(chuàng)建網(wǎng)站教程
  • 化妝培訓(xùn)網(wǎng)站模板百度網(wǎng)頁網(wǎng)址
  • 網(wǎng)站開發(fā)費用多少錢如何學(xué)會推廣和營銷
  • 做的比較好的返利網(wǎng)站知乎網(wǎng)站搭建一般要多少錢
  • 做盜版視頻網(wǎng)站違法嗎自己制作網(wǎng)頁的網(wǎng)站
  • 電子商務(wù)網(wǎng)站建設(shè)專業(yè)主修課程關(guān)鍵詞挖掘排名