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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; r. ~& f, [& S  J! Z7 W1 e' v: n
#include <linux/init.h>
" o7 S, |  H% }4 i' t, Q$ y#include <linux/module.h>
& d6 l7 E  p6 d" B  r) x& n#include <linux/kernel.h>
; x  E3 ]/ [1 I) S#include <linux/types.h>8 l: p) ^* A3 E) O2 r3 `+ K, h
#include <linux/gpio.h>4 D. v' B( o* O  A1 Q
#include <linux/leds.h>0 o9 }, h9 X- N; u
#include <linux/platform_device.h>5 Q0 `  R- t' ~
+ R1 ~5 V& k9 J
#include <asm/mach-types.h>3 y2 B( |) I' a
#include <asm/mach/arch.h>4 n% \& n' G- N! g4 {
#include <mach/da8xx.h>9 c" G: {: b2 ~* D7 W* m7 }
#include <mach/mux.h>
( T. _4 x) u+ V3 W+ i7 e0 J- f, E+ W0 o' e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ i) A9 m; j( a- M3 ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- o  T7 @; P& p8 X7 p  H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( f9 a7 ^# p7 P5 A# M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% M' Z' p6 I$ O+ a! }4 l2 u
7 P/ V* i3 a* b
/* assign the tl som board LED-GPIOs*/+ @/ C; g& ?1 @6 H- K
static const short da850_evm_tl_user_led_pins[] = {
, W# {0 j( M0 c4 U2 O% O        /* These pins are definition at <mach/mux.h> file */0 A5 u( l. o; n* H( i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; y. u6 |" f0 ~# w# }8 P2 `, z        -13 {" c  J: n. U' T  x8 T) ]
};) N: X" N# S! K
+ K5 k" k% u( @5 Z
static struct gpio_led da850_evm_tl_leds[] = {
- d2 U! E) n# x8 a5 q' `" ~  v        {- h# C1 @& ~" S' C1 G' ]+ N. F" m2 V# ?
                .active_low = 0,
* C# A# \6 f" z! Y2 l3 a: G: z7 M8 J/ b                .gpio = DA850_USER_LED0,/ r' @) U8 `6 |" m! [; b
                .name = "user_led0",
5 K' d  U# h& T5 y/ F' B" Q( ]                .default_trigger = "default-on",' u9 l/ z" I; N# ^3 H3 l
        },0 L4 F4 h' j2 l
        {8 f  L7 r! G9 ~3 [0 Q! L0 t$ H
                .active_low = 0,! {' x/ I" H, G+ b, i8 b5 L" u; ?
                .gpio = DA850_USER_LED1,# F1 O' r) ]* T$ M7 s
                .name = "user_led1",; d: z) e8 Q; M5 }
                .default_trigger = "default-on",
* C4 E; A( B, ]( x; f! `        },
  q' x. K/ B2 L. D8 h" e        {
# o# q) }! |4 L                .active_low = 0,
5 l% E3 E$ m# t! i' G  F( t                .gpio = DA850_USER_LED2,
5 m- X& S3 J: L1 p0 [( @                .name = "user_led2",
/ ]' k. d+ N. a1 o- x- [                .default_trigger = "default-on",
0 e, f1 n5 o( l# E* w$ F        },
. K# r" X( U1 U! Z' y2 n! B        {
/ L1 B! K" O2 F& D  M$ R                .active_low = 0,* p# n3 N2 _7 x4 F
                .gpio = DA850_USER_LED3,( w- Y7 b9 k9 Q) {! O
                .name = "user_led3",# {% @' X2 `) g# {9 C' a
                .default_trigger = "default-on",' V+ N) G/ ]! R. f" q
        },
/ H/ `. {3 @+ Y& J+ {& A};
3 T# J) r4 C9 I& }$ X5 x( b
7 G* U* U' j) M' [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 C& H) K5 U$ ?; @- J/ D1 c        .leds = da850_evm_tl_leds,
1 c% w9 s% y$ B! k$ r$ q+ i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ L; C  l; ?" A% h# a};  Z  K, z/ o: i0 X0 S; X& l0 v. w

/ @7 K) k) g: L; wstatic void led_dev_release(struct device *dev)
; [# A* `) h9 h/ d8 w& k! C{8 Y# Y* y1 c7 p4 U' s
};/ o* s7 D* g; i6 D$ e
- ~8 r& G9 f  v. h# s( T
static struct platform_device da850_evm_tl_leds_device = {3 h3 `" F( X  `1 _1 |" M
        .name                = "leds-gpio",7 j& R% W6 d, h2 Z  f3 ^3 l
        .id                = 1,9 f; O( B; S9 d" {- k  W
        .dev = {
, \3 z- I3 j1 ]; R2 f7 ~+ w                .platform_data = &da850_evm_tl_leds_pdata,4 E; z0 q7 r1 o% S- k: K! R/ U
                .release = led_dev_release,
" _# a! C5 J2 _6 u- P        }2 y: ?7 c$ `' \
};
! D3 E% j# z* t& ~! z
- j1 Q: X: p  R( v6 r3 i# m  pstatic int __init led_platform_init(void)+ O0 V1 U6 M) a; l6 W: V
{6 K. t( W9 S& P& S& M& l' e
        int ret;- ^! v: k* k; }6 I
#if 0
; L' u: O9 e! Z+ Y% `! L7 b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 ?% c5 V9 d* Z3 k        if (ret)- L" y& Y, _8 r( l7 O$ s
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 M3 ^& w" ~3 {1 }9 V. J
                                "%d\n", ret);
$ I9 f3 a9 O2 ]$ E/ o4 R#endif
5 @* V/ M! s7 {        ret = platform_device_register(&da850_evm_tl_leds_device);. ^# r2 W: I/ w3 j0 [- i) v
        if (ret)" p% s' L; g5 ]! W& X$ d  {4 x
                pr_warning("Could not register som GPIO expander LEDS");2 a6 H: r* u$ w+ `; \9 Z# N( h
        else
- d1 \5 W7 m8 |                printk(KERN_INFO "LED register sucessful!\n");+ J5 T  g+ L, F* K

6 J) j# R- |+ W8 {( g6 l" y5 U9 A# o        return ret;% G6 u# Z9 q' u/ x$ g0 H
}( `5 o6 d. v' e& v$ ^  D
; H) \' U$ {1 ~" q! q1 B
static void __exit led_platform_exit(void)+ ~. E# n" y2 [# J% P
{* T5 p7 p- e; W
        platform_device_unregister(&da850_evm_tl_leds_device);( ~; j8 h+ @. T

' b: Q& v4 J; Q7 x7 n8 y( k        printk(KERN_INFO "LED unregister!\n");
3 j: j: G( X% \, @4 p- B, X4 J- M}* D# i  |# O2 c( u# Z
! k5 ?' j! P! Z* g& I
module_init(led_platform_init);( A2 i# G. I4 t: K! `* `* [
module_exit(led_platform_exit);
. x( h* U6 u. O0 x6 u/ {7 Z: Y( D8 @9 u! [
MODULE_DESCRIPTION("Led platform driver");2 i* z5 Q7 g! c7 Y% @. A; L
MODULE_AUTHOR("Tronlong");- _- z( |- l0 E/ Y$ t
MODULE_LICENSE("GPL");0 O; n  Y8 I& \( G( z/ G$ n2 K, ~' l, S

% Q+ B& L6 x* j. l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 05:52 , Processed in 0.040657 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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