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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  v1 I7 V7 O. D% J#include <linux/init.h>% c. d3 o8 B0 y8 x
#include <linux/module.h>' S$ p' Q; B8 |' C; H: }# X
#include <linux/kernel.h>
( y# s( h. c' u4 f#include <linux/types.h>% V* T% z; U" \% o2 L, E
#include <linux/gpio.h>
7 {6 l  z" h2 B# z2 E. _  i7 }/ b#include <linux/leds.h>1 o0 d2 S* B& z: k1 b" d8 H
#include <linux/platform_device.h>
' X4 E; c% e1 m: |* H3 H
- N2 I! j! Z8 l; M#include <asm/mach-types.h>. ]2 N) ~- J/ u' M" ]" t
#include <asm/mach/arch.h>
  b- k5 H' g: n- t( U% x6 N#include <mach/da8xx.h>
+ @' z3 d' Z/ m, Q. w. M#include <mach/mux.h>
: W) a, U6 S+ L) v4 U9 ]- u- Z' A) j* U2 b- v0 S1 f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 y9 x+ G/ w7 M8 T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% x( n9 |0 o5 ]+ c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( }4 @9 D" U; h! N) o3 o#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); I$ f0 i- l) \7 c

2 t7 f. n/ K' x) b/* assign the tl som board LED-GPIOs*/% O; a- Y  F  v7 H* e8 h9 u3 m( K
static const short da850_evm_tl_user_led_pins[] = {
: [* h0 A7 O, ~3 m# d5 ~- Q        /* These pins are definition at <mach/mux.h> file */
& C' X% o0 L( {  L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# W; h9 v- V0 D' A/ O; [        -1
, p! [% x7 I+ X  _};
, s' W. Z9 N( m  F( q* p1 H% h8 y& M/ R, K% \% \( W9 p
static struct gpio_led da850_evm_tl_leds[] = {% [3 ~5 N( U/ a( f
        {* X/ x6 O8 g8 u. t
                .active_low = 0,7 `* ^. w- x0 X5 Z+ l0 ~4 T0 {
                .gpio = DA850_USER_LED0,* _" I0 K# Q/ K- o& ~$ ]* T
                .name = "user_led0",: Q% n3 D! e8 H8 T
                .default_trigger = "default-on",
4 N. n5 k/ S1 t) M, `6 r! v6 z* c# `1 e        },
' B# _1 D+ i" m        {" m1 k. k  g4 v3 h
                .active_low = 0,
6 ]+ G5 o3 \- Q: Y: O" i7 @                .gpio = DA850_USER_LED1,
* `9 x  X+ L" [5 l                .name = "user_led1",) s  }' F* s+ ^4 h2 m& P
                .default_trigger = "default-on",8 F  Y% L6 Y7 z5 y; h( U  I
        },% P! M; W$ z: `# |4 ]- f
        {+ \- Z7 i$ o0 b' C, ]. ~) ~/ y
                .active_low = 0,
( C1 l/ X' m$ |# t- N                .gpio = DA850_USER_LED2,
2 Y1 Y- X1 _4 Q( C* H* V' n" z. h. d/ v                .name = "user_led2",
# Y, `  A" `* I+ ^- A" l$ G! p                .default_trigger = "default-on",, I4 P7 f; `( d, c8 G
        },
  i5 W0 b8 q5 s3 e        {
$ r2 _! U# L( v1 b2 Q! q                .active_low = 0,
, o( ~2 Z+ h  Y                .gpio = DA850_USER_LED3,' e3 s+ @8 m* w3 R; q' O- x
                .name = "user_led3",5 |6 ~5 d& E  S. i. D5 e2 g( }
                .default_trigger = "default-on",( X$ F: F! g: Y$ I4 Z
        },/ z, Y. s# X! N% b5 }$ y3 v, C( H
};
0 Z0 p; S: U) ~* ?
9 Q6 J7 V" @$ N; x3 {: W: b6 Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- S$ w: |& i4 D" T: L7 W        .leds = da850_evm_tl_leds,
2 x% J/ n( M# g, C' u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: i+ ]5 R# e, S/ W3 y4 W
};
5 ]- Q; ~; s1 |% `+ [
, v' Z* }3 _5 A9 gstatic void led_dev_release(struct device *dev)
% u) |- ?2 {! i+ x; C{
1 C+ {2 h5 a! F$ t$ K};
* H+ O6 {1 q4 z: u' W( _8 ]& \, W, P6 ]7 P2 W
static struct platform_device da850_evm_tl_leds_device = {
. r" X; s" F% B8 l3 W* N) j        .name                = "leds-gpio",
9 u* w, |7 J5 |4 `; `  ?        .id                = 1,/ I( p' O' ~' T1 I, n# }! g! R
        .dev = {
" Q' F1 U% P$ F* K1 Y                .platform_data = &da850_evm_tl_leds_pdata,4 }+ X) J2 c( q0 v4 Z2 w
                .release = led_dev_release,
: o: G- k; U( h! l5 e3 ^* ]        }4 d/ X0 A! |' ]  W, x
};+ q: ?5 s& Z& A5 W( h+ R- q- F4 I1 d
# n2 a) ], p- I
static int __init led_platform_init(void): Y7 c1 e2 d8 P8 h: y
{! ^: y2 d8 d3 V
        int ret;
; M% G! b" o, L' G& Y8 c#if 0  b8 n) K/ m7 {3 [9 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( s- H4 c. F) }( T        if (ret)
* |7 [) N+ Z  e% y  q& p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 i2 i& i- i9 \
                                "%d\n", ret);4 l2 W, Q: r% Z. _0 O  j
#endif: z* c' U' D% v
        ret = platform_device_register(&da850_evm_tl_leds_device);8 I  K+ p4 _4 q+ x; i
        if (ret)
! t  @, L6 I* z/ t, M                pr_warning("Could not register som GPIO expander LEDS");4 Z5 E6 E% X3 t5 `
        else4 o, T# {' {% b7 A
                printk(KERN_INFO "LED register sucessful!\n");
/ [5 D& K& k! v1 S' U
, X. X! R( v+ L% D: n' [        return ret;
) l0 d* |  M8 q}: S, g5 D  ?& L( B" U, n, W! ?, z

* x' {: k0 f& B' y# m3 d1 istatic void __exit led_platform_exit(void)
% a. K( o6 [2 n{$ ?' q3 u0 d( W- J
        platform_device_unregister(&da850_evm_tl_leds_device);
7 s& g# O! s2 z$ @5 [
) V0 h1 H8 N. s! y# R- w        printk(KERN_INFO "LED unregister!\n");
' k0 l) @* A" R: D}
8 h6 G* Y0 j+ p/ L. `2 [5 z; ^: Y$ s! v
module_init(led_platform_init);. i* J) F. r7 L& k. L; W* W
module_exit(led_platform_exit);
# S) I, o/ p4 M/ y# K7 w0 ^. B
2 m/ I# P) u* z. a' WMODULE_DESCRIPTION("Led platform driver");8 ~: P( ^/ Y% c5 p" p
MODULE_AUTHOR("Tronlong");' T  ~. i) [3 Y# n6 b: _
MODULE_LICENSE("GPL");
" B2 ~. B. O9 y
: r: k8 t, I6 }) M+ n) Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 07:43 , Processed in 0.037717 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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