程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8400|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, P& g: |! V. |) w4 T; f#include <linux/init.h>
  H% Q; J/ `' }* Z% n#include <linux/module.h>
4 X3 {$ O% f9 B1 E: i: v#include <linux/kernel.h>; E, Y3 e$ P% y; x# a' Z
#include <linux/types.h>1 m) S5 g* N; M' U1 ]5 q  O
#include <linux/gpio.h>
5 R8 c! b5 W9 K8 N; l6 g#include <linux/leds.h>/ d: c/ Z4 w7 o, N
#include <linux/platform_device.h>6 S! U- p% P( Z2 Y5 F" H
; |1 g; S- B. f& D* T, b$ ~% P
#include <asm/mach-types.h>" G7 j6 W& J  U
#include <asm/mach/arch.h>
) W% L* _* d. s/ ?% C#include <mach/da8xx.h>
( R# W0 p8 @  {  f#include <mach/mux.h>
) \/ M) a- A, n% z# _6 R  O0 r* Q* S5 ]- Q' j/ f! H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' S5 A- `" q: ]- W
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* B- v0 T- B7 d6 t8 k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 w6 b) z) V- E; d. x- n* o( r9 `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ H) L: H, |, m( v: ^
, ~. v+ J; m! S" V( t3 x9 r/* assign the tl som board LED-GPIOs*/
7 f7 }8 O) x1 S- }: lstatic const short da850_evm_tl_user_led_pins[] = {" I' i0 M* u( W; ]
        /* These pins are definition at <mach/mux.h> file */
5 C. Q0 s/ A- F0 m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: O: K( S) s3 G5 ]: x) y        -1( B2 E# F( L3 f7 L# p. a9 L6 b
};* ~7 T- G  R  N/ w& v

8 N' i8 P7 K3 |' i: Q9 {' Rstatic struct gpio_led da850_evm_tl_leds[] = {
9 M( T5 K5 j% e$ R2 K' ^        {4 Y! V  d. s8 X3 e% A! L; q$ k$ m
                .active_low = 0,  x5 o, o& l1 ?/ i/ O6 [8 l
                .gpio = DA850_USER_LED0,
3 z' |' p2 `- c4 R7 m) x) e                .name = "user_led0",
) G% |( P% h0 b: c# U8 I" F                .default_trigger = "default-on",
/ C8 B% e2 a( _) H% G        },9 E  S. r! Z. j9 m3 J* F
        {
9 F" {/ j  U' }( d4 v7 A$ Y                .active_low = 0,+ j/ }8 ~9 h# r5 h
                .gpio = DA850_USER_LED1,
1 l$ G. }2 M1 i                .name = "user_led1",1 G& g' o8 q. J
                .default_trigger = "default-on",
( Q  C; Q( t% w+ e        },
, H4 T: ~% j/ P; I2 h0 n        {- j+ v% X& Y; u/ {$ R
                .active_low = 0,
/ U# s4 f0 f" \- x                .gpio = DA850_USER_LED2,
' X# k( j% C( a                .name = "user_led2",
; ?/ q6 n* p  v- |% u# H                .default_trigger = "default-on",
" V, e: X: j4 l1 c        },
! P$ S' r: [1 c- z( c        {
. v# Z- P! t7 M! V8 E( r                .active_low = 0,+ w& W5 W' w, C/ R
                .gpio = DA850_USER_LED3,
' t7 i8 c: T) u. i3 c6 P* e                .name = "user_led3",. S4 o: ]% q! u& H0 y8 q( H  M
                .default_trigger = "default-on",5 e. |- r  r& a1 i
        },+ D' d, M  M( T. U
};
  C' }! L8 [( z4 f. B: ^/ @! e
! O4 L1 `. @" p- O; D; mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 s& m; m% e' V8 W% N5 h
        .leds = da850_evm_tl_leds,/ ?9 s& A- I. K& {: Q" `( T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 t7 n, L7 V3 i0 t5 c0 m/ F};8 E7 r+ E* D0 f) z9 r$ B
" u# \  L" O0 A( _4 w
static void led_dev_release(struct device *dev)
7 ~) \( o& U+ K  y; |. j# g) [{3 W1 Y+ ]$ X0 ~
};- _; u7 a( t( Q8 a7 F3 Y' h
) U6 r9 }6 X/ D+ `7 M6 ^
static struct platform_device da850_evm_tl_leds_device = {
: V  ~$ [; t* K) ?        .name                = "leds-gpio",2 L) y, Y' N+ \3 i
        .id                = 1,
! l+ I% l) A) Z  z6 t  ^        .dev = {
) \3 S. t4 e/ ]) F                .platform_data = &da850_evm_tl_leds_pdata,
' U( {5 C6 Y6 M) \1 D  E                .release = led_dev_release,
/ ]8 N* A5 G( ~3 G        }
; t* F9 o3 O$ \7 L7 T9 [; I};
" U5 w# r! j& X4 V; X
; Y% n) {! Z6 f" s' Q; istatic int __init led_platform_init(void)
- q( q- k4 w& }1 q/ e! i; b{' R6 y7 @; O$ J2 ]. M* l# ^& |
        int ret;# C' t7 v& J" p4 e
#if 0; y7 j& s# |! ?  p0 F5 B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 Q' l! X: k4 \
        if (ret)' w( ^# {5 o" Y) j8 e$ z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 r' a6 B5 R8 |- L2 o0 o                                "%d\n", ret);4 J/ G* A: a! U6 h5 m3 r
#endif
- W2 j' L9 k5 `9 s- g( w! t: S1 V1 b& R$ z        ret = platform_device_register(&da850_evm_tl_leds_device);
2 Y/ B5 ?" V+ m" H  ^# P. x$ m        if (ret)
. Z* p% Z- A+ ^. f8 ]8 b1 ]                pr_warning("Could not register som GPIO expander LEDS");- k/ Z, f  _: i' ?1 }( Z+ P
        else
6 U0 T& g8 S0 z9 F$ G4 C. Y. Z                printk(KERN_INFO "LED register sucessful!\n");2 O; j; C$ f% m- i5 m  ]# E  q
' l: E) i& D# h. A
        return ret;; G( s0 M" a8 \1 O# ^
}) N# t  _) F. o: }8 G

, ?& Y% ^* x2 l4 Wstatic void __exit led_platform_exit(void)) ^* G. N+ _0 y$ e9 o
{* Y/ q3 M0 d2 c5 D
        platform_device_unregister(&da850_evm_tl_leds_device);
6 Z, Q0 ~9 M& C, v
* Q' ]/ E) v; t, @% J) f        printk(KERN_INFO "LED unregister!\n");
5 r2 e. I4 k( {5 w' ~  B* ~, n, Q}
  g4 e6 i3 ^  g
; I2 N+ H3 C% q, E! G/ K, B3 _( Hmodule_init(led_platform_init);6 U& q# Q- k6 r  K; r" ^
module_exit(led_platform_exit);" t/ b' c0 k8 L: m

0 [* Q2 Y6 O- l' s8 I' OMODULE_DESCRIPTION("Led platform driver");
% H4 p8 K% d0 {+ p, [, A; nMODULE_AUTHOR("Tronlong");( K4 d- S$ [4 e; n1 N7 w
MODULE_LICENSE("GPL");
$ n; A$ n, K' Y  D
, f  w/ K, g, _% l/ N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-24 17:29 , Processed in 0.040173 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表