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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 {0 s! }$ y- r$ n
#include <linux/init.h>
/ U* h1 B) G& Q) E#include <linux/module.h>1 c( y, K# g/ ~9 w, S
#include <linux/kernel.h>
  r6 ~" A. [3 Y5 P  p5 M#include <linux/types.h>
& Q7 P5 h4 j0 P% ?! Y#include <linux/gpio.h>  K: Y5 h; B, I2 L0 v, |; z9 @5 K
#include <linux/leds.h>) Z0 S# @! x3 u$ W; b
#include <linux/platform_device.h>+ H5 {: C" ?& |% U
8 w* Y2 H. d' V. E+ F
#include <asm/mach-types.h>/ n+ i6 f" H1 Y6 _- l1 i
#include <asm/mach/arch.h>
* y0 S% b+ }0 ^' n! n0 `/ A#include <mach/da8xx.h>/ h/ s) Y) q4 j, j/ \6 U2 D
#include <mach/mux.h>
3 f. a# |. W* j3 V3 W6 F
( B" Y0 N: X3 }( o2 F6 F! s8 k: u  K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: w! g% i8 h+ j( g2 M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 u& p+ p3 k" w0 e8 y, `8 B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
3 ^( z% c+ `9 ?. n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 n% C& j2 X1 U7 z+ i3 p. l! M
: }1 s' X3 ?$ J4 H% t
/* assign the tl som board LED-GPIOs*/8 p0 i+ ^5 u- ~3 u6 q+ q& ?
static const short da850_evm_tl_user_led_pins[] = {4 h) W, i( k( A" z7 u5 q8 ~8 a" H
        /* These pins are definition at <mach/mux.h> file */9 ?9 y: G/ T; ~) i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. P/ {$ }2 F" _  z4 V+ C' r' }& x% a
        -10 Y: p2 ^) ~6 x: q, D
};/ z* T5 U! h' R

% T5 v; j2 B8 ?$ j# o, ?8 ystatic struct gpio_led da850_evm_tl_leds[] = {
' M6 Y0 _5 I5 W; N( r  A        {
2 m# n  _' s! t3 e0 y" O                .active_low = 0,, q2 ^" x- a; B  t
                .gpio = DA850_USER_LED0,
