s3c2440頭文件之2440lib.h

2021-01-07 電子產品世界
//===================================================================

// File Name : 2440lib.h
// Function : S3C2440
// Date : February 26, 2002
// Version : 0.0
// History
// 0.0 :Feb.20.2002:SOP : Programming start
// 0.01:Mar.29.2002:purnnamu: For Sleep_wake_up, the START... label is added
//===================================================================

本文引用地址:http://www.eepw.com.cn/article/201611/316746.htm

#ifndef __2440lib_h__
#define __2440lib_h__

#ifdef __cplusplus
extern "C" {
#endif

#include "option.h"

#if USE_MAIN
#include
#define Uart_Printf printf
#endif

#define min(x1,x2) (((x1)#define max(x1,x2) (((x1)>(x2))? (x1):(x2))

#define ONESEC0 (62500) //16us resolution, max 1.04 sec
#define ONESEC1 (31250) //32us resolution, max 2.09 sec
#define ONESEC2 (15625) //64us resolution, max 4.19 sec
#define ONESEC3 (7812) //128us resolution, max 8.38 sec
#define ONESEC4 (PCLK/128/(0xff+1))//@60Mhz, 128*4us resolution, max 32.53 sec

#define NULL 0

#define EnterPWDN(clkcon) ((void (*)(int))0x20)(clkcon)
void StartPointAfterSleepWakeUp(void); //purnnamu:Mar.29.2002


// 2440lib.c
void Delay(int time); //Watchdog Timer is used.

void *malloc(unsigned nbyte);
void free(void *pt);

void Port_Init(void);
void Uart_Select(int ch);
void Uart_TxEmpty(int ch);
void Uart_Init(int mclk,int baud);
char Uart_Getch(void);
char Uart_GetKey(void);
void Uart_SendByte(int data);

#if !USE_MAIN
void Uart_Printf(const char *fmt,...);
#endif

void Uart_SendString(char *pt);

void Timer_Start(int divider); //Watchdog Timer is used.
int Timer_Stop(void); //Watchdog Timer is used.


void ChangeClockDivider(int hdivn_val,int pdivn_val);
void ChangeUPllValue(int m,int p,int s);
void ChangeMPllValue(int m,int p,int s);


#ifdef __cplusplus
}
#endif

#endif //__2440lib_h__

