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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ L/ ~" G* x  G, a& N% q& z8 Z3 O- |
#include <linux/init.h>* y9 f, C  b7 @$ {- F4 Y, T
#include <linux/module.h>& T6 K1 _& U3 C- J6 t
#include <linux/kernel.h>
7 p, ^- y1 d  _' i0 r+ y3 A: ?( v#include <linux/types.h>, O2 m, w0 L/ t8 M
#include <linux/gpio.h>
: w7 ], H) x- g. [8 ]#include <linux/leds.h>8 n/ c1 ?- F: d" p+ u9 G7 e
#include <linux/platform_device.h>
/ j7 i5 k+ U) ?( T4 Z# Q8 P: h5 H
#include <asm/mach-types.h>
# i( J. o& J1 M( R/ P5 R#include <asm/mach/arch.h>* F2 Q3 h, M1 E& K
#include <mach/da8xx.h>* O* n( {6 ^$ e: ~
#include <mach/mux.h>
$ o" T/ h. u+ s9 x$ w5 _* U/ {: ], U3 c8 _. |- F6 q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 o5 T- N9 |+ y' F' N/ r# o% d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), v- _) R" S5 ?% o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 J- Z& G( p2 T6 B" y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) D+ L7 Z+ V& h! z
8 O6 P2 q8 M; q0 L* i/* assign the tl som board LED-GPIOs*/3 [4 M2 Q* U4 M+ y/ L
static const short da850_evm_tl_user_led_pins[] = {
/ Y9 r; X9 I' P+ K! D: V        /* These pins are definition at <mach/mux.h> file */
# z" u1 l2 f' Y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," g/ _3 t% h- f- b5 f4 h7 {$ V
        -13 G" z/ t9 |' x$ A
};
+ e- v! |2 r9 L0 K2 k) v  {
+ i2 Y2 i# q4 o/ k0 S, j* zstatic struct gpio_led da850_evm_tl_leds[] = {3 n- X& ]1 H5 T: M: J( w' J$ E
        {
; b5 c  i: Y/ m9 m5 f                .active_low = 0,2 c: J! P/ `4 h$ O0 K
                .gpio = DA850_USER_LED0,  W5 N4 e+ ^6 ~& z0 _
                .name = "user_led0",
$ _2 r$ A4 ?$ Y) x  ?* e4 M! i: J6 g                .default_trigger = "default-on",% A# }# b6 e0 N
        },5 d3 T1 ]" e' B4 Q: O  E& E
        {% z8 j. a$ x0 E' J- D
                .active_low = 0,7 v2 Y2 w3 \( x, o* _! Y' R
                .gpio = DA850_USER_LED1,3 r5 w4 f" O) X
                .name = "user_led1",
* ~4 J& e+ f2 X. \                .default_trigger = "default-on",. C7 V, u+ {' i7 y' h, i
        },+ A* u) [/ B6 L- ~
        {
; I9 s: f% I% j5 K+ K9 u                .active_low = 0,
) ^5 o/ g" P: b7 D                .gpio = DA850_USER_LED2,! g* G" C& S3 W8 O) S
                .name = "user_led2",
6 ~: q% l- S/ m  f& M) Y                .default_trigger = "default-on",
. G2 [, G  I: D- n  l/ _) L        },
: ^' s: f' }8 k" t        {
) K8 x- c2 h' [4 R6 a& g. C6 R                .active_low = 0,
3 S+ g' w% r* F& Y2 |+ v/ I                .gpio = DA850_USER_LED3,
2 \$ o( \, M; g5 T! F6 ]; Z                .name = "user_led3",& X; z# _% T% M, `& h7 X- g3 j% W
                .default_trigger = "default-on",, k6 o. S( a5 L! A/ f8 N
        },
% x+ C- P; V6 s$ @( x9 z; f/ }};0 Z1 \, s' J2 f+ z" A/ M8 ?
( I- {" j7 q" S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, C: n3 Q  G8 r' X- J$ N        .leds = da850_evm_tl_leds,
4 S% F' H: n: h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 j5 o8 Q4 G, G, B, X. D
};, b" w9 A: Z6 R% }9 ?

) ]" w  \9 o3 s0 {8 A2 estatic void led_dev_release(struct device *dev)
/ J; |% V1 G/ z9 i; O3 o. k& ]{; ]3 V7 O* [, z4 K9 e8 j4 M
};) l6 |, S/ O8 T! V. n0 _
6 F. g, h5 ^* c) I) u
static struct platform_device da850_evm_tl_leds_device = {
$ h, s: j# ?7 L. ]# z0 k        .name                = "leds-gpio",
, m" D1 I$ \- \4 w& G. |- E0 i        .id                = 1,8 S6 t% F: \: ]9 L) n
        .dev = {
0 C9 P7 v% s. }- `                .platform_data = &da850_evm_tl_leds_pdata,
% r# u$ q% t* `! y( ~: R# r2 I                .release = led_dev_release,# H1 D- T$ f5 J
        }! l/ D, ]4 B8 y# {7 L  M5 m) _
};
. v- Q" g1 k9 `# y8 j: E: ]- j& Q2 a' h5 c  ]4 E
static int __init led_platform_init(void)
7 M5 P7 ^! {# A7 s{
% w# B0 G" p2 \: P+ j4 @- F$ ?) N        int ret;' x# T! L1 [% `; c; E
#if 0
1 M1 v; b- O* ]0 o" F1 ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( Y' I) p" n' k) g! ^9 S. M        if (ret)
2 U7 i! _2 a/ f6 \4 I. A# S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ R; [" [. D5 K( C% ]! W
                                "%d\n", ret);/ l3 _9 X0 L7 f/ @. z# P, u
#endif
& K( |( q, W  q        ret = platform_device_register(&da850_evm_tl_leds_device);# |; l+ E. ?4 H5 y# N
        if (ret)5 T, K) i! M* x6 d3 k* o7 Z  v
                pr_warning("Could not register som GPIO expander LEDS");$ {: \" B9 j8 A) x/ e
        else9 c0 v; ]0 k/ b' ^4 o6 g
                printk(KERN_INFO "LED register sucessful!\n");- n$ o; X: f! P( Z0 b+ L1 j2 W

9 @. ]/ O: y" b5 V        return ret;8 ?+ h3 _8 P- k+ H; s' z$ r: D6 c
}1 m0 U( E& |2 M2 L9 `6 R
" ~& }4 j3 j# E7 Y5 H  O0 R% _1 O
static void __exit led_platform_exit(void)( L6 ~4 k) o6 D) f: E' ?) c
{
& A  |' c7 e$ J        platform_device_unregister(&da850_evm_tl_leds_device);! x7 V" `9 m  [4 H6 B
" X: \; E1 z1 E( u
        printk(KERN_INFO "LED unregister!\n");1 m+ Y, g3 Y/ M; G2 @$ f
}
) G+ W5 ~) ]5 u7 E+ [9 Q" X
( i* y# ?& ^" ?2 _  g: r' }module_init(led_platform_init);2 u# `0 f$ |& A! A
module_exit(led_platform_exit);: B3 U* z% f" q" `! ]' o

: W: I0 d6 A$ V/ bMODULE_DESCRIPTION("Led platform driver");4 A" s% Z( ^  y+ N
MODULE_AUTHOR("Tronlong");4 _$ C2 U8 [7 U! S
MODULE_LICENSE("GPL");
/ W, D4 q+ E) X2 l8 T+ w& F" m2 }; p- o% \2 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 02:29 , Processed in 0.044892 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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