' V' x! p. c$ a4 J% o* W* q8 K                .name = "user_led0",
! d, q* F1 N  x7 ~/ r                .default_trigger = "default-on",
+ {' L; U- O$ s# }- z        },( I$ E4 |3 ?1 f& Q1 _+ A0 E
        {, T& s0 M" h+ K( R& J
                .active_low = 0," Q3 j- R7 }4 [, R- T$ p
                .gpio = DA850_USER_LED1,
+ s$ A6 x, l: k" Q                .name = "user_led1",
9 W1 X( l7 p7 n4 B                .default_trigger = "default-on",: y- _& [1 Y: Q5 z5 L8 [$ }
        },
+ `  w; C8 D/ b( Z: t) H        {
9 p. m; y- t8 l& _+ o  |                .active_low = 0,
; Z7 r- v  N  k0 P( u0 i                .gpio = DA850_USER_LED2,2 `7 ?0 ?) L0 ]( j
                .name = "user_led2",
0 z- |, o# H* G7 M$ f, u+ c                .default_trigger = "default-on",5 B/ P3 z# i& d! _+ y; A* J
        },! R" `% P6 H5 D* N: h& w  h/ l
        {5 o* I7 N6 x1 @$ x5 r3 ?4 p4 Q
                .active_low = 0,  F1 b# t* g  x! f9 H4 A- i: S
                .gpio = DA850_USER_LED3,7 m6 W, w4 _+ R% V3 Q4 `- x* {
                .name = "user_led3",+ H) A+ y$ D, b) r
                .default_trigger = "default-on",
1 w5 a( F/ T8 D7 A/ I8 g$ ^! l        },
, R% p* K* s9 x, x2 [# J! Q* t};
+ S, u6 x1 Q/ F; x' s7 ~
, I4 k( ]/ M( J" wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 X$ u; T5 X: g+ N' c' E- \        .leds = da850_evm_tl_leds,( O% d4 f- U7 x- y5 W5 v* q4 s
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% n/ R: w7 G. ]2 t3 J};! A* @( [. k" O# ?, ]: N

4 M4 J2 I- R. n/ `static void led_dev_release(struct device *dev)  T  J4 X  u$ F* F6 [
{
: W& [* S% a( |9 ~  P% O- p+ Q; ]};
5 |# V0 q3 A' R; j2 H8 i* B( m0 \, F  N: e! p2 E: I4 O5 S* f
static struct platform_device da850_evm_tl_leds_device = {
) d+ n4 T2 F/ R* r- Y  `        .name                = "leds-gpio",0 C) T& H8 S9 a) c9 P# `
        .id                = 1,( ^% Z; V' T2 \2 Q4 V' b
        .dev = {
+ v  ]+ [0 I5 Z                .platform_data = &da850_evm_tl_leds_pdata,/ I  g5 t/ @) U6 t/ h
                .release = led_dev_release,2 C' U9 G+ N9 W  a
        }
9 m' l6 W7 v% S: q5 `( X; L: ?};2 F- }! Y: s5 R+ m- [- z; N
% H8 Q7 I/ ]: t6 o
static int __init led_platform_init(void)
" E% u9 ~2 ?+ {{- c2 r6 Z  A$ ~* N+ u
        int ret;% n- s9 c/ F/ I; `& t
#if 02 ~# _$ N. Z/ K+ \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
4 h6 ?7 M8 y. u1 R        if (ret)% V" G& i& p; X8 X, j( R" J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 _1 k5 u) ]. F: z8 S7 J) k% V
                                "%d\n", ret);
: \4 N" i6 {. v8 t/ w4 @. b! G( M#endif. l  U* d  m" }
        ret = platform_device_register(&da850_evm_tl_leds_device);6 X3 k8 K& K8 Y' m
        if (ret); h, m; k. p; v- D
                pr_warning("Could not register som GPIO expander LEDS");) X7 {& Q; M  ?+ Q7 Z# n
        else
' ~! e" ~8 n' [                printk(KERN_INFO "LED register sucessful!\n");
2 E* T2 c5 x7 u9 L2 z
( c. T- R9 A% {5 b        return ret;9 \4 P  M/ I/ W) n9 h1 b- K2 |
}
) {+ |3 S' h  M, h1 W( O, u& l7 L( F) [5 I/ l" I; D2 r! t
static void __exit led_platform_exit(void)
+ b: l9 @) P- V2 l. X{) d3 Y+ t* S# r: e. E) Q4 ^& k% ~  ?; H
        platform_device_unregister(&da850_evm_tl_leds_device);
4 H$ }0 ]* E! p' X- ~& C7 b, m. a; G
% p4 `1 Q$ u! ]- b" G# U% n  H- ^' p        printk(KERN_INFO "LED unregister!\n");
7 l& E. k! a& @/ a) m" A* ~}- f/ o1 \+ \1 g

3 s- n/ K: t& u# a; [module_init(led_platform_init);
3 c" S& v& y; l% Umodule_exit(led_platform_exit);
# S1 C2 {6 z2 T$ v, o' W9 x) f8 \! l/ N# h% Y
MODULE_DESCRIPTION("Led platform driver");* d. K! {3 ]' D
MODULE_AUTHOR("Tronlong");
+ t+ a5 L9 K4 Y! E0 r; _9 gMODULE_LICENSE("GPL");; K' K3 e# W! F) F1 f# p) z
' i$ Z: B5 Y* T  ^. e8 v  k3 D- i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 23:59 , Processed in 0.039130 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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