相關焦點

  • S3C2440驅動簡析——串口驅動
    #include"linux/io.h"#include"linux/platform_device.h"#include"linux/init.h"#include>"linux/serial_core.h"#include"linux/serial.h"#include"asm/irq.h"#include"mach
  • linux內核移植-移植2.6.35.4內核到s3c2440
    4、修改晶振頻率( 可解決列印信息亂碼問題 )文件:arch/arm/mach-s3c2440/mach-smdk2440.cs3c24xx_init_clocks(12000000);5、修改MTD分區static struct mtd_partition smdk_default_nand_part
  • 基於S3C2440的嵌入式Linux根文件系統構建
    採用單一執行文件的方式可以最大限度地共享程序代碼,甚至連文件頭、內存中的程序控制塊等其他作業系統資源都可共享,這對於資源比較緊張的系統來說,最合適不過了。  3 busybox的編譯和安裝  3.1 開發環境  基於S3C2440 ARM920T的硬體平臺,該系統的硬體平臺上主要使用三星S3C2440,外圍還包括64 M SDRAM和64 M NAND Flash,2 M NOR Flash,系統採用宿主機加目標板的模式,宿主機是PC機,其作業系統是RedHat linux,目標板是基於S3C2440微控制器的開發板
  • ARM9 S3C2440—ADC和觸控螢幕控制詳解
    S3C2440晶片內部共有8路A/D轉換通道,AIN0-AIN7,轉換器只有一個,轉換精度為10位,最大轉換率為2.5MHzA/D轉換器時鐘下的500KSPS。EnableIrq(BIT_ADC);示例程序如下:#defineGLOBAL_CLK1#include#include#include"def.h"
  • S3C2440啟動代碼2440init.s徹底解析
    2440.s的啟動代碼需要包含幾個文件2440addr.inc包含2440內部寄存器地址Memcfg.inc包含2440各個bank的內存配置數據Option.incSTACK_BASEADDRESS-0x2000) ;0x33ff6000 ~IRQStack EQU (_STACK_BASEADDRESS-0x1000) ;0x33ff7000 ~FIQStack EQU (_STACK_BASEADDRESS-0x0) ;0x33ff8000 ~ 剩下的請查看以下代碼 ;彙編不能使用include包含頭文件
  • 解析arm 2440和6410有什麼區別
    24402440是400M的。6410是533/667M的;2.處理器版本不一樣:2440是arm920T內核,6410是arm1176ZJF內核;3.6410在視頻處理方面比2440要強很多。內部視頻解碼器,包括MPEG4等視頻格式;4.6410支持WMV9、xvid、mpeg4、h264等格式的硬解碼和編碼;5. 6410多和很多擴展接口比如:tv-out、CF卡和S-Video輸出等;6. spi、串口、sd接口也比那兩個要豐富;7.6410採用的是DDR內存控制器;2440採用的是SDRam內存控制器;
  • Busybox編譯及其yaffs2文件系製作
    /usr目錄下,改變了主機的系統6、make install即可在_install目錄下生成bin sbin usr(bin,sbin)及其linuxrc文件(該文件連結到/bin/busybox)二、yaffs2文件系統製作將_install目錄下的文件拷貝至~/myroot文件夾下,按如下結構創建目錄,並在相應目錄下添加如下內容
  • 基於busybox的嵌入式Linux根文件系統的的製作方法
    根文件系統一般包括:1)基本的文件系統結構,包含一些必須的目錄,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;2)基本程序運行所需的庫函數,如:libc/uC-libc;3)基本的系統配置文件,如:rc,inittab等腳本文件;4)必要的設備支持文件,如:/dev/hd*,/dev/tty,/dev/fdO;5)基本的應用程式,如:sh,ls,cp,mv等。
  • 採用busybox的嵌入式Linux根文件系統的的製作方法
    根文件系統一般包括:1)基本的文件系統結構,包含一些必須的目錄,比如:/dev,/proc,/bin,/etc,/lib,/usr,/tmp;2)基本程序運行所需的庫函數,如:libc/uC-libc;3)基本的系統配置文件,如:rc,inittab等腳本文件;4)必要的設備支持文件,如:/dev/hd*,/dev/tty,/dev/fdO;5)基本的應用程式,如:sh,ls,cp,mv等。
  • fuzz實戰之libfuzzer
    /run_fuzzing.pydoneHelloworld-For-libFuzzer安裝本節相關資源文件位於:https://github.com/Dor1s/libfuzzer-workshop/tree/master/lessons/04首先先把 libFuzzer 安裝一下首先git clone https
  • 閩寧協作示範葡萄園認購啟動 17家閩商認領葡萄園2440畝
    17家閩商認領葡萄園2440畝。寧夏恒生西夏王酒業公司與福建閩寧投資有限公司達成戰略合作協議5年來,雙方不斷深化協作,促進葡萄產業發展,積極推動寧夏葡萄酒產業與福建市場充分對接,努力將福建打造成「西夏王」在區外的第一個主力市場。目前,「西夏王」已在福建建成以泉州為中心、輻射福州、廈門、漳州、莆田等多個地市的市場網絡,建成體驗中心、品牌形象店近百家。
  • 陝西執業藥師考試2440人作弊:開考10分鐘就有答案
    7個考點2440人作弊  「這肯定是作弊。他用1、2、3、4、5代表A、B、C、D、E。這是一個非法的設臺信號,因為它在140兆赫茲,140兆赫茲是國家不允許對講機頻段的。」  陝西省無線電監測站工作人員分析,這應該是一個正在傳輸考題答案的無線電信號,隨後他們立即對這個信號進行了阻斷,並將這個信號傳輸的語音錄了下來。
  • 不閃屏濾藍光廣視角 明基護眼液晶首測(全文)_明基 EW2440L_液晶...
    今天我們就來為大家評測一款24英寸的明基濾藍光顯示器,看看它究竟有何過人之處。明基 EW2440L產品類型LED得益於真實8-bit MVA面板和LED背光的設計,EW2440L擁有3000:1的原生對比度、2000萬:1的動態對比度、4ms灰階響應時間、300cd/m2的亮度。明基EW2440L配備了D-Sub(VGA),HDMI(MHL)接口。
  • S3C2440內存管理單元MMU詳解
  • IO埠映射和IO內存映射(詳解S3C24XX_GPIO驅動)
    如,Samsung的S3C2440,是32位ARM處理器,它的4GB地址空間被外設、RAM等瓜分:0x8 1 LED 8*8點陣的地址0x4800 0 ~ 0x6 0 SFR(特殊暫存器)地址空間0x3800 1002鍵盤地址0x3 0 ~ 0x3400 0 SDRAM空間0x2 0020 ~ 0x2 002e IDE
  • C++庫文件說明及使用方法
    ,例如源文件,頭文件,靜態庫文件,動態庫文件等。動態連結:佔用空間小,庫方法更新只需要更換DLL,擴展性和靈活性強3.靜態庫生成及使用方法靜態連結庫生成方式:以創建test.lib為例1.新建頭文件、源文件在創建的工程中,打開解決方案資源管理器。在源文件下創建test.cpp,頭文件下創建test.h,添加對應的代碼。
  • 嵌入式Linux NFS 根文件系統的構建及研究
    在此基礎上,進一步構建出基於NFS的嵌入式Linux根文件系統,並給出了啟動腳本和配置文件。這種根文件系統可以方便地在線更改、調試程序,降低了嵌入式系統的開發門檻。關鍵詞:NFS;Busybox;根文件系統;S3C2440;Linux 隨著信息技術的發展,嵌入式系統技術已經廣泛應用於國防、通信、工業控制、消費電子等諸多領域。