娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

s3c6410_uart初始化及讀寫

發布者:自由夢想最新更新時間:2024-09-04 來源: cnblogs關鍵字:s3c6410  uart  初始化  讀寫 手機看文章 掃描二維碼
隨時隨地手機看文章

參考:

1)《USER'S MANUAL-S3C6410X》第31章 UART

2)u-boot uart初始化及讀寫:u-boot-x.x.x/board/samsumg/smdk6410/lowlevel_init.S

                u-boot-x.x.x/cpu/s3c64xx/serial.c

3) 內核串口驅動:linux-x.x.x/driver/tty/serial/s3c6400.c samsung.c serial_core.c


代碼

uart.c

 1 #include 'uart.h'

 2 

 3 #define GPACON        (*((volatile unsigned long *)0x7f008000))

 4 

 5 #define ULCON0        (*((volatile unsigned long *)0x7f005000))

 6 #define UCON0        (*((volatile unsigned long *)0x7f005004))

 7 #define UFCON0        (*((volatile unsigned long *)0x7f005008))

 8 #define UMCON0        (*((volatile unsigned long *)0x7f00500c))

 9 #define UTRSTAT0    (*((volatile unsigned long *)0x7f005010))

10 #define UERSTAT0    (*((volatile unsigned long *)0x7f005014))

11 #define UFSTAT0        (*((volatile unsigned long *)0x7f005018))

12 #define UMSTAT0        (*((volatile unsigned long *)0x7f00501c))

13 #define UTXH0        (*((volatile unsigned long *)0x7f005020))

14 #define URXH0        (*((volatile unsigned long *)0x7f005024))

15 #define UBRDIV0        (*((volatile unsigned long *)0x7f005028))

16 #define UDIVSLOT0    (*((volatile unsigned long *)0x7f00502c))

17 #define UINTP0        (*((volatile unsigned long *)0x7f005030))

18 #define UINTSP0        (*((volatile unsigned long *)0x7f005034))

19 #define UINTM0        (*((volatile unsigned long *)0x7f005038))

20 

21 void uart0_init(void)

22 {

23     GPACON &= ~0xff;

24     GPACON |= 0X22;

25     

26     ULCON0 = 0x03; //data frame: 8n1

27     /*

28     clk: pclk

29     tx int type: level

30     rx int type: pulse

31     rx err int enable

32     tx/rx mode: interrupt or polling 

33     */

34     UCON0 = 0x245; 

35     UFCON0 = 0x00; //disable fifo;

36     UMCON0 = 0X00; //disable auto flow control(AFC)

37     /*

38     DIV_VAL = UBRDIV + (num of 1's in UDIVSLOT)/16

39     DIV_VAL = (PCLK/(bps*16))-1 = (66000000/115200)-1=34.8

40     UBRDIV = 34;

41     num of 1's in UDIVSLOT = 13; 

42     */

43     UBRDIV0 = 0x22;

44     UDIVSLOT0 = 0x1fff;

45 }

46 

47 int uart0_getc(void)

48 {

49     while (!(UTRSTAT0 & 0x1));

50     return (URXH0 & 0xff); 

51 }

52 

53 void uart0_putc(const char c)

54 {

55     while (!(UTRSTAT0 & 0x2));

56     UTXH0 = c;

57     if (c == 'n')

58     {

59         uart0_putc('r');

60     }

61 }

62 

63 void uart0_puts(const char *s)

64 {

65     while (*s)

66     {

67         uart0_putc(*s++);

68     }

69 }


關鍵字:s3c6410  uart  初始化  讀寫 引用地址:s3c6410_uart初始化及讀寫

上一篇:s3c6410_uboot中的代碼重定位(nand->sdram)
下一篇:s3c6410_時鐘初始化

推薦閱讀最新更新時間:2025-06-07 23:43

S3C6410之uboot回爐再造(1)start.S - SVC模式設置
  雖然已經寫了幾篇關于uboot移植的、但是覺得整體對uboot的理解還是只停留在copy的層面。   狠下心來,從代碼進行uboot的分析,并從新移植一次uboot。   這次更側重于記錄代碼分析心得。   使用uboot的版本仍為2010.3版本。   這里有一個很是詳盡的start.S分析網站,分析過程借鑒了網站的方法,但也有一些不同的地方 http://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html/uboot_starts_analysis.html   總的不同有如下   在網站的分析中,基于代碼為arm9
