原创 有害的多巴胺和有利的多巴胺

人的大腦特別神奇,進化處理多巴胺這一獎勵機制,使人得到短暫的快樂,然而這一快樂的背後需要付出腦部損傷的代價。 人並不是生來理智的,會被身邊各種事物誘惑,新聞、短視頻、遊戲、娛樂八卦等等,他們給你多巴胺的獎勵,暗中卻偷走你的時間,

原创 keil load$$說明

Keil工程中,編譯完成後得到的Keil Map文件中,可以看到Load$$開頭的符號,他表示在分散加載文件中定義的段的描述,在代碼中可以直接飲用,比如在分散加載文件中定義了一個region name,它緊跟在程序可執行代碼短的後面,程序

原创 機器學習的簡單理解

比如預測一張圖片上是否有貓,首先要得到一個計算公式,把圖片帶進去可以計算得出1或者0,表示圖片有貓和無貓兩種情況。這個計算公式的輸入是圖片的特徵,比如一張圖片是64*64大小,RGB三種顏色,那麼這張圖片的特徵數量就是64*64*3=12

原创 solidworks2016 拖鏈繪製

第一步,新建路徑,繪製一個封閉的草圖,然後用套合樣條曲線工具轉化爲樣條曲線,保存關閉 第二步,新建拖鏈模型,特徵要素是需要有兩個連接孔 第三步,新建裝配體,首先插入剛纔的路徑,拖鏈模型 第四部,選擇線性零部件陣列裏面的鏈零部件陣列,相連

原创 關於solidworks軟件的顯卡驅動

運行像solidworks這樣的3D設計軟件,裝配體稍微複雜,一般的GTX遊戲卡就無法勝任,這時候需要專門的圖形卡加持。個人可以針對自己的裝配體規模選擇合適的圖形卡,一般500-1000個零件以內的裝配體,用麗臺K4000完全可以勝任(某

原创 linux系統中的硬鏈接和軟鏈接

linux文件系統中用inode號來標誌唯一的文件,文件名字只是inode號的索引,系統根據文件名來找到inode號,內部處理的時候用的也是inode號。升級的時候可以不停止程序更新利用的就是這個原理,升級過程中建立新的inode,然後和

原创 十大排序算法

排序規則:從左至右依次增大 一、基於比較的排序算法: 插入排序:逐個遍歷未排序序列,將其在已排序序列中從右到左比較,直到遇到比自己小的數,然後將元素插入到那個數的後面,有序序列從左向右生長。 選擇排序:在未排序序列中選擇最小的元素,將其插

原创 C++中extern "C"和extern的區別

在單片機嵌入式軟件編程中,有時候會用到C++文件,裏面可能會使用extern "C"關鍵字,它的作用是告訴編譯器這段代碼是以C編譯器來編譯,它的底層函數簽名是就是函數名稱,而不是C++那樣的函數名+參數,不支持重載的;extern的作用就

原创 C++多態 覆蓋 重載的區別

多態:基類中定義了一個虛函數,在派生類中定義了一個同名同參數表的函數,則基類類型的指針會根據實際的綁定對象來確定調用基類的函數還是派生類的函數 覆蓋:基類中定義了一個普通函數,在派生類中定義了一個同名同參數表的函數,則指針是什麼類型就調用

原创 C/C++中結構體的對齊問題

首先需要知道內存是按照4字節對齊的,看下面的結構體 typedef struct { char a; char b; int c; char d; }ST_TYPE; 內存可以看作長度爲4的挨在一起的格子

原创 C++中爲什麼析構函數是虛函數

如果基類的析構函數不是虛函數,在特定情況下會導致派生來無法被析構。 情況1:用派生類類型指針綁定派生類實例,析構的時候,不管基類析構函數是不是虛函數,都會正常析構 情況2:用基類類型指針綁定派生類實例,析構的時候,如果基類析構函數不是虛函

原创 C++中引用和指針的區別

C++中引用的行爲表明它本質上是一個const 指針,必須初始化/不可爲空/不可更改,但是它和const指針變量又有一點區別。它一直以變量的別名自稱,讓人以爲它只是一個名字,不佔空間,但實際上當用sizeof去試探它的時候,得到的又是引用

原创 C++中的static 和 const

static和const作用在非類內部的時候,和c語言中是一樣的。static可以修飾全局變量、局部變量和函數,都表示範圍的限定;const表示只讀的意思,不可修改。另外在嵌入式編程中還有volatile關鍵字,它表示易變,容易被硬件改變

原创 從航天應用看Linux、VxWorks和uC/OSII

http://www.veryarm.com/1551.html

原创 stm32 bootloader跳轉

stm32執行完loader程序後如何跳轉到應用程序呢,一共有四件事要做: 第一,關閉外設中斷,關閉外設時鐘,失能外設功能,如果不關閉,跳轉到app區後會產生各種奇怪的問題 第二,重設中斷向量表位置,設置在app程序的起始地址 根據stm