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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ q, i$ ]3 R. K  [#include <linux/init.h>9 z* J3 f- u8 j: \6 S# Z' p3 q
#include <linux/module.h>
7 n$ Z& l; B/ |4 {+ W8 b+ i, s#include <linux/kernel.h>
& A' @5 o9 \& z7 \4 l. `% I#include <linux/types.h>* D- V& U, z# Z; ~
#include <linux/gpio.h>/ u/ \# |; k. h2 G
#include <linux/leds.h>8 O! U5 f$ \! x; \' T2 m
#include <linux/platform_device.h>7 e2 Y: b& ~* Q; s2 K, x
9 [% k4 G! C  p# L# |; W$ s
#include <asm/mach-types.h>
4 ~9 p8 v  o" q. l3 T4 \1 i#include <asm/mach/arch.h>
! ?5 C9 S& G  s+ E& p#include <mach/da8xx.h>  |- s7 t5 V5 T% l4 R; I0 R( [  Y
#include <mach/mux.h>
  o9 t7 e0 s" F" d& H  r: N9 r. R  e+ {' V; H
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 G& L) [2 P) I$ E1 I- M" P+ e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% a2 Q  l, J& t. X& F. r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 M, [8 k  m3 G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; a$ o- B& {4 G! K0 V, X# t& @2 T( a
/* assign the tl som board LED-GPIOs*/
3 j2 X- U0 F5 jstatic const short da850_evm_tl_user_led_pins[] = {
/ [  f  l3 E8 a6 I        /* These pins are definition at <mach/mux.h> file */
8 T& P# s( |' i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  Z( H' U0 p  Z9 `        -1
1 r3 M7 u$ l( R$ h; z0 m0 I: i};
3 C4 H: ?# X1 c5 f. u! l9 q6 w$ b2 u) D+ L, ~
static struct gpio_led da850_evm_tl_leds[] = {) s& u  y1 z# Y5 h
        {/ k2 P+ A  p$ r, N
                .active_low = 0,* i. ]9 K( k  E9 V" f6 n2 r3 ?1 n
                .gpio = DA850_USER_LED0,
, g) o' B' }  N! y/ i6 k* X( _' ~- l                .name = "user_led0",
7 ^1 M  {# K- C; f8 j                .default_trigger = "default-on",4 [0 B3 c+ x8 J: c
        },4 O( @$ H  i' Q3 S. B: Q) G
        {
+ Z7 o! y; t4 m8 K! X                .active_low = 0,* N# l# p7 \+ v
                .gpio = DA850_USER_LED1,
$ ~6 z: e. b2 G  W- S7 F4 ^# ^                .name = "user_led1",
8 E: b  M$ d. U8 L. Y( Z                .default_trigger = "default-on",% G1 D& b( t. D) u7 s
        },( c, G' X3 s/ S) Z3 S2 q
        {
2 R& G+ Y, c3 ^: E7 N                .active_low = 0,8 d! N; Z- W7 m  r9 q
                .gpio = DA850_USER_LED2,. Y# o: h8 d; v* J6 p
                .name = "user_led2",
6 ^! v- _2 r% x2 ]8 D5 G" G                .default_trigger = "default-on",
* p) g* F) ]9 s' |" ^        },
* ~- K# w8 `! D! L        {( s5 z+ V8 F+ z
                .active_low = 0,
7 t4 G. p4 D3 l0 E7 d                .gpio = DA850_USER_LED3,
; |- v. q/ A" {0 Z+ {  W                .name = "user_led3",# c, K, g$ h+ @! H& f
                .default_trigger = "default-on",
( ?6 A( t3 B; A# r4 |; n9 b        },
2 a. E% T1 l3 q+ q};
( X) B/ y) \6 h# O6 c$ y: _# n+ O* \5 G
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 n' Y+ m9 M# {6 k0 A
        .leds = da850_evm_tl_leds,7 H& O: \( u0 t1 f. z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' v" ^; f8 ]+ H2 O7 v5 C
};
( r; R8 W* `( B8 c$ t6 Z( a. T
9 l! J! r7 ?* E5 ustatic void led_dev_release(struct device *dev)
' f+ a0 Z" r5 N6 u) ?{
+ M( O% I/ N/ b5 s: W};
& T; ~0 f9 s0 P( x. |
7 N" N! f5 i9 \" ?* lstatic struct platform_device da850_evm_tl_leds_device = {
; h" ]5 i3 X0 J3 T        .name                = "leds-gpio",& l, |# V* V/ H
        .id                = 1,& Z& ?: x3 f& ^/ x7 V) n: v
        .dev = {
' S& Z  [/ a* a) V" G' k                .platform_data = &da850_evm_tl_leds_pdata,4 q, W1 z- m: E& f& q3 D
                .release = led_dev_release,
' o$ R  j. w5 R6 \6 u# w: A        }
& U+ U1 W# G* l& u};
* d* _& l8 p" g, a+ i
- c# n  ]7 c6 e7 D1 B& u7 h9 |) Istatic int __init led_platform_init(void)
9 d% v* p, t, C5 B( i& d{: U" A* b% f9 G6 _7 D
        int ret;
0 Y8 d: f+ r/ I8 @. [+ j  k#if 0) }$ Z& w1 F! q* u. ]* i3 G% u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, w6 J- H& Q$ L$ a) S4 R
        if (ret)/ G9 r+ s: n; J+ F
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* P4 h8 X4 Y6 w* x! r. [' j# z                                "%d\n", ret);+ E: \  u! b2 |  e; \! g& L
#endif
" Q" J# O) k6 m        ret = platform_device_register(&da850_evm_tl_leds_device);
$ i- w# Y' V4 O2 B        if (ret)2 K8 K1 W' }1 y- e8 m) I" B6 M
                pr_warning("Could not register som GPIO expander LEDS");
; S: B9 T5 _  N! C& \; z+ ]        else
& ]( ~; \3 p3 Y" n! M" i  w                printk(KERN_INFO "LED register sucessful!\n");. v, N* I& B+ Y5 W8 |& u
2 d/ @$ [) Y4 G1 w5 _% U/ x" P" g
        return ret;
$ ]) ~0 M; U) f1 `1 |8 B}, D0 s6 z3 D3 m  Z

3 }! J  j) v4 S5 q7 G: v+ w8 Astatic void __exit led_platform_exit(void)1 D# h. a& s( Q  l# p
{$ N4 c& l5 Y4 Q! ^0 c# S
        platform_device_unregister(&da850_evm_tl_leds_device);
6 l- U9 \+ u' t  n) x, Q0 x& k8 f' O
# Y( P/ f* x* v4 H" ]' \* Y        printk(KERN_INFO "LED unregister!\n");
: T- D) o% y' Q5 X+ C$ X}
1 g' B8 h0 H9 ^2 ?5 R6 k+ d% R1 H! i$ Y) x! d& w$ o
module_init(led_platform_init);
6 h( f0 E* o+ m, D2 amodule_exit(led_platform_exit);, y7 b9 ^4 l- C! h  ~1 ~5 K7 `
! _+ L4 A- B2 e- p; F6 w
MODULE_DESCRIPTION("Led platform driver");$ G' i. p5 [5 L5 ?9 B, j' x1 S
MODULE_AUTHOR("Tronlong");
: G* k# r: ~; [0 yMODULE_LICENSE("GPL");
* }; h8 G: g" s5 b# |: U: Z
* j* V- i+ U. W! H; F% j; O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 00:12 , Processed in 0.038871 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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