變量的存儲類別分為自動、靜態(tài)、寄存器和外部這四種。其中后兩種我們暫不介紹,主要是自動變量和靜態(tài)變量這兩種。函數(shù)中的局部變量,如果不加 static 這個關鍵字來修飾,都屬于自動變量,也叫做動態(tài)存儲變量。這種存
LabVIEW作為一種新型的圖形化編程語言,具有精確、高效、功能強大、開發(fā)簡易、實時性強、界面友好等優(yōu)點。但要讓其與C語言做個較量,就要依據(jù)具體的應用環(huán)境來看,而不能籠統(tǒng)的分出優(yōu)勝來。C語言:提供了低級別的控制
本文純屬原創(chuàng),為arm子程序模塊,包含了匯編和C語言兩種寫法,后續(xù)將陸續(xù)完善。ON1、關閉WATCHDOG,否則CPU會不斷重啟:匯編:disable_watch_dog:@往WATCHDOG寄存器寫0mov r1,#0x53000000mov r2,#0x0str r2,[r1]mov p
指向數(shù)組元素的指針和運算法則所謂指向數(shù)組元素的指針,其本質還是變量的指針。因為數(shù)組中的每個元素,其實都可以直接看成是一個變量,所以指向數(shù)組元素的指針,也就是變量的指針。指向數(shù)組元素的指針不難,但很常用
1.通過使用預處理指令#asm 和#endasm來使用匯編語言。用戶編寫的匯編語言可以緊跟在#asm之后,而在#endasm之前結束。如下所示:# asm/*匯編源程序*/# endasm在#asm和#endasm之間的語句將作為匯編語言的語句
我們知道C語言是一種高級語言,所謂高級語言就是要經(jīng)過翻譯才能在具體平臺上運行的程序。而編譯程序是一種比較繁瑣的程序,它要把高級語言編譯和鏈接后,成為能夠在具體平臺運行的程序。這其中有很多知識是和操作系統(tǒng)
1.匯編程序訪問C語言全局變量全局變量只能通過地址間接調用,為了訪問C++語言中全局變量,首先要通過extern偽指令引入全局變量,然后將其地址裝入寄存器中。對于unsigned char類型,使用LDRB/STRB訪問;對于unsigned
匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。對于目前普遍使用的RISC架構的8
大家都知道一般的并行擴展總線---地址總線,數(shù)據(jù)總線和控制總線一般是相互獨立的。但單片機由于受引腳的限制,P0口為低8位地址/數(shù)據(jù)復用口。其讀寫時序符合intel8080控制時序。使用外部擴展時,wrrd 等控制引腳不需要
新PIC16Bootloader 在完成HyperBootloader之后(具體詳見我之前的隨筆),我決定重寫PIC bootloader。為什么呢? HyperBootloader是由PC端的串口通信軟件--超級終端來傳送Hex數(shù)據(jù)的,一行一行地傳送,每傳送一
匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。C語言是一種結構化的高級語言。
對程序進行優(yōu)化,通常是指優(yōu)化程序代碼或程序執(zhí)行速度。優(yōu)化代碼和優(yōu)化速度實際上是一個予盾的統(tǒng)一,一般是優(yōu)化了代碼的尺寸,就會帶來執(zhí)行時間的增加,如果優(yōu)化了程序的執(zhí)行速度,通常會帶來代碼增加的副作用,很難魚與熊
HyperBootloader_dsPIC HyperBootloader_dsPIC是我用C語言實現(xiàn)的UART bootloader, 采用串口通信,適用于Microchip的dsPIC30, dsPIC33,同樣適用于PIC24。單片機端bootloader是用XC16編譯的,電腦端的通信軟件
內存這個大話題key:心里一定要有內存的邏輯圖。程序是什么?程序 = 代碼 + 數(shù)據(jù)代碼放在Flash中代碼段,可變的數(shù)據(jù)(全局變量、局部變量)放在內存中。運行程序的目的是什么?得到運行結果; 關注運行過程;既要結果又要
注:keil中單片機C編程若指針沒有指向提前聲明的變量,會產(chǎn)生混亂eg:情景一: 情景二:Type *p,*q; Type *p,*q,pp,qq;給指針p賦值; p=&pp;給指針q賦值; q=&qq;p或q的值會出問題 正常,
新PIC18 Bootloader PhsBoot_v3.0是我最新用C語言實現(xiàn)的PIC bootloader, 采用串口通信,適用于PIC18, 并為其用C#寫了PC端通信程序PhsLoader_v3.0。PhsLoader_v3.0通過串口按照自定義的通信協(xié)定發(fā)送數(shù)據(jù)PhsBoo
HyperBootloader_PIC18_J 和 HyperBootloader_PIC18_None_J 完成PIC16 bootloader (詳細情況請閱讀我的上一篇隨筆《自己用C語言寫單片機PIC16serial bootloader》) 后,接著就開始寫PIC18的UART bootloader。
volatile關鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,比如操作系統(tǒng)、硬件或者其它線程等。遇到這個關鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進行優(yōu)化,從而可以提供對特殊地址的穩(wěn)定訪問
編了個PIC的項目,對C語言里的位運算還是蠻有感悟的,特此記錄一下。譬如說,在程序中定義了一個char類型的變量,purge_short_enable_flag,//bit-- start short circuit circle timing//bit--short circuit enable/
/************************************************//*函數(shù)功能:初始化UART口*//************************************************/voidUART_init(uint32_tbaudrate){uint32_tDL_value,Clear=Clear;//(用這種方式