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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ y, t& {* a" _) Q& k: H#include <linux/init.h>
) q7 f  W" n* o+ L7 d: {5 ?* I1 K: O#include <linux/module.h>
5 o2 P- x6 O9 L, C3 N! f#include <linux/kernel.h>: `( ]& M/ Q% j4 O
#include <linux/types.h>
7 V( K: k7 I2 |#include <linux/gpio.h>% `$ t. Y: B( {' o$ ]% k3 \% B( t
#include <linux/leds.h>4 J9 s/ M% D% ~  a$ o! b1 p, k$ r& O- v
#include <linux/platform_device.h>9 U5 X  r) k7 [: w( ~

9 g5 U5 f/ x- D+ [8 k2 _/ [#include <asm/mach-types.h>6 f' T+ ^( r7 _, Z. P7 I
#include <asm/mach/arch.h>) p% i9 O* N! l5 |5 S! r$ |
#include <mach/da8xx.h>
2 d% m# z1 x- i/ p* \. d* Q$ Q9 R#include <mach/mux.h>: l" ^- L' G: R% R1 c- @
6 W% w' B4 A6 [& d# T1 U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& m' F+ O% G6 d% u1 Q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  W! P% B! L, R# t, r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ b2 z3 m1 S) Q+ A) o/ T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); j* H* A  b$ x) S9 C9 x

0 H+ s" t- e+ G. u* \0 t' q/* assign the tl som board LED-GPIOs*/; O+ v' E1 Z: E9 y
static const short da850_evm_tl_user_led_pins[] = {  @( U. V5 j2 p; t5 \" N" J
        /* These pins are definition at <mach/mux.h> file */
7 x: ~0 {% x# m1 h  f        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% m4 C- R6 x, U9 q4 n# j        -1- j/ M4 c% U* ~6 X+ c' b% J; Y$ w
};
" b6 q7 a5 F" l; J
  W% K+ h; W, u' ystatic struct gpio_led da850_evm_tl_leds[] = {
0 }; W  |: x. d, Z/ n6 H+ d9 k. a2 B( b        {
- X$ }5 _* k& X9 Y: t/ m  ~- S                .active_low = 0,
6 y3 U: }/ ]+ J% f- l2 u2 `                .gpio = DA850_USER_LED0,2 j) ?& b  D- Y7 R4 E
                .name = "user_led0",
! w2 s- Y6 e$ q# v% i& J                .default_trigger = "default-on",3 Y4 D  ?0 i6 F" q; ~+ E9 @% F
        },
/ ~; D% V& H; U        {5 G) t+ g$ ^. P
                .active_low = 0,
% X2 i' m' K8 n$ e% N                .gpio = DA850_USER_LED1,
! ^0 J9 ~3 @; r* H2 V                .name = "user_led1",
, e( F( t; M4 B5 A/ w2 v1 k$ q                .default_trigger = "default-on",5 K9 `0 p9 q' A1 C9 q: E
        },/ m/ N2 \$ t9 i, L, d5 O
        {! l4 Y% S7 L! @  R- [4 Q0 X* G7 h
                .active_low = 0,3 U3 ^4 B" s- C2 R3 v
                .gpio = DA850_USER_LED2,
- T# w' A  D  O, y8 N3 Z                .name = "user_led2",
5 Q/ `# P$ B3 e5 z: r! y* M                .default_trigger = "default-on",
8 y0 E0 U- _) i* K! p* m* V# b        },
! k. l( W; \: B5 ]2 U" M8 Y        {
. W( p/ b/ l8 Z1 U                .active_low = 0,
; G/ E( U  A8 ^0 @- Z# v: V% W) ?                .gpio = DA850_USER_LED3,/ R9 R+ e8 V) v5 c. ]
                .name = "user_led3",
. }2 O6 D8 @% ~8 i                .default_trigger = "default-on",
% t3 x8 K9 X! Y        },9 Y) \" m# t9 f$ l& d
};
/ w. _% E# Z% @. b, z' F4 K2 B  l5 X# O) H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 ~+ r2 o# {1 W4 {* {- H1 r5 S        .leds = da850_evm_tl_leds,
% S0 C- o: n4 n        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  ~3 T# K6 w3 @; c! Q; O7 O
};
4 W& H: P/ \& e1 u9 D& [' y) L& E( t' \
static void led_dev_release(struct device *dev); F1 g5 t- x* Q8 t) v
{: v8 K- @- R& x
};
0 L1 _0 V- K, T* ^7 \' Y9 `; z9 |0 ^- {8 e
static struct platform_device da850_evm_tl_leds_device = {
+ _1 l$ V- J! V5 h( Y        .name                = "leds-gpio",- c/ x2 j9 p1 [
        .id                = 1,$ T/ I' Z& ?& Y1 D8 r1 k9 A
        .dev = {
; P- p% Y, Z, L4 W                .platform_data = &da850_evm_tl_leds_pdata,( H; e' p0 z) r( E- n- c! K+ M( Q* ]
                .release = led_dev_release,# q/ O( K0 x+ `0 ^' o
        }
8 f+ o5 a4 j7 t};8 X7 N. E  p9 L3 e  c

$ ?: L9 Z8 h5 Z# Fstatic int __init led_platform_init(void)
6 ^9 P: K/ v- z& r" d{
3 g" F9 E; n! Q, }3 F        int ret;& [# W2 c; k0 b- Q
#if 0/ D. R) d9 {, [. e% ?6 X: |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
0 R, \7 F( K- X: C7 E2 k, D        if (ret)  G9 l( f/ `- _2 A- z+ |# T: B& o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% _: G8 w8 A4 f" ~                                "%d\n", ret);
/ r$ Y6 J1 ?  i- e#endif
6 s  q! ?4 n' G9 G7 u) I- r        ret = platform_device_register(&da850_evm_tl_leds_device);# \/ N- ~* D, s2 p5 G1 y9 V
        if (ret)
1 l5 m- d' X5 n- K3 O: i' w- p                pr_warning("Could not register som GPIO expander LEDS");
8 ~- k8 b9 S+ k+ F( u/ ^# ^0 S        else! u4 B! u, L6 y4 w; w- V; v
                printk(KERN_INFO "LED register sucessful!\n");3 g! y( S9 v7 E9 A
! ]( \3 ?7 m- X1 N/ A& ^
        return ret;- i4 H( K$ X3 z) l+ `- X
}+ X9 o# I% O/ [  Z# p, N( f
7 d) b( o, H5 i% V
static void __exit led_platform_exit(void)& v0 s9 [$ u+ o7 t! Q
{* o( y8 [, y7 U. R& h5 v  N+ h5 r
        platform_device_unregister(&da850_evm_tl_leds_device);
* l2 E1 H6 |0 `8 k) [- y% r9 x4 p' n) _% }
        printk(KERN_INFO "LED unregister!\n");% z4 |4 _+ C' R
}
  `5 o2 T; U: E; ]1 c' s, r3 v: X- |+ o* g& p. O& q
module_init(led_platform_init);6 X/ h5 d' i' D& r- `# D/ Z
module_exit(led_platform_exit);
% m4 P4 d4 }( C8 O- G8 {; n
9 G/ m7 S. R- B0 rMODULE_DESCRIPTION("Led platform driver");# B) ^# N& @$ ]: g! X
MODULE_AUTHOR("Tronlong");7 \# E" Q* k6 d6 W, v
MODULE_LICENSE("GPL");4 u: e3 [) S" m
) z9 o+ M  w1 i7 e' |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-20 22:54 , Processed in 0.039214 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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