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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 |" \& w. ?0 r8 v# u& x( r
#include <linux/init.h>' C* o0 A! U3 `- P: x" z
#include <linux/module.h>3 q0 @; A& h( n0 i
#include <linux/kernel.h>- }  a1 ~  J5 U; I
#include <linux/types.h>1 r, j  ?1 I# J. }- f
#include <linux/gpio.h>9 i8 J+ j' [: ^- v
#include <linux/leds.h>
1 h* z4 o* v4 n" H6 A% v#include <linux/platform_device.h>
& u# d; g, ^7 s  \& T2 s7 c9 c6 U, Z) f; @8 |
#include <asm/mach-types.h>
+ b, h( g, p0 R# U2 Q% c* Q7 E* U( D#include <asm/mach/arch.h>- ]3 R3 ^% b/ X( J& b# e9 P+ ?, H, g! m
#include <mach/da8xx.h>5 h$ r% |0 z5 {
#include <mach/mux.h>
( l% X) B, D6 w
& ?3 L- @4 ?# g* ]3 }0 F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! f% E" G* W! H) Y4 z- }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ ]& H) U- ]7 s8 i) g7 J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- q+ H& Q) g8 o2 p0 v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 D+ m) e' b# j# G
( [7 |9 ]/ i- r: p7 j  D
/* assign the tl som board LED-GPIOs*/
& P# X/ \1 h' h' Istatic const short da850_evm_tl_user_led_pins[] = {
0 c8 Q! O1 L3 ~2 k. Z+ k        /* These pins are definition at <mach/mux.h> file */
: |4 E: v9 X1 j8 y; _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 c2 f# H: X" J- D1 ?        -1
1 S  |$ M; ?; _! }( d: x5 F5 q};
! I2 B6 }, U: T
: ?& a. y" p  c- h  B/ |% c; Q+ mstatic struct gpio_led da850_evm_tl_leds[] = {1 {) h# g# {6 ]  M
        {
; O9 A- z% x0 m8 e9 s4 L# Q) \. M                .active_low = 0," ?4 N* Q) Y4 @0 g6 R* r: o
                .gpio = DA850_USER_LED0,/ |! L- v0 V7 j0 G' n6 _8 P
                .name = "user_led0",
- }8 H: x6 X' X: c( G; J) e                .default_trigger = "default-on",
0 [8 @/ J1 j: W        },6 g. F6 _, X5 h( d% K
        {1 M0 ?& T# Z/ F# E
                .active_low = 0,( @( G! ^$ _9 X! u+ T
                .gpio = DA850_USER_LED1,
9 a, o" o* W: {& z  u                .name = "user_led1",' {3 b* m8 n6 A/ J
                .default_trigger = "default-on",1 m' U9 u; C1 s/ y! Q
        },. B$ @# P8 ?  m) U. a, M" T
        {
! H8 R* D) f7 y% `                .active_low = 0,% H* d) I; @- u6 u4 z6 U
                .gpio = DA850_USER_LED2,0 `' i, ^& ]8 G4 r7 J; f
                .name = "user_led2",7 L) z5 W" T4 W2 W; `( s0 B
                .default_trigger = "default-on",
# r% O5 s% g; T        },- X- ^8 [6 V$ e
        {
2 {% b) S2 v: Z! t; f* S9 n+ q                .active_low = 0,
& x. C4 A6 T$ [  _: j, U1 ^                .gpio = DA850_USER_LED3,0 Q# R! j8 s5 q1 G
                .name = "user_led3",
+ T& c. T: f, K- J+ {                .default_trigger = "default-on",' U' _. C* d& S* d
        },
" M4 n  m- }6 u- n1 R};
1 L7 J2 ^! t- k0 f2 V
! _/ ^/ e9 P# _! ]8 ]$ Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 l. b7 Q. b/ @1 k4 J% y$ X
        .leds = da850_evm_tl_leds,( K' ]) f4 y% `" J6 S
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 V9 `, I9 D' _, c+ k" ~};, w7 z6 p3 ]$ @- W0 o8 M3 v. ?, j" o
: {& ~- d' T- b! _: i) o: X; w
static void led_dev_release(struct device *dev)) r+ W( o2 C8 d# n" v- q3 f
{$ g* E0 W2 F) _& B8 H- V
};
3 N8 v: j3 u/ E8 L- g1 o$ n# v
1 g) K& G- j) _- d  P  fstatic struct platform_device da850_evm_tl_leds_device = {
9 m! x9 D7 p& p2 k: D        .name                = "leds-gpio",
) f, U; e1 G" G, J/ @: F        .id                = 1,, Y2 E+ j/ q) d7 k! b  L  i
        .dev = {
" g/ j+ T7 s( T                .platform_data = &da850_evm_tl_leds_pdata,+ [4 U( ^& T* J5 K0 z
                .release = led_dev_release,) G% |- _( F8 b& N6 ^& b1 o
        }$ u, i* e6 p& F; s  f% F* O4 v
};
0 v! R" `3 o+ I6 H7 [5 V0 \6 G# `: P
static int __init led_platform_init(void)
: _, }$ d+ S' B6 \, t" c: }{
* ?7 K5 c- o, X/ j. e        int ret;$ N. E; ~+ g  T  |# b$ s
#if 0
9 n4 G6 D0 l) L/ W9 @+ i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ~" x& _3 {: `! g, `2 n        if (ret)# z- W0 ?! v  `' Y6 g7 f: O
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! D9 ?5 y, _  X% U# F  z  I3 n                                "%d\n", ret);- E& L6 V' @" S* H  `, p, Z) `; Y- N
#endif5 m% V8 r0 f' A: ]* S& q0 d
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 u4 D. n+ b1 x: {5 g" Z        if (ret)
0 ?0 T- U% t0 ?# u                pr_warning("Could not register som GPIO expander LEDS");! V: Q- P9 h; K  k
        else. U. q) ]; `3 s% J6 J
                printk(KERN_INFO "LED register sucessful!\n");
9 V* s- w( J( W) C3 P
) C( V5 S% ~* E% H8 Z: e, T        return ret;
  {* v! N! n  p6 ?}" N& f- g7 X: U1 T, l! F

/ f! {# |: G# F) V8 U# f  @3 fstatic void __exit led_platform_exit(void)" r8 d$ G6 \$ e) d
{0 ]3 c5 h" U& z0 c1 V
        platform_device_unregister(&da850_evm_tl_leds_device);, J) x7 C3 x3 o$ h; F( e3 }
: z% @* f0 k8 Q1 E3 q, v
        printk(KERN_INFO "LED unregister!\n");
+ A7 n0 n' }  t}, `* X; Y6 l( R+ K7 @

/ N: p. F# e) b2 j9 A  hmodule_init(led_platform_init);
6 Q/ x5 t: n7 ~% ymodule_exit(led_platform_exit);9 F- l( l# Q3 _- Y% k" W+ J
8 h3 }1 v4 ?! Y8 `* ^& j
MODULE_DESCRIPTION("Led platform driver");6 ~* f5 p+ D# y# m) g& q% Q
MODULE_AUTHOR("Tronlong");% a9 v: N8 \7 W( ?: P
MODULE_LICENSE("GPL");
" M1 X8 {( v; s. n% S/ Y# C8 `3 f' P& h+ ^0 I, Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 10:53 , Processed in 0.034788 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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