[單片機]
ARM處理器啟動流程———S3C2440、S3C6410、S5PV210
S3C2440 支持從norflash和nandflash啟動。 Nandflash不參與統一編址,CPU總是從編址的0地址處取指令執行,為了實現從nandflash啟動,S3C2440芯片從在CPU啟動的時候,首先將nandflash前面4kB的內容復制到芯片中的叫做stepping stone的sram中,steppping stone只有4KB大小,4KB的代碼會完成一些硬件初始化的工作,并且將nandflash中剩余部分的代碼復制到SDRAM中去,這部分代碼包括bootload的剩余代碼或者還有內核代碼,并在內存中執行。S3C2440內存是從0x30000000地址開始的,也就是BANK6. S3C6410 啟動方式:no
[單片機]
基于S3C6410處理器的U-Boot SD卡啟動的移植分析與功能
通用Bootloader(Universal Bootloader,U-Boot)是系統上電后執行的第一段代碼,其作用主要包括初始化硬件環境以及加載執行操作系統內核。在進行系統安裝時,U-Boot通常需要使用專用工具燒寫到FLASH中,內核及文件系統則通過U-Boot命令進行燒寫,該過程操作繁瑣,并且容易出錯,不適宜系統的大量安裝。 S3C6410是三星公司生產的一款基于ARM11架構的通用嵌入式處理器,其啟動方式除了傳統的Flash啟動模式外,還支持從SD 卡中啟動系統。本文基于S3C6410處理器,分析了從SD卡啟動系統的原理,并對U-Boot源碼進行修改以支持該啟動方式,在此基礎上進一步擴展了U-Boot的功能,使其
[單片機]
基于<font color='red'>S3C6410</font>處理器的U-Boot SD卡啟動的移植分析與功能
28.時鐘初始化
ARM系統時鐘初始化: 這就需要知道什么是時鐘脈沖信號,什么是時鐘頻率,什么是時鐘源。 時鐘脈沖信號: 時鐘脈沖信號:按一定的電壓幅度,一定的時間間隔連續發出的脈沖信號。時鐘脈沖信號是時序邏輯的基礎,它用于決定邏輯單元中的狀態何時更新。數字芯片中眾多的晶體管都工作在開關狀態,它們的導通和關斷動作無不是按照時鐘信號的節奏進行的 時鐘脈沖圖解: 1.2時鐘脈沖頻率: 時鐘脈沖頻率:就是在單位時間,如1秒,內產生的時鐘脈沖個數。 1.3信號產生: 如何產生時鐘信號:1.晶振2.鎖相環PLL 1.3.1信號產生-晶振: 晶振全稱晶體振蕩器,是用石英晶體經精密切割磨削并鍍上電極焊上引線做成。這種晶體
[單片機]
28.時鐘<font color='red'>初始化</font>
【2440裸機】SDRAM的初始化(head.s)
芯片一上電,拷貝Nand前4K數據到片內SRAM內(4K); 關看門狗,初始化存儲器管理; 把片內SRAM的數據拷貝到SDRAM內; @************************************************************************* @ File:head.S @ 功能:設置SDRAM,將程序復制到SDRAM,然后跳到SDRAM繼續執行 @************************************************************************* .equ MEM_CTL_BASE, 0x48000000 .equ
[單片機]
STM32串口1,2,3初始化函數代碼(標準庫版)
沒有使用中斷 cks32C8T6、stm32c8t6直接復制使用 其他芯片注意引腳,復用功能什么的 串口1初始化代碼 //串口1 void Uart1_init(u32 bound){ //GPIO端口設置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE); //使能USART1,GPIOA時鐘 //USART1_TX GPIOA.9 GPIO_InitStruc
[單片機]
飛思卡爾單片機DZ60---時鐘初始化
/* Derivative peripheral declarations */ #include derivative.h /* Definitions and function prototypes */ #include DZ60_init.h //FEI切換到PEE模式,外部晶振=4MHZ,總線頻率=8MHZ( 中文手冊,P144頁) /* External crystal oscillator = 4MHz */ /* FOR PEE mode: Bus_Clock = (1/2)* /(Bus_div) = 8MHz */ #define BUS_DIV 0 /* Bus di
[單片機]
stm32標準庫dma初始化詳解
STM32的DMA有三種類型的傳輸 1.M-M(內存到內存) 2.M-P(內存到外設) 3.P-M(外設到內存) STM32的標準庫函數提供了一個STM32的初始化結構體如下; typedef struct { uint32_t DMA_PeripheralBaseAddr;//外設地址 uint32_t DMA_MemoryBaseAddr; //內存地址 uint32_t DMA_DIR; //傳輸方向 uint32_t DMA_BufferSize; //傳輸的數據多少 uint32_t DMA_PeripheralInc; //外設地址是否遞增 uint32_t DMA
[單片機]
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 许昌市| 友谊县| 河池市| 赣榆县| 镇平县| 山阴县| 泰安市| 通江县| 镇巴县| 阜城县| 兴国县| 安化县| 江安县| 斗六市| 东辽县| 随州市| 来宾市| 宜都市| 罗平县| 达州市| 防城港市| 象州县| 大悟县| 南岸区| 新丰县| 蒙阴县| 林甸县| 两当县| 贵南县| 天水市| 宣汉县| 宁阳县| 沁源县| 普兰县| 随州市| 凌海市| 疏勒县| 洛扎县| 鄄城县| 四子王旗| 平谷区|