
單片機(jī)的基準(zhǔn)電壓一般為3.3V,如果外部信號超過了AD測量范圍,可以采用電阻分壓的方法,但是要注意阻抗匹配問題。比如,SMT32的模數(shù)輸入阻抗約為10K,如果外接的分壓電阻無法遠(yuǎn)小于該阻值,則會因為信號源輸出阻抗較大,AD的輸入阻抗較小,從而輸入阻抗對信號源信號的電壓造成分壓,最終導(dǎo)致電壓讀取誤差較大。
C語言里,每個源文件是一個模塊,頭文件為使用該模塊的用戶提供接口。接口指一個功能模塊暴露給其他模塊用以訪問具體功能的方法。使用源文件實現(xiàn)模塊的功能,使用頭文件暴露單元的接口。用戶只需包含相應(yīng)的頭文件就可使用該頭文件中暴露的接口。
本文以stm32單片機(jī)進(jìn)行演示,如果MCU沒有做flash讀取或者熔斷保護(hù),則可以通過jlink等燒寫工具直接讀取其Flash上的固件。
創(chuàng)龍科技SOM-TL335x-S是一款基于TI Sitara系列AM3352/AM3354/AM3359?ARM Cortex-A8高性能低功耗處理器設(shè)計的低成本工業(yè)級核心板,通過郵票孔連接方式引出千兆網(wǎng)口、LCD、GPMC等接口。核心板經(jīng)過專業(yè)的PCB Layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。
關(guān)于架構(gòu)這個概念很難給出一個明確的定義,也沒有一個標(biāo)準(zhǔn)的定義。硬是要給一個概述,我認(rèn)為架構(gòu)就是對系統(tǒng)中的實體以及實體之間的關(guān)系所進(jìn)行的抽象描述。
本文以32位系統(tǒng)為例,介紹了內(nèi)核空間(kernel space)和用戶空間(user space)。
B+樹被廣泛應(yīng)用于MySQL數(shù)據(jù)庫的索引實現(xiàn),不過并未展開細(xì)說,但是呢B+樹是一種重要的數(shù)據(jù)結(jié)構(gòu),常年出現(xiàn)在各種面試題中,這次就來一起學(xué)習(xí)下和B+樹相關(guān)的MySQL索引底層實現(xiàn)的內(nèi)容。
當(dāng)業(yè)務(wù)規(guī)模達(dá)到一定規(guī)模之后,像淘寶日訂單量在5000萬單以上,美團(tuán)3000萬單以上。數(shù)據(jù)庫面對海量的數(shù)據(jù)壓力,分庫分表就是必須進(jìn)行的操作了。而分庫分表之后一些常規(guī)的查詢可能都會產(chǎn)生問題,最常見的就是比如分頁查詢的問題。一般我們把分表的字段稱作shardingkey,比如訂單表按照用戶ID作為shardingkey,那么如果查詢條件中不帶用戶ID查詢怎么做分頁?又比如更多的多維度的查詢都沒有shardingkey又怎么查詢?
本文梳理了Linux文件系統(tǒng)的特點和主要功能。
在使用C語言開發(fā)嵌入式產(chǎn)品的過程中,當(dāng)使用到malloc函數(shù)時候都會有一個爭議,“使用動態(tài)內(nèi)存分配安全嗎?”,就連美國軍方在safety-critical的嵌入式航空電子設(shè)備代碼中,也禁止動態(tài)內(nèi)存分配,我們來細(xì)細(xì)分析下。
本文僅討論linux下的庫。
分享一個小技巧,使用MDK編譯器,讓STM32程序HEX文件中加入固件版本信息,估計很多老手都已經(jīng)在使用(你有好的方法歡迎分享,希望我的磚能引來你的玉),該方法獻(xiàn)給新手或初學(xué)者。
雖然Linux被成功使用,但并不意味著它很容易使用。Linux包含的代碼超過一百萬行,其運(yùn)作帶有鮮明的Linux方法論味道,初學(xué)者可能難以迅速掌握。
在之前一篇博客中(簡易PID算法的快速掃盲)簡單介紹了PID算法的基本原理和位置式算法的實現(xiàn)過程,由于部分推導(dǎo)過程已經(jīng)在上一篇文章做過介紹,所以推導(dǎo)過程本文不再贅述,本文重點將對離散增量式PID的算法進(jìn)行實現(xiàn)。
這個是今天在微信群里討論的一個問題,然后我們就在群里討論,有的大神說這個是內(nèi)存越界,也有大神說可能是人品有問題,也有大神說這個是因為寫代碼前沒有選好一個良辰吉日,反正大家想法都非常多,也非常古怪,這可能就是討論群存在的一個原因了。經(jīng)過不斷的驗證,發(fā)現(xiàn)這個問題是因為編譯器優(yōu)化的問題。
曾經(jīng)在開發(fā)Linux內(nèi)核驅(qū)動的時候,創(chuàng)建了一個補(bǔ)丁文件,但是在把補(bǔ)丁打到主分支的時候提示很多編碼風(fēng)格的錯誤問題,后來重做了補(bǔ)丁才解決了問題,這也是沒有嚴(yán)格按照的Linux編碼風(fēng)格從而導(dǎo)致的問題。因為當(dāng)時代碼量不大,所以解決問題的時間相對較少。在代碼量增大的情況下可以借助工具進(jìn)行自動修改。
最近在看Mybatis的源碼,剛好看到緩存這一塊,Mybatis提供了一級緩存和二級緩存;一級緩存相對來說比較簡單,功能比較齊全的是二級緩存,基本上滿足了一個緩存該有的功能;當(dāng)然如果拿來和專門的緩存框架如ehcache來對比可能稍有差距;本文我們將來整理一下實現(xiàn)一個本地緩存都應(yīng)該需要考慮哪些東西。
公司最近安排了一波商品搶購活動,由于后臺小哥操作失誤最終導(dǎo)致活動效果差,被用戶和代理商投訴了。經(jīng)理讓我?guī)聜円黄饛?fù)盤這次線上事故,于是……
引入任何一種技術(shù)都是存在風(fēng)險的,分庫分表當(dāng)然也不例外,除非庫、表數(shù)據(jù)量持續(xù)增加,大到一定程度,以至于現(xiàn)有高可用架構(gòu)已無法支撐,否則不建議大家做分庫分表,因為做了數(shù)據(jù)分片后,你會發(fā)現(xiàn)自己踏上了一段踩坑之路,而分布式主鍵 ID 就是遇到的第一個坑。
開發(fā)一般都會借助一些工具,協(xié)助開發(fā)并提高開發(fā)效率,今天就來給大家介紹幾款Linux比較實用的工具。