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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" m3 h+ \$ i0 |1 D/ u: r3 ?- L5 A
#include <linux/init.h>5 {6 ~# k* l3 h: ?9 o  t+ B( Q) f
#include <linux/module.h>5 ~: j3 {+ i% |9 t
#include <linux/kernel.h>" p. P$ F' \: {, \! I. a* o
#include <linux/types.h>
" J# b$ \- }3 T: {+ L: B- R#include <linux/gpio.h>
. ^8 r+ n' n1 ^7 k8 L, q#include <linux/leds.h>4 z$ q3 S% v" _% Q5 r
#include <linux/platform_device.h>
# d1 c, V, D* q" ]3 z! H
8 H# ]/ {4 j8 a4 r#include <asm/mach-types.h>2 B, N! y" z& B4 q) `
#include <asm/mach/arch.h># M# n! M7 w" {! y4 p
#include <mach/da8xx.h>' \+ I# p; n1 t- a$ d
#include <mach/mux.h>( g' c4 b5 M# d  c+ Q( f7 D

# w* s2 i4 I7 C( |% W% W9 m#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. I& }3 e9 h, Y+ ~2 l#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, i( E! ]: k. m8 b1 S#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 W# y4 @* Q* m8 C+ X2 q! Z, Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- S$ R6 ]5 }8 t9 t" T' A3 ~3 a' W7 `4 V0 b; T3 ]
/* assign the tl som board LED-GPIOs*/, Y# k* d1 S* E0 K: N5 h9 [3 j
static const short da850_evm_tl_user_led_pins[] = {
) g( _$ C% k4 s# C        /* These pins are definition at <mach/mux.h> file */3 W/ W2 V; D! e  c: N, R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; p+ ~$ d  O; x9 C' d        -1) ~7 `9 a2 V1 U5 L+ l; G1 G
};
- [/ H. B1 n' H% O5 W' K4 _
( L7 a# r' Y( \# Pstatic struct gpio_led da850_evm_tl_leds[] = {2 S" P9 A% o) ^+ m9 w* v# M8 Z
        {
' s* z" T( s. _                .active_low = 0,# i+ n  B- I  v3 J  M% @4 T
                .gpio = DA850_USER_LED0,7 V' _& u' v7 a% x( s' Y
                .name = "user_led0"," b( h% V5 e! X! P. D
                .default_trigger = "default-on",! z0 W$ o$ Z/ M, z3 N/ }1 S2 f5 G
        },
  h% s1 O0 k/ Q7 c: P8 }. M        {
* b+ G7 n0 X: n* I9 ?! w/ l+ C- v                .active_low = 0,
. x! s1 F2 u) m. i( q                .gpio = DA850_USER_LED1,
  c- O% D& f, X- @                .name = "user_led1",
' j4 D) A  }; S$ L. X3 j* r                .default_trigger = "default-on",% l5 c& X" L9 E) @! Z4 z
        },
$ Z& w( k# {6 e6 E$ n* v        {
7 H$ X3 y  U( h$ [( [; i: t* j                .active_low = 0,$ O& \, q. R; |: L
                .gpio = DA850_USER_LED2,6 \% P. Q; N( g- Q5 }
                .name = "user_led2",' p" e* J# U# D$ m  M) ?+ `$ U
                .default_trigger = "default-on",  j0 m9 k+ U  N( J7 h
        },
7 G4 g$ o7 G* z        {" p8 g  u& p1 d
                .active_low = 0," E; [3 a0 k" B) I
                .gpio = DA850_USER_LED3,7 p- N0 X  g# D4 W) v3 n
                .name = "user_led3",* x7 \; l& s$ z* v# X+ Z8 x
                .default_trigger = "default-on",
* e9 K- B1 c" e% N4 ?. O% d        },- n) B3 Z9 K# B( J
};
$ ]+ I$ J) ~3 O" D7 D% N* F' \% x' B) d( ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 r7 x$ A9 |& B" Q, |( I1 x- D        .leds = da850_evm_tl_leds,
) z  u! S& g% N5 |: a7 |7 c# ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) t( ]! p- Z) g1 m3 }3 g( Q};( ?9 s  `0 z  B: v

; f$ w+ M7 w  j# c5 o8 Fstatic void led_dev_release(struct device *dev)
; Z! ]% P) l9 p. e) M{
# s7 d2 e& H  E6 y};
* L- Q6 M+ s- \
; E$ R9 w: C2 I7 |/ H( h+ e! sstatic struct platform_device da850_evm_tl_leds_device = {0 B% @1 S6 t0 e0 R
        .name                = "leds-gpio",1 ~) j" n. F  n- D/ d9 m
        .id                = 1,  o& Z( D* a7 u
        .dev = {
1 D% h) F+ q. @6 Z- C1 `                .platform_data = &da850_evm_tl_leds_pdata,; E& ^' N( o( |) j1 n$ |5 X
                .release = led_dev_release,, H- d% w/ k* r6 u0 b; ^9 U8 m
        }
( D4 X, q# s  O" U, y& V) S};# s+ |+ o6 ?2 A) {
! Q0 h% \$ a& S3 ~" i* e- V
static int __init led_platform_init(void)
: R, L) i8 |8 b{
) }5 e: S" r, x        int ret;6 e3 r* W  v% l2 M% Y
#if 0
: M: z2 q0 |. R4 z+ t- _% \& c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);4 c% S; n  D% i# a$ Q, w
        if (ret)0 t2 h" ?7 ?5 g1 {8 s. w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* N) P. s# ^8 ]6 b
                                "%d\n", ret);4 G% l- K& @5 p) j& b. a
#endif1 o5 Q/ T" W  J6 Z
        ret = platform_device_register(&da850_evm_tl_leds_device);; ^* O0 |! y& f
        if (ret)
+ M( d! {* a/ v1 v5 v# \                pr_warning("Could not register som GPIO expander LEDS");
) j$ ?6 c0 Y/ h$ o* w        else
" S- k! ]5 _7 g3 A8 W; @                printk(KERN_INFO "LED register sucessful!\n");
; i% t; }$ C3 z4 S8 R: L/ h9 L" V
+ ?' c! J% k: V( r        return ret;- }1 t: C9 D. n% Q
}6 A" x6 U; \# e2 [6 t- n1 i/ |

3 H) d1 a/ _$ t3 I+ @3 }$ @! xstatic void __exit led_platform_exit(void)
- [8 f% a( T0 i) N: v{
7 W/ y- _) k9 l( ~2 e        platform_device_unregister(&da850_evm_tl_leds_device);# F+ a1 q$ a  @8 k3 b: h8 U; ^" f
3 y$ E6 p, V$ P$ |$ R
        printk(KERN_INFO "LED unregister!\n");
6 a# o% S7 A5 f6 N$ D6 U: W}7 B% h: k* ?! U6 a' y
9 e& N. Y( r9 k
module_init(led_platform_init);6 I" _0 H+ j1 S, N% L4 o  Y5 j3 p4 j
module_exit(led_platform_exit);
% Q( e6 m# O( O% u# H- Q; O6 ?, b/ A! e# [. `$ Z; v
MODULE_DESCRIPTION("Led platform driver");
+ }% O5 W$ w6 x2 q: d. pMODULE_AUTHOR("Tronlong");
, R, H! V, u7 ]$ S4 c7 SMODULE_LICENSE("GPL");
; _0 x8 d8 w0 D! b% Z5 [; ]( d+ r! @& e5 l5 m9 B3 Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-26 15:43 , Processed in 0.045484 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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