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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 A8 H/ I; a  a5 N' Z) |: ]#include <linux/init.h>
" s  O2 {- h& X1 M+ D3 D7 X#include <linux/module.h>
7 p: Z0 k8 f: w#include <linux/kernel.h>$ r/ `4 {9 S+ I7 u/ R
#include <linux/types.h>" _. J* w$ F; R/ B9 k
#include <linux/gpio.h>
' v! x% X6 q( a8 d" Q) s. F$ c1 D#include <linux/leds.h>
/ c2 X) `$ _* S  v( e6 t0 Q1 Z#include <linux/platform_device.h>9 \% H( j3 h( A2 ^1 x% p- k

- c  }: W6 x# y7 j4 V' {4 l  `$ c#include <asm/mach-types.h>
! ]7 A. a1 a! ~& g3 Q#include <asm/mach/arch.h>
  d0 b) |$ w/ d& A3 c+ V#include <mach/da8xx.h>
3 s& n# r+ ^, \6 r: d$ j#include <mach/mux.h>
0 Z3 o( H) t! [' [( l7 D
; M8 _! L! T: E- O: O# P2 I* B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! K( J8 t3 r6 v# O2 r' C, c$ k1 ?& a
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); T; Z' n, e+ C1 f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 a2 s- n; t. I% x; f: X. V2 p6 A- \4 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 }( X% s- u% m% g" ?, i/ m7 J
4 \. T2 c9 B6 Y0 m% J9 I/* assign the tl som board LED-GPIOs*/% x0 @2 U) c6 M! H
static const short da850_evm_tl_user_led_pins[] = {
- }: C# C9 X5 U5 W: s- V5 C# {        /* These pins are definition at <mach/mux.h> file */
5 F# s2 [8 D" H' ~0 c/ B# e! q& ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; f5 \6 J6 L8 r8 H- L8 a; p
        -1# r' E" x$ W$ u" d, [
};2 |+ c! a* t4 H
. y! i) q6 {% t7 F
static struct gpio_led da850_evm_tl_leds[] = {
+ G/ R! e( Z; b  ]* a4 e: H+ P        {5 }# P4 c5 W7 R
                .active_low = 0,5 ]- ]5 k+ p2 C
                .gpio = DA850_USER_LED0,* O3 u3 {# j% j) q& P
                .name = "user_led0",$ b: e( U& E) s& `: r
                .default_trigger = "default-on",8 i$ t" h, }+ a+ ~$ r
        },- n' B. j& ^" v
        {
& c9 H, m( e" M4 c5 F                .active_low = 0,& w0 @( n, F- L/ n
                .gpio = DA850_USER_LED1,
' s8 k/ E/ C, d7 T. O- T                .name = "user_led1",
9 x( O5 {% }! C0 Y1 ]. e8 c: r                .default_trigger = "default-on",5 L& a6 l/ U- ?- b8 M& _
        },
% X. V1 M& |9 ?  {; m& @        {
; ?( L/ G$ F, a- |8 W( L+ o                .active_low = 0,
1 b; z, O/ e+ e! y5 o1 R! U                .gpio = DA850_USER_LED2,) O; [* ~; X8 Z. d; T% n
                .name = "user_led2",
6 _4 N* h3 o: {6 T/ G+ |0 p                .default_trigger = "default-on",
2 ?9 @% h2 d; E$ r3 N4 c        },; f) T) P* H* g0 H8 j7 |
        {! K5 O  w6 j; T* o
                .active_low = 0,
) ~5 r% C4 x+ \' j6 m+ ^1 b) m                .gpio = DA850_USER_LED3,
4 Y0 m+ q0 I* t1 v                .name = "user_led3",
$ N: p9 `. Z+ J9 b                .default_trigger = "default-on",3 L, J, g  n* \( V) o
        },( n$ E. Y3 |% c1 A& s# J" ^5 p
};
4 w+ l, _! V3 u  q
4 ^8 |; I* ?( e1 Q2 l+ Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& A8 _5 ?! k3 M+ J        .leds = da850_evm_tl_leds,
: f6 U1 @6 B" }3 M7 C; h        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& r: U7 p* }0 m+ h8 l* Z: j' `
};
2 ?7 h9 e: y! a0 R( X7 F8 K, Z9 U3 h0 }
static void led_dev_release(struct device *dev)
8 w( X% n( C, m; p& n5 g{
9 z$ `' A) N1 E};
+ b& j( @% p$ w! J- \/ h) x# r  _8 p8 b8 }/ N9 @# ?
static struct platform_device da850_evm_tl_leds_device = {
! }7 w2 F( }  q% m: w/ a        .name                = "leds-gpio",$ W1 p) n% x$ p1 P& J+ O0 G* b' J* Z
        .id                = 1,. T8 V; q5 z5 |' a/ M3 H2 ]7 r
        .dev = {
( U. D3 A" l2 e1 G                .platform_data = &da850_evm_tl_leds_pdata,
6 K% J8 \! Z) ^" M* z9 i# [# w                .release = led_dev_release,
2 G* }* Z( ~- `$ }- X        }) e# _; l1 ?  Q) Y) j( q, h' o
};
* E+ B6 r$ C, Z/ ?- t9 ^1 I9 E, I. s# m2 q
static int __init led_platform_init(void)
8 x9 z) L1 D8 l; d6 P& J{
" Q( |) z2 M* v( U  V        int ret;5 h( z1 k1 R% c7 w; ?
#if 0* \: ^& a4 Q- ]. N. ~. m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- q: H5 h, W4 f2 L2 z' z
        if (ret)
: u1 F* @% H5 @( M" i* Y9 l3 R                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ p5 E7 r* t6 {6 @/ w/ `! W, p/ G
                                "%d\n", ret);$ c! Q: m( G2 [; e
#endif
$ r2 K  i, C7 }/ z( @        ret = platform_device_register(&da850_evm_tl_leds_device);8 k+ n$ N' F* }1 x3 D0 R* M$ X1 F. L0 r+ s
        if (ret)5 \, j* L% ~; F* k( b4 i) f
                pr_warning("Could not register som GPIO expander LEDS");7 M- L# i2 t/ F# T+ f8 j
        else
  h; C4 D( C; }0 o0 J/ ~( {- Y                printk(KERN_INFO "LED register sucessful!\n");
" @: |8 M5 [2 r! F
/ e' {: n7 ?# U, G        return ret;* ~* u3 Z* K$ S( \) C1 Y1 s# P
}
& c/ W5 v8 f% L; a7 }/ W8 ^) E' U+ A/ T/ m- U1 q
static void __exit led_platform_exit(void)
2 g  U; O# b3 z/ ^3 T{; s1 R: B8 F% p  P
        platform_device_unregister(&da850_evm_tl_leds_device);/ d$ z$ J  c6 e- [2 @7 r# _& H) n

; g5 A5 w1 ?+ c) @" c        printk(KERN_INFO "LED unregister!\n");
! K, O" i5 u  `" K6 x0 D$ f}
  Z1 V$ m) |3 F2 v0 N9 H* k* E9 P2 k. D
module_init(led_platform_init);: V* i7 z7 n, K$ R$ s+ q4 P
module_exit(led_platform_exit);
# H. q2 y& ~# s/ Z4 ?+ W0 [! z
  n2 B, O3 a& U" B7 Q: K" ~7 ZMODULE_DESCRIPTION("Led platform driver");. k! G$ q0 r9 P- Z
MODULE_AUTHOR("Tronlong");
5 ~& H! y9 e$ v" q+ h* H" D  k0 RMODULE_LICENSE("GPL");9 H0 ?3 R0 r6 H

8 h" Y( }7 l2 K0 L: ~9 `% Z" |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 22:08 , Processed in 0.036372 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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