1. 程式人生 > >新路程------hi3516a 在應用層對暫存器的操作

新路程------hi3516a 在應用層對暫存器的操作

  由於在應用層沒法用writel,所以參考himm.c寫了一個設定,程式碼如下:

void uart1_rtsn_high(void)
{  
  void * pMem  = NULL;
  pMem = memmap(0x201d0010, DEFAULT_MD_LEN);
  *(U32*)pMem = 0xff;
}

檔名是rs485.c,但是用arm-hisiv300-linux-gcc直接去編譯時會遇到h檔案找不到,所以必須放到makefile裡去編譯

參考himm.c的makefile寫法,最後編譯出來的,是一個/data/Hi3516A_SDK_V1.0.6.0/package/osdrv/tools/board/reg-tools-1.0.0/bin/btools這個整合,也就是其實在

終端裡輸入himm全部指向btools這個東西,看看makefile就知道了

相關推薦

路程------hi3516a應用操作

  由於在應用層沒法用writel,所以參考himm.c寫了一個設定,程式碼如下: void uart1_rtsn_high(void) {     void * pMem  = NULL;   pMem = memmap(0x201d0010, DEFAULT_MD_LE

操作的通用方法總結

接觸了一陣子的STM32函式庫,使用起來挺方便的,但是很少有處理器會有函式庫,大部分情況下還是要自己來對暫存器進行操作,所以還是不要生疏了對暫存器的操作。對暫存器的操作有時候要考慮對其不同的位進行先後順序不同的設定,因為這樣可能達不到預期的效果,這個不太好總結,

使用位運算操作的通用方法

     對暫存器的操作有時候要考慮對其不同的位進行先後順序不同的設定,但是對暫存器操作的方法是固定的。      首先要明白邏輯運算子(!,&&,||)和位運算子(<<,

嵌入式開發中的位操作

在嵌入式開發中常常要對暫存器或者變數的位進行讀和寫,以下有幾個常用的tips。 開始之前,先複習一下C語言的位與(&)位或(|)運算。 # 假設 A 為暫存器上的某一位 A | 0 = A A

海思Hi3516A操作命令總結

海思himm原始碼路徑:                        xxx/Hi3519V101_SDK_V1.0.4.0/osdrv/tools/board/reg-t

ESP和EBP的一些理解

PS:EBP是當前函式的存取指標,即儲存或者讀取數時的指標基地址;ESP就是當前函式的棧頂指標。每一次發生函式的呼叫(主函式呼叫子函式)時,在被呼叫函式初始時,都會把當前函式(主函式)的EBP壓棧,以便從子函式返回到主函式時可以獲取EBP。 下面是按呼叫約定__stdc

操作方法

一, 暫存器的設定和操作特性 1,一個暫存器的每個位有其不同的意義,進行不同的設定會使硬體產生不同的效果和功能; 2,有些情況下需要對一個暫存器進行連續的不同的甚至完全相反的設定; 3,有些情況下需要對一個暫存器中的某一位或一位進行連續的不同的甚至完全相反的設定,而其餘的位要保持不變;

嵌入式操作-----C語言位操作的學習

2015年4月1日總結。 a |= 1<<x //第x位寫1 a &=~(1<<x) //第x位寫0 (a &(1<<x)) == a //判斷1,等號左邊括號不能省略 (a&a

一種操作指定位翻轉方法

通常情況,很多CPU暫存器是不可以進行單獨的位操作的,比如32位ARM,若要改變暫存器某位,那就有可能影響到其它的31位。 平時開發中會經常遇到,以平時開發中遇到的LED為例,如果要實現指定的LED翻轉時,其它的LED狀態不變,那麼就要操作暫存器對指定位進行翻

STM32操作埠模式SDA_OUT()/SDA_IN()

#define SDA_IN()        {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}  #define SD

STM32入門學習之GPIO(STM32F030F4P6基於CooCox IDE)(操作版)

依然,直接上程式碼 #include "stm32f0xx.h" #include "stm32_lib/inc/stm32f0xx_rcc.h" #include "stm32_lib/inc/stm32f0xx_gpio.h" int main(void) { /

CPU操作方式

 CPU暫存器的讀取方式,其實就是讀取某個地址中儲存的資料,只不過這個地址是晶片廠商規定好用於特定功能的。 一般IDE都會提供暫存器的標頭檔案,可以參考晶片的程式設計手冊,手冊中都有每個模組的暫存器定義,以及地址說明,如果你不想使用標頭檔案定義可以自己手動編寫,例如你想

STM32 IO操作

STM32的IO埠有八種模式:1、輸入浮空         5、開漏輸出2、輸入上拉         6、推輓輸出3、輸入下拉         7、推輓複用4、模擬輸入         8、開漏複用每個IO口都有七個暫存器來控制:CHL、CHR        :埠配置暫存器(

GPIOA高8位輸入控制低8位輸出(操作)

int main() { GPIOA->CRH = 0x44444444; GPIOA->CRL = 0x33333333; while(1) {

UVM篇之八:模型的場景應用(終)

本文轉自:http://www.eetop.cn/blog/html/28/1561828-6266225.html 如何檢查暫存器模型 在瞭解了暫存器模型的常規方法之後,我們需要考慮如何利用這些方法來檢查暫存器、以及協助檢查硬體設計的邏輯和資料比對。要知道,在軟體實現硬體驅動和韌體層時,也

《STM32F7原理與應用版上下冊》張洋高清PDF學習

暫存器版上下冊PDF全集。本套書籍以ST公司的STM32F767為目標晶片,詳細介紹了STM32F7的特點、片內外資源的使用,並輔以65個例程,由淺入深地介紹了STM32F7的使用。所有例程都經過精心編寫,從原理開始介紹,到程式碼編寫、下載驗證,一步步教讀者如何實現。所有原始碼都配有詳細註釋,且經過嚴格測試。

通過/dev/mem實現使用者訪問GPIO

由於工作需要用到GPIO設定成中斷模式,但是不知道連線是否已經連線到指定的GPIO引腳, 而且配置是否成功,因此通過/dev/mem來檢視GPIO的配置是否成功是必須的。 記錄一下: #include <stdio.h> #include <stdlib.h>

路程------hi3516a刷uboot

很多人都遇到了這個問題,fastboot刷uboot的時候timeout,其實原因是之前的uboot沒有清,所以3516沒有進入刷機模式,所以要先知道原來的uboot在flash中的位置,比如我的就是在0x00-0x100000之間,所以我在uboot命令列中執行 sf probe 0 sf e

[RK3288][Android6.0] 使用者空間音訊的控制

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Audio HAL控制驅動中的暫存器是通過kcontrol結構實現的,kcontrol有多種型別,如mixer, mux等,由struct snd_kco

路程------hi3516a開啟uart2

--- a/arch/arm/mach-hi3516a/core.c +++ b/arch/arm/mach-hi3516a/core.c @@ -131,9 +131,13 @@ static struct amba_device HIL_AMBADEV_NAME(name) =         \  HI