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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% t" g5 r& H8 J#include <linux/init.h>
9 F2 y7 ]8 P5 z! _8 n* A, T8 ^#include <linux/module.h>
, x2 G6 i6 K; d9 o( P8 ^#include <linux/kernel.h>
6 F: W0 x7 c3 Y$ ]2 v% [2 F#include <linux/types.h>- @* r3 M& G. }+ ~, ~
#include <linux/gpio.h>7 C+ _; Z$ ^2 H. B; D5 S
#include <linux/leds.h>2 o; y/ [1 B2 J& V8 |5 h7 o6 X8 t
#include <linux/platform_device.h>
+ u& ~( i. }- M1 ~1 q7 y) Q3 B0 }) O
) U) y, r8 i& i3 a" |1 g#include <asm/mach-types.h>' P9 j; j" {9 N; X4 }' J; o+ l  K
#include <asm/mach/arch.h>  o3 S- R) B( y: D" w
#include <mach/da8xx.h>
' j4 K/ O! x4 i* r#include <mach/mux.h>- P& u% U8 {4 L# k
" N3 T& l! P: Y  V
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" b, b5 v2 z2 V! Z8 Z* q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, h2 _# f. F) Q) w3 g8 z1 a" j, b#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ p! w, [: q! g8 o$ g. `/ O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 d5 k; l, P: A8 L3 O. o$ q. o
) s! _0 }+ N! r8 W/ p( B/* assign the tl som board LED-GPIOs*/
  G; h" i  o) |# T8 C' J5 R! Wstatic const short da850_evm_tl_user_led_pins[] = {/ z( b! E: u( p4 f6 w
        /* These pins are definition at <mach/mux.h> file */
, F* e2 N* p0 T# G) \  a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: ~5 g  n6 o0 o8 I6 z
        -1* P& T6 ~, G' C8 N' ]* x
};: ]# \# {% u% R" p5 r/ e

  u) I  f' d9 T4 i& a+ ~/ L# g2 qstatic struct gpio_led da850_evm_tl_leds[] = {
- f8 {1 y% O- P; O% V8 g9 C        {
; }/ U& h8 U& w                .active_low = 0,
0 j% A4 y7 X! o! F                .gpio = DA850_USER_LED0,
! f6 l; o  n4 K                .name = "user_led0",* s' |1 y, X. d" K, O
                .default_trigger = "default-on",
" \4 q9 ~, k5 j2 d, x( M        },2 Z+ x4 o$ f4 H4 b- _3 l
        {
5 ^7 m: `& u- Z' J                .active_low = 0,
/ W% o' Y) [" X# K                .gpio = DA850_USER_LED1,8 f6 `" m% ?9 w) F$ j4 ^
                .name = "user_led1",% v- `* W( L  G; r
                .default_trigger = "default-on",% ?' t" S' l$ [6 \8 n
        },
; J  X0 N. H2 ?: ^6 M4 F  k        {  |4 W# s: U. C# u6 i
                .active_low = 0,
8 F) G7 ^6 [! i8 D                .gpio = DA850_USER_LED2,
8 n2 K. m: I$ }: {4 Y+ I                .name = "user_led2",& q# o* L. y/ W; s+ ^1 t3 ?+ Y
                .default_trigger = "default-on",
) T0 q+ J' @& R/ @+ w* D: B        },* c/ r  O8 g5 U9 Y' E
        {
' r  p1 k$ r% H& S6 s! {/ P$ L  j                .active_low = 0,
' k! q% n* }& V  D& _                .gpio = DA850_USER_LED3,
( ~4 W; S& a$ s4 ~- _                .name = "user_led3",; w& `& n& @# [( ~# S
                .default_trigger = "default-on",
/ \5 w# N' S& U3 N# u% N  T        },7 o) O1 F7 A  ?& ~4 o
};  z  k+ X  ]* c& _  q/ x

9 s8 p9 p; S+ z" c3 c0 [2 M9 Y- Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: i# ]4 C' l/ h4 Y        .leds = da850_evm_tl_leds,
4 a* B, ^* e: c$ h" [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& _. j; Y2 b) K/ e
};0 N* A" k5 L6 f6 x  n$ H
2 B- U/ l; q7 _
static void led_dev_release(struct device *dev)
/ B" p. V; q$ ]6 E9 X6 h{4 U5 H3 p" }- R
};/ l5 [& b" A, q/ q! [' ]

8 T! v% v7 S# V! |; `7 v# W* Istatic struct platform_device da850_evm_tl_leds_device = {# X+ h8 ]0 G  b* e6 A9 d
        .name                = "leds-gpio",7 w0 }* S8 D1 R' i
        .id                = 1,1 j# }/ s; j; `1 q
        .dev = {
7 F1 F4 ]& s' P/ R7 W( N                .platform_data = &da850_evm_tl_leds_pdata,( W# M2 P/ ~% }4 q  C" s
                .release = led_dev_release,/ c7 G- m: M0 B, p7 B
        }
9 S; T) C1 z- Z% m6 w' E, Q; o};
& J+ {7 Z  e" U" q& X
; ^: C8 b2 x4 V7 f- x8 Bstatic int __init led_platform_init(void)1 E7 R1 j3 L7 Y/ z! ~0 V% S
{" C9 M2 c9 \+ w
        int ret;
; k$ o/ S/ Q* @* g4 Y0 H#if 0
9 r! s5 H$ `% Q) }        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( V5 H* }% D( G- w' V- h) f        if (ret)
$ ?. M2 o( q/ c; J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" |- h! W9 w# d( \; n                                "%d\n", ret);
* f& M& K9 {( c5 @) M: b0 @4 v#endif" n1 l0 B8 l, O9 u5 ?: c+ O" a' C
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ ^- [* d# |( }$ Z/ ~        if (ret)
3 N( O5 D: F/ G. q8 R. Z$ N                pr_warning("Could not register som GPIO expander LEDS");
/ ]5 [$ ]9 V# i& s7 `        else
2 d2 ]0 k3 a4 r                printk(KERN_INFO "LED register sucessful!\n");
+ A$ k8 ]; B/ z' D, Q$ k# |. s& }( M0 U8 H
        return ret;
! A, |6 X8 V+ m0 m/ L  v/ @. R  C}, _, G  e! _9 n9 h: H

, F& M6 v6 Z# @9 c6 ]; U* k, ?static void __exit led_platform_exit(void)7 ^) I8 ?: h! I  j) u4 i
{0 R8 L$ Z0 Q8 b' R- A
        platform_device_unregister(&da850_evm_tl_leds_device);; z% o8 f# a" J

$ D' X8 H3 w* P  \* \5 Y8 `        printk(KERN_INFO "LED unregister!\n");
7 E% I1 |% u+ r: n}
8 V$ P+ M$ Z" s
: U$ g6 X% v5 ?module_init(led_platform_init);
8 ^4 o8 S6 ]6 ?! ?6 Lmodule_exit(led_platform_exit);* t* `; Q' i- B2 e8 w2 P! D3 u/ g
1 u: C2 C/ p+ e7 ^8 y) S
MODULE_DESCRIPTION("Led platform driver");
8 d4 a& T9 o7 n) p7 A! g" J% z( M7 p( pMODULE_AUTHOR("Tronlong");
6 |7 ~! O% ]7 }, hMODULE_LICENSE("GPL");
6 F: ^" i( _% n9 \' c9 G- i/ E/ H0 d9 ~; r" k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 01:33 , Processed in 0.040521 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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