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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ O. ?0 w; w0 z( T* _
#include <linux/init.h>
8 K+ C7 E4 c% }' r1 `. B  [#include <linux/module.h>
: u4 E+ d9 @" |6 x# F0 U# J! `#include <linux/kernel.h>4 k+ U# U2 {8 k7 }6 l* J
#include <linux/types.h>
+ K* l- y* P9 S- r4 S. P( c" X#include <linux/gpio.h>
" B1 D* B7 ~* ]. i8 Z#include <linux/leds.h>
# F9 `9 R% {) H6 }0 |#include <linux/platform_device.h>
9 T$ i9 B% k. B% |
5 k6 O- K/ x3 F; R7 E#include <asm/mach-types.h>
( p3 L/ C, q+ ^5 y: q4 i* |6 H#include <asm/mach/arch.h>
2 g6 X7 `9 U- |8 T1 t#include <mach/da8xx.h>
) n/ w- M/ W$ F% _7 ~#include <mach/mux.h>
$ z+ O) o# `. k1 A
9 e/ l( J# p" A4 _7 q* D; ]#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  O: U+ L$ p& @7 _, |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, e3 q# Z2 H% G4 P! U0 o6 N  X& j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! u; ^7 `6 T* v# Q$ {; l' V" \& c
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( @9 ^% k6 j! Z3 S& j! _9 T% ]5 P8 D1 A8 m  I: B1 _  \# B
/* assign the tl som board LED-GPIOs*/( N7 @1 t4 K' Q
static const short da850_evm_tl_user_led_pins[] = {
( `: g& p( X9 S+ i        /* These pins are definition at <mach/mux.h> file */
1 F. p+ l5 R5 r, b# E( o$ \1 P        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ m6 N& \# a6 _* U2 R        -1
7 I& Y. \# J  e};6 ~  D7 o0 g, p$ `  n: d% N- ]
; N- g4 F9 m2 ?2 B+ W& e, b: T3 ~
static struct gpio_led da850_evm_tl_leds[] = {: a1 t" K/ P7 \! T, o( ~
        {
6 a( F8 f, w# t& P                .active_low = 0,- l9 X- @4 m$ [, z
                .gpio = DA850_USER_LED0,
) r# p" C2 {( E& \                .name = "user_led0",. L3 P& ~6 A5 R( J' D4 O" `8 o
                .default_trigger = "default-on",
6 O+ Q" Q& N5 r! ~% p, Y5 M        },
  E+ w1 c) W5 A7 ]        {
1 m+ t. E2 ]# t2 g7 {  J1 Q                .active_low = 0,4 F3 {; s1 d. G4 u$ {, u
                .gpio = DA850_USER_LED1,
5 _6 w1 y9 r- {# p- t' e! c                .name = "user_led1",* p% e4 V% s" c5 v0 A( _
                .default_trigger = "default-on",$ F8 x& R# J1 {, z5 e% o
        },5 d# n* A4 w( W. X) c
        {
0 d0 F4 {, v* H4 Z                .active_low = 0,
( k3 u0 @" R" }8 @1 @2 ]: Q$ S                .gpio = DA850_USER_LED2,/ N- H- s; a5 D6 {2 w) N- ^
                .name = "user_led2",# A9 A; E! L. ^
                .default_trigger = "default-on",
9 |7 Y! m5 G7 J- X0 A) a1 i        },
# H6 a( L. G4 Y# x- S' r# _) A+ X' Z        {. T: E2 [$ I/ |2 q3 E/ @
                .active_low = 0,4 H9 p7 }& Z) }8 f
                .gpio = DA850_USER_LED3,
# G1 i) W9 d( V6 J& ~3 M                .name = "user_led3",: S# W5 Y; Z8 l: ~5 a3 |
                .default_trigger = "default-on",: `- W3 [* p- A, K% |
        },
4 Z0 a. W; q( T( I6 o9 s! e};
+ f. Z/ @- ^3 z5 K# {$ f- o0 M7 Y7 I9 s' Z6 u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; ]; @4 {! ?' f5 U7 ~2 s! l
        .leds = da850_evm_tl_leds,
9 X# D$ A  |9 v0 b6 x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," F1 v3 r, Z  n2 R& b$ U" s
};
8 g0 `4 C  h( R2 R& f) ?4 \; l* A7 |5 c! F# l) H, _& Y' J, D
static void led_dev_release(struct device *dev)
; w: [7 R$ B# G! u$ u+ _{( m# n2 g0 c: O! Y: U
};( q) j# C3 P/ Q. M; [

/ ?4 ]) w; K4 t1 ~- Astatic struct platform_device da850_evm_tl_leds_device = {) U: |, S: V: U# I( n! M
        .name                = "leds-gpio",
8 R4 {- ]& f% c/ I        .id                = 1,
% m6 P8 n) a5 H- Z* L8 k        .dev = {
6 P  A# B3 a. o9 w/ z                .platform_data = &da850_evm_tl_leds_pdata,
) O: V% B6 @" q' X                .release = led_dev_release,
8 L: l+ `/ r# [  D  A        }
* y" F* v$ E6 f! Y};4 S, R0 e0 M. @* N2 i1 t8 m' |
5 n& j# q. N$ w
static int __init led_platform_init(void)
+ @  @$ n. o) Y# J9 y. t, I+ U{" o9 }% ]& B3 p' F1 g
        int ret;9 w! C' @& y0 k, M# j
#if 0
; j2 g, X0 p+ o" c9 \" a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 a7 _: K4 p% `: l
        if (ret)
8 Q" |# S) }. V7 ?- c& V6 T( @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ e& O- n" ~% V                                "%d\n", ret);. b& \' a/ O# l! b1 D
#endif4 k7 C+ n* ], J# t! }4 F  ?
        ret = platform_device_register(&da850_evm_tl_leds_device);" O+ B  o  G* i" C/ Z
        if (ret)
8 Q/ e- W8 U0 }' |- O- O) {; u                pr_warning("Could not register som GPIO expander LEDS");
$ v5 _$ u4 \" N+ o8 X        else
1 `% e8 G9 S0 a8 R                printk(KERN_INFO "LED register sucessful!\n");2 W/ I/ W1 \% |/ Z4 K, q9 ?4 E
- c6 \* u; c$ J" F
        return ret;
" i* Q6 K3 s" [) k}
$ a& U9 a  j* \1 M3 D
6 R4 S5 f0 \6 l( lstatic void __exit led_platform_exit(void)
; q$ \0 C: }0 s; t{2 K2 F2 Z$ c1 Q8 x
        platform_device_unregister(&da850_evm_tl_leds_device);& g# Y$ d6 c3 d" p4 ]% P5 Y' Z

$ P9 p5 ?9 p5 ?: D* u        printk(KERN_INFO "LED unregister!\n");2 Y0 v0 f' f4 n% O+ K
}. D9 ]9 p" P/ |3 a4 [0 o

" R+ _; c1 k" z7 u0 Wmodule_init(led_platform_init);
+ p; n5 t9 A: H6 bmodule_exit(led_platform_exit);* D/ R3 @; i& s8 z  ?" s: E
. C$ V, _# ]" M. z% C8 D
MODULE_DESCRIPTION("Led platform driver");
8 a3 E2 s( h6 j* d8 ~3 z1 N4 cMODULE_AUTHOR("Tronlong");' _$ V. _) I2 \
MODULE_LICENSE("GPL");
. \  |1 N% A( c) Q( b2 C1 o+ p1 f* V) G- y5 W% i8 k3 V' P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 19:38 , Processed in 0.040770 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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