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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# u" O  G, q7 }8 f#include <linux/init.h>
3 r2 F- C' ^5 Z4 q- ]#include <linux/module.h>
* b0 J& G) D7 A1 I* K2 H# Z2 w$ T6 ^#include <linux/kernel.h>
/ }: \8 s1 @6 }" a#include <linux/types.h>3 B" ^4 b; H7 j: L- B
#include <linux/gpio.h>0 S# {2 r! `$ K4 ^/ k
#include <linux/leds.h>
2 g& R6 z) U3 r+ ]; Z$ x' n#include <linux/platform_device.h>7 b7 I5 w$ W: R

; z# }9 V' J& q* b1 E4 m! B#include <asm/mach-types.h>* P* d& y+ d0 I( t( S- w% k6 f
#include <asm/mach/arch.h>
( S& ^" U# O& c5 D) _4 A+ M* V#include <mach/da8xx.h>
  `; T! z# A4 \3 s2 i/ K#include <mach/mux.h>
, |6 g! Z( ]5 }8 Z& i/ X
" S' i1 D" N* {: u+ G#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: }% W0 E% f- {#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  j$ A9 c6 g- {/ ?7 s8 v9 E  [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 E9 \/ {! P9 t  l2 {3 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( B4 D3 j9 g# M, I1 }% M
% v# C& |/ V3 ]. O2 K+ ?- x; N! D  O/* assign the tl som board LED-GPIOs*/
  q1 {: M. b' e  ~. Q- {4 cstatic const short da850_evm_tl_user_led_pins[] = {
1 |* c8 H( G- ?+ }3 _        /* These pins are definition at <mach/mux.h> file */2 T7 F, z7 y. M* c: r( j# _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( ^* N& M; u3 l; J$ E        -1% F8 I. Q* \9 e5 _6 c
};- t$ W4 Z; Y3 t& o
2 F& w8 |) c' \$ t6 ^
static struct gpio_led da850_evm_tl_leds[] = {& x9 I' M5 J; W  S8 c# m; a9 R! p, ]
        {1 t7 o; V# Q; E# x; P; u# r
                .active_low = 0," N% J& [/ }# X3 O
                .gpio = DA850_USER_LED0,; b. c& [* [5 U( K7 ?' i8 a3 @
                .name = "user_led0",1 y3 ~7 q$ r7 J9 ?- u- c
                .default_trigger = "default-on",4 `2 b( ^2 C; l) S
        },
: D9 B6 D" [* S( y' B        {( m% r- N2 \/ W' }% j
                .active_low = 0,
7 G2 A" }5 Y8 u0 \                .gpio = DA850_USER_LED1,
: h5 L$ K" y0 C! U9 W! ]5 D; u  ^                .name = "user_led1",
4 M) e5 y* M1 e  u7 C2 T2 @. y5 I                .default_trigger = "default-on",
7 ?- p& O* a! {* ^8 J        },$ f, r! _9 @1 O
        {& n/ @: K: j, R; ]
                .active_low = 0,- [! a' A  H! [$ ]4 w9 R5 B' K
                .gpio = DA850_USER_LED2,& t# x& S4 Y' S( T9 J, V) w7 L0 {
                .name = "user_led2",
4 S9 F/ q- B9 P% ?  j5 d; }6 }" L                .default_trigger = "default-on",4 ]" _4 o7 z' y  m+ C& _
        },0 [' ?5 I: i8 ~5 \) Z4 e
        {
- D+ i! _. _& Q1 x                .active_low = 0,
2 m* g' z- E. W6 [* [3 V. G& t                .gpio = DA850_USER_LED3,
8 @& X8 l, v& e. @                .name = "user_led3",
. r) c# }1 \+ P- g, i                .default_trigger = "default-on",
5 l3 ?3 R/ ~9 j. O9 U( L        },
+ w1 b' x: M1 g" u};. P3 O$ C0 g& p2 H2 y  e

9 x) ?2 {/ j( B& d  F, H1 R( P. Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: @: ?2 c2 ~" F, ]) a. {
        .leds = da850_evm_tl_leds,
0 n3 A! Z9 p1 m3 t9 r9 E( z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 Q& m' W% t/ o  d};3 M  l# v/ V! p5 L2 e0 n

- ~. y& S- ?# _static void led_dev_release(struct device *dev); z1 K, m3 b* C( ^# T
{
( F  X# U; }# S* {$ {};
" F( v" _. ]" j8 c) |- k' Z9 ^/ \+ P! a! B) W+ i" p% i
static struct platform_device da850_evm_tl_leds_device = {% q" x( J  e+ _) H5 G
        .name                = "leds-gpio",, E; G& h, S" E. a# P
        .id                = 1,
( r2 k. k. c* b: v1 Y4 L) s        .dev = {
# K" z* m$ [% R3 g0 g1 \  p. {: D                .platform_data = &da850_evm_tl_leds_pdata,
. u( E) ]0 L) |# B5 B1 Z: q                .release = led_dev_release,
$ A- L  K. G4 x4 c( y/ z) V8 ~. t        }4 \$ N: [) q  A: H# L) F
};. X3 y* {, P3 p' S* d9 C& ?
7 f9 g3 q6 G+ D* a( B/ n
static int __init led_platform_init(void)
/ k/ x: M6 x, N; H' r) k) U, s{% X1 H' ~6 H5 ?/ J5 z
        int ret;; Q' G$ c. x: l# ?' W0 s2 n
#if 03 K% v4 l# j5 Y  [, M
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ a  _, C2 W8 u6 Z        if (ret)
  r2 d  h# P+ I, u9 k; c: U  `( @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 Y' Q, _5 q& f) y& H* ~: C% u                                "%d\n", ret);/ u" W9 ^( W# X! S' |7 u2 S+ A
#endif
0 i) F$ u) A9 J        ret = platform_device_register(&da850_evm_tl_leds_device);) B4 @& [1 t9 z1 _
        if (ret), Z1 Z+ @1 i- A0 ?
                pr_warning("Could not register som GPIO expander LEDS");
5 _1 c6 O) W) |0 `6 R, J        else
; F+ W* }* K+ @2 p4 M( A                printk(KERN_INFO "LED register sucessful!\n");" E" F6 i: i/ f! z3 ^
( [0 N* \( p( X2 {" q9 @6 A5 m
        return ret;
3 W0 \+ ~. g' n) N6 J  u% q  x3 X; [7 m}
- A, E) R  q, P' y  E
6 {: x1 n, [* {; r" M% Ystatic void __exit led_platform_exit(void)
' k. s; H( n' E" J8 z2 [. V$ n{
; z7 i$ G. g3 Y1 i# Y" B# I        platform_device_unregister(&da850_evm_tl_leds_device);, y) M# h  F; C3 S6 F

5 `- b$ \) O9 e! w9 M2 m        printk(KERN_INFO "LED unregister!\n");1 O8 y* A- ~+ a3 \
}  x; S- @! g: H
; ]+ L  M8 q4 N) s9 t' ^' M
module_init(led_platform_init);
, a9 T6 Y+ ]  }- x+ ?& f9 J% |; amodule_exit(led_platform_exit);
! W/ R0 E$ q0 m: E" g% L" ^
+ p* s* p7 J, {; w' K8 k8 r2 wMODULE_DESCRIPTION("Led platform driver");( B' f" V$ x# Z$ u
MODULE_AUTHOR("Tronlong");: f! D5 j8 `3 D/ K
MODULE_LICENSE("GPL");
0 G  X' y5 i: @7 X" I8 s1 c9 W: o' r. s# J9 ?* y7 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 13:40 , Processed in 0.043712 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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