程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! ~% a" L; r! [$ r# _& g
#include <linux/init.h>
5 X/ p- o+ f& ^8 A9 u2 c0 ?#include <linux/module.h>
* S& B/ b' ~: S2 F% Y#include <linux/kernel.h>9 M+ ~" _# A% \5 ]7 r
#include <linux/types.h>
7 P! V* j" [/ ~  R#include <linux/gpio.h>1 \: m% }- G% x6 d3 f0 a* o
#include <linux/leds.h>
) M' i5 }% x* c$ q2 F5 Q( M7 R' j#include <linux/platform_device.h>1 }4 R6 L# t- t' F0 A* F
' e, l: z  U0 k) K
#include <asm/mach-types.h>
5 _# I6 ]# b) _#include <asm/mach/arch.h>
9 g. Y4 y5 B+ o7 p3 T#include <mach/da8xx.h>
) `) @5 {( T. ~4 V% L#include <mach/mux.h>
, e& T/ u3 `% M( O6 U9 V% A- W* p! g- E8 R. ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 Y. e$ A4 W' @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 ]4 q  A3 g" l( A2 O" L#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 P; D+ ]- G7 \  n' |+ m; u3 V7 G# p#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
4 J* {  Y" {% O6 h: s) w
1 |. [4 B0 e6 a: r7 c( @/* assign the tl som board LED-GPIOs*/
$ c6 Q4 @7 Z2 Jstatic const short da850_evm_tl_user_led_pins[] = {
. Q/ l8 O. U1 c4 G$ u0 a) j. u        /* These pins are definition at <mach/mux.h> file */, I: [9 j3 A- ]+ P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. a8 h! {, l4 B8 O1 {: B' N( ?        -1
9 i. |* W& K6 u% f};
) j+ K' p, z! }2 |' t1 I* f2 t4 W9 _8 y+ b. H9 j5 i7 j2 \1 O
static struct gpio_led da850_evm_tl_leds[] = {  J6 R% H8 c9 V( A6 E, y7 Q4 q
        {
" C3 Q3 {* N  o6 k                .active_low = 0," a7 L6 I6 X6 i  R4 \  @  W; a& k
                .gpio = DA850_USER_LED0,6 y- L- o% k# ]; t! ]: W+ a
                .name = "user_led0",; l+ {$ n0 @' d& |
                .default_trigger = "default-on",; i6 F- @8 Z2 [- N, M+ w4 g6 [( R
        },
' A  v8 [. B8 ]/ F; u# D5 T        {
1 V- j. j) r8 d5 K4 _                .active_low = 0,6 {9 z1 n" v( B: D
                .gpio = DA850_USER_LED1,5 Q% I! B4 n* v! ], k( W/ n* A
                .name = "user_led1",
' ^! t1 T, l6 l6 s7 G                .default_trigger = "default-on",: p0 b2 l1 D9 f5 n  F5 {
        },
1 Y2 d/ Z7 E( {! @( ^. u% F        {
* Q& a! p6 s0 R6 ~4 E                .active_low = 0,8 G3 W4 L2 C, S. d. g
                .gpio = DA850_USER_LED2,
( ^( A  r& ]: w9 ^" v6 y                .name = "user_led2",
8 y1 G& u* e8 [5 h- A1 K! i* X7 S                .default_trigger = "default-on",, K7 A( }" ~1 X8 P; x! R
        },
8 F( {- d/ z- I( H0 T3 {; D        {
- D6 t3 H: Q& _                .active_low = 0,3 ~+ J3 R* d& F: W: J
                .gpio = DA850_USER_LED3,
. o8 l0 a1 b. ]* z                .name = "user_led3",
0 q# j2 z& ?( S% p8 ?/ a8 o                .default_trigger = "default-on",
; H: v( @3 y! i        },& Q, s* U/ K% W
};. h$ ]* U+ {4 G- o

4 L) k+ B' ?  {2 Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& I* b8 ?- o2 k  {
        .leds = da850_evm_tl_leds,
4 J  q% F" x; ?% q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! q8 w' O+ }! M3 T4 ~};
7 s& |) X, A+ x( H7 B+ I+ k( q1 ]- w4 K* h& j8 N2 K
static void led_dev_release(struct device *dev)
% O5 Z# r& O  i' K! F) m8 o{
* y) P! ?( v4 R7 R( i/ q- Y};
& h  T0 g2 L! o! g& g+ X" h* G* W: ^- l1 ~, ?. p( L4 ~* j
static struct platform_device da850_evm_tl_leds_device = {
& s& R/ E9 G9 A2 V. |        .name                = "leds-gpio",
7 V" z3 f# B3 q# }        .id                = 1,* Z$ S* }/ D) n% n
        .dev = {
2 N* i! ?' V$ R3 d+ w                .platform_data = &da850_evm_tl_leds_pdata,
/ ~- r; i7 o4 q                .release = led_dev_release,. Z8 t! u: A# ^8 h. G" i
        }
+ ?+ f! e6 s4 J6 g};6 `3 R+ s* r% M$ }/ T' g: F

; }, d2 f% K2 Ostatic int __init led_platform_init(void)9 R- k1 d4 m2 g. B
{
. Y* ?+ o' q5 `8 o4 s" e- G7 y        int ret;
! k( I' Q6 _+ p, `' w- R& Z2 L$ A#if 08 E# o+ {0 @) e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: `+ a* L/ h7 V" b$ S
        if (ret)
( h: ?% j5 U3 y4 @: E) f) @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; i8 n) W4 U$ ~% t$ Q1 G+ B2 H
                                "%d\n", ret);# g- b, I* Y. u
#endif
& H0 l: @. q  D8 ~        ret = platform_device_register(&da850_evm_tl_leds_device);
* K1 R5 G+ d( o        if (ret)# ~2 t2 H2 z9 [3 I$ z
                pr_warning("Could not register som GPIO expander LEDS");
; R3 w% F0 \3 J0 Y        else
* g& b; {% N) K  {& f                printk(KERN_INFO "LED register sucessful!\n");) v* c" s7 ^$ l$ p% Q9 ]$ P" \8 B: N2 P
" o4 f4 r  c+ \- O) A4 o) I
        return ret;
3 }% l( I: ~1 T, F# v6 M}: o! Y* H5 j7 \/ ~6 {7 A
* R$ @3 A- W" A" l! W4 b
static void __exit led_platform_exit(void): S- t  y4 o% ]; j  |  x
{$ T' h7 S* B5 c+ G( c5 _
        platform_device_unregister(&da850_evm_tl_leds_device);
. N. m2 R. y# X$ }8 H6 Q- v4 m3 x7 z' z/ r5 Z( e; v3 Z
        printk(KERN_INFO "LED unregister!\n");
0 q# z" e7 K2 L}( l; E  i' _. i) Z7 E# y0 e1 n. ]
9 d) \- a# @- b3 Q: ^* V
module_init(led_platform_init);
# T9 a$ [8 H( c* @! \0 ?- M6 qmodule_exit(led_platform_exit);! W9 z/ N1 v* H; R6 j" ~/ U

2 ^0 v/ ?8 o. r7 _$ Y6 F/ VMODULE_DESCRIPTION("Led platform driver");
0 l" ?3 M. Y0 T! \& p9 H& g# LMODULE_AUTHOR("Tronlong");+ f0 W7 B$ c' z4 t
MODULE_LICENSE("GPL");. \4 S9 Z" i% r6 J1 T+ f

; e$ i& ]8 a, s5 Q$ \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 17:30 , Processed in 0.038920 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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